[文献阅读]—一篇不错的低资源机器翻译综述(Neural Machine Translation for Low-Resource Languages: A Survey)

前言

在这里插入图片描述
论文地址:https://arxiv.org/abs/2106.15115v1

时间线

1947:Warren Weaver提出了机器翻译的可能性
1954:IBM发明了word-for-word翻译系统

技术

归纳低资源机器翻译中用到的技术。

数据增强(data augmentation)

主要包含:1. 基于单词和短语替换产生伪平行语料的方法;2. 基于回译产生伪平行语料的方法;3. 基于多语言预训练模型挖掘平行语料的方法

基于单词、短语替换的数据增强(坑1)

利用双语词典,替换选定句子的所有单词或稀有词,产生对应翻译[119][127]
替换掉target句子中稀有词,进一步对source句子做相应的对齐,产生更多平行语料[47]
为了解决上述方法中伪平行语料流利度不足的问题:

  • 选择最好的单词子集进行替换[52][166]
  • 替换短语[108]
  • 利用词形学、part-of-speech、依存规则[41][157]

缺点:需要外部特定语言的资源,如双语词典、POS taggers、dependency parser等

基于回译的数据增强

回译通常是把target句子翻译回source句子,产生伪平行语料,因为真实的target句子能改善翻译模型的流利度([48]表明从source句子开始效果差)
为了解决回译产生的伪平行句噪声多的问题:

  • 迭代式回译(坑2)
    • 迭代式完成s2t和t2s[10][72]
    • dual-learning等[31][70]
    • 统一了两个独立翻译器[191]
  • 单语数据选择:选择单语子集[39][48]
  • 伪平行句过滤:[77][78]
  • 区分真、伪平行句:
    • 增加标签以区分[21][85][115]
    • 根据句子的质量来分配权重以区分[39][85][163]
  • 采样:为一个target句子生成多个source句子来均衡错误[58][75]

缺点:

  • 需要一个初始MT
  • 依赖于真、伪平行句的比例
  • 依赖于真平行句和单语的领域相关度

平行语料挖掘

第一步是生成多语对齐的向量空间

  • 利用NMT任务有监督地训练encoder-decoder:
    • 对偶编码器[64][179]
    • 共享的多语encoder-decoder架构[140][11]
  • 无监督[95]
  • self-learning[138]
  • 利用多语预训练模型(mBERT\XLM-R)[2][84][155][184]

第二步是句子相似度排序,利用基于cosine的无监督相似度、有监督的相似度度量。

缺点:

  • 多语预训练模型方法只作用于出现过的语言

无监督机器翻译(unsupervised NMT)

包含三个步骤:1. 初始化;2. 回译;3. 判别分类器

缺点:

  • 先前的工作都是在有丰富单语资源的语言上研究,而没有探索:1. 极端低资源(没有丰富单语资源的语言);2. 语种不相似的语言对;3. 领域不相似的设置;4. 不同的数据集

上述缺点的解决:

  • 去除encoder端的language embedding,让encoder更加language\domain agnostic[87](问题2、3)
  • 利用迁移学习(先在HRL上pretrain,再在LRL上finetune)缓解HRL-LRL之间的翻译[26](问题1、2)

初始化

利用不同的语言资源:

  • 双语词典[9][42][100][102]
  • word-by-word gloss[131](用语言模型来选择更好的word-by-word translation)

利用不同的神经表示策略:

  • 使用对齐的双语单词嵌入[9][42][100]
  • Joint BPE[102]
  • 多语语言模型
    • 掩膜token预测之[29]
    • 掩膜n-grams预测对应的翻译[136]

回译

研究发现,相比于双语,多语初始化的模型能带来更好的回译效果[53][105][143][154][162]

判别分类器

使用对抗策略:

  • cycle-GAN[8]
  • local-global GAN[182]

增加额外的损失函数:

  • 单词嵌入一致(word embedding agreement)[153]
  • 编辑和抽取[173]
  • comparative translations(类似于引入判别器D和映射矩阵W,同时训练,希望D区分,W混淆)[153]

半监督机器翻译(semi-supervised NMT)

缺点:

  • 先前研究通过从高资源语言中提取部分来模拟低资源场景
  • 先前研究用了过分多的单语
  • 大多数研究只和BT比

使用单语来产生伪平行语料

回译

使用单语来产生语言模型

利用语言模型的不同策略:

  • 语言模型融合(缺点:1. 语言模型和NMT分开训练,且不会被finetune;2. 只被用于decoder端; 3. 深层融合中,只包含了语言模型的最高层,忽略了低层的特征;4. NMT模型需要被改变):
    • 浅层融合:语言模型用于给NMT decoder端的输出单词打分[63][147][151]
    • 深层融合:NMT decoder端包含了额外的语言模型
  • 把语言模型当作一个弱信息先验[15]
  • 把BERT融入NMT(也可视为fusion?)[194]
  • 用source embeddings初始化encoder[1]
  • 把语言模型作为NMT encoder和decoder的初始化[134]
  • seq2seq的多语语言模型预训练

改变NMT训练目标来利用单语(坑3)

  • 联合训练s2t和t2s NMT,整体作为autoencoder,引入重构目标[23]
  • 回译的初始形态(EM+MLE)[188]

多任务学习

  • 使用1个encoder+2个decoder,同时完成翻译和倒序重排任务[186]
  • 使用1个RNN decoder,同时完成翻译和预测下一个target单词任务[37]
  • 同时完成1. s2t NMT;2. t2s NMT;3. LM[192](坑4)

对偶学习

和回译类似,但模型优化基于强化学习[70][168][174]

多语言机器翻译(multilingual NMT)

缺点:

  • 语言之间有很大差异
  • 平行语料的噪声
  • 数据不平衡
  • 其它如书写风格、话题的因素
  • 先前工作没有关注特定语言,利用特定语种特性

有监督的多语言机器翻译有三种模型架构:

  • 1encoder1decoder:最大的挑战是让decoder区分要翻译的语言,主要方法有:
    • 语言识别标签[18][66][80][170]
    • 语言名称[67]
    • 语言独立的位置嵌入[170][172][193]
  • NencoderNdecoder:挑战变为了从不同语言中学习通用信息,主要方法有:
    • 共享attention[50][110][133][161]
    • 基于source和target的参数生成器[129]
  • 1\NencoderN\1decoder:
    • 1encoderNdecoder:decoder端的部分参数共享[139][171]
    • Nencoder1decoder:N个encoder端的输出需要合并输入到decoder,解决策略有:
      • 把不存在的语言句子用null表示[124]
      • 用预训练模型生成缺的语言[123]

多语言机器翻译用于低资源机器翻译有几种应用场景:1. 有监督的机器翻译;2. 无监督的机器翻译;3. 半监督的机器翻译;4. 基于预训练多语言模型的迁移学习。

有监督的多语言机器翻译

解决低资源和高资源数据不平衡的问题:

  • 采样:上采样+基于温度的采样[6][50][164][167]
  • mini-batch的设置:
    • 按语言对依次训练[50]
    • mini-batch包含不同的语言对[80][139]
    • mini-batch包含target相同的语言对[18]

无监督的多语言机器翻译

  • 和无监督的双语机器翻译不同的初始化方式:non-english被映射到english的向量空间[143]
  • 增强back-translation:知识蒸馏[154]
  • 利用少量的、非目标语言对的平行语料[53][105][162]

半监督的多语言机器翻译

和半监督机器翻译一样,也是探究如何利用单语:

  • 使用mass[149]训练目标[146]
  • source端使用MLM,target端使用denoising autoencoding[169]

基于预训练多语言模型的迁移学习

[35][60][61][97][121]
不一定是预训练,也有改进多语言模型在低资源语言上的性能[60]

输入的表示(坑5)

  • surface form representation:
    • 单词+language token[66]
    • 单词+POS[46]
    • subword(BPE[80][139]、sentence piece representation[6]、transliteration[57][112])
  • embedding-based representation:
    • 使用预训练模型(mBERT[109])
    • 其它:[60][165]

迁移学习

  • 分类1(使用child parallel data的时机):
    • 热启动(parent model训练时,就利用child parallel data):[36][90][113][122][196]
    • 冷启动(反之,更接近于真实场景):[86][91][97]
  • 分类2(parent model的种类):
    • 双语(大多数是)
    • 多语:
      • many2one场景[35][60][61][97][121]
      • mBART[30]
  • 分类3(child model的种类):
    • 双语(大多数是)
    • 多语[97]
  • 分类4(parent 、child model的关系):
    • 相同的target语言[4][36][86][113][118][122][196]
    • 相同的source语言[91]
    • 不相同[90][111][112]

有以下改进的方向:1. 缩小语言间空间不匹配;2. finetune策略; 3. 迁移策略;4. parent模型

影响性能的因素:

  • parent language和child language之间的相关度,进一步影响词表的重叠。策略:
    • 使用子词
    • 控制child的子词不被parent的压倒[90][121]
    • 对于相关的语言,直译(transliteration)可减少词性的分歧[57][112][122]
    • 重排parent数据,可减少句法的分歧[86][118]
  • 语料大小
  • language script(坑6)

缩小语言间空间不匹配

  • 热启动:
    • 对parent和child training data构建联合词典[35][121]
    • 构建通用词汇表
  • 冷启动:
    • 动态词表[97]
    • 预训练一个通用的输入表示(其中包含了child单语数据)[60][79][86]

finetune策略

  • 不finetune:[4][79]
  • finetune嵌入层:
    • parent和child model翻译相同的target语言:直接 transfer[196]
    • 不相同:计算词表重叠部分,把剩余的替换成child vocabulary[97][122]
  • finetune整个parent model:[79][91][97][112]
  • finetune部分层:[4][86][91][196]

迁移策略

  • 迁移一系列NMT model[97]
  • parent | parent + children | child[35][113]
    • 在parent data上训练parent model
    • 在parent data+child data(可能有多个目标child)上finetune child model
    • 最后再在选定的child data上finetune child model
  • parent | intermediate | child[76][111]
    • 在unrelated parent data上训练parent model
    • 再在相似的中间语言上finetune
    • 最后再在child data上finetune

parent模型

parent模型为multi-NMT性能往往更好[86][97][112][113]
parent模型为multi-NMT+迁移到child vs 直接合并parent和child训练一个multi-NMT的性能有待进一步研究

zero-shot机器翻译

有几种解决方式:1. pivot;2. 迁移学习; 3. multi-NMT; 4. 无监督

pivot

s-p for source-pivot | p-t for pivot-target

提升性能:

  • 减少级联错误:
    • 训练期间通过共享pivot language embedding来让s-p和p-t产生关联[24]
    • 迁移学习:使用s-p的encoder和p-t的decoder初始化s-t[88]
    • 使用s-p平行语料来指导p-t的训练[22]
    • 把训练目标从1. s-p和p-t独立的极大似然估计 改变为 2. p-t在p-s上的极大期望似然估计[190](坑7)
  • 利用平行语料:
    • 真[22][[24][88][135]

缺点:

  • 先前工作对于s-p和p-t使用大量平行语料,不符合真实场景
  • 语言之间的相关性很重要

迁移学习

  • 首先利用s-p数据预训练一个通用编码器,来对p-t NMT做初始化
  • 然后利用p-t数据训练
  • 最后直接在s-t上推理[79]

multi-NMT

按照文章的理解:如果multi-NMT真的学习到了一个国际语,source和target语言之间应当会有更少的联系,每一种语言都有language-specific的参数,把它转换成国际语。然而,目前面临参数量过少,不同语言共用部分参数的问题。解决方法:

  • 显式地使得source和target不相关[6][62][128][145](坑8)
  • 提高模型的容量[49][185]
  • 使用pivot或bt来为zero-shot language pair构造伪平行句

无监督

上述无监督机器翻译可以看作是zero-shot的特例

趋势

在这里插入图片描述

发展大方向

  • 模型
    • 大模型(massive multilingual NMT)[3][6][49]:massive多语言模型是大势所趋,存在1. 模型容量不够,无法包含足够多语言;2. 提升低资源语言的性能的同时,会损害高资源语言等问题
    • 模型鲁棒性[4][6][44]:受到1. 数据集大小;2. 数据集域(不符合真实场景); 3. 语言相关度(句法、code-mixed data)的限制
    • 模型可解释性[80][94][189]
    • 消除偏见[104][152]
  • 资源
    • 数据集创建
    • 开源框架
    • 模型可利用
    • 计算资源可利用

总结

低资源机器翻译主要涉及了:数据增强、无监督\半监督\多语言\zero-shot机器翻译、迁移学习。个人感觉:机器翻译的场景可分为:有监督、zero-shot、无监督、半监督,可用到的方法论有:多语言机器翻译、数据增强、zero-shot、对偶学习等。
比较特别的是:多语言机器翻译可能早些时候是一个机器翻译的场景,但实验发现,它能够帮助到有监督、zero-shot、无监督、半监督这一系列的机器翻译场景,逐渐演变为了一种方法论。
多语言机器翻译是大势所趋,虽然已经有了比较多的工作,但也存在很多方向待改进:

  • 多语言预训练模型的训练目标与NMT任务不匹配问题(MASS\MBART…)
  • 模型容量问题(LASS\SHARE OR NOT SHARE)
  • 词表不重叠导致向量空间不对齐问题(BPE…)
  • 翻译方向指示问题(language tag\language name\language embedding…)

生词

  • tremendous:巨大的
  • spurt of growth:喷涌式增长
  • pivotal:关键的
  • societal:社会的
  • prominent:重要的、突出的
  • ample:充足的
  • specification:规格
  • a catalogue of:一系列
  • elevate:提升
  • initialtive:工作
  • irrespective of:不管不顾
  • resource-intensive:资源密集的
  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值