Reinforced Self-Attention Network: a Hybrid of Hard and Soft Attention for Sequence Modeling

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的可训练性,同时提高了对上下文依赖关系建模的能力。

背景知识

  • Attention Mechanism
  • DiSAN

模型

Reinforced Sequence Sampling (RSS)

hard attention的目标是从输入序列中选择关键的words,这些关键的words能够提供足够的信息来完成下游任务,这样就可以排除掉许多boring words,从而减少模型的训练时间。
给定一个输入序列,RSS生成一个等长的向量,其中意味着会被选择,而则意味着会被忽略掉。在RSS中,是通过attention机制计算的结果作为其采样的概率。RSS的目标是学习到以下的分布:
\begin{aligned} p ( \boldsymbol { z } | \boldsymbol { x } ; \theta _ { r } ) & = \prod _ { i = 1 } ^ { n } p \left( z _ { i } | \boldsymbol { x } ; \theta _ { r } \right) \\ \text { where } p \left( z _ { i } | \boldsymbol { x } ; \theta _ { r } \right) & = g \left( f \left( \boldsymbol { x } ; \theta _ { f } \right) _ { i } ; \theta _ { g } \right) \end{aligned}
其中,表示一个上下文融合层(context fusion layer),如Bi-LSTM,Bi-GRU等,为生成一个上下文敏感的representation。将映射到被选中的概率。注意到的计算方式不依赖于,因此这个步骤可以并行完成。为了进一步提高了效率。文章通过下面这个式子来计算:

而的计算方式则与source2token self-attention相似,如下:

g \left( f \left( x ; \theta _ { f } \right)_ {i} ; \theta _ { g } \right) = \operatorname { sigmoid } \left( w ^ { T } \sigma \left( W ^ { ( R ) }f \left( x ; \theta _ { f } \right)_ {i} + b ^ { ( R ) } \right) + b \right)

Reinforced Self-Attention (ReSA)

ReSA

在ReSA中,两个参数独立的RSS分别对输入序列的进行采样,采样结果分别称为head tokens和dependent tokens。
\begin{array} { l } { \hat { z } ^ { h } = \left[ \hat { z } _ { 1 } ^ { h } , \ldots , \hat { z } _ { n } ^ { h } \right] \sim \operatorname { RSS } \left( x ; \theta _ { r h } \right) } \\ { \hat { z } ^ { d } = \left[ \hat { z } _ { 1 } ^ { d } , \ldots , \hat { z } _ { n } ^ { d } \right] \sim \operatorname { RSS } \left( x ; \theta _ { r d } \right) } \end{array}
然后使用、生成一个mask :
M _ { i j } ^ { r s s } = \left\{ \begin{array} { l l } { 0 , } & { \hat { z } _ { i } ^ { d } = \hat { z } _ { j } ^ { h } = 1 \& i \neq j } \\ { - \infty , } & { \text { otherwise } } \end{array} \right.
把放到Masked Self-Attention中:
f ^ { r s s } \left( x _ { i } , x _ { j } \right) = c \cdot \tanh \left( \left[ W ^ { ( 1 ) } x _ { i } + W ^ { ( 2 ) } x _ { j } + b ^ { ( 1 ) } \right] / c \right) + M _ { i j } ^ { r s s }
即score function,然后使用softmax函数计算概率:

的上下文注意力特性通过以下方式计算:

最后,使用与DiSAN相同的融合层给出最终的输出:
\begin{aligned} F & = \operatorname { sigmoid } \left( W ^ { ( f ) } [ \boldsymbol { x } ; s ] + b ^ { ( f ) } \right) \\ \boldsymbol { u } & = F \odot \boldsymbol { x } + ( 1 - F ) \odot \boldsymbol { s } \end{aligned}

你可能感兴趣的:(Reinforced Self-Attention Network: a Hybrid of Hard and Soft Attention for Sequence Modeling)