声明:本文在paddle book NMT一节的基础上进行了补充,解释decoder cost、attention模型中的对齐公式、decoder引入word embedding,以及深层RNN的一种方式。
一、模型结构图
二、Encoder
编码阶段分为三步:
- one-hot vector表示:将源语言句子的每个词表示成一个列向量,这个向量的维度与词汇表大小相同,并且只有一个维度上有值1其余全是0。
- 映射到低维语义空间的词向量:one-hot vector表示存在两个问题,
1) 生成的向量维度往往很大,容易造成维数灾难;
2) 难以刻画词与词之间的语义关系。 - 用RNN编码源语言词序列,隐向量更新公式如下:
hi=Φθ(hi−1,si)
整句话的向量表示可以采用h在最后一个时间步T的状态编码,或使用时间维上的池化(pooling)结果。
三、Decoder
A. 训练过程 多分类交叉熵
- 每一个时刻,根据源语言句子的编码信息c、真实目标语言序列的第i个词ui和i时刻RNN的隐层状态zi,计算出下一个隐层状态zi+1
zi+1=Φθ(c,ui,zi)
实际上,真正计算 z