SFFAI分享 | 周龙:同步双向文本生成【附PPT与视频资料】

2020-05-14 10:35:55 浏览数 (1)

导读


基于双向编码的BERT在11项自然语言理解任务上取得了惊人的效果,而目前主流的自然语言生成任务(包括机器翻译,自动摘要等)仍然采用单向解码,即从左到右依次产生目标文本。基于此,我们实现了两大突破:

(1)编码器-解码器框架:从双向编码到双向解码。传统自左往右的解码方式仅仅能充分利用已经产生的历史信息,而无法利用还未生成的未来信息。我们提出了一种基于双向解码机制的同步双向文本生成模型。该模型使用从左到右和从右到左的解码同时交互地预测其输出,以便同时利用历史和未来的信息。

(2)序列生成:从两端到中间。正常人说话都是从第一个词到最后一个词顺着说,极少数人可以从最后一个词到第一个词倒着说!不管是顺着说还是倒着说,计算机都可以很容易实现。最近我们进一步实现了一个计算机不太容易实现人类肯定无法完成的事情:同时顺着说和倒着说,到中间点结束!

作者简介


周龙,中科院自动化所模式识别国家重点实验室在读博士生。研究方向为自然语言处理,机器翻译,自动文摘,自然语言生成等。在国际著名期刊和会议TACL、ACL、IJCAI等发表论文数篇,曾获国际自然语言处理与中文计算会议NLPCC 2017最佳论文奖。

1、编码器-解码器框架:从双向编码到双向解码


1.1 引言

概括地讲,自然语言处理包括两大任务:自然语言文本理解和自然语言文本生成。自然语言文本理解中,输入文本是给定的,从而双向编码是很自然的选择。BERT最大的优势之一也在于使用了Transformer中基于自我注意机制的双向编码模型,其可以充分利用上下文信息。但是,对于采用编码器-解码器框架的自然语言文本生成而言,由于输出文本不可预知,传统自左往右的解码方式仅仅能充分利用已经产生的历史信息,而无法利用还未生成的未来信息。于是,我们便提出一个如图1所示的大胆想法:能否像双向编码一样,设计一种双向解码机制,从而有效建模历史和未来信息?

图1:单向解码和双向解码的对比示意图

1.2 所提方法

图2显示了我们提出的同步双向解码机制示意图。自然语言文本生成模型保持从左往右和从右往左的同步解码,但是在每个时刻两个方向的解码都进行充分的交互。预测

时不仅可以利用历史预测结果

,同时可以利用未来信息

;同理,预测

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

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

。越到中间部分,可利用的历史和未来信息就越丰富和完整。图中所示的SBAtt即融合双向信息的同步双向注意力模型。

图2 同步双向解码机制示意图

为此,我们提出了图3所示的双向柱搜索解码算法。以柱大小b=4为例,每一时刻

方向利用同步双向注意机制SBAtt进行同步解码,并分别保留

个最优候选。如果当前时刻预测结果为结束符〈/s〉,则将该候选放入完整候选列表。当完整候选列表达到b的规模,则停止解码,输出列表中概率最大的候选作为最终输出。如果最终结果来自于

方向,则需要在输出前对结果进行逆序操作。

图3 标准柱搜索算法和同步双向柱搜索算法

1.3 实验结果

我们分别在三个神经网络机器翻译任务和文本自动摘要任务上进行了实验。表1展示的是NIST数据集汉英翻译的实验结果。

表1 汉英任务实验结果

相较于基线系统,我们提出的模型实现了显著的提升。此外,我们还就解码速度,不平衡输出问题,长句翻译问题,重翻漏翻问题等进行了详细的对比,充分显示了模型的优越性。表2给出了一个具体的翻译示例。

表2 汉英翻译示例

1.4 总结

现有的文本生成模型通常采用从左到右的方式依次生成输出序列。然而,这种单向解码框架不能充分利用从右向左解码方向产生的目标语言侧的未来上下文信息,因此存在不平衡输出的问题。基于此,我们提出了一种同步双向文本生成模,该模型使用从左到右和从右到左的解码同时交互地预测其输出。相关研究成果在2018年10月已被自然语言处理顶级期刊TACL接收。相关代码和使用说明请参考Github链接https://github.com/wszlong/sb-nmt

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

2、序列生成:从两端到中间


2.1 动机

基于编码器-解码器结构的序列生成模型被广泛应用自然语言生成任务,例如神经机器翻译,摘要生成,对话系统等等。这种框架通常采用自回归的方式,即从左到右依次地生成目标语言单词,因此它面临两个缺点:

(1)当输出句子变长时,这种自回归解码过程非常耗时,其解码时间和生成序列的长度成线性关系;

(2)解码时只能依赖已经生成的历史序列,缺乏未来信息的指导。

为了缓解这些问题,我们提出了一个如图4所示的同步双向序列生成模型(SBSG)。首先,该模型采用了从目标序列的两端往中间的生成方式,每个时刻可以生成两个单词,因此相对于传统的序列生成模型,理论上可以减少接近一半的解码时间。其次,在SBSG模型中,我们使用了一个交互双向注意力网络来实现从左到右解码(L2R)和从右到左解码(R2L)之间信息的相互利用,即一种解码模式可以利用另一种解码模式生成的序列来指导当前的解码。

图4 从两端到中间的序列生成模型

2.2 模型结构

该模型建立当前序列生成性能最佳的Transformer基础之上,其结构如图5所示,包含一个编码器和一个双向的解码器。

图5 模型结构

编码器与标准Transformer编码器一致。在解码器中,在输出句子开头的两个特别标签(<l2r>和<r2l>)是用来引导序列生成从左到右或者从右到左生成。双向解码器根据编码器编码完成后的隐层表示,使用提出的双向多头注意力机制,每个时刻产生两个目标单词。

模型的核心在于双向多头自注意力模型(Bidirectional Multi-Head Intra-Attention),其作用是L2R解码和R2L解码相互监督和借鉴的桥梁,即L2R(R2L)解码当前单词时的生成不仅依赖于其先前生成的输出,还依赖于由R2L(L2R)解码预测的未来文本。此外,图5中的双向多头跨注意力模型(Bidirectional Multi-Head Intra-Attention)是由两个标准的多头注意力模型(Multi-Head Attention)拼接而成,分别执行L2R和R2L的隐层状态和源端表示的注意力操作。当训练完成之后,就可采用提出的双向解码算法(Bidirectional Beam Search Algorithm)进行解码。

2.3 实验结果

本文在两个典型的序列生成任务(神经网络机器翻译和生成式文本摘要)上验证了模型的有效性。

表3 机器翻译实验结果

表3显示的是在神经网络机器翻译上的实验结果,可以发现我们的模型相较于标准的Transformer,获得了1.5倍左右的速度提升,并且显著地提高了翻译质量。同时,我们在表4所示的文本摘要任务中也得到了相同的结论。

表4 文本摘要实验结果

2.4 总结

针对现有序列生成模型存在的问题,我们提出了一种新颖的同步双向序列生成模型,它能同时和交互地执行从目标序列的两端往中间解码。不同于生成质量出现显著下降的非自回归模型,我们的模型相比于当前最优的自回归的Transformer模型在序列产生质量和解码速度上都实现了显著的提升。

相关细节可参考发表于人工智能顶级学术会议IJCAI-2019的论文:

Long Zhou, Jiajun Zhang, Chengqing Zong and Heng Yu. Sequence Generation: From Both Sides to the Middle. IJCAI-2019.

0 人点赞