Modeling Localness for Self-Attention Networks

这篇文章与Self-Attention with Relative Position Representations和Convolutional Self-Attention Network一样,都是考虑了token与token之间相对位置对attention的影响。和Convolutional Self-Attention Network是同一作者,发在EMNLP上。

背景知识

  • Attention Mechanism

这篇文章把普通的self-attention的输出表示为:
\begin{aligned} z _ { i } &= \sum _ { j = 1 } ^ { n } \alpha _ { i j } \left( x _ { j } W ^ { V } \right)\\ \alpha _ { i j } &= \frac { \exp e _ { i j } } { \sum _ { k = 1 } ^ { n } \exp e _ { i k } } \\ e _ { i j } &= \frac { \left( x _ { i } W ^ { Q } \right) \left( x _ { j } W ^ { K } \right) ^ { T } } { \sqrt { d _ { z } } } \end{aligned}

注:的计算方式采用的是Scaled Dot-Product,详见Attention Mechanism

Localness Modeling

Localness Modeling as a Gaussian Bias

在普通self-attention的基础上,这篇文章引入了高斯分布,上述self-attention的计算可以修改为:
\begin{aligned} z _ { i } &= \sum _ { j = 1 } ^ { n } \alpha _ { i j } \left( x _ { j } W ^ { V } \right)\\ \alpha _ { i j } &= \frac { \exp (e _ { i j } + G_{ij}) } { \sum _ { k = 1 } ^ { n } \exp (e _ { i k }+G_{ik}) } \\ e _ { i j } &= \frac { \left( x _ { i } W ^ { Q } \right) \left( x _ { j } W ^ { K } \right) ^ { T } } { \sqrt { d _ { z } } } \end{aligned}
其中,

其中,被称为中心位置,而一般被设置为,代表窗口大小。

这里的设计与DiSAN: Directional Self-Attention Network for RNN/CNN-Free Language Understanding这篇文章中的backward/forward mask的设计思路一致

中心位置和窗口大小通过下面这个式子计算得出:

上述这个式子的目的是将与调节到0和(输入序列的长度)之间。

Central Position Prediction

Window Size Prediction

作者提出了三种预测window size的方法,并在实验中发现query-specific window是更好的一种。

Fixed-Window

最简单的就是使用固定长度的window,按照之间一些相似的探索(Effective Approaches to Attention-based Neural Machine Translation),这篇文章把长度设置为10。

Layer-Specific Window

将该层所有的token平均,计算出一个共享的window size:

Query-Specific Window

每一个query对应一个window

你可能感兴趣的:(Modeling Localness for Self-Attention Networks)