动机
RNN的结构是通过隐状态对序列信息进行编码的。

第二个 I 的输出和第一个 I 的输出是不同的,这是因为输入到其中的隐状态是不同的。对于第二个 I 来说,隐状态经过了单词"I think therefore",而第一个 I 是刚刚经过初始化的。因此,RNN的隐状态会使得处于不同位置的相同词具有不同的输出表示。恰恰相反的是,具有自注意力机制的Transformer(没有位置编码的)会使得不同位置的相同词具有相同的输出表示。
上图表示的是输入序列为"I think therefore I am",然后传送到Transformer的的结果。
Self-Attention

其中,
,
,
, , h为注意力头数
Relation-aware Self-Attention
在普通self-attention的基础上,这篇文章引入了两个与相对位置相关的向量:
,
如果attention的目标词是的话,那么在计算
对
的注意力特征的时候,需要额外考虑
对
的两个与位置相关的向量。
引入这两个向量之后,上述self-attention的计算可以修改为:

Relative Position Representations
Relative Position Representations的目标是给出,
的计算方式。作者假设如果序列中两个元素的距离超过
,则这两元素之间的位置信息就没有意义了。同时,
,
应该只跟相对位置有关,而与
,
没有关系。作者直接将
,
定义为了可训练的向量,本质上是训练
和
:

本文探讨了RNN和Transformer在处理序列数据时的不同机制。RNN通过隐状态编码序列信息,使得同一词汇在不同位置有不同的表示;而Transformer的自注意力机制使相同词汇在不同位置有相同表示。此外,还介绍了Transformer的自我注意力机制及其改进版——关系感知自我注意力机制,以及相对位置表示的概念。
3926





