Transformer-xl
2019-05-23 本文已影响0人
manlier
Transformer-xl
原文:https://blog.csdn.net/Magical_Bubble/article/details/89060213
循环机制
训练阶段,每个隐层接收两个输入
- 该段下层隐藏层的输出,与原始Transformer相同
- 前段下层隐藏层的输出,使其建模长期依赖关系
相对位置编码
若是每个段继续使用相同的位置编码,比如段1的编码[0, 1, 2],段2的编码也是[0, 1, 2],则组合后,位置编码变成了[0, 1, 2, 0, 1, 2],而每个位置的语义在整个序列中应当是不一致的。
在原Transformer中,计算查询与键
之间的注意力方式为:
其中,是词
的词向量,
是对应的位置向量。
而在Transformer-XL中
对比来看,主要有三点变化:
- 在(b)和(d)这两项中,将所有绝对位置向量
都转为相对位置向量
,与Transformer一样,这是一个固定的编码向量,不需要学习。
- 在(c)这一项中,将查询的
向量转为一个需要学习的参数向量
,因为在考虑相对位置的时候,不需要查询的绝对位置
,因此对于任意的
,都可以采用同样的向量。同理,在(d)这一项中,也将查询的
向量转为另一个需要学习的参数向量
。
- 将键的权重
变换矩阵转为
和
分别作为content-based key vectors和location-based key vectors。
从另一个角度来解读这个公式的话,可以将attention的计算分为如下四个部分:
a. 基于内容的“寻址”,即没有添加原始位置编码的原始分数。
b. 基于内容的位置偏置,即相对于当前内容的位置偏差。
c. 全局的内容偏置,用于衡量key的重要性。
d. 全局的位置偏置,根据query和key之间的距离调整重要性。