赛扶做网站/什么推广平台好
这是由谷歌的三位大神用seq2seq模型实现的基于神经网络的机器翻译(英法互译),基本的方法还是encoder-decoder,作为seq2seq的经典必读论文,本文与其他工作相比主要有创新点有:
- 利用了多层的LSTM(本文中是4层)。实验表明使用LSTM对长句子的翻译来说效果很好,主要是因为LSTM本身具有长期依赖的优势。
- 与attention不一样,它又回归到原始模型,在编码端将输入句子编码成一个固定的维度的向量。作者说这样可以迫使模型学习捕捉句子的意思,尽管句子的表达方式不同。
- 最重要的一点是,实验发现将句子逆序输入可以明显改善LSTM模型的表现。 一个猜测的解释(因为作者也不知道具体的原因)是这样做可以减小“minimal time lag”(最短时间间隔),举例,输入是“ABC”,对应输出是“XYZ”,“A”与对应的“X”的间隔是3,“B”和“C”与其对应的间隔也是3,所以最短时间间隔是3。如果将输入逆序,以“CAB”作为输入,“A”与“X”的间隔是1,最短时间间隔就减小为1。于是作者猜测将输入逆序虽然没有减少源句子(输入)与目标句子(输出)的平均间隔,但是源句子与目标句子是前几个词的距离减少了,于是句子的“最短时间间隔”减少了。通过后向传播可以更快地在源句子和目标句子之间“建立通信”,整体的性能也有了显着的改善。
实验
实验设置
- 4层LSTM,每层1000个单元
- 词向量维度是1000维
- 输入词典大小是160,000,输出词典大小是80,000
- LSTM的初始参数服从[-0.08,0.08]的均匀分布
- 用随机梯度下降算法,没有momentum,开始学习率为0.7,5 epochs之后,每个epoch之后学习率降低一半。
- batch是128
- 每次training batch 之后,计算s=||g||2, g 是梯度除以128,如果s > 5, 令 g = 5g/s。
- 不同的句子长度不同,为了降低计算量,一个batch中的句子的长度差不多相同。
- 用8个GPU同时进行处理
实验结果分析
实验结果除了与其他系统进行比较之外,主要围绕着上面的三个创新点进行分析。
处理长句子的性能
LSTM模型在长句子上表现很好,通过下面两幅图可以看出来,左图x轴代笔句子长度,从图中可以看出对于句子长度小于35的句子,LSTM模型的分数都比baseline要高。右图x轴代笔词频度排名,排名越高说明越不常用,从图中可以看出对于词频排名在2500之前的词,LSTM模型要比baseline好。
将输入编码成一个固定维度的向量
该图示显示了在处理图中的短语之后获得的LSTM隐藏状态的二维PCA投影。短语通过意义聚类,在这些示例中,其主要是词序的函数,用词袋模型的话难以捕捉。注意到这两个集群具有相似的内部结构。
逆序输入
LSTM在测试集上的perplexity 从5.8降到4.7, BLEU从 25.9升到 30.6。