(一)自然语言处理论文:seq2seq方法解析

论文传送门:Sequence to Sequence Learningwith Neural Networks

1 摘要

深度神经网络(DNNs)是非常强悍的模型,在较难的学习任务中表现优异,处理效果贼好。虽然DNNs可很好地处理含有标签的大量训练数据集,但是不能应用于序列映射到序列。本文的方法是通用的端到端序列学习对序列结构做了极小值假设,该方法使用多层长短时记忆(LSTM)网络将输入序列映射到固定维度的一组向量,之后另一个深度长短时记忆网络从这个向量对目标序列解码。主要的结果来源于对WMT’14数据集进行英语翻译为法语的任务,翻译结果由LSTM生成,整个测试集上BLEU得分为34.8,LSTM的BLEU得分在超出词汇表部分会降低,并且LSTM可以很容易处理长句子。作为对比,在相同数据集上,使用短语SMT系统得到的BLEU分数为33.3,当使用LSTM从新排列由前面SMT系统产生的1000个假设,BLEU得分增加到36.5,接近之前这个任务的最好结果。LSTM还可学习对词序敏感,主动语态和被动语态相对不变的合理短语和句子表达。最终,我们发现颠倒所有原始句子单词的顺序(非目标句子)可显著提高LSTM的性能,因为这样做在原始句子和目标句子中引入多个短期依赖,使得优化问题更加容易。

2 内容

2.1 简介

深度卷进神经网络是非常强大的机器学习模型,它在如语音识别和视觉对象识别困难的问题问题上表现非常出色。DNNs很强大是因为它可以针对任意合适的步长并行计算,展示DNNs性能的典型例子是只用4个隐藏层即可对N个N位数进行排序,由此,虽然神经网络和传统的统计模型有关,但是他学到了更加复杂的计算,并且,只要标记的训练集具有足够的信息来指定网络参数,就可以用监督的反向传播训练大型的DNNs,所以,如果大型DNN存在一组参数可实现良好的效果(如人类可以快速解决问题),监督的反向传播即可发现这些参数并解决问题。
尽管DNN很灵活且高效,但是他只能应用于输入和目标可以使用固定维度的向量进行合理编码的问题,这样有很大的局限,因为许多重要的问题可以使用序列很好的表达,但是序列的长度是未知的,比如语音识别和机器翻译就是序列化问题。同样地,问答也可视为表示问题的文字序列到表示答案的文字序列间的映射,因此域无关的方法学习序列到序列的映射是有效的。
序列对DNN构成挑战,因为DNN需要知道并固定输入和输出的维度,本文表明直接使用LSTM结构可接解决一般的序列到序列问题。本方法使用一个LSTM读取输入序列,另一个LSTM从向量提取输出序列,如图2.1所示,第二个LSTM本质上是循环神经网络语言模型,他是以输入序列为条件的。LSTM具备从长时间距离依赖性的数据中学习的能力使其成为该应用的自然选择,因为输入与相应输出海军爱你存在相当大的时间滞后,如图2.1。
使用神经网络处理一般的序列到序列学习问题已有大量的相关研究,虽然我们的方法与Kalchbrenner和Blunsom比较接近,他们的方式是先将全部的输入映射到向量,与Cho et al.的方法相关,但是后者仅用于基于短语系统产生的假设进行重新排序。Graves提出了一个新颖的可区别的注意机制,使神经网络可以关注输入的不同部分,该方法的变体被Bahdanau成功应用于机器翻译,级联序列分类是另一个流行的神经网路序列到序列映射的技术,但是他的要求是输入和输出之间是单调对齐的。

在这里插入图片描述

图2.1 序列化处理结构

我们的工作结果如下:
WMT14英语到法语的翻译任务,直接从全部5个LSTM(384百万参数和每个状态8000维度)使用简单的由左到右光束搜索解码提取翻译,取得的BLEU分数为34.81,这是目前为止使用大型神经网络直接翻译取得的最好结果,在该数据集上SMT基线模型取得的分数为33.30,34.81的BLEU这个分数是一个LSTM处理8万单词取得的,所以只要参考译文包含着8万个单词为覆盖的单词,就会分数就会受到惩罚,结果表明相关未优化的小词汇神经网络结构具有很大提升空间,优于基于短语的SMT系统。
最后,我们使用LSTM重新排列SMT基线系统在相同任务上得到的1000个最好的结果,我们获取的BLEU分数为36.5,提高了基线3.2个BLUE点,接近之前公布的最好结果(37.0)。
神奇的是,尽管其他研究员有相关架构的经验,但是LSTM并没有收到长假期的打压。我们可以很好的处理长句是因为我们在训练中和测试中将原始句子的单词逆序排列,目标句子正常顺序排列。这样做,我们建立了多个短期依赖简化了优化问题,因此SGD可以学习没有问题的LSTM长句,逆向对原始句子进行排序是该技术中的关键点之一。
LSTM的一个非常有用的属性是他可以学习将长度变化的输入句子映射到固定维度的向量并进行表示。鉴于翻译往往是原句的解释,翻译的目标鼓励LSTM寻找到表示其含义的句子表示,因为意思相近的句子相互是接近的,而不同就句意相差很远,定性评估支持该观点,表明我们的模型知道单词顺序,并且对主动和被动语音保持不变是同等机会的。

2.2 模型

循环神经网络序列的前馈神经网络的概括,考察输入序列( x 1 , x 2 , . . . , x T x_1, x_2, ..., x_T x1,x2,...,xT)标准的循环神经网络计算一个输出序列( y 1 , y 2 , . . . , y T y_1, y_2, ..., y_T y1,y2,...,yT),迭代公式如下:
h t = s i g m ( W h x x t + W h h h t − 1 ) h_t = sigm(W^{hx}x_t+W^{hh}h_t-1) ht=sigm(Whxxt+Whhht1)
y t = W y h h t y_t = W^{yh}h_t yt=Wyhht
只要提前知道输入和输出之间的对齐关系,RNN就能轻松将序列映射到序列,但是如何将RNN应用于输入和输出句子长度不同情况仍不是很清晰。
对于一般序列写最简单的策略是使用一个RNN将输入序列映射到固定尺寸的向量,然后使用另一个RNN将向量映射到目标序列,虽然理论上可行,因为RNN提供了所有相关信息,但是很难训练RNN,因为这会导致长期依赖。然而,众所周知LSTM可以从长时间依赖中学习,所以LSTM或许能成功解决该问题。
LSTM目标是估计条件概率 p ( y 1 , . . . , y T ′ ∣ x 1 , . . . , x T ) p(y_1, ..., y_{T^{'}}|x_1, ..., x_T) p(y1,...,yTx1,...,xT)其中 x 1 , x 2 , . . . , x T x_1, x_2, ..., x_T x1,x2,...,xT是输入序列, y 1 , y 2 , . . . , y T ′ y_1, y_2, ..., y_{T^{'}} y1,y2,...,yT是响应的输出序列,长度为 T ′ T^{'} T,可能与 T T T不同,LSTM计算首先获取有LSTM的最后隐藏状态给出的输入系列 x 1 , x 2 , . . . , x T x_1, x_2, ..., x_T x1,x2,...,xT得固定维度的向量表达式 v v v计算条件概率,然后使用标准LSTM-LM公式计算 y 1 , y 2 , . . . , y T ′ y_1, y_2, ..., y_{T^{'}} y1,y2,...,yT的概率,该公式的初始隐藏状态设定为:
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^{'}}|x_1, ..., x_T)=\prod_{t=1}^{T^{'}}p(y_t|v, y1, ..., y_{t-1}) p(y1,...,yTx1,...,xT)=t=1Tp(ytv,y1,...,yt1)
其中,每个 p ( y t ∣ v , y 1 , . . . , y t − 1 ) p(y_t|v, y1, ..., y_{t-1}) p(ytv,y1,...,yt1)分布用词汇表中所有单词的softmax表示,我们使用的LSTM公式来自Graves,注意,我们要求每个句子以特殊符号结尾,,这可以是模型定义所有可能长度的分布,整体方案如图2.1所示,图中表示LSTM计算"A",“B”,“C”,"“的表达式,然后使用表达式计算"W”,“X”,“Y”,“Z”,""的概率。
实际模型与上面描述有三点重要不同,第一,我们使用两个不同的LSTM,一个使用输入序列,一个使用输出序列,以为这样做可以忽略模型参数增加带来的计算成本,并可以同时在多个语言上训练LSTM。第二,我们发现深度LSTM明显超过浅层LSTM,因此选择4层LSTM。第三,逆向排列输入句子很有效。举个栗子,输入a,b,c映射的输出 α \alpha α, β \beta β, γ \gamma γ,LSTM映射关系为:c,b,a映射 α \alpha α, β \beta β, γ \gamma γ,其中 α \alpha α, β \beta β, γ \gamma γ为a,b,c的翻译,这种方法,a非常接近 α \alpha α,b接近 β \beta β等等,实际使用SGD可很简单建立输入和输出间的连接关系,我们发现这样简单数据的转换可很大程度上提高LSTM的性能。

2.3 实验

在WMT14英语到法语MT任务上用两种方式使用我们提出的方法。我们使用直接翻译输入句子的方式(不使用SMT系统),然后重新排列n个最好的SMT基线列表。我们报告了这些翻译方法的准确性,现有样本翻译并可视化生成的句子。

2.3.1 数据描述

我们使用WMT14的英到法的翻译数据集,在包含3亿4千8百万法语单词和3亿4百万英语单词子集1千200万序列训练我们的模型,这些数据是从文献中清洗过的。我们选择这个翻译任务和这个特殊的子集是因为使用SMT基线模型标记的训练集和测试集的最佳列表是公用的。
由于经典的神经语言模型依赖于单词的向量表达式,所以我们使用两种语言的固定词汇,即160万原始语言的高频词汇和80万的目标语言的高频词汇,词汇表之外的单词用UNK表示。

2.3.2 解码和重新排序

我们实验的核心包含在多个句子对上训练大型深度LSTM。训练LSTM通过最大化log计算的基于原始句子 S S S正确翻译为 T T T的概率,训练目标为:
1 ∣ s ∣ ∑ ( T , S ) ∈ S l o g p ( T ∣ S ) \frac{1}{|s|}\sum_{(T,S)\in S}logp(T|S) s1(T,S)Slogp(TS)
其中, S S S为训练数据集,一旦训练完成,生成的翻译依据LSTM寻找最相似的翻译,即:
T ^ = a r g m a x T p ( T ∣ S ) \hat{T}=arg max_Tp(T|S) T^=argmaxTp(TS)
我们使用简单的由左到右的集束搜索解码器寻找最相似的翻译,该解码器保持一少量B的部分假设,部分假设是翻译的前缀。每次我们都会扩展beam含有的词汇表中单词的概率,这样大量增加假设的数量,依据模型的log概率只获取最相似的假设,一旦EOS标志添加到预测中,就会从beam中移除并添加到完成预测的集合中。虽然解码器是近似取值,但应用很简单。有趣的是,即使beam尺寸为1,我们的系统性能研究良好,尺寸为2的beam提供了大部分beam search的权重,见表1。
我们使用LSTM重新对基线系统产生的1000个最好的结果进行重新排序,为重新产生n个最好的数据,我们使用LSTM计算每个预测的概率log值,然后取其均值作为LSTM分数。

2.3.3 逆向原始句子

虽然LSTM可以解决长期依赖问题,但是我们发现LSTM在输入句子反向排序后性能更高(目标句子不进行逆向排序),这样做,LSTM的测试困惑从5.8降到4.7,测试BLEU解码翻译分数从25.9增加到30.6。
虽然我们没有完全解释这个现象,但是我们相信这是对数据集由于短时依赖造成的。当我们连接原始句子和目标句子时,原始句子中的单词与对应的目标句子中的单词很远,结果,有一个很大的“最小时滞”问题。通过逆向排列原始句子中的单词,原始句子与目标语言对应的单词平均距离虽然不变,但是原始语言中的前几个单词与目标语言中的前几个单词很接近,因此最小时滞问题很大程度上减小了,因此反向传播在原始句子和目标句子间更容易建立连接,并提高返回的结果的性能。
最初,我们认为逆向排列输入句子只能在目标句子起始部分提高预测置信度,在其余的部分降低置信度,然而,LSTM在将长句进行逆向排序训练中表现比不进行逆向排序效果好,这表明对原始句子反向排序具有更好的内存利用率。

2.3.4 训练描述

我们发现LSTM模型易于训练,使用4层深度LSTM,有每层有1000个神经元,1000维度的词嵌入,输入有16万词汇,输出有8万词汇。因此深度LSTM使用8000真实数据表示句子,发现深度LSTM明显优于浅层LSTM,每增加一层LSTM减少近10%的困惑,可能是因为更多的隐藏层状态。每个输出使用8万单词的softmax,结果每6千4百万纯循环连接中LSTM有3亿8千4百万个参数(3千2百万用于LSTM编码器,3千2百万用于LSTM解码器),完整训练过程如下:

  • 使用均匀分布[-0.08, 0.08]初始化所有LSTM参数;
  • 使用没有动量的随机梯度下降,固定学习率0.7,5轮之后,开始每半个epoch将学习率减半,总共训练模型使用了7.5个轮回;
  • 梯度使用128个序列的batch,并将其分为bathc尺寸(即128);
  • 虽然LSTM不受可变梯度影响,但是会出现梯度爆炸,因此通过在其范数超过阈值时对其进行缩放到[10, 25]实现对梯度范数强制约束,每个训练batch,计算 s = ∣ ∣ g ∣ ∣ 2 s=||g||_2 s=g2,其中 g g g是分成为128份的梯度,如果 s > 5 s>5 s>5,将 g g g设为 5 g s \frac{5g}{s} s5g;
  • 不同的句子有不同的长度,大部分句子很短(如20-30长度)但是一些很长的句子(如>100长度),因此128minibatch随机选择训练句子将会有很多短句和部分长句,这样,会造成计算资源的浪费,为解决这个问题,我们保证所有句子在minibatch中的长度一致,提高2倍速度;

2.3.5 实验结果

在这里插入图片描述

图2.2 LSTM翻译效果

在这里插入图片描述

图2.3 神经网络与SMT系统结合翻译结果

[参考文献]
[1]https://arxiv.org/pdf/1409.3215.pdf


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值