NLP/Transformer/BERT/Attention面试问题与答案

主要聚焦目前处于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有什么差别?

6、Transformer中multi-head attention中每个head为什么要进行降维?[14]

关于后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 的差别在哪里?[15]

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] 超细节的BERT/Transformer知识点 - 知乎

[2] NLP 中的Mask全解 - 知乎

[3] XLNet 中神奇的 Attention Mask - 知乎

[4] 目前主流的attention方法都有哪些? - 知乎

[5] 为什么 Bert 的三个 Embedding 可以进行相加? - 知乎

[6] Transformer和Bert相关知识解答 - 知乎

[7] NLP面试常问问题答案参考 - 知乎

[8] BERT相关面试题(不定期更新) - 知乎

[9] https://github.com/songyingxin/NLPer-Interview

[10] 关于BERT的若干问题整理记录 - 知乎

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

[12] 关于BERT的若干问题整理记录 - 知乎

[13] 神经网络中 warmup 策略为什么有效;有什么理论解释么? - 知乎

[14]transformer中multi-head attention中每个head为什么要进行降维? - 知乎

[15]深度学习中Attention与全连接层的区别何在? - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值