美文网首页
seq2seq:神经机器变换架构的大量探索

seq2seq:神经机器变换架构的大量探索

作者: Valar_Morghulis | 来源:发表于2022-01-06 18:04 被阅读0次

    和Transformer同时期作品,Transformer论文里的文献[3]

    (本文发表于2017.5,Transformer发表于2017.6)

    https://arxiv.org/abs/1703.03906

    Massive Exploration of Neural Machine Translation Architectures

    Authors: Denny BritzAnna GoldieMinh-Thang LuongQuoc Le

    神经机器翻译(NMT)在过去几年中显示出了显著的进步,现在生产系统被部署到最终用户。当前体系结构的一个主要缺点是训练成本高,通常需要几天到几周的GPU时间才能收敛。这使得穷举超参数搜索,就像其他神经网络结构通常做的那样,昂贵得令人望而却步。在这项工作中,我们首次对NMT体系结构超参数进行了大规模分析。我们报告了几百次实验运行的经验结果和方差数,对应于标准WMT英语到德语翻译任务超过250000 GPU小时。我们的实验为构建和扩展NMT体系结构提供了新的见解和实用建议。作为这一贡献的一部分,我们发布了一个开源NMT框架,使研究人员能够轻松地使用新技术进行实验,并重现最新的结果。

    ACL 2017

    https://github.com/google/seq2seq/

    1    导言

    神经机器翻译(NMT)(Kalchbrenner和BunsSOM,2013;SutsKyFor等人,2014;CHO等人,2014)是一种自动翻译的端到端方法。NMT已经显示出令人印象深刻的结果(Jean等人,2015年;Luong等人,2015b;Sennrich等人,2016a;Wu等人,2016年),超过了基于短语的系统,同时解决了诸如需要手动设计功能等缺点。NMT最流行的方法是基于编码器-解码器架构,该架构由两个递归神经网络(RNN)和一个将目标与源标记对齐的注意机制组成(Bahdanau等人,2015;Luong等人,2015a)。

    当前NMT体系结构的一个缺点是训练它们所需的计算量。在数百万个实例的真实数据集上进行训练通常需要几十个GPU,收敛时间约为几天到几周(Wu等人,2016)。虽然在计算机视觉中,跨越大型超参数空间是很常见的(Huang等人,2016b),但这种探索对于NMT模型来说代价高昂,限制了研究人员对成熟架构和超参数的选择。此外,还没有大规模研究架构超参数如何影响NMT系统的性能。因此,目前尚不清楚这些模型为何表现如此出色,以及我们如何改进它们。

    在这项工作中,我们提出了第一个全面分析神经网络翻译系统的体系结构超参数。我们总共使用超过250000个GPU小时,探索NMT体系结构的常见变体,并深入了解哪些体系结构选择最重要。我们报告所有实验的BLEU分数、困惑、模型大小和收敛时间,包括在每个实验的多次运行中计算的方差数。此外,我们向公众发布了一个用于运行实验的新软件框架。

    综上所述,这项工作的主要贡献如下:

    我们提供了立即适用的见解,优化神经机器翻译模型,以及有前途的未来研究方向。例如,我们发现深度编码器比解码器更难优化,密集残差连接比常规残差连接产生更好的性能,LSTM优于GRU,并且良好的beam搜索对于获得最新结果至关重要。通过提供选择基线体系结构的实用建议,我们帮助研究人员避免在毫无希望的模型变化上浪费时间。

    •我们还确定BLEU等指标受随机初始化和轻微超参数变化影响的程度,帮助研究人员区分统计显著结果和随机噪声。

    •最后,我们发布了一个基于TensorFlow的开源软件包,专门设计用于实现可复制的最新序列到序列模型。所有的实验都是使用这个框架进行的,我们希望通过向公众发布它来加速未来的研究。我们还发布了复制本文中的实验所需的所有配置文件和处理脚本。

    2    背景和初步情况

    2.1    神经机器翻译

    我们的模型基于带注意机制的编码器-解码器架构(Bahdanau等人,2015;Luong等人,2015a),如图1所示。编码器函数fenc将源令牌序列x=(x1,…,xm)作为输入,并生成状态序列h=(h1,…,hm)。在我们的基本模型中,fenc是一个双向RNN,状态hi对应于由后向和前向RNN产生的状态的串联,hi=[−→你好←− 嗨]。解码器fdec是基于h预测目标序列y=(y1,…,yk)的概率的RNN。每个目标令牌的概率yi∈ 1.基于解码器RNN si中的循环状态、前面的字y<i和上下文向量ci来预测V。上下文向量ci也称为注意向量,并作为源状态的加权平均值进行计算。

    这里,att(si,hj)是一个注意函数,用于计算编码器状态hj和解码器状态si之间的非归一化对齐分数。在我们的基本模型中,我们使用att(si,hj)=hWhhj,Wssii形式的函数,其中矩阵W用于将源状态和目标状态转换为相同大小的表示。

    解码器输出固定大小V词汇表上的分布:

    通过使用随机梯度下降法最小化目标词的负对数似然,对整个模型进行端到端的训练。

    3实验装置

    3.1数据集和预处理

    我们在WMT'15英语上做了所有的实验→由450万个句子对组成的德语任务,通过结合Europarl v7、新闻评论v10和通用爬网语料库获得。我们使用newstest2013作为验证集,newstest2014和newstest2015作为测试集。为了测试通用性,我们还对英语进行了少量实验→法文翻译,我们发现表现与英文高度相关→德语,但在更大的英语平台上训练模特需要更长的时间→法语数据集。考虑到从形态更丰富的德语翻译也被认为是一项更具挑战性的任务,我们认为使用英语是合理的→此超参数扫描的德语翻译任务。

    我们使用Moses2中的脚本标记和清理所有数据集,并使用字节对编码(BPE)(Sennrich等人,2016b)学习共享子字单元,使用32000个合并操作,最终词汇大小约为37k。我们发现数据预处理会对最终的数字产生很大的影响,因为我们希望实现可再现性,所以我们将数据预处理脚本与NMT框架一起发布给公众。有关数据预处理参数的更多详细信息,请参阅代码版本。

    3.2训练设置和软件

    以下所有实验都是使用我们自己的基于TensorFlow的软件框架进行的(Abadi等人,2016)。我们故意构建这个框架,使神经机器翻译架构的ART实现的可再现状态。作为我们贡献的一部分,我们正在发布框架和复制结果所需的所有配置文件。训练在Nvidia Tesla K40m和Tesla K80 GPU上进行,每个实验分配8个并行工作人员和6个参数服务器。我们使用128的批量大小,并使用beam搜索进行解码,beam宽度为10,长度归一化惩罚为0.6,如(Wu等人,2016年)所述。BLEU分数是使用多BLEU在标记化数据上计算的。Moses3中的perl脚本。每个实验最多运行2.5M步,并用不同的初始化重复4次。我们每30分钟保存一次模型检查点,并根据验证集BLEU分数选择最佳检查点。我们报告每个实验的平均值和标准差以及最高分数(根据交叉验证)。

    3.3基线模型

    基于对以往文献的回顾,我们选择了一个基线模型,我们知道该模型的性能相当好。我们的目标是保持基线模型简单和标准,而不是推进艺术的开始。该模型(如2.1所述)由一个2层双向编码器(每个方向1层)和一个具有乘法(Luong等人,2015a)注意机制的2层解码器组成。我们使用512单位GRU(Cho et al.,2014)单元作为编码器和解码器,并在每个单元的输入端应用0.2的压降。我们使用Adam优化器进行训练,固定学习率为0.0001,无衰减。嵌入维度设置为512。有关所有模型超参数的更详细说明,请参见补充资料。

    在以下每个实验中,基线模型的超参数保持不变,但正在研究的一个超参数除外。我们希望这使我们能够隔离各种超参数变化的影响。我们认识到,该程序不考虑超参数之间的相互作用,当我们认为可能发生这种相互作用时,我们会进行额外的实验(例如,跳过连接和层数)。

    4实验与讨论

    为简洁起见,我们仅在下表中报告平均BLEU、标准偏差、最高BLEU和模型尺寸。日志困惑度、令牌/秒和收敛时间可在补充材料表中找到。

    4.1嵌入维度

    对于大量词汇表,嵌入层可以占模型参数的很大一部分。历史上,研究人员使用了620维(Bahdanau等人,2015年)或1024维(Luong等人,2015a)嵌入。我们期望更大的嵌入会导致更好的BLEU分数,或者至少更低的困惑,但我们发现情况并非总是如此。虽然表1显示2048个维度的嵌入产生了总体上最好的结果,但它们只产生了一小部分。即使是小的128维嵌入也表现得出奇地好,同时收敛速度几乎是原来的两倍。我们发现,对小嵌入和大嵌入的梯度更新没有显著差异,并且对嵌入矩阵的梯度更新的范数在整个训练过程中几乎保持不变,而与大小无关。我们也没有观察到过拟合与大嵌入和训练日志困惑在整个实验中大致相等,这表明该模型没有有效地利用额外的参数,并且可能需要更好的优化技术。或者,具有大型嵌入的模型可能需要超过250万步才能收敛到最佳解决方案。

    4.2 RNN单元变异体

    LSTM(Hochreiter和Schmidhuber,1997)和GRU(Cho等人,2014)单元通常用于NMT架构。虽然有研究(Greff等人,2016年)探索了数千例小序列任务中的单元变体,但我们不知道在大规模NMT环境中有这样的研究。

    门控单元(如GRU和LSTM)的动机是消失梯度问题。使用普通RNN单元,深度网络无法通过多个层和时间步有效地传播信息和梯度。然而,对于基于注意的模型,我们认为解码器应该能够几乎完全基于当前输入和注意上下文做出决策,并且我们假设解码器中的选通机制不是严格必要的。这一假设得到以下事实的支持:我们总是将解码器状态初始化为零,而不是传递编码器状态,这意味着解码器状态不包含有关编码源的信息。我们仅在解码器中使用一个普通RNN单元来验证我们的假设(下面是VanillaDec)。对于LSTM和GRU变体,我们替换编码器和解码器中的单元。我们使用没有窥视孔连接的LSTM单元,并将LSTM和GRU单元的遗忘偏差初始化为1。

    在我们的实验中,LSTM单元始终优于GRU单元。由于我们的体系结构中的计算瓶颈是softmax操作,因此我们没有观察到LSTM和GRU单元之间的训练速度有很大差异。有点让我们惊讶的是,我们发现香草解码器的学习能力几乎不能和选通变体一样好。这表明解码器确实在多个时间步中以自己的状态传递信息,而不是仅仅依赖注意机制和当前输入(包括先前的注意上下文)。也可能是门控机制需要屏蔽输入的不相关部分。

    4.3编码器和解码器深度

    我们通常期望较深的网络比较浅的网络收敛到更好的解决方案(He等人,2016)。虽然一些作品(Luong等人,2015b;Zhou等人,2016;Luong和Manning,2016;Wu等人,2016)使用深度网络取得了最先进的成果,但其他作品(Jean等人,2015;Chung等人,2016;Sennrich等人,2016b)也取得了与浅层网络类似的成果。因此,深度的重要性以及浅层网络是否能够产生与深层网络相竞争的结果尚不清楚。在这里,我们探讨编码器和解码器深度对8层的影响。对于双向编码器,我们分别在两个方向上堆叠RNN。例如,Enc-8模型对应一个正向和一个反向4层RNN。对于更深层次的网络,我们还试验了两种残差连接变体(He等人,2016),以鼓励梯度流动。在方程式(4)所示的标准变体中,我们在连续层之间插入残差连接。如果h(l)t(x(l)t,h(l)t−1)是层l在时间步长t的RNN输出,则:

    其中x(0)t是嵌入的输入令牌。我们还探索了与(Huang et al.,2016a)在图像识别中使用的残差连接类似的密集(“ResD”)变体。在此变体中,我们添加了从每个层到所有其他层的跳过连接:

    我们的实现与(Huang et al.,2016a)的不同之处在于,为了保持状态大小不变,我们使用加法而不是串联操作。

    表3显示了在有和没有残差连接的情况下改变编码器和解码器深度的结果。我们没有发现明确的证据表明编码器深度超过两层是必要的,但发现具有残差连接的更深层模型在训练期间更容易发散。最好的深度残差模型取得了良好的结果,但正如大标准差所表明的那样,四次运行中只有一次收敛。

    在解码器方面,较深的模型比较浅的模型表现出小幅度的优势,并且我们发现,如果没有残差连接,我们不可能训练具有8层或更多层的解码器。在深度解码器实验中,密集残差连接始终优于常规残差连接,并且在步长计数方面收敛得更快,如图2所示。我们预计深度模型整体表现会更好(Zhou等人,2016年;Szegedy等人,2015年),我们相信我们的实验证明需要更稳健的技术来优化深度序列模型。例如,我们可能需要一个更好的调优SGD优化器或某种形式的批处理归一化,以便稳健地训练具有残差连接的深层网络。

    4.4单向与双向编码器

    在文献中,我们看到双向编码器(Bahdanaau等人,2015年)、单向编码器(Luong等人,2015a)以及两者的混合使用(Wu等人,2016年)。双向编码器能够创建同时考虑过去和未来输入的表示,而单向编码器只能考虑过去的输入。单向编码器的好处是,它们的计算可以在GPU上轻松并行,从而使它们比双向编码器运行得更快。我们不知道有任何研究探讨双向性的必要性。在这组实验中,我们探索了具有和不具有反向源输入的不同深度的单向编码器,因为这是一种常用的技巧,允许编码器为早期单词创建更丰富的表示。考虑到解码器端的错误很容易级联,早期字的正确性具有不成比例的影响。

    表4显示,双向编码器通常优于单向编码器,但差距不大。反向源编码器的性能始终优于非反向源编码器,但不优于较浅的双向编码器。

    4.5注意机制

    两种最常用的注意机制是加法(Bahdanau et al.,2015)变量,下面的等式(6)和计算成本较低的乘法变量(Luong et al.,2015a),下面的等式(7)。给定注意键hj(编码器状态)和注意查询si(解码器状态),每对的注意分数计算如下:

    \mathrm{score}(h_{j} ,s_{i})=<v,tanh(W_{1} h_{j}+ W_{2} s_{i} )>    (6)

    \mathrm{score}(h_{j} ,s_{i})=<W_{1} h_{j},W_{2} s_{i} >    (7)

    我们将W1hj和W2si的维度称为“注意维度”,并通过改变层大小将其从128变为1024。我们还通过使用最后一个编码器状态(无状态)初始化解码器状态,或者将最后一个解码器状态连接到每个解码器输入(无输入),来尝试使用无注意机制。结果如表5所示。

    我们发现,参数化的加性注意机制略优于乘性注意机制,注意维度的影响很小。

    虽然我们确实期望基于注意的模型比那些没有注意机制的模型表现得更好,但考虑到“非输入”模型在每个时间步都可以访问编码器信息,我们惊讶地发现它们的表现如此糟糕。此外,我们发现基于注意的模型在整个训练过程中对解码器状态表现出明显更大的梯度更新。这表明注意机制更像是优化梯度流的“加权跳过连接”,而不是像文献中通常所述的允许编码器访问源状态的“内存”。我们相信,在这个方向上的进一步研究是必要的,以阐明注意机制的作用,以及它是否纯粹是一种更容易优化的工具。

    4.6beam搜索策略

    beam搜索是一种常用的技术,用于通过树搜索来找到最大化某些评分函数s(y,x)的目标序列。在最简单的情况下,要最大化的分数是给定源的目标序列的对数概率。

    最近,诸如覆盖惩罚(Tu等人,2016年)和长度归一化(Wu等人,2016年)等扩展已被证明可以改善解码结果。还观察到(Tu等人,2017年)非常大的梁尺寸,即使有长度惩罚,也比较小的梁尺寸表现更差。因此,选择正确的光束宽度对于获得最佳结果至关重要。

    表6显示了改变光束宽度和增加长度归一化惩罚的效果。beam宽度为1对应贪婪搜索。我们发现,良好的beam搜索对于获得良好的搜索结果至关重要,并且它可以获得多个BLEU点的一致增益。与(Tu等人,2017年)类似,我们发现非常大的光束产生更差的结果,并且存在最佳光束宽度的“最佳点”。我们相信,进一步研究beam搜索中超参数的鲁棒性对于NMT的进展至关重要。我们还试验了覆盖率惩罚,但发现在足够大的长度惩罚下没有额外的收益。

    4.7最终系统比较

    最后,我们将newstest2013验证集上选择的所有实验中表现最好的模型(具有512维附加注意的基础模型)与表8中文献中的历史结果进行比较。虽然我们没有把重点放在这项工作上,但通过将我们的所有见解整合到表7所述的单一模型中,我们能够实现进一步的改进。

    虽然我们不提供架构创新,但我们确实表明,通过仔细的超参数调整和良好的初始化,可以在标准WMT基准上实现最先进的性能。我们的模型只有(Wu等人,2016年)的表现优于我们,这是一个非常复杂且缺乏公开实施的模型。

    5开源版本

    我们从经验上证明了超参数值的微小变化和不同的初始化是如何影响结果的,以及一些看似微不足道的因素(如经过良好调整的beam搜索)是如何至关重要。为了实现可重复性研究,我们认为研究人员开始建立在通用框架和数据处理管道上是很重要的。考虑到这一目标,我们专门构建了一个模块化软件框架,允许研究人员以最小的代码更改探索新的体系结构,并以可复制的方式定义实验参数。虽然我们最初的实验是机器翻译,但我们的框架可以很容易地适应摘要、会话建模或图像到文本的问题。OpenNMT(Klein等人,2017年)等系统具有类似的目标,但尚未实现最先进的结果(见表8),并且缺乏我们认为至关重要的功能,如分布式训练支持。我们希望,通过开放我们的实验工具包,我们能够使该领域在未来取得更快的进展。

    我们所有的代码都可以在https://github.com/google/seq2seq/.

    6结论

    我们进行了我们认为是对神经机器翻译的体系结构变化的第一次大规模分析,取笑了实现艺术效果的关键因素。我们展示了许多令人惊讶的见解,包括beam搜索调整与大多数架构变化一样重要,并且使用当前的优化技术,深度模型并不总是优于浅层模型。在此,我们总结了我们的实际发现:

    •尺寸为2048的大型嵌入件取得了最佳效果,但幅度较小。即使是128维的小嵌入似乎也有足够的能力捕获大部分必要的语义信息。

    •LSTMCells始终优于GRUCells。

    •具有2到4层的双向编码器性能最佳。更深的编码器明显更不稳定的训练,但显示出潜力,如果他们可以很好地优化。

    •深4层解码器的性能略优于浅层解码器。残差连接是训练8层解码器所必需的,密集的残差连接提供了额外的健壮性。

    •参数化的附加注意产生了总体最佳结果。

    •具有长度惩罚的优化beam搜索至关重要。光束宽度为5到10,加上长度惩罚为1.0,似乎效果良好。

    我们强调了几个重要的研究问题,包括有效使用嵌入参数(4.1),注意机制作为加权跳跃连接(4.5)而不是记忆单元的作用,需要更好的深度递归网络优化方法(4.3),需要更好的beam搜索(4.6),对超参数变化具有鲁棒性。

    此外,我们还向公众发布了一个开源NMT框架,该框架专门用于探索架构创新和生成可复制的实验,以及所有实验的配置文件。

    致谢

    我们要感谢Eugene Brevdo采用TensorFlow RNN API,使我们能够更清晰地编写框架。我们还感谢Andrew Dai和Samy Bengio提供的有益反馈。

    相关文章

      网友评论

          本文标题:seq2seq:神经机器变换架构的大量探索

          本文链接:https://www.haomeiwen.com/subject/jecrcrtx.html