万博

欢迎访问 浙江万博制药机械有限公司 官网
新闻中心

关于数据增强在机器翻译中的应用现状和前景刘群、黄辉等专场探讨

作者:万博  来源:万博manbetx官网  时间:2019-10-04 18:08  点击:

  近年来,随着深度学习的出现和计算能力的提高,机器翻译也取得了较大的进展,在数据量比较充足的情况下,都能够实现非常不错的效果,然而在一些资源稀缺、领域或者说小语种的翻译任务上,有时神经网络机器翻译的表现甚至还不如基于统计的机器翻译。对此,研究人员提出了一些数据增强的技术,例如 Back Translation、将一些词替换成一些相似的词等,以此来增加机器翻译的数据,从而提高机器翻译的质量。

  在 9 月 27 日至 29 日召开的全国机器翻译大会(CCMT)上,一场主题为「机器翻译数据增强技术探讨」的圆桌会为大家带来了数据增强技术在机器翻译中的应用现状以及未来的应用前景的讨论和展望。

  从左到右:刘树杰博士、陈毅东副教授、陈博兴博士、刘群教授、黄辉副教授、王明轩博士

  本场圆桌会由微软亚洲研究院高级研究员刘树杰博士主持,华为诺亚方舟实验室语音语义首席科学家刘群教授、阿里巴巴达摩院资深算法专家陈博兴博士、澳门大学科技学院电脑及资讯科学系黄辉副教授、厦门大学信息学院陈毅东副教授,以及字节跳动翻译技术负责人王明轩博士五位机器翻译领域的专家坐镇。

  我们下面来看本场圆桌会中,各位专家都探讨了哪些线、目前机器翻译中最常用的数据增强方法: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 确实很有用,二是因为它本身的应用是有一些小技巧的,大家可以更加深入地研究。

  这是我认为比较有意思的一个研究课题,目前我们也在这个方向上做了一些工作。黄辉:

  我也分享一下我们是在机器翻译的数据增强方面的一些经验。除了简单的进行数据增强,我们也从不同的层次在做一些尝试,主要分为三个层次:第一个是句子的层次,Back Translation 就是一个很好的例子。第二个是词的层次,比如说采用加噪音、扔词、换词等方式。我认为这个层次上,数据增强主要解决两个问题,一个是鲁棒性的问题,即让系统获得更多不同样式的句子来学习,二是过拟合的问题。

  第三个是词向量的层次,我们之前做了一个工作,叫做 Shared Private Embedding,比如说在 Low-resource 机器翻译的情况下,我们根据源端和目标端的词对齐信息,将两端的词汇进行不同程度词向量的共享。

  同时,我们发现在做无监督机器翻译时,在学习词向量的映射关系上,Back Translation 有助于学习好词向量对齐信息,效果非常好。

  所以说,Back Translation 除了在数据增强方面很有用,在无监督机器翻译方面也作用很大。

  黄老师其实是从粒度的层次来分。我觉得在预训练上,如果从应用角度来看,可以分为两个方向:第一种是目标端有语料,源端没有语料。比较常用的 Back Translation 就是这种情况的一个典型方法。

  Back Translation 的有效性是充分验证的,但是这块的理论分析目前还是没有形成统一的认识,其中一个原因是目前大部分研究是在一些限定的数据集上使用这一方法。而从工业界来看,我认为很有意思的一个不同点在于,学术界中的训练数据是固定的,并且和通常情况下无监督单语数据、双语数据和测试集的分布也是一致的。

  然而在工业界,我们比较喜欢更大规模的单语数据,保证数据的多样性,几乎可以认为单语数据能一直增加即使是双语数据的 10 倍,也是有效的。比如说 GPT 汇聚了整个互联网的数据,它可能不再需要考虑领域的问题了,因为它几乎在所有领域上的表现的都非常好。而 Back Translation 其实也是这种思路,即一直去采样多样化的数据。而且我个人认为,只要目标的数据是真实的,采样的数据是没有上限的。

  第二种恰好是一个对偶问题,也就是如何去利用源端的数据,这一点其他各位老师提的比较少。我们现在一直在使用微软的一项工作,叫做 R2L Regularization,普遍的认知是源端的数据必须是真的,而在微软的这项工作中,即使源端数据是伪数据,同样有效。这项工作提供的一个视角是从表示上来进行数据增强,我认为也可以从模型集成的角度出发,即一个系统从另一个系统采样的结果来学习知识。

  刘树杰:大家刚刚都总结得很好,大家都提到了 Back Translation,并且感觉是非常有用的,但是它本质上就像王老师所说的,真的目标数据生成假的源数据,这种方式为什么比真的源数据生成假的目标数据更有效一些?大家认为这是什么原因?

  我觉得这一点其实很好理解,比如我们做 SMT 时,我们做语言模型肯定是在目标端做,而不会在源端做。如果源端翻译成假的目标数据,是会干扰到目标端的语言模型的。反过来,目标端翻译成假的源数据,实际上我们是比较少遇到这种数据的,因而不会对翻译产生不好的影响。而且目标端一定要是真,才能够保证生成比较好的数据。

  实验中,假如我们有非常多真实的数据,比如说有一亿个数据,用我们的系统对这一亿个原文进行翻译,然后用生成的目标伪数据再翻译一遍,我们发现伪数据翻译出来的结果比前一个亿的真实数据翻译出来的结果更好。其中的关键在于,你用来系统生成的目标伪数据是否靠谱,数据量大的话,可以做规整化;数据量小的话,生成的目标伪数据可能就不靠谱了。

  刘树杰:大家刚刚谈到的都是在一些资源稀缺的任务上进行数据增强,不知道在例如中-英、英-法此类资源丰富的翻译任务上,数据增强技术是否也有一些作用?

  如果是领域数据,比如说医学领域的数据很少,那我们做数据增强是很有帮助的,但是如果是一个拥有 4 到 5 亿的训练数据的通用领域,再增加很多的伪数据,其实基本上不能带来收益。所以我认为关键是要看某个真实场景中所需要的数据是否足够,如果足够的话,增加更多的伪数据可能就不一定有用了;如果还不够的话,那就是有用的。

  一种情况是原本的数据完全能覆盖评测数据,另一种情况就是刚刚刘群老师提到的情况,但在这种情况下,增加伪数据也会带来噪声。另外大家刚提到的观点——「只要目标端数据是真的,哪怕源端的数据是假的,关系不大」,我认为也并不是完全绝对的,因为只要带来了噪声,其实多少还是会有损害的。所以我们都要尽量模拟输入数据原本的样子,生成与原本数据类似的数据,这样才是有帮助的。

  刚刚王明轩老师和黄辉老师都提到,其实预训练模型也是数据增强的一种方法,那它与现有的数据增强技术是否有比较好的结合方式呢?我知道今日头条最近也做过一个相关的工作......王明轩:

  我们尝试过用预训练模型去改进机器翻译。实际上如果双语的数据已经很大了的话,预训练模型的作用不是很大。我们现在做的初步实验结果是这样的。刚刚明轩提到的联合训练,清华大学有一个叫程勇的博士生之前在一篇 ACL 2016 的论文中做过类似的工作,思路跟 Back Translation 差不多。

  目前 BERT 在机器翻译任务中确实还没有太大的提高,但是我相信会提高,因为单语言的语料是无穷无尽的,BERT 等方法是能够学到很多知识甚至一些常识的。有很多常识是我们现在没有办法描述出来的,但对于机器翻译而言,肯定有较大的帮助,不过至于怎样使用这些常识帮助机器翻译,我们目前还没走到这一步。

  刚刚在台下,我也在跟其他专家提到,我们要做一些有意思的机器翻译测试,比如说我们可以考虑构建一个测试集,它的一个要求就是机器必须具备人的常识才能翻译正确,这样才能从常识的角度来提高机器翻译的效果。而现在的测试中,机器翻译即便没有常识也能够将英文翻译得不错,在这种情况下是很难推动机器翻译得到真正提高的。

  我自己也考虑过常识问题,比如说,我们曾经用机器生成一个句子,结果生成的句子很奇怪——「一架飞机在离它机舱 50 米的地方爆炸了」,但是我们又说不出这个句子犯的常识错误在哪儿。因此这种隐藏得比较深的常识,机器很难学到,而我们目前也没有很好的办法将这种常识错误给总结出来。

  现在数据增强技术在机器翻译中用得比较多了,那在其他 NLP 任务上有哪些应用潜力呢?黄辉:

  其实 NLP 领域中用数据增强技术的场景非常多,尤其是工业场景中。我这里举两个例子:一个例子是给数据打标签,很多时候标签足够大,然而真正打了标签的数据很少,这样的话采用数据增强能够增加很多数据;另一个例子是对话,因为对话也是一个数据稀缺的场景,如果能够用数据增强来增加数据,是非常有帮助的。

  说到在 ASR 中做数据增强,其实我之前也考虑过这个问题,比如说现在我们的语音合成系统能够生成大量的伪数据来进行训练,但是结果发现并不可行,因为系统生成的语音非常单调,是不具备人类语音的生物特征的。5、如何在数据增强这个课题上找到发论文的好想法?

  刘树杰:我最后替现场台下的同学问一个问题,如果想在数据增强这个课题上做深入研究,大概可以从哪些角度出发?也就是说,如果想发一些这个主题的论文,有哪些好的想法吗?

  其实我认为现在还有很多可以研究的点,第一点,比如说深度学习以后,可以尝试结合其他模态进行研究,例如可以将数据增强技术应用到语音到语音的翻译任务中,实际上现在语音翻译的数据非常少,数据增强会有很大的发挥空间;第二点,我们现在比较关注文档翻译,现在例如 GPT 其实已经能够做整篇文档的翻译,我认为可以尝试去进行难度更高的翻译任务,数据增强技术也能够得到很好的发挥。

  我觉得要发好论文,首先要多看论文,要看看目前别人在做什么。例如说可以从我刚刚提到的三个层次,来看 Back Translation 到底做得好不好,我认为还是有很多值得研究的点。另外,我认为我们现在在很多研究上都还是比较初步的,例如在评测中,大家还仅仅停留在觉得哪个方法好用就用哪个方法的阶段,而并没有很深入地分析这些方法本身。

  现在这个领域的研究人员无论是国内还是国外,都实在太多了,往往大家能够简单地想到的点,实际上已经有人做过了。所以我们要想一些更难、更深的问题。比如说我现在想到的一个比较难的问题,就是说自然语言数据其实是天然分布不均匀的,不管增加多少数据,总会存在有的类型的数据多、有的类型的数据少的情况,而我们训练数据的方法是最大似然,它总会生成数量最多的那类数据,那我们是否有办法来解决这个数据不平衡的问题呢?我认为可以尝试用数据增强的方法来试一试。

  声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。

万博

上一篇:秋季咽喉干燥太煎熬止咳食品哪种比较好

下一篇:滚筒刮板干燥机的空机运转操作


万博 | 关于我们 | 新闻中心 | 产品中心 | 企业荣誉 | 联系我们 | 网站地图
©2016 浙江万博制药机械有限公司 版权所有   赣ICP备18016433号-10   万博,万博manbetx官网