论文笔记:Neural Machine Translation by Jointly Learning to Align and Translate

神经翻译中,条件概率:

$c$ 是 encoder 产生的背景向量,$s_t$ 是解码器 $t$ 时刻的隐藏状态。$g$ 是一个非线性的,可能包含多层的函数,它输出 $y_t$ 的概率。

原始的encoder-decoder模型的痛点
神经网络需要能够将所有必要信息压缩成固定长度的向量,这可能使神经网络难以处理比较长的句子。

基于 encoder-decoder,增加一个 alignment model,形成新的网络结构。

img

新的条件概率:

注意,原始的 $c$ 变为 $c_i$,意味着背景向量不再是固定的,而是每个时间步都有不同的背景向量。$s_i$ 是 $i$ 时间步解码器的隐藏状态。

$s_i$ 计算如下

在RNN中,$f$ 可以看成是一个 RNN 网络。

上下文向量 $c_i$ 取决于编码器对输入句子进行映射的向量序列 $\left( h _ { 1 } , \cdots , h _ { T _ { x } } \right)$,作者称之为 annotation 向量。 每个 annotation 向量 $h_i$ 包含关于整个输入序列的信息,其重点关注输入序列的第 $i$ 个词周围的部分。上下文向量是 annotation 向量的加权和。 计算如下:

系数 $\alpha _ { i j }$ 按照如下计算:

在论文中具体计算如下

$e_{ij}$ 是 alignment model 的输出,表示位置 $j$ 周围的输入和位置 $i$ 处的输出匹配程度的评分。基于 RNN 隐藏状态 $s_{i-1}$ 和输入句子的第 $j$ 个 annotation $h_j$。反映了 $s_{i-1}$ 在决定下一个隐藏状态 $s_i$ 和输出 $y_i$ 时 $h_j$ 的重要程度。

因为每个 $h_t$ 要包含全部输入的信息,所以作者使用了双向 RNN。由于 RNN 倾向于表示最近的输入,由此 $h_t$ 所表示的信息集中在 $x_t$ 周围。

网络结构

循环神经网络结构使用了 GRU

$e \left( y _ { i - 1 } \right) \in \mathbb { R } ^ { m }$ 是一个 $m$ 维的词向量。

ALIGNMENT MODEL

持续技术分享,您的支持将鼓励我继续创作!