Attention小结

Encoder–Decoder Model

在论文1中提出了一种用来处理机器翻译任务的新模型 Encoder–Decoder Model 。

在这里插入图片描述

  • 编码器将输入源语言句子 x = ( x 1 , . . . , x T ) x = (x_1 ,...,x _T) x=(x1,...,xT) 编码为一个固定长度的语义向量 C。

    h t = f ( x t , h t − 1 ) h_t = f (x_t , h_{t−1}) ht=f(xt,ht1)

    C = h T C = h_T C=hT

  • 解码器翻译每个词时,语义向量 C 都会参与其中的计算。

    s t = g ( s t − 1 , y t − 1 , C ) s_t = g(s_{t-1}, y_{t-1}, C) st=g(st1,yt1,C) ,其中 s t s_{t} st 是解码器中RNN在 t t t时刻的隐状态

不过该模型有明显的缺点:

  • 固定长度的语义向量无法完全表达整个源语言句子的信息。
  • 随着源语言句子长度的增加,由于向量长度固定,先前编码好的信息会被后来的信息覆盖,丢失很多信息。
  • 语义向量参与到解码器中每个词翻译的计算时,无法着重表达出每个词对应翻译后的词的重要度。

Encoder–Decoder Model 中的编码器和解码器一般不是固定的,可以为 RNN、CNN、Attention。


Attention Mechanism

为了解决以上的几个问题,论文2中在Encoder–Decoder Model的基础上提出了一种新的对齐机制,也就是注意力机制,该文章提出的为 Soft-Attention,当然也是用在机器翻译任务中。

  • 论文中将编码器解码器都换成了双向RNN,这样能更好的捕获长句子的信息。
  • 对于target中的每个 y i y_i yi 的产生,会产生不同的语义向量 C C C 参与计算。

对与第二点语义向量 C i C_i Ci 的产生,以下详细说明。

  • 假如在解码器 t t t 时刻,要得到结果 y t y_t yt ,公式如下:

    y t = g ( y t − 1 , s t − 1 , C t ) y_t = g (y_{t - 1}, s_{t - 1}, C_{t }) yt=g(yt1,st1,Ct) ,其中 C t C_{t } Ct 就是图中的加号产生的结果,具体计算如下:

    C t = ∑ i = 1 T α t , i ∗ h i C_t = \sum_{i=1}^{T} \alpha_{t, i} * h_i Ct=i=1Tαt,ihi

    没错有没有发现 α t , i \alpha_{t, i} αt,i 就像是 h i h_i hi 的权重,而 C t C_t Ct 就像 h i h_i hi 的加权和。

  • 那么, α t , i \alpha_{t, i} αt,i 又是怎么产生的?

    在训练到 y t y_t yt 时,用 s t − 1 s_{t-1} st1 与源语言句子中输入的每一个词 x i x_i xi 的隐向量 h i h_i hi 进行余弦相似度计算,相当于求与每个输入词的相似度,经过 S o f t m a x Softmax Softmax 转换成分数,结果就是得到 T 个 α t , i \alpha_{t, i} αt,i 。其实论文中使用了 一个 feedforward neural network 作为相似度比较方法。

    计算公式:

    e t , i = S c o r e ( s t − 1 , h i ) = F N N ( s t − 1 , h i ) e_{t, i} = Score(s_{t-1}, h_i) = FNN(s_{t-1}, h_i) et,i=Score(st1,hi)=FNN(st1,hi)

    α t , i = e x p ( e t , i ) ∑ k = 1 T e x p ( e k , i ) \alpha_{t,i} = \frac{exp(e_{t,i})}{\sum_{k=1}^{T}exp(e_{k,i})} αt,i=k=1Texp(ek,i)exp(et,i)

很多文章把 Attention机制看作是查表操作,如下图所示:

在这里插入图片描述

Query 是 s t − 1 s_{t-1} st1 ,Key和Value相同,代表每一个 h i h_{i} hi 。通过计算Query和各个Key的相似性,得到每个Key对应Value的权重 α \alpha α,然后对Value进行加权求和,即得到了最终的Attention数值,即 C i C_i Ci

Attention的整体计算流程如下:

在这里插入图片描述

还有一种 Self-Attention,这个在 Transformer模型中介绍。


References

Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation

Neural Machine Translation by Jointly Learning to Align and Translate

ine Translation

Neural Machine Translation by Jointly Learning to Align and Translate

深度学习中的注意力机制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值