史上最细节的自然语言处理NLP/Transformer/BERT/Attention面试问题与答案

Posted 机器学习算法与自然语言处理

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了史上最细节的自然语言处理NLP/Transformer/BERT/Attention面试问题与答案相关的知识,希望对你有一定的参考价值。

公众号关注 “ ML_NLP
设为 “ 星标 ”,重磅干货,第一时间送达!

来自 | 知乎

作者 | 海晨威

本文仅作学术分享,若侵权,请联系后台删文处理


这是我花费了两个周末整理和筛选的,可能是史上最细节的自然语言处理NLP面试问题与(部分)答案啦,主要聚焦目前处于NLP舞台中央的Transformer/BERT/后BERT 和 Self Attention。

筛选的问题会深入到上述算法/模型更细节的地方,而尽量避免大而泛的问题。本文希望能帮助你对Transformer/BERT的理解再深一层,而这也要求你对上面的算法/模型有基本的认识,主要包括这两部分(后BERT的模型可以自行查找):

1、论文:论文是最一手的资源,没有各方解读的杂音

Transformer: Attention Is All You Need

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

2、源码:在你看完源码之后,对于BERT,你会调用地更所以然

Transformer Pytorch源码 ,BERT Pytorch源码 ,HuggingFace Transformers

注:BERT Pytorch源码是我参考自这里并加上了一些自己注释的代码,更多语言模型推荐 HuggingFace Transformers


关于BERT

1、为什么BERT在第一句前会加一个[CLS]标志? [1]

2、BERT的三个Embedding直接相加会对语义有影响吗?[1]

3、在BERT中,token分3种情况做mask,分别的作用是什么?

4、为什么BERT选择mask掉15%这个比例的词,可以是其他的比例吗?[1]

5、针对句子语义相似度/多标签分类/机器翻译翻译/文本生成的任务,利用BERT结构怎么做fine-tuning?

6、使用BERT预训练模型为什么最多只能输入512个词,最多只能两个句子合成一句?[1]

7、BERT非线性的来源在哪里?multi head attention 是线性的嘛?[1]

8、BERT 是如何区分一词多义的?

9、BERT的输入是什么,哪些是必须的,为什么position id不用给,type_id 和 attention_mask没有给定的时候,默认会是什么

10、BERT训练时使用的学习率 warm-up 策略是怎样的?为什么要这么做?[13]

11、Bert 采用哪种Normalization结构,LayerNorm和BatchNorm区别,LayerNorm结构有参数吗,参数的作用?[8]

12、为什么说ELMO是伪双向,BERT是真双向?产生这种差异的原因是什么?

13、BERT和Transformer Encoder的差异有哪些?做出这些差异化的目的是什么?

14、BERT训练过程中的损失函数是什么?

15、BERT 的两个任务 Masked LM 任务和 Next Sentence Prediction 任务是先后训练的还是交替训练的


关于Transformer

1、Transformer在哪里做了权重共享,为什么可以做权重共享?好处是什么?[1]

2、Transformer的点积模型做缩放的原因是什么?[1]

3、Transformer中是怎么做multi head attention 的,这样做multi head attention,会增加它的时间复杂度嘛?[1]

4、为什么Transformer 要做 Multi-head Attention? 它的好处在哪?[6]

5、Transformer的Encoder端和Decoder端是如何进行交互的?和一般的seq2seq有什么差别?


关于后BERT

BERT 发表之后,预训练语言模型如雨后春笋,这里暂时只选了两个代表,之后有空会再添加上。

XLNet

1、XLNet如何实现在不加 [Mask] 情况下利用上下文信息呢?[3]

2、XLNet为什么要用双流注意力?两个流的差别是什么?分别的作用是什么?分别的初始向量是什么?

3、虽然不需要改变输入文本的顺序,但 XLNet 通过 PLM 采样输入文本的不同排列去学习,这样不会打乱或者丢失词汇的时序信息嘛?

4、AutoRegressive (AR) language modeling and AutoEncoding (AE) 两种模式分别是怎样的,各自的优缺点是什么,XLNet又是怎样融合这两者的?

ALBERT:

1、ALBERT的小具体小在哪里?对于实际存储和推理都有帮助嘛?

2、BERT的NSP为什么被认为没有效?ALBERT采样的OSP(Sentence Order Prediction)任务是怎样的?相比NSP有什么优势?


关于Self Attention

深入思考,会发现它真的是一个很神奇的存在,它是BERT乃至整个预训练语言模型的基石,是接棒CNN/RNN,成为特征抽取的新利器。Attention is all you need !

1、self-attention 的本质是什么?包括哪几个步骤?和普通 Attention 的差别在哪里?[4]

2、不考虑多头的原因,self-attention中词向量不乘QKV参数矩阵,会有什么问题?[4]

3、在普通 attention 中,一般有 k=v,那 self-attention 可以嘛?[4]

4、self-attention 在计算的过程中,如何对padding位做mask?[2]

5、bert的mask为何不学习transformer在attention处进行屏蔽score的技巧?[11]

6、XLNet为什么不直接在attention掩码矩阵中只把当前的单词掩盖住来获取上下文的信息呢?直接mask住左上到右下的对角线构建双向语言模型不行吗?[3]


结语:在这个Transformer/BERT已然成为NLP领域基础组件的时代,面试官会更关注Transformer/BERT在你实际项目中的落地去考察你的应用能力,和Transformer/BERT相关的更细节的问题去考察你的理解能力。应用能力的提升需要你在实际项目/比赛中去落地使用Transformer/BERT;而本文希望能帮助你对Transformer/BERT的理解再深一层。

另外,对于上述没有答案参考的问题,可以自行思考和搜索,之后,我也会在空闲时间尝试自己补上这些答案。


参考:

[1] zhuanlan.zhihu.com/p/13

[2] zhuanlan.zhihu.com/p/13

[3] zhuanlan.zhihu.com/p/32

[4] zhihu.com/question/6848

[5] zhihu.com/question/3748

[6] zhuanlan.zhihu.com/p/14

[7] zhuanlan.zhihu.com/p/13

[8] zhuanlan.zhihu.com/p/15

[9] github.com/songyingxin/

[10] zhuanlan.zhihu.com/p/95

[11] zhihu.com/question/3183

[12] zhuanlan.zhihu.com/p/95

[13] zhihu.com/question/3380



下载1:四件套

即可获取学习TensorFlow,Pytorch,机器学习,深度学习四件套!


史上最细节的自然语言处理NLP/Transformer/BERT/Attention面试问题与答案


重磅!机器学习算法与自然语言处理交流群已正式成立

群内有大量资源,欢迎大家进群学习!


额外赠送福利资源!深度学习与神经网络,pytorch官方中文教程,利用Python进行数据分析,机器学习学习笔记,pandas官方文档中文版,effective java(中文版)等20项福利资源

史上最细节的自然语言处理NLP/Transformer/BERT/Attention面试问题与答案

获取方式:进入群后点开群公告即可领取下载链接

注意:请大家添加时修改备注为 [学校/公司 + 姓名 + 方向]

例如 —— 哈工大+张三+对话系统。

号主,微商请自觉绕道。谢谢!

史上最细节的自然语言处理NLP/Transformer/BERT/Attention面试问题与答案


推荐阅读:




以上是关于史上最细节的自然语言处理NLP/Transformer/BERT/Attention面试问题与答案的主要内容,如果未能解决你的问题,请参考以下文章

Kafka史上最详细原理总结

Kafka史上最详细原理总结

top-------------史上最详细解释

史上最详细的 Hadoop 环境搭建

史上最详细最全面的Hadoop环境搭建

历经5年锤炼(史上最适合初学者入门的Java基础视频)--视频列表