【论文】Sequence to sequence learning with neural netwoks

摘要:

Deep Neural Network(DNN) 不太适合处理序列到序列的问题,这篇论文提出了一种端到端的方式处理序列到序列的问题。使用一个多层LSTM将输入转化为固定维度的向量,然后用另一个LSTM将目标向量decode成目标序列。这种方法对于长一些的序列也适用。将源输入语句的顺序倒叙输入模型中,可以更好的提高效果,比如原句是A B C 按照C B A的顺序的话,由于距离target更近,效果更好了。


模型结构 <EOS>为标记序列的结束,模型读入ABC,输出WXYZ


使用RNN也可以训练序列到序列,但是输入序列和输出序列的长度得一样,RNN的预测是P(y1,y2,,,,yt|x1,x2,,,xt)其中y是输出序列,x是输入序列,两者长度相等;

LSTM可以处理比较长的时间依赖,LSTM的目标是预测这个概率:P(y1,y2,,,ym|x1,x2,,,xt),其中(x1,x2,,xt)是输入序列,而(y1,y2,,ym)是对应的输出序列,两者的长度可以不等。 LSTM先将输入序列X转化为固定维度的向量v,然后在计算概率:


其中每一个P(yt|v,y1,,,,yt-1)都会基于整个单词表作softmax处理,序列的结束都是<EOS>标志位


具体的实验过程 是应用在WMT'14 英语到法语的机器翻译。在众多序列上训练,训练目标是

最大化,其中S 是训练数据集,T是正确的翻译,选取概率最大的那句作为输出的翻译:


注意到,将源语句的顺序颠倒后,BLEU分数从25.9上升到了30.6

训练时用了多个GPU实现并行化




猜你喜欢

转载自blog.csdn.net/beforeeasy/article/details/80324963