27

ACL2019最佳论文冯洋:Teacher Forcing亟待解决 ,通用预训练模型并非万能

 4 years ago
source link: https://www.tuicool.com/articles/qUNfAf3
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ACL 2019 大会近日落幕。来自中国科学院计算所、腾讯微信 AI 实验室、华为诺亚方舟、伍斯特理工学院等研究人员完成的机器翻译论文《Bridging the Gap between Training and Inference for Neural Machine Translation》获得了最佳长论文奖。在本文中,机器之心对此论文通讯作者、中国科学院计算所的冯洋老师进行了专访。

神经机器翻译是自然语言处理中的重要任务。目前的通用做法是,训练时输入源句子(source sentence)和目标句子(target sentence)组成的句子对,训练神经网络模型后,在测试集上生成翻译文本。

尽管近年来神经机器翻译相关的研究已经取得了长足的进步,神经机器翻译模型依然无法达到人类翻译的水平,更无法在专业领域取代人工翻译。其中有两个重要的原因阻碍了神经机器翻译的发展。

首先,神经机器翻译任务中模型训练的输入和模型推断的输入有很大的不同。在训练过程中,解码器生成字符的时候需要受到 Ground Truth,即参考句(Reference Sentence)的约束。而在推断过程中,生成的目标句中的每个字符完全根据模型给出的前一个字符进行推断,没有 Ground Truth 作为约束语境。

神经机器翻译中的第二个问题来自 Teacher Forcing 方法。这一方法要求模型的生成结果必须和参考句一一对应。尽管这一方法可以强制约束模型的翻译结果,加快收敛,但是缺点显而易见。首先,不可能保证某种语言中的每一个词在另一种语言中都有对应的词语。其次,强制词语对应消除了语义相似的其他翻译结果,扼杀了翻译的多样性。

而今年的 ACL 2019 最佳长论文——Bridging the Gap between Training and Inference for Neural Machine Translation 则对这两个问题提出了解决方案,并在多个机器翻译数据集上取得了一定的性能提升。在这一奖项出炉后,机器之心采访了论文通讯作者,中国科学院计算所的冯洋老师,请冯老师谈谈这篇论文和自然语言处理研究相关的事。

2QfyIrF.jpg!web

冯洋老师是中国科学院计算技术研究所副研究员,博士生导师,自然语言处理课题组负责人。2011 年在中科院计算所获得了博士学位之后,先后在英国谢菲尔德大学、美国南加州大学 Information Sciences Institute (USC/ISI) 开展研究工作。回国后先后在百度和清华大学工作,于 2017 年 6 月加入中科院计算所,入选计算所「新百星」人才引进计划。研究方向主要是自然语言处理、机器翻译和机器学习,先后在自然语言处理领域的顶级会议 ACL、EMNLP、COLING 等上发表了一系列论文,并担任 COLING 2018 的领域主席。发明了多项中国和美国专利,承担了国家重点研发计划、国家自然科学面上基金项目等项目,并作为主要参与人参与了美国国防部 DARPA 重大项目、欧盟重大项目和英国 EPSRC 基金项目。

以下为采访内容,机器之心进行了整理。

机器翻译目前最急需解决的问题是 Teacher Forcing

机器之心: 神经机器翻译(NMT)在自然语言处理领域已经算是一个比较成熟的方向,那么当您选择这个问题时,目标和基本想法都是什么样的?

冯洋:我选择研究神经机器翻译的原因是,它是一个相对定义比较规范的问题,问题本身的场景是固定的。因此,对于这个问题来说,做得好与不好,更多地取决于研究者对问题理解的深度,或者说算法的好坏。而对于团队来说,研究这一问题也是很有必要的,因为研究这一问题需要团队很「solid」(扎实)的积累。

机器之心: 也就是说,这一问题对于团队的基础技术和能力是一种很好的锻炼,一种很好的培养机会,可以这样理解吗?

冯洋:对的。

机器之心: 在机器翻译领域中,目前有哪些难点急需解决? 又有哪些有潜力的研究方向?

冯洋:我认为目前最大的问题是 Teacher Forcing,它要求模型生成的翻译和 Ground Truth 完全对应。首先,这样可能扼杀了翻译的多样性。另外,模型不可能完全保证和 Ground Truth 的译文完全一致。有时候,模型在某一句上,通过调参可以达到和 Ground Truth 完全一致的结果,但是在另一句话可能就无法达到了。对于没有达到完全一致的句子,模型会被给予惩罚,而并没有去评价翻译的结果好不好,这是一个问题。所以,对于有潜力的点,我认为训练的框架很值得研究。另外,基于语义的翻译也很值得探究。但是,目前研究成果很少,不是说不值得研究,而是难度非常大。下一步如果能对译文方面,对翻译结果有一个正确的评估,这是很重要的。

机器之心: 能否请您谈谈,目前自然语言处理领域比较值得关注和研究的热点问题?

冯洋:目前人机对话应该是比较热门的领域。这是因为它的应用场景很广阔。研究界尝试了很多方法,也取得了一定的效果,但是目前缺乏一种通用的、固定的场景,也缺乏一个得到验证的、广泛在工业界可以应用的模型。所以说我觉得人机对话接下来还有很长的路要走,应该是一个比较有潜力的研究方向。同时人机对话的需求也非常旺盛,现在有很多产品都在转向智能化,智能化就需要人机对话应用,比如智能音箱和导航等,在未来人机对话的应用会非常广泛。

至于机器翻译方向,它是由应用决定最终研究的方向。虽然机器翻译技术已经比较成熟了,但是仍有需求没有得到解决。现在各大公司依然在努力研究同声传译方面的技术,但是实际上太难做了。在实际应用中,演讲者所处的环境非常嘈杂,在演讲者即兴讲话的情况下,它的问题就会很明显。还有很多研究方面的工作需要去做。

关于最佳论文

为了解决机器翻译存在的问题,在论文 Bridging the Gap between Training and Inference for Neural Machine Translation 中,冯洋老师和团队成员提出了使用 Oracle 词语,用于替代 Ground Truth 中的词语,作为训练阶段约束模型的数据。

选择 Oracle Word 的方法有两种,一种是选择 word-level oracle,另一种则是 sentence-level oracle。

eueUNr6.png!web

词语级别的 Oracle Word 选择方法。 图源: 论文。

word-level oracle 的选择方法如图所示,在时间步为 j 时,获取前一个时间步模型预测出的每个词语的预测分数。为了提高模型的鲁棒性,论文在预测分数基础上加上了 Gumbel noise,最终取分数最高的词语作为此时的 Oracle Word。

sentence-level oracle 的选择方法则是在训练时,在解码句子的阶段,使用集束搜索的方法,选择集束宽为 k 的句子(即 top k 个备选句子),然后计算每个句子的 BLEU 分数,最终选择分数最高的句子。

当然,这会带来一个问题,即每个时间步都需要获得该时间步长度上的备选句子,因此集束搜索获得的句子长度必须和时间步保持一致。如果集束搜索生成的实际句子超出或短于这一长度该怎么办?这里研究人员使用了「Force Decoding」的方法进行干预。而最终选择的 Oracle Word 也会和 Ground Truth 中的词语混合,然后使用衰减式采样(Decay Sampling)的方法从中挑选出作为约束模型训练的词。

针对论文中的一些问题,机器之心也请教了冯洋老师。

机器之心: 我们知道,这篇论文的基本思想是: 不仅使用 Ground Truth 进行约束,在训练过程中,也利用训练模型预测出的上一个词语作为其中的备选词语,这样的灵感是从哪里得到的呢?

冯洋:我们很早就发现了这样一个问题——训练和测试的时候模型的输入是不一样的。我们希望模型在训练过程中也能够用到预测出的词语。看到最近一些周边的工作,我们慢慢想到,将 Ground Truth 和模型自己预测出的词一起以 Sampling 的方式输入进模型。

机器之心: 刚才您提到有一些周边的工作,能否请您谈谈有哪些相关的论文?

冯洋:这些周边的论文在 Related Work 中有写到,这些工作的基本思想都是一样的,都是希望将预测出的词语作为模型输入。比如说,根据 DAD(Data as Demonstrator)的方法。这一方法将预测出的词语和后一个词语组成的词语对(word-pair)以 bigram 的方式输入作为训练实例加入。另一种是 Scheduled Sampling 的方式,也是用 Sampling 的方式,把预测出的词语作为输入加入到模型训练中。

机器之心: 论文使用了两种方法实现将预测词语作为训练的输入,一种是在 Word-level 选择 Oracle Word,另一种是在 Sentence-level 选择 Oracle Sentence,能否请您详细介绍下 Sentence-level 的方法?

冯洋:Sentence-level 的方法可以简单理解为进行了一次解码。我们从句子中取出前 k 个候选译文。这里的 k 我们选择了 3,即 Top3 的句子。然后在这些句子中再计算他们的 BLEU 分数,并选择分数最高的句子,作为 Oracle Sentence。

机器之心: 我们知道,论文中,在选择 Oracle Sentence 的过程中会进行「Force Decoding」。 需要强制保证生成的句子和原有的句子保持一致的长度。 您认为这样的方法会带来什么样的问题?

冯洋:这是强制模型生成和 Ground Truth 长度一样的句子。这样模型可能会生成一些原本并不是模型想生成的结果,这可能会带来一些问题。但是对于 Teacher Forcing 来说这是必须的,因为 Teacher Forcing 本身要求每一个词都要对应。所以说,虽然看起来我们干预了句子的生成,但是在 Teacher Forcing 的场景下,这种干预不一定是坏的。

机器之心:为什么说这样的干预不一定是坏的?

冯洋:我们需要留意的是,Force Decoding 的方法是在训练阶段进行的,如果训练中这样做了,模型就会逐渐地适应这个过程。另一方面,Force Decoding 可以平衡一些极端的生成结果。比如说,当句子长度为 10,但模型只生成了仅有 2 个词的句子,或者是模型生成了有 20 个词的句子,所以说 Force Decoding 也可以平衡这样的极端情况。在 Teacher Forcing 的场景下,这是一种折中的方法,不能完全说这样的方法是不好的。

机器之心: 在研究的过程中您遇到了哪些困难的地方?

冯洋:研究过程也不是一直顺利的。在有了算法的时候,模型并没有达到理想的效果。我们不清楚是细节方面的一些问题,还是模型本身是不 work 的。对此,我们进行了一些尝试,最后发现是模型其实是 work 的。

机器之心: 在哪些方面进行了尝试?

冯洋:首先是 Decay 方面的问题,怎样让模型 Decay。第二个是关于选择 Oracle Word 和 Oracle Sentence,这些方面我们进行了很多尝试。

机器之心: 实验结果不理想的情况时,怎样进行改进呢?

冯洋:有几个方面可以进行改进。首先是神经网络上,由于神经网络它自身的特点,有些参数需要进行研究和调整。其次是关于模型本身,我们需要检查模型的输入的结果是不是想要的。一些中间结果也需要检查一下,我们需要从逻辑层面检查模型是否真正的按照预期去工作。

机器之心: 能否请您介绍下参与论文的研究团队?

冯洋:论文的一作张文是刘群老师的博士生,是该工作的主要完成者,近年来在自然语言处理顶会上发表了多篇文章。平时我会协助刘群老师指导张文的工作。还有一位作者是腾讯微信团队的孟凡东,是论文的三作,是我们实验室的优秀毕业生,会提出一些建议。还有一位作者是实验室的实习生游狄。

机器之心:您参加了很多顶会。我们近年来看到有很多华人学者参与顶会,也获得了很多奖项,您怎样看待这个现象呢?

冯洋:这可以叫做「中国崛起」现象吧,其实很正常。我觉得现在神经网络研究对我们华人学者是一个很好的机会。大家都知道,华人学者能力很强。在过去,很多研究需要积累,很多单位因为过去的积累比较多,所以在此基础上做出的成果也比较多。而现在神经网络时代,这个领域刚兴起,大家的基础积累是一样的。另外,神经网络的很多研究是开源的,这样就打破了很多壁垒。我们华人学者学习能力很强,在这样的环境下,我们崛起是很正常的。

预训练模型虽好,但专业场景需要专业解决方案

机器之心:我们知道最近有很多预训练语言模型,如 BERT 和 XLNet,在多个自然语言处理任务中取得了 Bench Mark。这些预训练语言模型也可以应用在神经机器翻译任务上,也取得了一定的效果。您觉得现在已经有很多这样的模型了,再去研究专门针对特定任务的架构,这样的意义和优势在哪里?

冯洋:像预训练语言模型这一通用架构,是可以帮助我们在特定的任务上提升效果,但是这些语言模型并没有针对特定的问题提出解决方案。所以说针对特定的任务提出解决方案是很有必要的,因为每个问题的场景都不一样。针对专业的场景应该有专业的模型,不可能有通用的模型可以解决所有的问题。

机器之心:前几天 Facebook 刚开源了一个新的预训练语言模型——roBERTa,在 BERT 的基础上增加了很多算力和训练的数据量。您觉得像这样疯狂地往模型上堆训练数据量和算力的方法,一定能取得很好的效果吗?

冯洋:就同样的模型来说,堆算力、扩大训练数据集肯定会有更好的效果。

但是,这样的方法更适合工业界。因为工业界有实际的应用,也有相应的能力,可以这样去做。在学术界来说,我们更要关注到算法方面的突破。有了好的算法,再加上好的算力,才能有更好的加成。

学术研究需要夯实理论基础,解决核心问题

机器之心:在您选题、立题过程中,有没有一些经验可以给读者朋友们分享一下?

冯洋:我建议我的学生去做以下几点。首先是要多读论文,这是肯定的。在读论文的过程中,不能只看对方做了什么,而是要善于去提炼论文要解决什么问题,然后是论文使用了什么样的方法。

在选题立题的过程中,首先需要明确要解决的问题是什么。第二个是你的解决方案是什么。在这个过程中,可以选择解决认为很重要的问题,或者是很感兴趣的问题。也可以去发现别的研究者没有考虑到的,有很大提升空间的问题,可以从这两个角度来选择。

机器之心:最后一个问题,您认为作为人工智能领域的研究者,应该秉持怎样的研究理念和治学的理念?

冯洋:我觉得,研究者需要能做一些解决一个或多个任务的关键问题的研究。从根本上解决问题,触及问题的核心,而不是为了把神经网络做好而去做研究。

此外,在学生培养上,我希望大家不要急着发论文,要做好的研究。平时要注意多做一些基础理论的积累,当基础理论打扎实了,研究的路会越走越宽。如果仅靠拍脑袋或者一时的灵感去做研究,刚开始能摘到一些低枝的果实,可能比较容易出成果。慢慢的,当大家都研究得越来越难的时候,出成果就会比较困难了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK