soft-attention | hard-attention | |
---|---|---|
优点 | 1、参数少、训练快 2、可微分 |
能处理较长的输入序列 |
缺点 | softmax函数将较小但非零的概率分配给琐碎的元素,这降低了少数真正重要元素的注意力,对于较长的输入序列效果不好 | 1、序列采样耗时较大 2、不可微分 |
文章的motivation是将soft attention和hard attention结合起来,使其保留二者的优点,同时丢弃二者的缺点。具体地说,hard attention用于编码关于上下文依赖的丰富的结构信息,并将长序列修剪成短得多的序列,以便soft attention处理。相反,soft attention被用来提供一个稳定的环境和强烈的award来帮助训练hard attention处理之后的序列。该方法既能提高soft attention的预测质量,又能提高hard attention的可训练性,同时提高了对上下文依赖关系建模的能力。
背景知识
模型
Reinforced Sequence Sampling (RSS)
hard attention的目标是从输入序列中选择关键的words,这些关键的words能够提供足够的信息来完成下游任务,这样就可以排除掉许多boring words,从而减少模型的训练时间。
给定一个输入序列,RSS生成一个等长的向量,其中意味着会被选择,而则意味着会被忽略掉。在RSS中,是通过attention机制计算的结果作为其采样的概率。RSS的目标是学习到以下的分布:
其中,表示一个上下文融合层(context fusion layer),如Bi-LSTM,Bi-GRU等,为生成一个上下文敏感的representation。将映射到被选中的概率。注意到的计算方式不依赖于,因此这个步骤可以并行完成。为了进一步提高了效率。文章通过下面这个式子来计算:
而的计算方式则与source2token self-attention相似,如下:
Reinforced Self-Attention (ReSA)
在ReSA中,两个参数独立的RSS分别对输入序列的进行采样,采样结果分别称为head tokens和dependent tokens。
然后使用、生成一个mask :
把放到Masked Self-Attention中:
即score function,然后使用softmax函数计算概率:
的上下文注意力特性通过以下方式计算:
最后,使用与DiSAN相同的融合层给出最终的输出: