2022年京东NLP实习面试题7道
共 2238字,需浏览 5分钟
·
2022-07-05 08:23
公众号福利
👉回复【100题】领取《名企AI面试100题》PDF
👉回复【干货资料】领取NLP、CV、ML等AI方向干货资料
👉回复【往期招聘】查看往期重要招聘
问题1:Beam Search生成的句子基本都一样,是否有方法扩展生成句子的多样性。
解决方法:通过分组加入相似性惩罚,具体可以参考论文 Diverse beam search:https://arxiv.org/pdf/1610.02424.pdf。
具体方法:选择Beam size为B,然后将其分为G组,每一组就有 B/G 个beam,每个单独的组内跟 beam search很像,不断延展序列,同时引入一个 dissimilarity项来保证组与组之间有差异。
组内与 beam search 很像:从t-1到 t 时刻,不断的减少搜索空间(如同beam search一样)。
组间差异:对于t=4时刻,我们先对第一组输出y(t=4),然后我们开始对第二组输出y(t=4),但是第二组y(t=4)的score不仅取决于第二组之前的y(t=3),也取决于其与第一组的相似程度。以此类推,在t=4时刻对于第三组的输出,我们从上图可以看到其score的打分标准。这儿对于其 dissimilarity 项的计算采用的办法是 hamming diversity,这个理解起来很简单,比如这个时刻可能输出的词在上面的组出现过,我们就对这个词的分数-1,如果这个时刻可能输出的词在上面组没有出现过,我们就对这个词的分数不惩罚。
问题2:RLayer Normalization 和 Batch Normalization的区别,padding对这两者有影响吗,对哪一维有影响。
Batch Normalization 是对这批样本的同一维度特征做归一化, Layer Normalization 是对这单个样本的所有维度特征做归一化。
区别:LN中同层神经元输入拥有相同的均值和方差,不同的输入样本有不同的均值和方差;
BN中则针对不同神经元输入计算均值和方差,同一个batch中的输入拥有相同的均值和方差。
所以,LN不依赖于batch的大小和输入sequence的长度,因此可以用于batchsize为1和RNN中sequence的normalize操作。
padding会对Batch Normalization的seq_len这个维度有影响,计算的时候会把padding也算进去。
问题3:pytorch.Dataloader 报错出现数据维度不一样怎么解决。
在构建dataset重写的__getitem__方法中要返回相同长度的tensor。
可以使用向量补全的方法来解决这个问题,把不同长度的向量补全成等长的。
问题4:无序数组,找topK,要求比快排快。
解题思路:堆排序,复杂度 nlogk
1.取列表前k个元素建⽴⼀个⼩根堆。堆顶就是⽬前第k⼤的数。
2. 依次向后遍历原列表,对于列表中的元素,如果⼩于堆顶,则忽略该元素;如果⼤于堆顶,则将堆顶更换为该元素,并且对堆进⾏⼀次调整;
3.遍历列表所有元素后,倒序弹出堆顶。
问题5:Bert里面mask的用处。
预训练的时候在句子编码的时候将部分词mask,这个主要作用是用被mask词前后的词来去猜测mask掉的词是什么,因为是人为mask掉的,所以计算机是知道mask词的正确值,所以也可以判断模型猜的词是否准确。进而更好地提升Bert词向量的双向编码能力。
问题6:对于两个词怎么算他们的相似度,用基于word embedding的方式。
欧氏距离、曼哈顿距离、马氏距离、余弦距离、汉明距离等等。
问题7:Leetcode—最大子序列和。
— 推荐阅读 — 最新大厂面试题
学员最新面经分享
七月内推岗位
AI开源项目论文
NLP ( 自然语言处理 )
CV(计算机视觉)
推荐