1 模型结构
1.token embedding :为什么attention is all you need中要乘上aqrt(hidden)?
因为位置编码使用sin/cos,值域比xavier初始化的token embedding大很多[-0.13,0.13],所以要增强。但是BERT改变了position embedding的方式,就没有必要了
2.Scaled Dot Product:为什么是缩放点积,而不是点积模型?相较于加性模型,点积模型具备哪些优点?
当输入信息的维度 d 比较高,点积模型的值通常有比较大方差,从而导致 softmax函数的梯度会比较小。因此,缩放点积模型可以较好地解决这一问题。
常用的Attention机制为加性模型和点积模型,理论上加性模型和点积模型的复杂度差不多,但是点积模型在实现上可以更好地利用矩阵乘积,从而计算效率更高(实际上,随着维度d的增大,加性模型会明显好于点积模型)。
3.QK Projection:为什么是双线性点积模型?
双线性点积模型,引入非对称性,更具健壮性(Attention mask对角元素值不一定是最大的,也就是说当前位置对自身的注意力得分不一定最高)。
4.Multi-head:多头机制为什么有效?
1.类似于CNN中通过多通道机制进行特征选择; 2.Transformer中先通过切头(spilt)再分别进行Scaled Dot-Product Attention,可以使进行点积计算的维度d不大(防止梯度消失),同时缩小attention mask矩阵。
5.FFN:FFN的作用?
Transformer在抛弃了 LSTM 结构后,FFN 中的 ReLU成为了一个主要的提供非线性变换的单元。
6.Weight tying:为什么要有Weight tying?
词表数量级高,这样可以减少参数量 虽然weight共享了,但是embedding和pre-softmax仍然是两个不同的层,因为bias是彼此独立的
7.GeLU:GeLU的原理?相比ReLU的优点?
GeLu:在激活中引入了随机正则的思想, 根据当前input大于其余inputs的概率进行随机正则化,即为在mask时依赖输入的数据分布,即x越小越有可能被mask掉,因此服从bernoulli(Φ(x)) ReLu:缺乏随机因素,只用0和1
8.BERT的优点
1.利用了文本的双向信息,得到基于上下文的token表示,效果更好 2.计算可并行化
9.BERT的缺点
1.[MASK]标记在实际预测中不会出现,训练时用过多[MASK]影响模型表现 2.每个batch只有15%的token被预测,所以BERT收敛得比left-to-right模型要慢(它们会预测每个token)
|