[ THUNLP-MT (6/10) ] Sequence to Sequence Learning with Neural Networks | seq2seq模型

本文介绍NLP领域重要的seq2seq模型,包含了模型的基本原理和 Sutskever 等人研究工作中的相关实验。有不对的地方欢迎指出,一起学习呀。明天可就是520了。

论文传送门 (‎被引用 6379 次)
Sequence to Sequence Learning with Neural Networks
github | NervanaSystems/neon

论文内容

》Sequence to sequence 基本原理

由于DNNs (Deep Neural Networks)只能处理输入和输出可以被映射到固定维度的问题,无法处理机器翻译、语音识别、问答系统等序列任务。于是 Sutskever 等人提出了 seq2seq 模型来处理序列任务,模型的结构如下如所示。

在那时,与该论文相似的工作有 Kalchbrenner 等人的研究工作,不过他们使用了 CNN 来编码输入句子,忽略了句子中单词的顺序。
在这里插入图片描述

(1) h t = s i g m o i d ( W h x x t , + W h h h t − 1 ) ht=sigmoid(W^{hx}x_t,+ W^{hh} h_{t-1}) \tag1 ht=sigmoid(Whxxt,+Whhht1)(1)

(2) y t = W y h h t y_t=W^{yh} h_t \tag2 yt=Wyhht(2)

式(1-2)是最普通的 RNN 模型公式。通过递归的RNN结构,让模型学习将输入序列映射到固定长度的向量(见参考文献1),并且将这个学习到的向量作为另一个RNN模型的隐层初始值 h t ′ h_t^{&#x27;} ht ,第二个 RNN 模型的输出 y t ′ y_t^{&#x27;} yt 即是序列到序列模型的输出。上图中 &lt;EOS&gt; \text{&lt;EOS&gt;} <EOS>的左边是第一个 RNN 模型,右边是第二个。

seq2seq模型的目标是要估计(3)式的条件概率。(3)式中,首先需要由第一个RNN模型得到对输入序列的向量表达,然后通过第二个 RNN 模型的递归结构来挨个计算seq2seq模型的输出,即是一个 RNN-LM的模型(一般来说长度 T ′ T&#x27; T 不等于 T T T)。seq2seq模型的输出(等号右边的每个概率)是通过在所有词库上计算softmax得到。

(3) p ( y 1 , . . . , y T ′ ∣ x 1 , . . . , x T ) = ∏ t = 1 T ′ p ( y t ∣ v , y 1 , . . . , y t − 1 ) p(y_1,...,y_{T&#x27;} | x_1,...,x_{T}) = \prod_{t=1}^{T&#x27;} p(y_t | v, y_1,...,y_{t-1}) \tag3 p(y1,...,yTx1,...,xT)=t=1Tp(ytv,y1,...,yt1)(3)

具体而言,seq2seq模型的训练目标是最大化对数概率,如下式。而在解码时则是选则概率最高的输出序列。

argmax ⁡ W h x , W h h { 1 ∣ train set ∣ ∑ T , S ∈ train set log  p ( T ∣ S ) } \underset{W^{hx},W^{hh}} {\operatorname{argmax}} \{ \frac{1}{|\text{train set}|} \sum_{T,S \in \text{train set}} \text{log } p(T|S) \} Whx,Whhargmax{train set1T,Strain setlog p(TS)}

》文中提出的亮点
  • seq2seq模型结构
  • 更深的RNN模型结构。在实验中,Sutskever 等人使用了4层的LSTM模型。
  • 颠倒输入端序列,使得输入端序列和输出端序列有更多的短期相关性。
》实验与分析

数据集
WMT’14 English to French test set (ntst14) link

细节

  • 参数
    • deep LSTM with 4 layers, 1000 hidden layer cells, 1000 dimensional word embedding
    • input vocab 160,000; output vocab 60,000
    • batch size=128 with randomly chosen sentences ( different length )
      • 为了避免batch内的很多计算是重复的,使得所有batch里面的句子长度尽量一致。如此提高了2倍的训练速度
    • fixed lr=0.7 for 5 epochs, and halving every half epoch
  • 梯度消失与梯度爆炸
    • LSTM能解决梯度消失问题,而对于梯度爆炸, s = ∣ ∣ g ∣ ∣ 2 s=||g||_2 s=g2,若 s>5,则 g = 5 g s g=\frac{5g}{s} g=s5g
  • 使用 LSTM 模型对基准模型(SMT模型)重排序 (rescoring),有效地提升了性能。

结果与分析

使用了 multi-bleu.pl 来计算 BLEU 评价指标评估模型的翻译性能。

表一
对于上表,单纯使用NMT方法:

可以发现,
1. “Ensemble of 5 LSTMs,beam size=2” 设定训练的模型性能,与相同设定下 beam size=12 的性能差不多(34.50 vs. 34.81);另外,文中也提到“Ensemble of 5 LSTMs,beam size=2” 设定的模型训练,比单个" LSTMs, beam size=12"设定的模型,计算量还小。
2. 结果并没有 “Best WMT’14 result” 好。34.81 vs. 38.0
但是,却是首次纯 NMT 模型表现比 phrased based SMT Baseline 要好。

在这里插入图片描述
对于上表,SMT 和 NMT一起使用的方法:

可以发现,结果还是没“Best WMT’14 result” (SMT)好。文中给出的原因是 NMT 模型的词库大小有限,而 SMT 模型则未限制词库大小。

在这里插入图片描述
对于文中提出的亮点的相关实验:

将输入映射到固定长度的向量空间

  • 上图可以发现,将输入编码成固定长度的向量,对单词的顺序敏感,能捕捉到词袋模型难以捕捉的词序。(例如,“Mary admires John.” 和 “John admires Mary.”两个句子之间是有一定距离的,并且类似的句子有相同的情况。)
  • 另一方面,向量对主动语态和被动语态较不敏感。例如,“In the garden, I gave her a card.” 和 “She was given a card by me in the garden.”的距离非常相近,两者的差异模型可能较难区别。

在这里插入图片描述
seq2seq模型处理长句子的性能 | 比较了 SMT 基准模型和 LSTM-based 的seq2seq模型

  • 对于上左图,y 轴是测试句子的 BLEU 分数,并且按照句子的长度排序(x轴)。(值得一提的是,这里的长度指的是原句子的长度,而不是输出的长度。)可以发现,对于长度小于 35 的句子,seq2seq模型的表现都由于基准模型,只在最长句子的地方模型性能轻微退化到和基准模型一样的水平。
  • 对于上右图,y 轴同样是测试句子的 BLEU 分数,并且按照句子中单词的平均出现频率排序(x轴),排序越靠后代表单词在训练集中出现的越少。可以发现,句子中单词越稀有,模型的性能越差,即 NMT 模型中的稀有单词/未登录词问题。

本文小结

原论文得出了以下结论:

  1. LSTM-based seq2seq模型能翻译较长的句子,尽管有一些类似工作表示了相反的结果。
  2. 颠倒输入端序列,使得模型的 BLEU 分数从 25.9 提高到 30.6,同时困惑度也降低了。
  3. seq2seq模型虽然基于有限的词库大小,但是其性能超过 SMT 模型是毋庸置疑的。

参考资料

  1. Learningphraserepresen- tations using RNN encoder-decoder for statistical machine translation
  2. 深度学习方法(八):自然语言处理中的Encoder-Decoder模型,基本Sequence to Sequence模型 | 大饼博士X
  3. Sequence to Sequence Learning with Neural Networks | mstar1992
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值