赞
踩
“Neural machine translation by jointly learning to align and translate”这篇论文提出了soft Attention Model,并将其应用到了机器翻译上面。所谓Soft意思是在求注意力分配概率分布的时候,对于输入句子X中任意一个单词都给出个概率,是个概率分布。
下面介绍一下理论文中提到的公式
在原版的Seq2Seq和添加了attention机制的Seq2Seq相比,在公式上的差别就是在式子Si中的C有没有i。因为这个i就代表了是不是每一个时间步骤上添加不同的背景向量。
Global Attention Mode其实就是softAttention Mode。在Seq2Seq的Decoder的过程中,每一个时间步的Context vector需要计算Encoder中每一个单词的注意力权重,然后加权得到。
Si代表每个Decoder的隐藏层输出
Ci表示的是背景向量,它可以由Encoder的隐藏层输出状态hj的加权平均数得出,其中状态所加的权就是注意力权重 ai。
**注意力权重 ai**可以看出就是一个softmax,用来归一化隐藏层si-1 与 Encoder的隐藏层输出状态hj的对齐程度评估。
eij是一种对齐模式,也就是注意力函数,这当中有着很多的变体。下面来看看这四种变体都有什么。
加性注意力是最经典的注意力机制 (Bahdanau et al., 2015) ,它使用了全连接层来计算注意力的分配:
其中,Pi表示Decoder的隐藏层输出;q表示Encoder所有的隐藏层输出;V,W,U都是可以训练的参数。
加性模型引入了可学习的参数,将向量
p
p
p和原始输入向量
q
q
q 映射到不同的向量空间后进行计算打分,显然相较于加性模型,点积模型具有更好的计算效率。
乘法注意力(Multiplicative attention)(Luong et al., 2015) 通过计算以下函数而简化了注意力操作,是直接用Decoder的hidden state 点乘所有的Encoder的hidden state。
其中,ht是decoder中前一个隐藏层输出的结果;hs是encoder中所有的hidden state组合成的矩阵。
上面第一个公式有一个缺陷, ht的行数和hs的行数必须是相等的,也就要使得encoder和decoder的隐藏层长度是一样的,这样的条件太苛刻了,当不相等的时候公式便不可行,所以采用在中间加上权重矩阵的做法。
注意力机制不仅能用来处理编码器或前面的隐藏层,它同样还能用来获得其他特征的分布,例如阅读理解任务中作为文本的词嵌入 (Kadlec et al., 2017)。然而,注意力机制并不直接适用于分类任务,因为这些任务并不需要情感分析(sentiment analysis)等额外的信息。在这些模型中,通常我们使用 LSTM 的最终隐藏状态或像最大池化和平均池化那样的聚合函数来表征句子。
其中
q
q
q是Decoder的隐藏层输出,
h
h
h是encoder中所有的hidden state组合成的矩阵。
D
D
D为输入向量的维度。
当输入向量的维度比较高的时候,点积模型通常有比较大的方差,从而导致Softmax函数的梯度会比较小。因此,缩放点积模型通过除以一个平方根项来平滑分数数值,也相当于平滑最终的注意力分布,缓解这个问题。
直接从输入句子里面找到某个特定的单词,然后把目标句子单词和这个单词对齐,而其它输入句子中的单词硬性地认为对齐概率为0,这就是Hard Attention Model的思想。Hard AM在图像里证明有用,但是在文本里面用处不大,因为这种单词一一对齐明显要求太高,如果对不齐对后续处理负面影响很大。
关键值注意力 (Daniluk et al., 2017) 是最近出现的注意力变体机制,它将形式和函数分开,从而为注意力计算保持分离的向量。它同样在多种文本建模任务 (Liu & Lapata, 2017) 中发挥了很大的作用。
具体来说,关键值注意力将每一个隐藏向量 hi 分离为一个键值 ki 和一个向量 vi:[ki;vi]=hi。
Attention机制为机器翻译任务带来了曙光,具体来说,它能够给机器翻译任务带来以下的好处:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。