Commit 85f54a60 by 曹润柘

更新 chapter16.tex

parent c9faa3d1
......@@ -429,231 +429,4 @@ g_{t} = \sigma (w^{T}s_{t}^{TM} + b)
{\red [Triangular Architecture for Rare Language Translation]也不是利用单语数据,而是类似于枢轴语,在这里加是否合适?}
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\section{领域自适应}
\parinterval 在自然语言中,同一个词在不同的上下文中经常会有不同的含义,我们一般称之为一词多义问题。
这种现象在不同的领域中表现更加明显,如图1所示。
【体育】The rugby tour was a disaster both on and off the pitch.
这次橄榄球巡回赛在场上、场下都彻底失败。
【化学】The timbers of similar houses were painted with pitch.
类似房屋所用的栋木刷了沥青。
【声学】A basic sense of rhythm and pitch is essential in a music teacher.
基本的韵律感和音高感是音乐教师的必备素质。
图 不同领域中一词多义实例
\parinterval 不同领域间不仅存在一词多义问题,常用词汇也存在着很大的区别。比如在口语领域,常用词一般较为简单,而医学领域的单词结构组成一般较为复杂。
目前的机器翻译模型主要面向通用领域翻译,如新闻、口语等。
对于富资源语种,一般可以获取到充分的通用领域双语句对,从而训练得到高质量的神经机器翻译模型。
然而,由于训练数据中主要集中在通用领域,特定领域的语料库通常比较稀缺或根本不存在,因此模型在一些特定领域上的表现并不佳,如化学、天文学、医学等。
同时,人们对特定领域的机器翻译系统的需求也是十分庞大的。在类似专利翻译这种面向特定领域进行翻译的场景,通用领域的机器翻译模型并不能达到人们期望的水平,因此训练特定领域的翻译模型是十分重要的。
\parinterval
% 然而,特定领域的语料库通常比较稀缺或根本不存在,如果在特定领域上直接使用通用模型则性能较差。
因此,在特定领域的机器翻译模型实际使用中,对特定领域的适应性进行调整是重要的步骤之一,这种利用领域外数据和领域内数据来改进特定领域的翻译效果的方法被称作领域自适应(Domain Adaptation)。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{早期领域自适应方法}
\parinterval 在统计机器翻译的年代,特定领域的领域自适应问题就已经备受关注了,为了克服数据缺乏的问题,人们提出了许多领域自适应的方法。大多数SMT领域自适应方法可以分为两类:数据方法和模型方法。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{1. 数据方法}
\parinterval 当有足够多的其他领域双语语料时,主要是通过对域外数据评分的方式选择数据,通过语言模型、卷积神经网络模型等方式进行选择。当域外数据较少时,主要通过造伪数据的方式进行句子生成。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{2. 模型方法}
\parinterval 在模型的训练过程中,对数据进行评分,在训练中通过规则或者统计来给每个实例进行权重评估,并进行加权训练。针对模型本身,训练与语料库对应的语言模型、翻译模型和重排序模型等各种模型,再将这些模型进行组合以实现最佳性能。
时至今日,领域自适应的方法已经非常丰富,近几年许多基于神经网络机器翻译的领域自适应方法被提出和评估[1]。
下面,我们从数据方法和模型方法对领域自适应的经典方法进行介绍。
数据方法侧重于模型中的数据部分,而不是用于领域自适应的专用模型,包括使用领域外双语数据和领域内单语数据,模型方法是用于领域自适应的神经网络机器翻译模型。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{利用领域外双语数据}
\parinterval 训练一个特定领域的机器翻译系统需要使用大量的数据,因为这些数据包含政治、体育、新闻、专利等不同的领域,直接使用混合数据的效果不佳,而特定领域的数据又比较稀缺,所以如何制定最佳的策略有效地利用其它领域的数据是十分重要的。在本节的叙述中,特定领域被称作目标域,其他领域被称作源域。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{1. 多领域数据}
\parinterval 把多个领域的数据一起送入模型,可以让模型增加基础性能,从而增强在各个领域的效果。
目前比较常用的方法是在数据中加入标签来控制神经网络机器翻译模型对领域的辨别,如图2所示,主要有两个关键点:在各个领域的语料前加上<2领域>的标签来指定语料的归属领域,让神经网络模型可以更好的对不同领域生成句子;此外,把数据量较小的领域复制数倍,对各个领域的数据量进行平衡防止模型对各个领域产生不平等的关注[2]。这一类方法在16.2.3中有详细介绍。
图2
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{2. 数据选择}
\parinterval 数据选择方法不需要数据有领域标签,可以使用未知领域的混合数据。直接把所有的数据拿来训练模型,虽然最大程度的利用了所有资源,但却不可避免地将一些十分不相关的数据引入了模型造成了干扰,一个自然的想法就是选择出这些数据中跟目标域较为相似的数据来增强目标域的性能。
数据选择是通过使用困惑度[3]或领域相似度[4]等方法从域外数据中找到一些与域内数据较为相似的数据以增加数据量,提升模型能力。
根据句子的词嵌入来找到源域中与目标域最相似的句子,计算源域句子向量中心CFin和目标域句子向量中心CFout与每个训练数据句子嵌入向量vf的欧氏距离差作为相似度,
式1
以相似度排序后选择部分句子用于模型训练[5],除了静态地保持选择好的数据一成不变,还可以在每个不同的训练轮次动态地改变所选择的训练数据子集用于神经网络机器翻译模型训练,如图3所示,先将完整的数据送入模型,再根据相似度逐次减少每轮的数据量,剩下最相似的数据在最后一轮送入,以最后得到在目标域上效果最好的领域自适应模型[6]。
还可以利用课程学习的思想,根据相似度打分,将最相似的句子最先送入模型,让模型能最先学到跟目标域最相关的知识,奠定良好的基础[7]。
图3
多领域数据的优点在于大大提高了数据量,但在实际使用中可能会与使用通用模型一样带来词汇预测错误的问题,而数据选择无需划分领域,在混合数据中进行选择,但增加的数据量较小,对低资源改善不大。使用域外双语数据的优点在于充分地利用了全部能利用的双语数据,低资源问题得到了一定程度的缓解,模型学到了更多的语言学知识。但不光引入了一些领域不相关的知识,而且可能域外双语数据本身也寥寥无几,在经过数据选择之后就变得更加不足了,对模型的帮助可能并不足够令人满意。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{利用领域内单语数据}
\parinterval 机器翻译需要使用大量的双语平行数据来训练,而通常双语数据是较少的,但单语数据是大量存在的,如果可以有效地利用领域内的单语数据无疑可以增强机器翻译性能。
例如在中英专利翻译任务中,中英新闻平行语料库有100万个句对,而口语领域平行语料库只有20万个句对,口语领域单语语料库却有几百万个句子,因此可以用包含几百万句子的口语单语语料库来提升口语领域的翻译质量。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{1. 直接使用单语数据}
\parinterval 机器翻译任务中,单语数据相对比较充足,所以可以利用单语数据来提升模型性能。
即使是把目标端单语复制成平行语料当作双语直接训练神经网络机器翻译模型,这种简单的方法也能使BLEU增加超过一个点[8],可见单语数据在资源比较稀缺的时候是很有帮助的。
除了简单地使用单语作为语料训练模型,比较常用的方法是使用单语数据训练语言模型,如图4所示,使用单语数据训练一个RNN语言模型,并修改推断器RNN,以在语言模型层输出上操作,把语言模型融合进神经网络机器翻译推断器增强翻译性能[9]。
图4
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{2. 使用单语数据造伪数据}
\parinterval 机器翻译任务中,标注的数据较少,而未标注的单语数据较多,并且标注的成本通常很高,所以可以用单语数据来制作伪数据以增加数据量,源语和目标语单语数据用于制作伪数据均有效果[10-12],使用目标域的数据来制作伪数据用于领域自适应尤为有效。将伪数据和真实数据混合,增加了数据量和数据多样性,也丰富了语言的表示,可以对模型的性能有一定程度的提升。
伪数据还可以用来作为人工噪声,可以把一句话的语序随机打乱来作为伪数据,两个领域的语序可能完全不同,错误的语序可能会带来更好的学习效果[13]。
如果数据稀缺程度达到没有双语数据,还可以从目标域中归纳出词汇表,然后对目标域的目标端单语数据使用回译法制作伪数据[14],如图5所示。
图5
\parinterval 单语数据的使用大大地增加了领域内的数据量,并且保证了领域的分布不会改变,在16.1中对此类方法进行了详细的介绍。在WMT等机器翻译比赛中,对单语数据的有效利用是十分关键的一环,语言模型、伪数据等都是必不可少的制胜法宝。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{领域自适应模型方法}
\parinterval 在数据已经被以各种方式充分利用后,为了克服数据稀缺这一先天条件,无疑就要为领域自适应任务开发专门的神经网络模型来提升性能。以模型为中心的方法关注专门用于领域自适应的神经网络机器翻译模型,一个机器翻译模型首先需要初始化一个模型,然后根据数据进行训练,最后训练好的模型对新的句子进行推断,所以可以从训练方法,模型结构和推断方法三个角度进行领域自适应。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{1. 修改训练方法}
\parinterval 领域自适应的训练方法是指在模型的训练阶段改变获得训练目标的过程或是训练函数的方法,通过加权或者微调等方法更加充分的利用数据。
因为数据本身十分稀缺,所以如何更充分地利用数据是一个重要问题,最简单的方法是给数据进行加权,对源域样本进行加权采样,从而逼近目标域的分布,让模型有权重的学习样本的知识。然而因为神经网络并不是线性的,所以样本权重无法直接集成到神经网络中,可以从句子与语言模型的交叉熵学习权重,从而让模型根据权重进行样本加权训练[15]。
式2
如式2所示,计算训练集中每个句对(xi,yi)与源域语言模型和目标域语言模型的交叉熵的差作为权重,越大越好。
如果把加权从句子级别精确到词级别,对每个词进行权重评分,根据词的得分综合也可以进行加权训练[16]。
\parinterval 微调是领域自适应最常用的方法,是指整个要训练的网络不是从随机状态开始,而是从一个比较好的初始状态开始微调。
微调的常用方法是在资源丰富的源域语料库上对系统进行训练直至收敛,然后在资源贫乏的目标域语料库上对系统参数进行微调,这种方法经常配合预训练使用。
为了解决微调后在源域上性能下降的问题,比较常用的方法是进行混合微调,具体做法是先在源域数据上训练一个NMT模型,然后将目标域数据复制数倍于源域数据量相等并混合,使用混合数据对NMT模型进行微调。这种方法既降低了目标域数据量小导致的过拟合问题,又带来了更好的微调性能。
在混合微调外,还可以让源域和目标域进行多次循环知识蒸馏,如图6所示迭代地学习对方领域的知识,可以保证在源域和目标域上的翻译性能都逐步上升[17],知识蒸馏方法在第13章第6节中有详细介绍。还可以使用前文13.2中提到的正则化方法来降低过拟合。
图6循环知识蒸馏
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{2. 修改模型结构}
\parinterval 修改训练目标的方法是在训练过程中更充分的利用数据,而更改训练模型时的神经网络结构以进行领域自适应是一种更加直观的模型方法,包括模型融合和领域判别。
\parinterval 模型融合是指通过把不同的模型融合以获得更好的效果,例如可以如前文16.1.2中把循环神经网络语言模型和神经机器翻译集成为一个推断器,联合训练语言模型和翻译模型,让模型在推断时可以从语言模型中得到指导。
\parinterval 领域判别的经典做法是将不同领域的数据混合起来进行训练,在编码器的基础上加上前向反馈神经网络作为分类器,使用3.34中的分类器方法预测源语句子的领域,领域鉴别器和神经网络机器翻译模型可以联合优化模型性能[18]。也可以使用术语频率-逆文档频率方法预测输入句子的领域标签,并如图7所示,在嵌入层加上表示领域的嵌入,使模型可以判断输入数据的领域[19]。
图7
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{3. 修改推断算法}
\parinterval 推断是指将输入序列转换成的向量再次转化为输出序列的过程,领域自适应的推断方法是指通过修改推断的过程获得更好的序列的方法,与其他模型方法互补,包括优化推断算法和集成推断。
\parinterval 推断算法本身也可以进行优化,通过更好的推断过程选择最佳的结果,比如可以使用一种基于堆栈的字格推断算法,在领域自适应中比常用方法有更好的效果[20]。
在推断的时候对每个新词的候选假设可以如式3计算分数,分别使用目标域的目标语语言模型和NMT的分数加权计算,选择分数最高的词作为结果[21],还可以在此基础上加入源域的目标语语言模型的分数共同打分[22]。
式3
\parinterval 集成推断是把不同的模型集成以获得更好的翻译效果,如图13所示。为了保证在源域的翻译能力不退化,可以把多个目标域模型进行微调后与源域模型进行集成以增强推断能力[23]。集成推断也可以结合加权思想,根据扩展贝叶斯插值方法,不依赖领域标签给模型集成推断加权来获得更佳的推断结果[24]。在14.5中对集成方法进行了详细介绍。
\parinterval 训练目标从从训练的步骤和手段角度出发,模型结构从神经网络本身的构造改动,推断方法从推断模型的角度修改,三者相辅相成地增加模型的领域适应性。
参考文献
[1] Chu, Chenhui, and Rui Wang. "A Survey of Domain Adaptation for Neural Machine Translation.." abs/1806.00258 (2018): 1304-1319.
[2] Chu C, Dabre R, Kurohashi S. An Empirical Com-parison of Domain Adaptation Methods for Neural Machine Translation[J]. ACL. 2017: 385-391.
[3] Axelrod A, He X, Gao J. Domain Adaptation via Pseudo In-Domain Data Selection[Z]. Edinburgh(GB): 2011355-362.
[4] Remus R. Domain Adaptation Using Domain Similarity- and Domain Complexity-Based Instance Selection for Cross-Domain Sentiment Analysis[J]. ICDM Workshops. 2012: 717-723.
[5] Wang R, Finch M A, Utiyama M, et al. Sentence Embedding for Neural Machine Translation Domain Adaptation[J]. ACL. 2017: 560-566.
[6] Wees V D M, Bisazza A, Monz C. Dynamic Data Selection for Neural Machine Translation[J]. empirical methods in natural language processing. 2017: 1411-1421.
[7] Zhang X, Shapiro P, Kumar G, et al. Curriculum Learning for Domain Adaptation in Neural Machine Translation[J]. north american chapter of the association for computational linguistics. 2019.
[8] Currey A, Barone V M A, Heafield K. Copied Monolingual Data Improves Low-Resource Neural Machine Translation[J]. WMT. 2017: 148-156.
[9] Domhan T, Hieber F. Using Target-side Monolingual Data for Neural Machine Translation through Multi-task Learning[J]. EMNLP. 2017: 1501-1506.
[10] Zhang J, Zong C. Exploiting Source-side Monolingual Data in Neural Machine Translation[Z]. 2016.
[11] Sennrich R, Haddow B, Birch A. Improving Neural Machine Translation Models with Monolingual Data[J]. Computer ence. 2015.
[12] Park J, Song J, Yoon S. Building a Neural Machine Translation System Using Only Synthetic Parallel Data[J]. arXiv: Computation and Language. 2017.
[13] Kim Y, Gao Y, Ney H. Effective Cross-lingual Transfer of Neural Machine Translation Models without Shared Vocabularies[J]. Meeting of the Association for Computational Linguistics. 2019.
[14] Hu J, Xia M, Neubig G, et al. Domain Adaptation of Neural Machine Translation by Lexicon Induction[J]. ACL (1). 2019: 2989-3001.
[15] Wang R, Utiyama M, Liu L, et al. Instance Weighting for Neural Machine Translation Domain Adaptation[J]. EMNLP. 2017: 1483-1489.
[16] Yan S, Dahlmann L, Petrushkov P, et al. Word-based Domain Adaptation for Neural Machine Translation[J]. CoRR. 2019.
[17] Zeng J, Liu Y, Su J, et al. Iterative Dual Domain Adaptation for Neural Machine Translation[J]. EMNLP/IJCNLP (1). 2019: 845-855.
[18] Britz D, Le V Q, Pryzant R. Effective Domain Mixing for Neural Machine Translation[J]. WMT. 2017: 118-126.
[19] Kobus C, Crego M J, Senellart J. Domain Control for Neural Machine Translation[J]. recent advances in natural language processing. 2017.
[20] Khayrallah H, Kumar G, Duh K, et al. Neural Lattice Search for Domain Adaptation in Machine Translation[J]. IJCNLP. 2017: 20-25.
[21] Gulcehre C, Firat O, Xu K, et al. On Using Monolingual Corpora in Neural Machine Translation[J]. Computer Science. 2015.
[22] Dou Z, Wang X, Hu J, et al. Domain Differential Adaptation for Neural Machine Translation[J]. NGT@EMNLP-IJCNLP. 2019: 59-69.
[23] Freitag M, Al-Onaizan Y. Fast Domain Adaptation for Neural Machine Translation[J]. 2016.
[24] Saunders D, Stahlberg F, Gispert D A A, et al. Domain Adaptive Inference for Neural Machine Translation[J]. Meeting of the Association for Computational Linguistics. 2019.
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论