NLP算法岗面试前的知识点总结

关于Bert

Bert的15%mask比例怎么来的

猜测,可以类似CBOW中滑动窗口的中心词,区别是这里的滑动窗口是非重叠的。

学习率为什么使用warm-up优化策略
  • 有助于减缓模型在初始阶段对mini-batch的提前过拟合,保持分布的平稳;
  • 有助于保持模型深层的稳定性(decay)
    热启动到最大learning rate之后为什么还要decay呢?模型训练一定阶段后,模型分布已经比较固定了,即可以学到的新东西就很少了,如果还沿用较大学习率,就会破坏这种稳定性,即在接近loss的local optimal时,需要更缓慢的更新。
LayerNorm和BatchNorm

Bert中使用LayerNorm结构。
NLP算法岗面试前的知识点总结_第1张图片

二者区别主要是规范化的维度不同。
Norm操作在激活函数之前进行。
LayerNorm:针对单个样本,即对每层输出的768维隐层向量做规范化
BatchNorm:针对一个batch里的数据进行规范化,即面向当前batch的所有输入,1.求batch_x均值;2.求batch_x方差;3.对x做归一化;4.引入缩放参数w和平移参数b计算最终的输出。
(补充:如果仅对x做归一化,不做后续处理,会使得模型学不到东西,加入参数后,可以保证每一batch数据经过归一化之后还保留学来的特征,同时完成归一化操作。

Bert词表里的wordpiece

Bert词表中如果某词出现频率过低,会被标记为UNK标签。使用wordpiece可以将单词打散为字符(片段),在分词时将OOV的词进行切分,使得模型依旧可以学到该词的信息。
wordpiece与BPE(Byte Pair Encoding)算法类似,也是每次从词表中选出两个子词合并成新的子词。与BPE的最大区别在于,如何选择两个子词进行合并:BPE选择频数最高的相邻子词合并,而WordPiece选择能够提升语言模型概率最大的相邻子词加入词表。

CLS标志

self-attention会使用上下文本的词来增强目标词的语义表示,但在计算过程中,目标词本身的语义依旧占较大的比例。而[CLS]位本身没有语义,经过12层,得到的是attention后所有词的加权平均,相比其他正常词,可以更好的表征句子语义。

input embedding 为什么要加positional encoding?

由于self-attention是位置无关,无论当前token在哪个位置,其hidden embedding都一样。positional encoding公式:
NLP算法岗面试前的知识点总结_第2张图片

对不同维度使用不同频率的正\余弦进而得到不同位置的高维位置编码。

Bert与ELMo比较:

ELMo效果挼于Bert的原因可能有以下几点见解:LSTM的特征抽取能力弱于Transformer;经前向后向特征拼接得到的信息弱于self-attention得到的特征信息;Bert模型参数多。

Bert中为什么使用单独的[MASK]标志,而不是借鉴attention中计算score使用的sequence mask?

[MASK]标志起到一个占位符的作用,虽然词义本身被mask掉了,但position embedding的信息是有的。如果使用attention mask,相当于这个位置的token永远不会参与计算。

关于transformer

QKV参数矩阵的影响

在相同量级下,qi和ki的点积值会是最大的,即在softmax中会使得当前词i多占比重为最大,这有悖于“利用上下文信息来增强当前词的语义表示”,因此,乘以QKV矩阵后,会使每个词的q, k, v不同,能有效减轻上述情况。而且,QKV也使得多头attention可以捕获到更丰富的特征。

self-attention的时间复杂度
NLP算法岗面试前的知识点总结_第3张图片

self-attention的相似计算(matmul)、加权平均都可看作两个矩阵相乘,因此T=O(n^2 * d)
multi-head self-attention也是T=O(n^2 * a * m)=O(n^2 * d)

Transformer的权重共享

(1) 在Encoder和Decoder之间的Embedding层做了权重共享:
源论文中是允许目标语言和源语言之间共享词表,作词嵌入时只有对应embedding被激活,在遇到相同subword时可以共享语义信息。但会增加softmax的计算量。
(2) Decoder层中的Embedding层和FC层权重共享

attention在matmul之后为什么要scaled

做点积运算后的结果与dim大小成正比,dimension大的情况下会导致点积的方差很大,在均值为0的前提下这就意味着点积后的值会更大,该值很大时,经softmax之后梯度会消失为0,造成参数更新困难。除以后可以让attention的权重分布方差为1,而不是 。

Transformer位置编码总结

将位置信息融入输入中,有两种做法:

  • 绝对位置编码。将位置编码当作可训练参数,随模型训练进行更新,这种做法的缺陷是无法处理超出固定长度的文本。绝对编码有:三角函数式编码、递归式编码(如采用RNN得到位置编码,但会牺牲一定并行性和速度)。
  • 相对位置编码。相对位置并没有完整建模每个输入的位置信息,而是在算attention时候考虑当前位置于被attention位置的相对距离

你可能感兴趣的:(NLP算法岗面试前的知识点总结)