nlp-attention机制

2018-11-05  本文已影响47人  YPY_93a9

《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE》阅读笔记

神经网络机器翻译的目标是最大化根据输入x得到目标y的条件概率。arg\max_{y}p(y|x) 。并且机器翻译分为encoder和decoder两个部分。

模型

1.1 一般的模型

Encoder: 读入输入的句子,\textbf{x} =(x_{1},...,x_{T_{x}}  ),输出为向量c。一般方式是通过RNN: 

                                                h_{t} = f(x_t,h_{t-1})

                                             c = q(\{h_1,...,h_{T_x}\})

h_t为时间t时的hidden state。f和q都是非线性方程,例如:f可为lstm,q({h_1,...,h_T})=h_T

Decoder:

                           p(\textbf{y})=\prod_{t=1}^Tp(y_t|{y_1,...,y_{t-1},c}),

其中\textbf{y}=(y_1,...,y_{T_y})。使用RNN来模拟这个条件概率,可以写为:

                          p(y_t|{y_1,...,y_{t-1},c}) = g(y_{t-1},s_t,c),

g是非线性的、多层的方程,  s_t是Decode时候的RNN的hidden state。

1.2 带有attention的模型

在这个新模型中,Encoder部分使用双向RNN,Decoder部分使用了带有attention的RNN.

定义了一个新的条件概率公式:

                             p(y_i|{y_1,...,y_{i-1},c_i})=g(y_{i-1},s_{i},c_i)s_i =f(s_{i-1},y_{i-1},c_i)

与原来的条件概率公式不同的是,对于不同的输出yi,此处的条件概率依赖于不同的向量ci。 ci依赖于(h_1,...,h_{T_x}),而每个hi包含所有输入序列的信息,并强烈focus on第i个单词的周围

                                        c_i = \sum_{j=1}^{T_{x}}\alpha_{ij}h_j.

                                   \alpha_{ij} = {{exp(e_{ij})}\over{\sum_{k=1}^{T_x}exp(e_{ik})}}

其中

                                       e_{ij} = a(s_{i-1},h_j)

这是一个对齐模型,用来评估j周围的输入和i的输出匹配的程度。这个对齐模型可以跟整个RNN模型一起训练。\alpha_{ij}用来评估yi可以作为xj翻译的概率。

Encoder:

使用BiRNN


*补充:

在实际训练模型中,作者用了gated hidden unit,类似于lstm,

上一篇下一篇

猜你喜欢

热点阅读