拆解XLNet模型设计,回顾语言表征学习的思想演进( 七 )

如何将目标词左右的语境 (双向语境) 同时引入建模便成为下一个需要解决的问题。一个简单的做法是分别学一个前向及后向的自回归语言模型,然后再将两个模型学出的表征合并。这便是 ELMo 里的标准做法。然而这种独立建模虽然拿到了两个方向的语境信息,但却学不出两个语境间细致的依赖关系。

6. Transformer

双向语境的建模困难主要源于循环神经网络单向、顺序的计算方式。除了限制依赖关系的方向之外,这种计算方式也限制了循环神经网络能建模的最大依赖距离。x 和 x 的间依赖关系需要通过重复计算 300 次

才能求得。而由于循环神经网络中存在矩阵乘法,在计算 x 时 x 的信息被相同的矩阵乘了 300 次。视矩阵 W 的模不同,会导致信息的爆炸 (|W|>1) 或者消失 (|W|

我们既要取得双向依赖建模,又要让长距离的依赖中间间隔的计算操作尽可能的少。Transformer 的提出实现了这两个目的。细节如层归一化 (Layer Normalization),多注意力算子 (Multi-Head Attention) 可以参考原论文,这里主要介绍最核心的自注意力算子 (Self-Attention),及其基础 -- 注意力算子 (Attention)。

推荐阅读