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可以被每个头分开训练。