Sequence to Sequence Learning with Neural Networks 论文内容介绍

论文地址:传送门

1.Introduction

这篇论文是2014年Google团队提出的一篇论文,当时DNN非常流行,对于语音识别等任务的效果也非常不错,但是DNN是有限制的。比如做MT任务等等,这些序列任务其实对于输出来讲,长度的可变的,例如:English译为“英语”,实际上序列的长度发生了变化,传统的DNN是解决不了这个问题的,于是Google团队提出了seq-to-seq模型的概念。
作者选择WMT’14的数据集和英语译为法语的翻译任务为例,将最后的结果和当时SMT的模型做对比,结果基于LSTM的seq2seq的BLEU值为34.81,比当时SMT的33.30要高一些,效果还是挺显著的。

2.Model

其实论文中给出的就是最简单的seq-to-seq的模型,大概就长下面这个样子:
Sequence to Sequence Learning with Neural Networks 论文内容介绍

从EOS之前就是Encoder部分,而EOS之后就是Decoder部分,之后有很多对当前的seq2seq model的改进,例如比较著名的transformer等,就是把LSTM部分改成self-attention,这样可以关注句子的不同部分,最重要的是可以并行运算,详见《Attention is all you need》一文。
论文当中使用了四层单向LSTM结构,并且Decoder和Encoder使用两个不同的LSTM架构,同时作者说深层的LSTM能更好的解析语义,并且使用Encoder最终的输出隐状态作为Decoder的初始化隐状态的值。然后作者提出一个很有意思的现象,将源句中的单词顺序改为倒序输入,会比原序效果要更好一些,作者的解释是,首先,原序和倒序的source和target之间的平均时间延迟是相等的,但是,为了降低最小延迟问题,我们把原句中最开始的几个单词和目标句中最开始的几个单词放的近一些。

3.Expriments

3.1Training details

实验部分就是使用上文提到的model进行在WMT’14数据届上做translation的任务,并和SMT的结果做对比。简单阐述一下训练过程就是:
(1).结构和model中论述的结构一样,采用4层单向LSTM结构,输入的词汇表有16000个词汇,而输出的词汇表中有80000个词汇,输入的word embding维度为1000维。
(2).初始化所有LSTM的参数,假定参数服从均匀分布,取值为-0.08~0.08之间。
(3).前5个epoch固定学习率为0.7,使用SGDM优化算法进行训练,从第5个epoch之后,每训练半个epoch,学习率减半,一共训练7.5个epoch(说句实话,我是不太清楚0.5个epoch是怎么训练的QAQ)
(4).为了解决LSTM梯度爆炸的问题,作者直接设置梯度上下限为[10, 25],作者还限制了5个epoch之后学习率的变化情况。
(5).最后的时候,作者说不同的句子长度是不一样的,为了提高计算的速度,作者要求每个batch的句子长度尽量保持一致。
(6).作者似乎在decode部分使用了beam-search算法,结论就是一般B的size为2的时候,他这个model的效果就挺好了。

3.2Training results

整体的训练效果还是挺不错的:
Sequence to Sequence Learning with Neural Networks 论文内容介绍

(1).首先,这里可以看到,在Decoder部分,beam size设成2的效果和beam size射成12的效果比较接近,但是size 为2的cost要比size为12的小的多
(2).作者在文中提到这种模型训练长句子的效果还是很不错的,从下面的图中可以看到长度大概为35个词的句子效果是接近于最佳的

Sequence to Sequence Learning with Neural Networks 论文内容介绍
(3).作者还提到,seq2seq model可以把整个句子压缩到一个固定维度的vector中(实际就是Encoder部分隐状态最后的输出),然后他发现用PCA把这些vector映射到二维的话,相似的句子会聚类到一起。

Sequence to Sequence Learning with Neural Networks 论文内容介绍

同时,作者还提出,这种模型,对句子的词序是敏感的,而对主动语态和被动语态却不是很敏感。

4.Conclusion

结论简而言之就是这种新的模型的提出,要比以往smt的效果好一些,具体的细节如下:
(1).深层次的LSTM在无假设,且有限的词汇表上的训练效果比SMT在无限词汇表上有假设的训练效果好
(2).作者再次强调,将原句倒序输入的效果要比原序输入要好,然而作者并不能给出理论的证明。
(3).实验结果表明,长句子的效果确实是挺好的,作者说如果在长句子上表现的效果不好,那是内存不够的原因。
(4).最后,这个模型其实还有诸多改进的地方,首先不能并行化计算(改成Attention其实就可以了),然后这个模型还是太简单,要想适应其他的基于序列的复杂任务还要做变化。