读Attention文章1

简介部分:

  • 对于机器翻译,之前的做法就是把输入压缩成一个向量,然后对这个encode后的向量进行decode,这种方法处理长句子比较难,尤其当句子的长度长于训练集中的语料库
  • 本问提出的模型,当翻译生成一个词语的时候,我们在输入的序列中找到与目标词y(t)最相关的信息,模型预测目标基于这些位置信息的上下文的语义向量 以及 已预测出来的词(y1,y2,...,y(t-1) )  共同进行。
  • 本文提出的模型与encoder-decoder 最大的区别在于,encoder-decoder模型在于把全部输入的序列压缩成一个固定的向量,而本文的提出的模型是选取输入序列中的部分对目标词进行预测

举个中译英的例子:

我的/名字/叫做/推推

my name is tuitui 

如果,我们要将 “名字” 翻译 成  “name” ,输入序列中 “名字” 对于翻译结果 name,更加重要一些,这个就是attention的意思,注意力,集中在sequence的部分  

 

背景:神经机器翻译

  • 目标是argmax p(y|x) , 有些文章提出了基于RNN(LSTM) 的模型取得了显著的效果(state-of-the-art)
  • RNN encoder-decoder模型
    • 隐藏层单元部分,例如f 为LSTM
    • encoder部分,例如 q({h1,h2,..,hT})=hT,即取最后一个隐藏单元作为输入向量的压缩结果
    • decoder部分,根据c 和 先前预测出的y1,y2,....,yt-1 来预测 yt ,即,g是一个非线性函数,st 是隐藏单元
    • 对于生成一个句子来(y1,y2,...,yT)说,即

               

 

3. 校准和翻译 - 重点,本问提出的模型,有一些创新点

 

  • encoder 部分:

采用了双向RNN进行编码,一个词的前后信息都考虑进去

  • decoder部分:

上面的图看着还是有点模糊,我重新画一个   

 

我画的图,是基于 input sequence 的长度为4,预测目标y1的过程

可以看到y1 由 c1,y0,s1 构成

s1 由 s0,y0,c1构成

c1 由 经过softmax 后的 e11,e12,e13,e14构成 

注意 c的下标 和 目标y的下标是一致的 ; eij 表示 输入部分第j个hidden unit 对 输出第j个目标的重要性,当然,中间会涉及si-1

si 来传递到yj

 

具体公式文章中是如下说明的

 

 

模型的一些细节

  • RNN的结构,采用了 gated hidden unit 结果,这个结构跟LSTM有点类似,作者也是受到LSTM启发得来的,结构如下

reset gate 

update gate 

主要用于计算hidden unit 

其中

 

一些说明:

当reset gate 趋近0的时候,就会忽略 h(t-1),丢掉一些不相关的信息

当update gate 用于记忆long-term信息

每个hidden unit 是有独立的reset 和update gate

 

 

  • align 模型

其中 v,w,u 都是权重矩阵,其中Ua*hj 可以预先算好,因为和Si 没有关系呢

  • decoder 部分的si ,相比encoder部分的hiddencell, 多了一个Ci 

初始的s0 为 

 

目标函数

refer:

https://arxiv.org/pdf/1409.0473.pdf NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

https://arxiv.org/pdf/1406.1078.pdf Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章