作者 | 潘小小

编辑 | 陈大鑫

大家都知道目前研究界主流的多语言翻译模型主要在英语相关的语对上进行训练。这样的系统通常在英语相关的语向(有监督语向)上表现不错,而在非英语方向(零资源方向)的翻译效果不佳。

针对这个问题,字节跳动的研究者们近期提出了mRASP2,通过引入对比学习,辅以对齐增强方法,将单语语料和双语语料囊括在统一的训练框架之下,旨在充分利用语料,学习更好的语言无关表示,并由此提升多语言翻译性能。

实验结果表明mRASP2在有监督、无监督、零资源的场景下均取得翻译效果的提升。其中有监督场景平均提升 1.98 BLEU,无监督场景平均提升 14.13 BLEU,零资源场景平均提升 10.26 BLEU。

论文地址:https://arxiv.org/abs/2105.09501

接下来本文从三个方面介绍分析 mRASP2:

1、mRASP2 的背景和动机;

2、mRASP2的方法;

3、mRASP2 的实际效果和分析。

1

研究背景和动机

随着全球化进程不断加快,人们在进行外交、外贸、旅游等活动时都离不开跨语言交际。然而传统的人工翻译由于其价格昂贵、实时性差等缺陷,只适用于少部分场景。机器翻译的出现打破了这些限制,大大扩充了翻译的应用场景。现代机器翻译模型通过神经网络模型把输入的句子转化为另一种语言的句子。

目前主流的神经机器翻译是基于“编码器-解码器”结构,如下图所示,编码器将源语言的句子编码成为连续空间中的某个向量,而解码器从这个向量出发去生成目标语言的句子。

“编码器-解码器”的翻译过程和人类翻译过程很类似:对于人类来说,将一句话从一个语言翻译成另一个语言,也是先将原句的意思看懂,在脑子里形成一个句意的概念,再从句意出发,输出成另一种语言的文字。这样带来的效果是,意思相近的句子经过编码器后,其向量表示会分布在连续空间的相邻位置。

比如下图中的"Mary is loved by John"和"John loves Mary"这两句话是相同的意思,因此它们在编码器输出后的高维空间中,向量的分布比较接近;而"Mary loves John"的意思相反,因此其向量的分布就和之前两句话相距较远。

传统的机器翻译只能支持单个语向,而多语言机器翻译的模型有能力同时支持多个翻译语向。多语言机器翻译由于其低部署成本、有迁移学习效果等优点,在近几年引起研究者和工程师们的广泛关注。

作为mRASP2的前置工作,mRASP主要提出了“机器翻译预训练”的思路来达到高效利用不同语对的语料的目的。mRASP提出了基于平行词典的对齐替换(RAS),额外引入了词级别的对齐信息。实验证明,RAS的确拉近了同义词的高维表示,也间接拉近了同义句的高维表示。mRASP2在此基础上引入对比学习拉近同义句表示,显式地拉近同义句表示的距离。

在实际情况中,单语语料的数量远远大于平行语料的数量。对于传统的单向机器翻译模型而言,可以通过回译技术(back-translation)利用单语语料来增强翻译效果。而对于多语言翻译来说,虽然回译技术(back-translation)的方法依然有效,但是流程长且繁琐。mRASP2将单语双语放在统一框架下训练,充分且简单地利用广泛存在的各种语料。

2

模型结构和细节

mRASP2在多语言翻译的multilingual Transformer模型之上,在编码器(Encoder)端的顶部加入了对比学习任务。

这样的设计是基于一个经典的假设:不同语言中同义句的编码后的表示应当在高维空间的相邻位置。因为不同语言中的同义句对应的句意是相同的,也就是上文提到的“编码”过程的输出是相同的。比如“早上好”和“Good morning”这两句话对于懂中文和英文的人来说,理解到的意思是一样的,这也就对应了“编码后的表示在高维空间的相邻位置”。

训练目标设计

mRASP2在传统的交叉熵损失(cross entropy loss)的基础上,加入了对比损失(contrastive loss),以多任务形式进行训练。图中橙色的箭头指示的是传统使用交叉熵损失(Cross Entropy Loss, CE loss)训练机器翻译的部分;黑色的部分指示的是对比损失(Contrastive Loss, CTR loss)对应的部分。

  • 交叉熵损失函数(CE loss)

具体的损失函数如下:

交叉熵损失函数的目的就是使目标端输出的分布与真实分布尽可能一致。也就是说,对应目标输出的每个位置的真实分布(id_0: 0.0, id_1: 0.0, ......, id_true: 1.0, ......,  id_N: 0.0),模型输出的token概率分布要尽可能接近该真实分布。注意每个位置的交叉熵损失是独立的,因此CE loss是词级别(token-level)的。

  • 对比损失函数(CTR loss)

对比学习最早被应用在图像领域,通过缩小与正样本间的相似度/距离,扩大与负样本间的相似度/距离,使得正样本与锚点之间的距离远远大于负样本与锚点之间的距离。显然,对于自然语言处理任务来说,对比损失是序列级别(sequence-level)的。

在mRASP2的训练过程中,对训练数据里的每一个样本点(即一个平行句对),它的“锚点”是该样本点的源端句子的向量表示,即公式中的R(x^i),“正例”是该样本点的目标端句子的向量表示,即公式中的R(x^j),“负例”是同一个数据批次(batch)下其他样本点的目标端句子的向量表示的集合,即公式中的R(y^j)。具体的损失函数如下,其中sim(.,.)是相似度函数,在本文中,作者使用的是比较经典的余弦相似度。

每个句子的向量表示R(*)是编码器最后一层输出的隐变量(hidden states)的平均向量。

文中的是“温度”,它是一个重要的超参数,控制着模型区分正负例的难度,温度越低,难度越小。在本文的实验中,温度被设置为0.1。

多任务训练

在mRASP2的训练过程中,作者将两部分损失函数结合起来进行多任务训练,最终的损失函数如下:

  • |s|指的是序列的平均长度,因为CE loss是词级别(token-level)的,而CTR loss是序列级别(sequence-level)的,因此两者的绝对数值之间存在比例关系,其乘数即序列的平均长度|s|。

  • λ是用于平衡两个损失函数的因子

词对齐数据增强方法

词对齐数据增强方法 ,又称对齐增强(Aligned Augmentation, AA),是从mRASP的随机对齐变换(Random Aligned Substitution, RAS)方法发展而来的。

如图所示,图(a)表示了对平行语料的增强过程,图(b)表示了对单语语料的增强过程。其中,图(a)中原本的英语单词被替换成中文对应的单词;而图(b)中原本的中文单词被分别替换成英文、法语、阿拉伯语、德语。

mRASP的RAS等价于第一种替换方式,它只要求提供双语的同义词词典;而第二种替换方式需要提供包含多种语言的同义词词典。值得提一句,读者最终使用对齐增强方法的时候,可以只采用(a)的做法或者只采用(b)的做法。

3

实际效果和分析

mRASP2的多语言翻译效果逼近或者超过单向模型当前最高水平;另外它还直接支持无监督翻译和零资源翻译。

作者将翻译的场景分为有监督方向、无监督方向、零资源方向。训练数据包括PC32: 包含32个英语相关语对的平行语料)和MC24(newscrawl单语语料,由21个在PC32中的语言,另外加上3个语言荷兰语(Nl), 波兰语(Pl), 葡萄牙语(Pt)组成。

有监督翻译方向

上表展示了mRASP2在有监督方向上的翻译效果。表中展示的是tokenized BLEU。对比多语言翻译系统的基线模型m-Transformer, mRASP2在表中的10个方向上都有显著的提升。相比一些预训练+微调的工作,mRASP2也在大部分方向上超过了它们的效果。其中,适应模块方法(Adapter)介于统一多语言模型和单向模型之间。对于英语->罗马尼亚语(En->Ro)方向,我们采取了和以往工作一样的操作:将罗马尼亚语的特殊符号去掉。

在有监督(英语相关)方向上,mRASP2在大多数方向上都超过了其他工作,其中包括单向模型和预训练+微调的模型。

无监督翻译方向

“无监督方向”指的是:至少一端在训练阶段只见过单语语料。在本实验中,荷兰语、葡萄牙语、波兰语(Nl, Pt, Pl)这三个语言都没有出现在平行句对中,我们仅仅是提供了这三个语种的单语语料。由此可见,英语<->荷兰语/葡萄牙语/波兰语这几个语向中,源端或者目标端是没在训练阶段出现过的,也就是说,这几个语种没有在训练阶段显式地和其他语言建立联系。

我们也研究了两端都只见过单语语料的情况:荷兰语<->葡萄牙语(Nl<->Pt)方向。对于英语->X方向和荷兰语<->葡萄牙语方向,m-Transformer和mRASP显然无法进行翻译,而mRASP2取得了不错的效果。

mRASP2在无监督方向上远远超过基线模型m-Transformer。表中展示的是tokenized BLEU。对于荷兰语<->葡萄牙语的方向,mRASP2仅仅依靠这两种语言的单语语料就取得了还不错的效果。表中的平均分数是除了荷兰语<->葡萄牙语(Nl<->Pt)之外的方向平均得到的。

上表展示了mRASP2在无监督方向上的优越翻译性能。实验结果表明:依靠多语言性能,mRASP2能同时实现多个方向的无监督翻译。

零资源翻译方向

在如今的机器翻译领域存在着一类零资源翻译的问题:当我们只有英语到其他语言之间的平行语料时,我们能否支持非英语语对之间的直接翻译?mRASP2通过引入对比学习,巧妙地做到了这一点。

上表展示了mRASP2在零资源方向上的效果,表中展示的是de-tokenized BLEU(https://github.com/alvations/sacremoses)。

表中的Pivot是桥接模型,其结果是我们由m-Transformer经过“X语言->英语->Y语言”的两步翻译得到的。注意荷兰语(Nl)在平行语料中没有出现过。

实验结果表明:mRASP2在零资源场景下表现卓越,甚至能够比肩很强的桥接模型。

对比学习起了什么作用

上表总结了mRASP2的几个关键技术点对最终效果的影响。其中mRASP只使用了平行句对和对齐增强;mRASP2 w/o MC24只使用了平行句对、对齐增强、对比损失;mRASP2 w/o AA只使用了平行句对、对比损失。

作者将mRASP2的关键技术点分为3个,分别是: (i) 对比损失函数 (ii) 词对齐数据增强方法  (iii) 单语语料,并且通过对比实验研究了这三个技术点的主要效果。主要结论如下:

  1. 对比学习并不会降低有监督场景的性能,并且对零资源场景下的翻译性能有重大提升:对比1和3或者2和4,加入对比损失函数后,有监督方向的效果基本持平,而零资源方向提升了接近10个BLEU

  2. 单语语料的引入对所有场景的翻译性能都有明显提升:对比4和5,加入单语语料之后,mRASP2可以很好地支持无监督方向。

由此我们可以看出,对比学习的作用主要体现在:在不影响其他翻译方向的前提下,提升了零资源方向的翻译效果。

可视化: 对比学习能更好地拉近多语言表示对齐语义空间

作者从ted测试集过滤构建了15个语种的平行数据集Ted-M,共2284组,然后获得这些同义句在不同语言的语义空间中的向量后,用T-SNE降维,并且画出了其分布,如下图所示。可以直观地看出,mRASP2有效地对齐了不同语言的语义空间。

上图是T-SNE降维后的二维核密度分析的分布图。蓝色的线是英语,橙色的线是日语,绿色的线是德语。这张图表明了句意的表示被mRASP2拉近了。

Ted-M对应的2284组同义句的散点图如下图所示,每一个点都代表一个句子。图中画出了4组同义句的点(id分别为1, 100, 1200, 2000),可以看出德语、日语和英语这三种语言的同义句几乎是完全重合在一起的。

上图是多语言平行语料Ted-M的二维散点图。我们可以看出同义句在不同语言(英、日、德)中的表示基本重叠在一起。图例中的数字代表的是同义句的id。

其中id=1, 100的同义句组如下:

4

总结

本文主要介绍了mRASP2,该工作提出引入对比学习来增强多语言翻译模型。该方法简洁优雅,在广泛场景下取得了明显的性能提升,可以大大缓解低资源语种训练数据不足的问题。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)

END -

聊聊互联网秋招总结 & 经验分享

2021-06-23

啥?!BM25 比语义向量检索效果好?

2021-06-22

2021最新 上海互联网公司排名

2021-06-20

样本量极少如何机器学习?最新Few-Shot Learning综述

2021-06-16

​对比学习还能这样用:字节推出真正的多到多翻译模型mRASP2相关推荐

  1. 对比学习还能这样用:字节推出真正的多到多翻译模型mRASP2

    AI科技评论报道 作者 | 潘小小 编辑 | 陈大鑫 大家都知道目前研究界主流的多语言翻译模型主要在英语相关的语对上进行训练.这样的系统通常在英语相关的语向(有监督语向)上表现不错,而在非英语方向(零 ...

  2. YYDS!对比学习还能这么用?

    作者 | 上杉翔二 悠闲会 · 信息检索 整理 | NewBeeNLP 自监督学习在CV和NLP已经用的很多了,那很自然也会被迅速引进并占坑到推荐系统领域咯.而发掘推荐数据上的自监督信号,其实也是十分 ...

  3. 技术动态 | 图对比学习的最新进展

    转载公众号 | DataFunSummit 分享嘉宾:朱彦樵 中国科学院自动化研究所 编辑整理:吴祺尧 加州大学圣地亚哥分校 出品平台:DataFunSummit 导读:本文跟大家分享下图自监督学习中 ...

  4. 谈推荐场景下的对比学习

    前言 最近对比学习(Contrastive Learning, CL)火得一塌糊涂,被Bengio 和 LeCun 这二位巨头在 ICLR 2020 上点名是 AI 的未来.作为普通打工人,对比学习能 ...

  5. CV领域的对比学习综述(下)

    CV领域的对比学习综述(下) – 潘登同学的深度学习笔记 文章目录 CV领域的对比学习综述(下) -- 潘登同学的深度学习笔记 对比学习发展历程 不用负样本 BYOL 整体思路 网络架构 BN层知道了 ...

  6. 张俊林:对比学习研究进展精要

    作者 | 张俊林 编辑 | 夕小瑶的卖萌屋 对比学习(Contrastive Learning)最近一年比较火,各路大神比如Hinton.Yann LeCun.Kaiming He及一流研究机构比如F ...

  7. 元学习、迁移学习、对比学习、自监督学习与少样本学习的关系解读

    文章目录 前言 一.对比自监督学习与FSL 1.对比学习与自监督学习 2.自监督学习与FSL 二.元学习与FSL 1.元学习是什么 2.元学习与FSL 三.迁移学习与FSL 1.迁移学习 2.迁移学习 ...

  8. 从各大顶会看对比学习在句子表征研究进展

    作者 | 上杉翔二 悠闲会 · 信息检索 整理 | NewBeeNLP 前已经有博文整理过了对比学习的概念,比较重要且流行的文章,和一些已经有的应用: YYDS!对比学习还能这么用? 从顶会论文看对比 ...

  9. 张俊林:从对比学习视角,重新审视推荐系统的召回粗排模型

    分享嘉宾:张俊林博士 新浪微博 编辑整理:王岩 出品平台:DataFunTalk 导读:今天分享的主题是从对比学习的视角,即从一个不同的角度来看看推荐系统里面的召回和粗排模型.对比学习从去年年中开始比 ...

最新文章

  1. 突破帧率天花板,超速全时视觉感知芯片重塑机器视觉技术体系
  2. Java的深拷贝和浅拷贝
  3. java计算文件里的总分_java程序读取txt文件并计算总分 求帮忙
  4. 【深度学习入门到精通系列】关于梯度下降和反向传播的探索
  5. java中的servlet是线程安全的嘛_Java面试题:Servlet是线程安全的吗?(转)
  6. winrar压缩工具
  7. ExtJS MVC 学习手记3
  8. html省市区选择器代码,js实现一个省市区三级联动选择框代码分享
  9. php yii框架路由,yii框架路由配置
  10. Python 数据分析三剑客之 Matplotlib(四):线性图的绘制
  11. 动态规划之字符串最短编辑距离
  12. 夸奖对方代码写的好_我写出这样干净的代码,老板直夸我
  13. 【2022最新Java面试宝典】—— SpringBoot面试题(44道含答案)
  14. 程序员必看!java开发金融类项目
  15. Excel技能培训之四-按颜色排序,按自定义文字排序
  16. OpenCV-Python图片叠加与融合,cv2.add与cv2.addWeighted的区别
  17. varclus变量聚类对变量有啥要求_「SPSS数据分析」SPSS聚类分析(K-均值聚类)软件操作结果解读...
  18. 豆瓣的python库安装源
  19. webstorm常用插件 最后一个最好
  20. WINCC 报警语音播报

热门文章

  1. uTools:一个方法“改变”uTools的插件安装/数据目录
  2. Zeppelin介绍
  3. SqlServer 使用小技巧
  4. MySql中左连接查询突然变得很慢
  5. java中Long的比较
  6. ”0元中标的商业逻辑“ -- 如何更好防范项目风险(北京软件造价评估技术创新联盟:李培圣)...
  7. 解决c#,wpf程序带环境安装包体积太大问题
  8. 模拟计算器进行四则运算(同等优先级)(内测第2届第3题)
  9. list each详解
  10. 低级问题---.net franmework安装