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(计算机视觉)


推荐

浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报