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

图4/6

如上图所示,由于计算第 l 层的表征时,使用的第 l-1 层的表征同时来自于片段 s 和 s,所以每增加一层,模型建模的依赖关系长度就能增加 N。在上图中,Transformer-XL 建模的最长依赖关系为 3*2=6。

但这又会引入新的问题。Transformer 的位置编码 (Position eEmbedding) 是绝对位置编码 (Absolute Position Embedding),即每个片段内,各个位置都有其独立的一个位置编码向量。所以片段 s 第一个词和片段 s 第一个词共享同样的位置编码 -- 这会带来歧义。

Transformer-XL 引入了更加优雅的相对位置编码 (Relative Position Embedding)。

因为位置编码只在自注意力算子中起作用,我们将 Transformer 的自注意力权重的计算拆解成:

我们可以将其中的绝对位置编码 p 的计算替换成相对位置编码 r,把 p 替换成一个固定的向量 (认为位置 i 是相对位置的原点)。这样便得到相对位置编码下的注意力权重:

Transformer-XL 的实际实现方式与上式有所不同,但思想是类似的。

推荐阅读