面向神经机器翻译的集成学习方法分析
来自:李家小猫爷(喵呜~)
集成学习(Ensemble learning)是一种联合多个学习器进行协同决策的机器学习方法,通过整合多个学习器的决策结果可以有效地减小预测结果的方差与偏置,显著提升模型的泛化能力,达到比单学习器更好的效果。因此,集成学习的方法受到了研究人员的广泛认可,被应用于各种实际任务,如规则提取、手写识别等分类回归任务。
近年来一些研究者把集成学习方法应用到机器翻译领域,并通过实验证明可以大幅度提升翻译系统的性能。集成学习常见的手段包括平均单模型在训练过程中不同时刻保存的模型参数,以及在预测过程中整合不同模型的预测结果等。影响集成学习效果的主要因素是模型之间的多样性,因此如何增大模型之间的多样性是提升翻译性能的关键,但大部分研究人员很少去系统地总结如何才能增大模型间的多样性,对该问题也缺乏经验性的对比分析与完备性的结论。譬如,如何选取具有差异性的子模型?集成多少个模型才会使效果最优?这些问题并没有得到很好的回答。
针对以上问题,我们基于Transformer系统分别从模型的参数与解码预测过程两个角度详细总结更高效的Ensemble方法。从模型的参数角度,我们将不同时刻保存的模型进行参数平均从而得到更具鲁棒性的单模型;从解码预测过程的角度,我们从模型多样性层面、数据多样性层面阐述如何才能有效增加模型间的多样性,从而提升翻译系统的性能。在模型多样性层面,我们主要对比简单的随机初始化种子、复杂种子以及混合不同模型结构的Ensemble系统之间的优劣。在数据层面,我们提出分别使用fine-tuning与bagging的方式生成子模型,在增加数据多样性的同时提升模型间的差异性。基于以上两方面的讨论,我们又探索了使用更多的模型参与融合是否能在翻译性能上带来正向作用。
通过在WMT17中英任务的大规模数据集进行实验,我们发现增大模型差异性与数据差异性均能提高模型的翻译性能。此外,随着融合模型的数量增加,翻译质量也会显著地提升。最好的Ensemble结果在Transformer单模型基础上取得3.19个BLEU值的提升,同时我们针对模型间多样性与解码复杂度进行了详细的分析。
参数平均
参数平均是指将单一模型最近保存的N个模型的参数矩阵进行平均。如图1给出4个检查点(checkpoint)部分参数矩阵,通过将对应位置数值进行平均得到新的参数矩阵。模型1中的

=0.26,模型2中的

=0.22,不同检查点矩阵的对应数值会有差异性,最终经过参数平均后的模型的

=0.25。由于模型在训练过程中需要更新一定的轮数才能达到收敛,并且模型的损失值在收敛后仍处于小范围的上下波动。为了得到更具有鲁棒性的模型,Vaswani(2017)建议每隔10分钟保存一次模型,并平均最新保存的20个检查点模型用来作为最终的模型,但该文章并没有给出经验性的结论。本文中我们将要探索如何设置合理的模型保存间隔与参数平均的模型数量获得更强的翻译性能。

预测结果融合
预测结果融合是一种在解码过程中实施融合的手段,通过整合不同模型得到的概率分布从而获得新解,进而预测下一个目标端词语。常见的融合手段有算术平均、几何平均、加权平均以及投票等。机器翻译任务是一种序列生成问题,解码的每一个时序都会依赖于前一时序预测的结果,模型会根据当前的语义信息计算出一个维度大小是词表大小的概率分布向量,经过Softmax操作得到归一化的向量表示。向量中每一个元素指代预测下一个词的概率。如图2在输入源语“今天 天气 晴朗 。”前提下,解码第一步将4个不同模型预测的概率进行算数平均从而得到新的概率分布,其中“today”是当前预测概率最大的词。通过这种方式Ensemble模型可以综合不同模型的决策结果来得到的更优的解。下面分别从模型多样性与数据多样性的角度来对比分析不同融合的手段带来性能的增益。

模型多样性
模型间的差异性很大程度上决定了模型融合后的效果。对于模型层面,我们将通过以下两种策略来构造子模型:
(1)使用相同的模型结构,不同的参数初始化分布或者不同的随机初始化种子。由于神经网络的拟合训练容易陷入局部最优解,导致最终单模型的翻译结果可能不是全局最优解,通过Ensemble的方式,可以融合多个不同随机种子即多个局部最优解,进而避免这类问题,获得更好的结果。
(2)使用不同的模型结构,不同的随机初始化种子。如果仅仅改变模型的初始化参数,那么融合相似的网络模型结构差异性过小,为了增大模型间的差异性,我们训练N个不同网络结构且不同的随机初始化种子的模型。
数据多样性
在数据层面,为了增加多样性,我们通过fine-tuning与bagging两种策略来构造子模型:
(1)通过fine-tuning的方式在训练好的模型基础上,用分割成不同份数的训练语料继续训练5轮,保证词表不变。通过这种方式让微调后的子模型对不同的数据敏感,从而增加了多样性。由于微调的代价很小,不需要完全重新训练模型,可以节约很多时间上与设备上的开销。
(2)通过bagging的方式对训练样本进行重采样,如图4所示分别使用重采样后的子样本训练相应的模型,在预测过程中对不同模型的输出结果上通过取平均的方式得到ensemble的模型输出。Bagging是最早出现在集成学习任务中的有效手段,在早期的分类任务中,通过bagging方式构建多个决策树共同对测试数据进行决策,最后采用投票或者取平均的方式得到集成结果。在本任务中通过对训练数据做了N次Bootstrap采样得到的N个训练集近似服从同一分布,同时有效地降低了方差。由于不同子模型之间数据量相同但内容略有差别,从而增加了训练数据的多样性。
更多模型 通过融合更多的模型联合决策来提高翻译性能。大部分研究人员在进行集成方面的研究都只使用了4个或5个模型进行融合,并没有进一步探究融合更多模型是否有效。本节主要探索参与预测结果平均的模型数量对性能的影响,验证参与融合的模型数量与Ensemble模型的翻译性能之间的正相关性。
实验设置
我们使用Transformer模型最为实验的基线,基线设置采用了论文中的transformer_base参数设置,编码端与解码端分别是6层,隐藏层维度为512,采用8头设置,前馈神经网络的filter_size大小为2048 ,batch-size大小为4096 ,采用8gpu训练,初始学习率为0.001,warmup_steps大小为4000,采用Adam优化器进行参数优化,训练的轮数为10轮,共140K更新次数。在解码阶段我们使用自研的解码器,应用beam-search策略来进行解码端的预测,beam-size大小为12,同时解码时的长度惩罚alpha大小为1.2。基于该参数的单模型在测试集上的BLEU值为25.4。
实验结果
参数平均
本实验基于baseline模型的参数设置,每隔5min保存一次模型。基于模型的最新的20个checkpoint,通过对比单模型与averaging5、averaging10、averaging15、averaging20之间的性能差异,如图3所示:我们发现基于保存的20个checkpoint点进行参数平均均有一定的正向作用,其中取最新的15个模型效果最佳,比最后保存的单一模型高0.82 BLEU值。基于本次实验结果,之后的实验均采用参数平均15个checkpoint后的模型。

相同模型结构,不同初始化种子 通过对比实验,我们发现在base参数设置的基础上增大filter_size至4096与加入dropout都会明显提高单模型的BLEU分数。通过对相同模型结构的4个不同随机初始化种子进行融合,结果如表1中的前三行所示,我们发现三组实验对比于基线在性能方面都有至少1.5个BLEU值的提升。其中增大filter_size的Combo-2与增加dropout的Combo-3结果要比Combo-1有更好的翻译效果,表明参与集成的基线模型性能越强,模型融合后的性能也会上升。另一方面根据Combo-3实验结果,增加dropout的单模型性能比filter4096有近0.3个BLEU值的提升,但模型融合的结果反而要略低于Combo-2。这里我们猜想是由于dropout本身蕴含着集成学习的思想,因此融合4个dropout模型的性能上升的幅度会有所下降。
不同模型结构,不同初始化种子 本实验主要为了对比更多样化的模型结构能否带来更大的性能提升。为了增加模型间的差异性,我们在transformer_base参数设置的基础上
a)加入注意力模型与前向网络的dropout
b)调整dropout大小至0.2
c)将filter_size由2048增大至4096
d)使用transformer_big参数设置,由8头增加至16头、隐层大小由512增加至1024、filter_size由2048增加至4096、residual_dropout由0.1增大至0.3
e)引入相对位置表示
对比表1中Combo-4与Combo-5的BLEU值比基于base模型结构的Combo-1的BLEU要高0.4,此外,考虑到参与模型融合的各个单模型之间的性能差异,观察实验Combo-5比Combo-2仍高近0.2个BLEU值,从而验证了模型间的差异性越大,模型融合的结果会越强。
表1 不同策略模型融合实验在WMT17-test测试集结果

更多样的模型 结合模型与数据多样性的模型融合结论,在本节验证使用更多、差异性更大的模型,是否会在翻译性能上带来正向效果。我们分别融合了4个、8个、12个、16个模型进行相应的对比实验。图4实验结果表明,参与模型融合的子模型数量与其翻译性能是正相关的。在增大参与预测结果融合的子模型数量的同时,翻译性能整体也会保持上升的趋势。值得注意的是,当模型数量上升到一定临界值时,会出现翻译性能上升的幅度会变小,甚至会略微下降的现象。导致这种现象的原因可能是伴随着模型融合的数量上升,子模型间的差异性越来越小,因此在增加模型数量的同时也要兼顾模型之间的多样性。

3.5 多样性与复杂度分析
多样性 模型间的多样性决定了多个模型进行融合后翻译性能的涨幅。本文通过计算不同模型预测出的译文与参考译文之间的N-gram分数来评估多样性的大小。我们使用multi-bleu脚本,将多个模型的译文作为参考答案,并使用参考译文作为假设,计算模型间的N-gram相似度。如表2所示:我们混合不同单模型在测试集上的预测集合,发现当模型数量一定时,模型之间结构差异性越大,模型之间的多样性越高;此外,伴随着模型数量的增加,模型间的多样性增大,但增大的幅度越来越小。通过对比模型数量为4时不同模型结构的前3组实验,我们发现使用dropout的多样性指标略低于其他两组,因此使用该设置进行预测结果融合后,模型性能的涨幅也低于其他两组,与之前实验现象相吻合。
复杂度 Ensemble模型进行预测的时间复杂度在不考虑卡间参数传递损失的前提下,与单模型相近。但在真正的推断过程中,我们在预测每个词时都采用同步的方式来整合不同卡上模型计算出的概率分布向量,因此卡间的信息传递占用了很大的时间开销。此外,由于不同模型结构的计算量不同,会导致解码速度不统一,容易造成木桶效应。根据对不同数量的模型进行Ensemble实验,伴随着数量的增加,解码所需的时间也变长。因此提高卡间的传输速率会大幅度提升集成学习在实际应用中的效率。
表2 多样性分析

实验结论
本文结合模型参数平均与预测结果融合两种集成学习在NMT中的应用手段,在大规模语料上进行实验,总结了一种更高效的集成方法。一方面我们发现经过参数平均后的模型有更强的表示能力;另一方面实验结果表明,在融合模型数量相同的情况下,更加多样性的模型组合会在翻译性能上带来更大的提升,尤其在融合更多模型的角度进一步实验,发现仍然有较大的提升空间。本文在WMT17中英测试集上,选用12个经过15个模型参数平均后的多样性子模型,对比于基线提高了近3.2个BLEU值。实验表明,融合更多更具差异性的模型能显著地提升翻译性能;在融合的模型数量一定的范围内,伴随着模型数量的增加,模型间的多样性也会增大,但幅度越来越小。
参考文献
李北, 王强,姜雨帆,张哲旸,刘继强,张俐,肖桐. 2018. 面向神经机器翻译的集成学习方法分析. CCL2018.
你的回复
回复请先 登录 , 或 注册相关内容推荐
最新讨论 ( 更多 )
- 建个ai商业群,探讨ai商业化 (沈清白说运营)
- AI分享讨论群 (殇铃)
- 最新AI变现课程,以及顶尖大学资料和本地部署文件,免费下载 (diss)
- 互联网时代远去,AI时代正在到来 (阳光大乐)
- 最近在做AI找房,研发待上线中 感兴趣的滴滴 (GC梦之城)