找回密码
 立即注册
搜索

中科院自动化所提出BIFT模型:面向自然言语生成,同步双向推断

雷锋网 AI 科技回复音讯,本文作者中国迷信院自动化研讨所张家俊,他为雷锋网 AI 科技回复撰写了基于 BIFT 的独家解读。注释内容如下:

前言:

概括地讲,自然言语处理包括两大义务:自然言语文本了解和自然言语文本生成。自然言语文本了解就是让机器洞悉人们所言之意,自然言语文本生成旨在让机器像人一样表达和说话。文本了解的关键在于对已知文本的上下文表征和建模,而文本生成的本质是在文本了解的基础上准确流利地产生自然言语文本。

自然言语了解既可以应用上文信息也可以应用下文信息,高效的双向编码才能正是 BERT 成功的关键要素之一。但是,自然言语生成由于都默许自左往右地逐词产生文本输入,预测某个时辰的输入只能应用上文的历史信息而无法访问还未生成的将来信息。例如将汉语句子“有五个人”自动翻译为英语时,从左到右的理想预测结果是“There”、“are”、“five” 和“persons”。虽然“persons”可以判别第二个词语应该是“are”而不是“is”,但是由于在预测第二个单词时,只能依赖曾经产生的单词“There”,而无法参考还未生成的“five”和“persons”。这个简单的例子就能反映出传统自左往右自然言语生成的弊端。我们提出的 BIFT 希望打破这种文本生成形式,采用同步双向推断模型为每个时辰的预测同时提供历史信息和将来知识。经过大量实验,我们发现 BIFT 相比于当前最好的模型,在几乎不牺牲效率的前提下可以获得非常分明的功能提升, 并且曾经成功运用于在线机器翻译系统,相关代码和运用阐明请参考 Github 链接:https://github.com/ZNLP/sb-nmt

运用 BIFT 一词就是希望让大家联想到 2018 年风靡全球的自然言语处理神器 BERT(Bidirectional Encoder Representation from Transformer)。将 BIFT 和 BERT 放在一同,我们希冀更好地讨论两者的联络和区别。假如不想详细了解,记住一句话那就可以了:BERT 着眼于编码器 Encoder,目的是提升自然言语了解的才能;BIFT 改变解码范式,旨在改善自然言语生成的效果。

BIFT 是我们近一年来的研讨工作成果,在 2018 年 10 月份 BERT 诞生时,我们其中的一项工作(Synchronous Bidirectional Neural Machine Translation)曾经被 Transactions on ACL 条件接收。BERT 非常伟大,在十多个自然言语了解义务中刷到最高分。相比而言,我们当时的工作只是在机器翻译义务上做出了行之有效的尝试,所以一定无法与 BERT 相提并论,只是联络在一同更容易描画和让大家了解。BIFT 目前在机器翻译和自动摘要两个自然言语生成义务(尤其是机器翻译义务)中获得了分明效果,我们希望 BIFT 在其他自然言语生成义务中也能大放异彩。

BIFT 和 BERT 有一个共同点:都是基于 2017 年 Google 提出的完全留意机制驱动的 Transformer 框架(如图 1 所示)。编码器 Encoder 对输入文本停止深层语义表示,解码器 Decoder 根据输入文本的语义表示产生输入文本。编码器和解码器都是由多层网络堆积而成,编码器中的每一层次要包括自我留意机制(Self-Attention)和前馈网络(Feed-Forward Network)两个子层,每个子层后面会紧接一个正则化操作,并且层与层之间会有残差衔接。相比编码器,解码器中的每一层有两点不同,一方面,自我留意机制只能应用曾经生成的部分历史前缀信息,而需求屏蔽还未产生的将来信息;另一方面,自我留意机制和前馈网络之间还包括一个建模输入和输入关系的 Encoder-Decoder 留意机制。


图 1:Transformer 框架

从 Transformer 的框架可以看出,自我留意是其有别于循环神经网络和卷积神经网络的本质。以汉语到英语的机器翻译义务为例,图 2 和图 3 展现了编码器和解码器中自我留意机制的工作流程。图 2 显示的编码模块中,对于输入的单词序列,每个单词首先映射为低维实数向量,① 表示第一个单词与包括本身的一切单词计算相关度,并对一切单词的向量表示根据相关度停止加权获得序列第一个单词更深一层的语义表示;② 采用相反的方式,平行计算输入序列中每个地位更深一层的语义表示;③ 应用相反的自我留意机制可以生成多层语义表示。

图 3 显示的解码模块中,第一个输入单词为末尾符,与编码器中每个地位的语义表示停止留意机制计算并加权得到第二层语义信息,① 采用相反的方式可以获得更多层的语义信息,最后应用 softmax 函数预测下一个时辰的输入“there”;② 预测下一个输入单词时,首先需求停止输入端的留意机制计算过程,然后再与编码器的语义表示停止留意机制计算;③ 停止相反的操作获得多层语音信息,再由 softmax 函数给出下一个时辰应该输入的单词“are”;④ 反复 ② 和 ③ 最终生成整个文本序列(普通直到产生结束符“”,中止解码过程)。


图 2:Transformer 的编码器表示图


图 3:Transformer 的解码器表示图


图 4: Transformer 编码器的 Self-attention 工作机理


图 5: Transformer 解码器的 Self-attention 工作机理

图 4 与图 5 分别展现了 Transformer 编码器和解码器中自我留意机制的计算方法:首先将词向量转化为具有相反维度的查询 Q、键 K 和值 V,然后用 Q 与 K 计算相关性,最后用相关性对 V 加权获得某个地位更深一层的语义表示。两张图的核心区别体如今图 4 编码器中每个地位的下层语义表示学习都可以应用上文和下文信息,而图 5 解码器中每个地位的下层语义表示学习只能应用曾经产生的历史信息。

BERT:

BERT 无疑是 2018 年自然言语处理范畴最令人兴奋的模型。BERT 以 Transformer 的编码器 Encoder 为模型框架的核心,为了处理自然言语了解中的分类和序列标注两大义务,BERT 在 Transformer 编码器的最下层添加一个特殊分类器(图 6 所示)或为每个地位添加一个分类器(图 7 所示)。

BERT 的成功次要可以归结到四点要素:(1)预训练(pre-training)和精细调优(fine-tuning)的模型架构;(2)以 Transformer 深层双向编码器为模型核心;(3)以 Masked LM 和下个句子预测义务构建优化目的函数;(4)超大规模训练数据的应用。对比 ELMo(Embeddings from Language Model)和 GPT(Generative Pre-trained Transformer)发现,BERT 最大的优势之一在于运用了 Transformer 中基于自我留意机制的双向编码模型。


图 6:BERT 中的分类模型


图 7: BERT 中的序列标注模型

BIFT:

图 8 简单展现了自然言语文本了解与自然言语文本生成之间的架构差别。自然言语文本了解中,输入文本是给定的,从而双向编码是很自然的选择。对于自然言语文本生成而言,由于输入文本不可预知,传统自左往右的解码方式仅仅能充分应用曾经产生的历史信息,而无法应用还未生成的将来信息。于是,我们便提出一个如图 9 所示的大胆想法:能否像双向编码一样,设计一种双向解码机制,从而有效建模历史和将来信息?


图 8:自然言语文本了解与自然言语文本生成的对比表示图


图 9:单向解码和双向解码的对比表示图

1. 双向推断的概率模型

自然言语文本生成义务中,我们普通采用下面的式子建模输入文本 y=

与 x=

之间的关系:

这就是典型的从左往右的文本生成范式。当然,也可以采用从右往左的文本生成范式:

但是上述两种方式都无法同时应用历史和将来信息。那么能否在预测

时同时依赖



呢?这种想法显然不太实践。由于,预测

时需求

已知,而预测

时需求

已知,可见是矛盾的,所以预测某个时辰的输入时无法同时应用全部的历史和将来信息。我们的想法是最大限制地发掘和应用历史与将来信息,从而提出同步双向推断的解码机制:


我们的想法可以由图 10 简要阐明:自然言语文本生成模型保持从左往右和从右往左的同步解码,但是在每个时辰两个方向的解码都停止充分的交互。预测

时不只可以应用历史预测结果

,同时可以应用将来信息

;预测

时,不只可以应用该解码方向的历史预测结果

,还可以同时应用另一个解码方向的将来信息

。越到中间部分,可应用的历史和将来信息就越丰富和残缺。


图 10:同步双向推断的解码机制表示图

以预测

为例,图 11 展现了同步双向推断模型的同步双向留意机制。

表示与 L2R 解码方向历史预测结果的自我留意机制的计算结果;同时,我们也计算 L2R 解码方向 i 时辰的隐层形状与将来预测信息(R2L 解码方向的生成结果)的自我留意机制结果

。最后,综合历史信息

和将来信息

,获得 L2R 解码方向 i 时辰更丰富的语义信息

。相似地,R2L 解码方向也可以综合历史信息和将来信息,预测




图 11:同步双向推断模型

2. 双向推断模型的柱搜索解码算法


图 12:同步双向推断模型的柱搜索算法表示图

图 12 给出了同步双向推断模型的柱搜索解码算法表示图。以柱大小 b=4 为例,每一时辰 L2R 和 R2L 方向应用同步双向留意机制 SBAtt 停止同步解码,并分别保留 b/2 个最优候选。假如当前时辰预测结果为结束符〈/s〉,则将该候选放入残缺候选列表。当残缺候选列表达到 b 的规模,则中止解码,输出列表中概率最大的候选作为最终输入。假如最终结果来自于 R2L 方向,则需求在输入前对结果停止逆序操作。详细算法流程见算法 1。

算法 1:同步双向推断模型的柱搜索解码算法


3. 参数训练

由于同步双向推断模型在解码过程中,L2R 和 R2L 方向同步并行解码,那么训练过程中针对平行句对(x,y),L2R 方向希望生成标准答案

,同时 R2L 方向希望生成标准答案的逆序结果

。给定包含 T 个平行句对的训练数据集

,我们旨在学习一套模型参数以最大化训练数据的对数似然:

当训练过程中计算

的概率时,假如同步双向推断模型直接采用

,将会遇到一个本人预测本人的成绩。例如,计算

时,

包括

,便导致

预测本人。显然,这样的训练方式无法学习到合理的模型参数。因此,我们提出两种参数优化策略,分别是两阶段法(two-pass training)和微调法(fine-tuning)。

在两阶段法中,我们首先在训练数据上独立学习 L2R 和 R2L 推断模型。然后 L2R 和 R2L 模型分别用来对训练数据的输入端停止解码,分别得到



。在第二阶段的训练过程中,我们应用

而不是

来计算

,异样的道理,我们应用

,而不是

来计算



在微调法中,我们首先训练一个如下述公式所示的没有交互的 L2R 和 R2L 平行推断模型,其中每个训练实例是一个三元组

(在



的句首分别加上特殊符号 l2r 和 r2l )。


上述训练过程收敛时,我们从训练数据中随机选取大批的平行句对(譬如 10% 的数据),并且应用该初始模型解码这些数据的输入序列,得到新的三元组

。最后,我们就可以应用这些三元组像两阶段法一样微调同步双向推断模型。对比两种训练策略,我们会发现微调法不需求应用两个独立模型对整个训练数据停止解码、不需求在整个训练数据上停止再次参数训练,该训练策略能够在实践中更受欢迎。我们的实验次要基于两阶段法,但我们也会给出两种策略的对比结果。

4. 实验结果

实践上,我们将同步双向推断模型不只用于 Transformer,还用于基于循环神经网络 RNN 的序列生成模型。在运用场景方面,我们不只测试了机器翻译的效果,同时也在句子摘要义务上停止了验证。这里只需引见机器翻译义务上的结果。

我们分别在汉语-英语和英语-德语两个机器翻译义务上停止了测试。汉语-英语采用约 200 万的双语训练数据,英语-德语采用与 Transformer 一样的设置。表 1 和表 2 分别展现了不同模型在汉英和英德机器翻译义务上的结果。

从表 1 可以看出,无论采用循环神经网络还是 Transformer,同步双向推断模型都可以分明提升译文质量。特别是在 Transformer 框架下,BIFT 模型展现了令人惊喜的提升空间。


表 1:不同机器翻译模型在汉英义务上的结果。

RNMT 表示基于 LSTM 的序列生成模型;RNMT (R2L)表示采用从右往左解码形式;BI-RNMT 是我们提出的基于同步双向推断的序列生成模型;Rerank-NMT 是一种译文重排序系统,即对 L2R 和 R2L 的候选结果应用全局特征停止重排序,选择最优结果;ABD-NMT 是一种异步双向解码模型,即首先停止 R2L 解码,然后应用 R2L 解码结果优化 L2R 解码过程。


表 2:不同机器翻译模型在英德义务上的结果

表 2 展现的英德机器翻译结果可以对比当前最好的模型。GNMT 是 2016 年 Google 发布的基于深层 LSTM 的序列生成模型;Conv 是 2017 年 Facebook 提出的基于卷积神经网络的序列生成模型;AttIsAll 是 2017 年 Google 提出的 Transformer 模型。表中的 Transformer 是我们重现的模型。可以发现,BIFT 模型在相反的实验设置下,可以分明超越当前最优的模型,获得了最好的结果。

表 3 给出了不同机器翻译模型的参数规模、训练和解码效率的对比结果。可以发现,BIFT 模型没有添加参数规模,而且几乎没有牺牲解码速度。


表 3:不同机器翻译模型的参数规模、 训练和解码效率对比。Train 栏表示每秒钟完成的 Batch 训练数目,Test 栏表示每秒钟翻译的句子数目。

表 4:参数训练策略的实验对比结果

表 4 给出了两种参数训练策略的实验对比结果。可以看到,无论是哪种训练策略,翻译质量都能得到大幅提升。虽然微调法没有两阶段法有效,但是也能获得 2 个 BLEU 值的功能提升。思索到微调法简单、方便易部署,我们置信这种参数训练策略在理想场景中会更受欢迎。更详细的模型描画和更多更丰富的实验分析可以参考下面的两篇文章:

Jiajun Zhang, Long Zhou, Yang Zhao and Chengqing Zong. 2019. Synchronous Bidirectional Inference for Neural Sequence Generation. arXiv preprint arXiv: 1902.08955

Long Zhou, Jiajun Zhang and Chengqing Zong. 2019. Synchronous Bidirectional Neural Machine Translation. Transactions on ACL, Vol. 7, pp. 91-105, 2019.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评2

书生未明 2019-5-5 15:20:47 来自手机 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊
回复

使用道具 举报

浅尝茗香 2019-5-6 07:37:07 来自手机 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies