从今天起,豆芽有空也尽己所能,帮助一下大家。

面经来源:https://www.nowcoder.com/discuss/713122?source_id=discuss_experience_nctrack&channel=-1


1. BN、LN区别、使用场景

参考回答

LN:Layer Normalization,LN是“横”着来的,对一个样本,经过同一层的所有神经元归一化适用batch size很小的情况

BN:Batch Normalization,BN是“竖”着来的,经过一个神经元的所有样本归一化,所以与batch size有关系,所以batch size不能太小

二者提出的目的都是为了加快模型收敛,减少训练时间。


答案解析

LN中同层神经元输入拥有相同的均值和方差,不同的输入样本有不同的均值和方差;

BN中则针对不同神经元输入计算均值和方差,同一个batch中的输入拥有相同的均值和方差。

所以,LN不依赖于batch的大小和输入sequence的深度,因此可以用于batchsize为1和RNN中对边长的输入sequence的normalize操作。

img
img

2. BERT模型结构

BERT模型的全称是:BidirectionalEncoder Representations from Transformer,也就是说,Transformer是组成BERT的核心模块,而Attention机制又是Transformer中最关键的部分,因此,利用Attention机制构建Transformer模块,在此基础上,用多层Transformer组装BERT模型。

Attention机制主要涉及到三个概念:Query、Key和Value。在上面增强字的语义表示这个应用场景中,目标字及其上下文的字都有各自的原始Value,Attention机制将目标字作为Query、其上下文的各个字作为Key,并将Query与各个Key的相似性作为权重,把上下文各个字的Value融入目标字的原始Value中。该Attention机制也叫Self-Attention。


3. 讲一下Bert原理,Bert好在哪里?

参考回答

BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获得要预测的信息的。模型的主要创新点都在pre-train方法上,BERT的预训练阶段包括两个任务,一个是Masked Language Model,还有一个是Next Sentence Prediction,两种方法分别捕捉词语和句子级别的特征表示。


答案解析

Masked Language Model

MLM可以理解为完形填空,作者会随机mask每一个句子中15%的词,用其上下文来做预测,例如:my dog is hairy → my dog is [MASK]

此处将hairy进行了mask处理,然后采用非监督学习的方法预测mask位置的词是什么

Next Sentence Prediction

选择一些句子对A与B,其中50%的数据B是A的下一条句子,剩余50%的数据B是语料库中随机选择的,学习其中的相关性,添加这样的预训练的目的是目前很多NLP的任务比如QA和NLI都需要理解两个句子之间的关系,从而能让预训练的模型更好的适应这样的任务。




以上所有题的答案其实都来源于我的博客面经,欢迎大家围观:https://blog.nowcoder.net/jiangwenbo