将RNN嵌入到ENCODER–DECODER

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

一、进食前提

这里要弄明白RNN,LSTM,BiRNN,Seq2Seq

二、RNN With Encoder-Decoder

在Encoder-Decoder框架中,编码器读取输入语句,即向量序列,生成中间语义向量

我们先看一个大概的流程

当作 Decoder 的每一时刻输入,则是 Seq2Seq 模型的第一种模型:

如果直接将 输入到 Decoder 中,则是 Seq2Seq 模型的第二种模型:

即我们要在Encoder内计算隐状态 ,最后得到中间语义向量,将其送入Decoder,再由Decode进行解析,输出每次对应的在其先验条件下的输出概率最大的词。

从目前来看,我们仅需知道三个参数,,就可以进行翻译了

该论文最后给出了两种实现模型,通用框架A1和 A2

我们可以将翻译步骤略缩为①和②

①Encoder部分

当前的隐层输出由上一层的隐层输出和当前层输入计算得出


这里对于RNN的激活函数,作者使用Choet 等人(2014a)Learning phrase representations using RNN encoder-decoder for statistical machine translation.提出的门控隐藏单元。

再通过计算得到中间语义向量

接下来将中间语义向量送入Decoder

②Decoder部分

给出了定义的条件概率,用以计算在当前时刻输出概率最高的词语

论文中的模型图

大概结构和流程搞清楚后,进入Encoder部分,计算方法已经给出,来看看剩下的个参数是如何计算得出的

一、论文提出的第一种通用框架A1

A1 Encoder

由权重 和 隐层输出 计算加权和得到

每个注释的权重通过下式计算

是单词的K维(1-K)的词向量嵌入,为 的嵌入矩阵 ,是复位门的输出。论文里忽略了偏差项,使方程变得更简洁。

对于长度为和的每个句子,设计对齐模型时应考虑需要评估模型×次,为了减少计算,使用单层多层感知器

为权重矩阵,由于和 不依赖于,我们可以对其进行预先计算以最大程度地减少计算成本

A1 Decoder

利用解码器状态,上下文和最后生成的单词,我们将目标单词yi的概率定义为

为图一上面部分RNN结构i时刻隐层的状态

公式的展开




权重矩阵:

where ◦ is an element-wise multiplication,即该符号代表点积
where σ (·) is a logistic sigmoid function,即该符号代表sigmoid函数

更新门允许每个隐藏单元保持其先前的激活状态

二、论文提出的第二种模型 A2

A2 Encoder

输入 1-of-K 词向量
输出 1-of-K 词向量
其中和分别是源语言和目标语言的词汇量。

首先,计算双向递归神经网络(BiRNN)的前向状态

\overrightarrow{h}_{i}=\left\{\begin{array}{ll}{\left(1-\overrightarrow{z}_{i}\right) \circ \overrightarrow{h}_{i-1}+\overrightarrow{z}_{i} \circ \overrightarrow{\underline{h}}_{i}} & {, \text { if } i>0} \\ {0} & {, \text { if } i=0}\end{array}\right. \tag{8.1}


是词向量矩阵,

反向传播状态 计算与上面相似,与权重矩阵不同,我们在前向传播和反向传播RNN之间共享单词嵌入矩阵,将前向传播和反向传播状态连接起来得到

A2 Decoder

给出了定义的条件概率,用以计算在当前时刻输出概率最高的词语

解码器的隐藏状态,是通过编码器给出的注释经过计算得到的(应该是这个意思)

注意,这里计算公式与上面的A1在细节有差异了
公式的展开



是目标语言的单词嵌入矩阵,权重矩阵: ,m和n是词的嵌入维数和隐藏单位数

where ◦ is an element-wise multiplication,即该符号代表点积
where σ (·) is a logistic sigmoid function,即该符号代表sigmoid函数

初始隐藏状态 = ,

参考
[1] Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation. arXiv:1406.1078v3 (2014).
[2] Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215v3 (2014)
[3] Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)
[4] 详解从 Seq2Seq模型、RNN结构、Encoder-Decoder模型 到 Attention模型

你可能感兴趣的:(将RNN嵌入到ENCODER–DECODER)