作者 | 丛末 编辑 | Camel
第十五届全国机器翻译大会(The 15th China Conference on Machine Translation, CCMT 2019)于2019年9月27日至29日在江西南昌举行。本次会议由中国中文信息学会主办,江西师范大学承办。CCMT旨在为国内外机器翻译界同行提供一个交互平台,加强国内外同行的学术交流,召集各路专家学者针对机器翻译的理论方法、应用技术和评测活动等若干关键问题进行深入的研讨,为促进中国机器翻译事业的发展,起到积极的推动作用。
近年来,随着深度学习的出现和计算能力的提高,机器翻译也取得了较大的进展,在数据量比较充足的情况下,都能够实现非常不错的效果,然而在一些资源稀缺、领域或者说小语种的翻译任务上,有时神经网络机器翻译的表现甚至还不如基于统计的机器翻译。对此,研究人员提出了一些数据增强的技术,例如 Back Translation、将一些词替换成一些相似的词等,以此来增加机器翻译的数据,从而提高机器翻译的质量。
在 9 月 27 日至 29 日召开的全国机器翻译大会(CCMT)上,一场主题为「机器翻译数据增强技术探讨」的圆桌会为大家带来了数据增强技术在机器翻译中的应用现状以及未来的应用前景的讨论和展望。
从左到右:刘树杰博士、陈毅东副教授、陈博兴博士、刘群教授、黄辉副教授、王明轩博士
本场圆桌会由微软亚洲研究院高级研究员刘树杰博士主持,华为诺亚方舟实验室语音语义首席科学家刘群教授、阿里巴巴达摩院资深算法专家陈博兴博士、中国澳门大学科技学院电脑及资讯科学系黄辉副教授、厦门大学信息学院陈毅东副教授,以及字节跳动翻译技术负责人王明轩博士五位机器翻译领域的专家坐镇。
我们下面来看本场圆桌会中,各位专家都探讨了哪些话题~
1、目前机器翻译中最常用的数据增强方法:Back Translation
刘树杰:大家在机器翻译领域的研究和工作中应用到的数据增强技术主要有哪些?
陈毅东:我本人在数据增强方面并没有很深入的研究,但是我在与学生做评测过程中确实也用到了一些数据增强技术,主要有两个:一个是比较常用的 Back Translation;另一个是我们去年参加 CCMT 多语言评测时,通过加入多语言的标签来利用其它多语言对训练模型做数据增强,这种方法类似于 Back Translation 的变体。
陈博兴:阿里主要偏向应用,目前在机器翻译场景下用得最多并且最有用的,还是 Back Translation。其次,我们在做 Quality Estimation 的时候,也会采用对齐技术生成类似于给词打「Bad」和「OK」标签的伪数据的方法。另外我们在 Disfluency Detection,即口语输出的不流利检测中也会加一些伪数据,人为基于规则加入的一些不流利数据本身也就自带了标签。所以,我们在不同的场景下,一般都会用到类似的生成伪数据的方法。
刘群:我认为数据增强是一项重要的技术,因为其实不光是机器翻译,自然语言处理的很多研究方向,特别是在工业界,数据稀缺都是一个很大的问题。到华为以后,我发现了一个研究课题,叫做文本复述(paraphrasing),这个课题我之前也了解过,但是不怎么感兴趣,而到工业界后,我发现 paraphrasing 太有用了,并且应用价值比我想象得要大得多,因为工业界的大部分应用场景都没有标注数据。
现在大家都提到 Back Translation 在机器翻译中特别有用,我们在相关工作中应用这项数据增强技术时,也发现它非常有用。并且,Back Translation 这个课题本身还是很值得研究的,比如我今年参加 WMT 评测的时候,就发现大家都在对这个方法本身做一些改进,而其实 Facebook 去年就针对 Back Translation 做了一些改进工作,今年则有更多单位都在往这个方向做相关工作,我认为都是比较有价值的。
我今天之所以在这里提这一点,一是因为 Back Translation 确实很有用,二是因为它本身的应用是有一些小技巧的,大家可以更加深入地研究。
另外值得一提的是,我们现在一个比较有意思的工作是采用字典的方式做数据增强。其实现在很多场景可能没有双语数据,但都有字典。以我们今年参加 WMT 的 Biomedical 机器翻译任务为例,中-英基本没有双语数据,但有字典,在这种场景下,如何利用字典来生成领域内的双语数据呢?这是我认为比较有意思的一个研究课题,目前我们也在这个方向上做了一些工作。
黄辉:我也分享一下我们是在机器翻译的数据增强方面的一些经验。除了简单的进行数据增强,我们也从不同的层次在做一些尝试,主要分为三个层次:
- 第一个是句子的层次,Back Translation 就是一个很好的例子。
- 第二个是词的层次,比如说采用加噪音、扔词、换词等方式。我认为这个层次上,数据增强主要解决两个问题,一个是鲁棒性的问题,即让系统获得更多不同样式的句子来学习,二是过拟合的问题。
- 第三个是词向量的层次,我们之前做了一个工作,叫做 Shared Private Embedding,比如说在 Low-resource 机器翻译的情况下,我们根据源端和目标端的词对齐信息,将两端的词汇进行不同程度词向量的共享。
同时,我们发现在做无监督机器翻译时,在学习词向量的映射关系上,Back Translation 有助于学习好词向量对齐信息,效果非常好。所以说,Back Translation 除了在数据增强方面很有用,在无监督机器翻译方面也作用很大。
王明轩:黄老师其实是从粒度的层次来分。我觉得在预训练上,如果从应用角度来看,可以分为两个方向:
第一种是目标端有语料,源端没有语料。比较常用的 Back Translation 就是这种情况的一个典型方法。第二种情况是源端有语料,目标端没有语料。
Back Translation 的有效性是充分验证的,但是这块的理论分析目前还是没有形成统一的认识,其中一个原因是目前大部分研究是在一些限定的数据集上使用这一方法。而从工业界来看,我认为很有意思的一个不同点在于,学术界中的训练数据是固定的,并且和通常情况下无监督单语数据、双语数据和测试集的分布也是一致的。这种情况下,数据增强的上限相对比较低,很多结论都认为单语数据有效但是不应该增加太多,比如超过一倍,其实是因为无监督数据多样性不够,而且对训练集的补充不够;然而在工业界,我们比较喜欢更大规模的单语数据,保证数据的多样性,几乎可以认为单语数据能一直增加即使是双语数据的 10 倍,也是有效的。比如说 GPT 汇聚了整个互联网的数据,它可能不再需要考虑领域的问题了,因为它几乎在所有领域上的表现的都非常好。
而 Back Translation 其实也是这种思路,即一直去采样多样化的数据。而且我个人认为,只要目标的数据是真实的,采样的数据是没有上限的。
第二种恰好是一个对偶问题,也就是如何去利用源端的数据,这一点其他各位老师提的比较少。我们现在一直在使用微软的一项工作,叫做 R2L Regularization,普遍的认知是源端的数据必须是真的,而在微软的这项工作中,即使源端数据是伪数据,同样有效。这项工作提供的一个视角是从表示上来进行数据增强,我认为也可以从模型集成的角度出发,即一个系统从另一个系统采样的结果来学习知识。
另外,黄老师刚刚提到的预训练模型也是一个角度。比如说有大量的 Monoligual data,可以去比较自然地将比如说 BERT 结合到机器翻译中,目前我们在这方面也在做一些工作,我认为这个方向未来也比较有前景。
刘树杰:大家刚刚都总结得很好,大家都提到了 Back Translation,并且感觉是非常有用的,但是它本质上就像王老师所说的,真的目标数据生成假的源数据,这种方式为什么比真的源数据生成假的目标数据更有效一些?大家认为这是什么原因?
王明轩:源语言数据对源语言表示增强肯定是有用的,但是如果用它来生成假的目标数据进行学习的话,可能无法完全获得源信息,利用是不够充分的。我认为对源语言数据的利用最有效的可能是 pretrain。目标语言的利用可能更自然一些,通过 Back Translation 生成的数据目标端始终是真实的。
刘群:我觉得这一点其实很好理解,比如我们做 SMT 时,我们做语言模型肯定是在目标端做,而不会在源端做。如果源端翻译成假的目标数据,是会干扰到目标端的语言模型的。反过来,目标端翻译成假的源数据,实际上我们是比较少遇到这种数据的,因而不会对翻译产生不好的影响。而且目标端一定要是真,才能够保证生成比较好的数据。
陈博兴:关于这一点,其实我们之前做过一个小的实验,是在数据比较小但是真实的情况下,真的目标数据翻成假源数据比真的源数据翻成假的目标数据更有用,刚刚刘群老师也讲的很清楚了,我不再重复。
实验中,假如我们有非常多真实的数据,比如说有一亿个数据,用我们的系统对这一亿个原文进行翻译,然后用生成的目标伪数据再翻译一遍,我们发现伪数据翻译出来的结果比前一个亿的真实数据翻译出来的结果更好。其中的关键在于,你用来系统生成的目标伪数据是否靠谱,数据量大的话,可以做规整化;数据量小的话,生成的目标伪数据可能就不靠谱了。
刘树杰:Back Translation 有几种生成伪数据的方法,比如说基于 Beam Search 的,基于 Greedy Search 的,或基于 Sampling 的,不同的策略可能会带来不同的效果,而且不同的方法生成伪数据的速度也会不同。不知道大家都是使用哪种策略?
陈博兴:其实由于我们的算力不成问题,所以我们通常使用的方法是 Beam Search。
2、数据增强在资源丰富的翻译任务上是否有用?
刘树杰:大家刚刚谈到的都是在一些资源稀缺的任务上进行数据增强,不知道在例如中-英、英-法此类资源丰富的翻译任务上,数据增强技术是否也有一些作用?
刘群:我认为还是很有用的,因为数据永远都不会太多,不会完全足够。比如说在中-英任务上,原本就已经有上千万的数据,我们使用数据增强来增加数据还是非常有用的。
陈博兴:如果是领域数据,比如说医学领域的数据很少,那我们做数据增强是很有帮助的,但是如果是一个拥有 4 到 5 亿的训练数据的通用领域,再增加很多的伪数据,其实基本上不能带来收益。所以我认为关键是要看某个真实场景中所需要的数据是否足够,如果足够的话,增加更多的伪数据可能就不一定有用了;如果还不够的话,那就是有用的。
刘群:我不太同意陈老师的看法。比如说虽然你原本的数据足够大,基本能覆盖测试数据,然而还可能还存在测试数据没有覆盖到的情况,这样的情况下,增加的伪数据可能就恰好覆盖到了原来数据没有覆盖到的情况,这同样是有用的。正如刚刚明轩提到的,我们对数据的要求是无穷无尽的,数据是永远不会足够的。
陈博兴:一种情况是原本的数据完全能覆盖评测数据,另一种情况就是刚刚刘群老师提到的情况,但在这种情况下,增加伪数据也会带来噪声。另外大家刚提到的观点——「只要目标端数据是真的,哪怕源端的数据是假的,关系不大」,我认为也并不是完全绝对的,因为只要带来了噪声,其实多少还是会有损害的。所以我们都要尽量模拟输入数据原本的样子,生成与原本数据类似的数据,这样才是有帮助的。
王明轩:对,但有时候源端数据其实并不那么好,加一些噪音可能反而会提高效果。目前在我们的工作经验中,Sampling 的数据增强效果要比 Beam Search 要好,当然大家的经验可能有些不太一样。
3、预训练模型如何与现有数据增强技术结合得更好?
刘树杰:刚刚王明轩老师和黄辉老师都提到,其实预训练模型也是数据增强的一种方法,那它与现有的数据增强技术是否有比较好的结合方式呢?我知道今日头条最近也做过一个相关的工作......
王明轩:我觉得这项工作其实结合得并不是很好。我认为最好的方法应该是一同对所有的数据进行训练,而不是直接用预训练模型去做下游的任务。
刘群:我们尝试过用预训练模型去改进机器翻译。实际上如果双语的数据已经很大了的话,预训练模型的作用不是很大。我们现在做的初步实验结果是这样的。刚刚明轩提到的联合训练,清华大学有一位博士生之前在一篇 ACL 2016 的论文中做过类似的工作,思路跟 Back Translation 差不多。
陈博兴:目前 BERT 在机器翻译任务中确实还没有太大的提高,但是我相信会提高,因为单语言的语料是无穷无尽的,BERT 等方法是能够学到很多知识甚至一些常识的。有很多常识是我们现在没有办法描述出来的,但对于机器翻译而言,肯定有较大的帮助,不过至于怎样使用这些常识帮助机器翻译,我们目前还没走到这一步。
刚刚在台下,我也在跟其他专家提到,我们要做一些有意思的机器翻译测试,比如说我们可以考虑构建一个测试集,它的一个要求就是机器必须具备人的常识才能翻译正确,这样才能从常识的角度来提高机器翻译的效果。而现在的测试中,机器翻译即便没有常识也能够将英文翻译得不错,在这种情况下是很难推动机器翻译得到真正提高的。
刘群:但其实常识这个东西是很难定义的,相较于之前的 SMT 而言,现在机器已经学到了不少常识,但还是会犯常识性的错误。所以到底要学习到多少常识才够呢?我们目前也不好界定。
我自己也考虑过常识问题,比如说,我们曾经用机器生成一个句子,结果生成的句子很奇怪——「一架飞机在离它机舱 50 米的地方爆炸了」,但是我们又说不出这个句子犯的常识错误在哪儿。因此这种隐藏得比较深的常识,机器很难学到,而我们目前也没有很好的办法将这种常识错误给总结出来。
刘树杰:那您认为现在是否到了去解决这种常识性问题的时机呢?
刘群:我认为现在是可以考虑的,并且我们现在到了应该直面这个问题的时候了。
4、数据增强技术在其他 NLP 任务中的应用潜力如何?
刘树杰:现在数据增强技术在机器翻译中用得比较多了,那在其他 NLP 任务上有哪些应用潜力呢?
黄辉:数据增强最早来自于图像处理领域,相对而言,机器翻译中的数据增强应用还处于刚刚起步的阶段。而在自然语言领域,BERT 是一个应用数据增强技术的很好例子。
陈博兴:刚刚我们提到在不流利检测中也用到了数据增强技术,其实所有有监督的任务,在数据量不够的情况下,我们都可以用这种方法。并且深度学习方法出现以后,数据增强生成的这些伪数据都可以做预训练。所以,这种生成伪数据的方法可以扩展到几乎所有其他的场景中去。
王明轩:我们之前也做过一些实验,即在 ASR 和 TTS 中做 Back Translation,然而发现数据增强在这些任务上并不是很有用,所以数据增强的效果可能跟任务的特性存在一定的关系。
刘群:其实 NLP 领域中用数据增强技术的场景非常多,尤其是工业场景中。我这里举两个例子:一个例子是给数据打标签,很多时候标签足够大,然而真正打了标签的数据很少,这样的话采用数据增强能够增加很多数据;另一个例子是对话,因为对话也是一个数据稀缺的场景,如果能够用数据增强来增加数据,是非常有帮助的。
黄辉:说到在 ASR 中做数据增强,其实我之前也考虑过这个问题,比如说现在我们的语音合成系统能够生成大量的伪数据来进行训练,但是结果发现并不可行,因为系统生成的语音非常单调,是不具备人类语音的生物特征的。
5、如何在数据增强这个课题上找到发论文的好想法?
刘树杰:我最后替现场台下的同学问一个问题,如果想在数据增强这个课题上做深入研究,大概可以从哪些角度出发?也就是说,如果想发一些这个主题的论文,有哪些好的想法吗?
王明轩:其实我认为现在还有很多可以研究的点,第一点,比如说深度学习以后,可以尝试结合其他模态进行研究,例如可以将数据增强技术应用到语音到语音的翻译任务中,实际上现在语音翻译的数据非常少,数据增强会有很大的发挥空间;第二点,我们现在比较关注文档翻译,现在例如 GPT 其实已经能够做整篇文档的翻译,我认为可以尝试去进行难度更高的翻译任务,数据增强技术也能够得到很好的发挥。
黄辉:我觉得要发好论文,首先要多看论文,要看看目前别人在做什么。例如说可以从我刚刚提到的三个层次,来看 Back Translation 到底做得好不好,我认为还是有很多值得研究的点。另外,我认为我们现在在很多研究上都还是比较初步的,例如在评测中,大家还仅仅停留在觉得哪个方法好用就用哪个方法的阶段,而并没有很深入地分析这些方法本身。
陈博兴:现在这个领域的研究人员无论是国内还是国外,都实在太多了,往往大家能够简单地想到的点,实际上已经有人做过了。所以我们要想一些更难、更深的问题。比如说我现在想到的一个比较难的问题,就是说自然语言数据其实是天然分布不均匀的,不管增加多少数据,总会存在有的类型的数据多、有的类型的数据少的情况,而我们训练数据的方法是最大似然,它总会生成数量最多的那类数据,那我们是否有办法来解决这个数据不平衡的问题呢?我认为可以尝试用数据增强的方法来试一试。
陈毅东:我认为早期语言学家比如说在字典中总结的一些规律性的东西,是可以用来指导数据增强的相关工作的。
本次会议的圆桌讨论还包含机器翻译技术应用探讨和机器翻译博士生培养探讨等议题。会议还包含特邀报告、学术论文报告、评测技术报告等环节。更多内容请查阅会议官方网站 https://ccmt2019.jxnu.edu.cn。
点击“阅读原文”打包下载本文论文