这篇论文作者提出了一种独特的自注意力机制,能够学习到最佳的attention覆盖文本的范围。
Transoformer很难关注一个超过千个单词的句子,但是在字符语言模型中,会出现跳跃千个字符的关联。作者提出了一种多头注意力的改进版,让多头注意力学习到最优的注意力关联,减少计算量。这种改进版的Transformer在低层关注很少的文本,而在深层能够关注到更多的文本内容。自我决定需要关注多长的内容。
作者发现传统的transformer中的多头注意力中,有些注意力学习的是这个单词与前文的关系,有的学习到的是全文的关系。那么如何让多头注意力学习到不相关的内容呢?作者对于每个头,都添加了一个masking fuction来控制attention的范围。公式是$m_z(x)=min[max[(1/R)*(R+z-x),0],1]$
小于z都是1,然后从z到z+R的范围里递减到0。此外在loss中添加了了l1 penalization(在损失函数基础上加上权重参数的绝对值)。
除上面的方法之外,作者补充了一个动态attention span的方法。通过前面的输入来控制后面的attention span。
实验在enwiki8和text8上都达到了很好地效果。