Transformer的一家!
我们对第层的segment的隐藏状态打标签为,除了对相同segment的最后一层的英藏状态,我们还依赖于之前的segment的相同层的隐藏状态。通过从前面隐藏状态加入信息,模型可以将attention的广度进行扩大,可以在多个segments之间发挥作用:
key和value依赖于扩展的隐藏状态,同时query仅仅只依赖于当前步的隐藏状态,是序列长度的维度的concatenation操作。
2. Relative Positional Encoding
为了处理这种新的attention span的形式,Transformer-XL提出了一种新的位置编码。如果使用相同的方法对绝对位置进行编码,则前一段和当前段将分配相同的编码,这是不需要的。
为了保持位置信息流在各段之间的一致性,Transformer XL对相对位置进行编码,因为它足以知道位置的offset,从而做出更好的预测,即:,在一个key向量以及它的query之间。
如果我们省略并且对它们以softmax的形式进行normalize,我们可以重写在位置的query和位置的key之间的attention分数:
上面的几项又可以被表示为:
-
用相对位置编码替换;
-
用两个可训练的参数(针对内容)和(针对位置)替换;
-
将划分为两个矩阵,用于内容信息,用于位置信息;
3. Adaptive Attention Span
Transformer的一个关键优势是能够捕获长期依赖关系。根据上下文的不同,模型可能更愿意在某个时候比其他人更进一步地注意;或者一个attention head可能有不同于另一个attention head的注意模式。如果attention span能够灵活地调整其长度,并且只在需要时再往回看,这将有助于减少计算和内存开销,从而在模型中支持更长的最大上下文大小(这就是Adaptive Attention Span的动机)。
后来Sukhbaatar等人提出了一种self-attention机制以寻找最优的attention span,他们假设不同的attention heads可以在相同的上下文窗口中赋予不同的分数,因此最优的span可以被每个头分开训练。