Neural Machine Translation by Jointly Learning to Align and Translate 学习笔记
本文就Neural Machine Translation by Jointly Learning to Align and Translate 一文进行学习总结,有何不妥的地方,烦请各位指正。
0. 概述
神经机器翻译不像传统的统计机器翻译,它的目的是建立一个单一的神经网络,使这个网络能够最大化翻译效果。NMT通常是编码器和解码器的结合,编码器把源语句转化为固定长度的向量,由解码器生成翻译。这篇论文认为使用固定长度的向量是提升编码器解码器结构效果的瓶颈,所以提出通过让模型自动(平滑地)搜索源语句中与预测目标单词相关的部分来提升效果,而不是明确地把这些部分转化为生硬的部分。实验显示,效果不错。
之前的NMT在处理长句子的时候会有些困难,尤其是比训练数据集更长的文本。随着数据句子长度增加,基本的编码解码器表现会急剧下降。因此,该论文提出将编码解码模型拓展,使其能够连带地学习去对齐和翻译。每翻译一个单词,它就在源语句中查找信息最相关的位置集合。这个模型基于与这些源位置相关联的上下文向量和所有之前形成的目标单词预测目标单词。
最大的区别在于它不是尝试去把一整个输入句子编码为一个单一的固定长度的向量。而是把输入的句子编码为向量的序列,解码翻译的时候选择这些向量的一个子集。这也就解放了NMT,不需要再把源语句所有的信息,不管有多长,压缩成一个固定长度的向量。这个模型对长句子表现要更好。不过任何长度上它的优势都很明显。