Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mtbookv2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
mtbookv2
Commits
60771a57
Commit
60771a57
authored
Dec 11, 2020
by
曹润柘
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
dc51f6f8
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
42 行增加
和
46 行删除
+42
-46
Chapter16/chapter16.tex
+42
-46
没有找到文件。
Chapter16/chapter16.tex
查看文件 @
60771a57
...
...
@@ -713,7 +713,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------------------------------------------------
\subsubsection
{
3. 更深层的融合
}
\parinterval
为了获得更好的神经机器翻译模型,可以对训练流程和模型做更深度的整合。
{
\chapternine
}
已经介绍,神经机器翻译模型的训练包含两个阶段:初始化和优化,而无监督神经机器翻译的核心思路也是对应的两个阶段:无监督方法提供初始的监督信号和数据优化,因此可以考虑
通过
在模型的初始化阶段使用无监督方法提供初始的监督信号,然后优化过程不但优化模型的参数,还优化训练使用的数据,从而避免流水线带来的错误传播。其中初始的监督信号可以通过两种方法提供给模型,一种是直接使用无监督方法提供最初的伪双语数据来训练最初的翻译模型,另一种则是借助无监督方法来初始化模型,得到最初的翻译模型后直接使用初始化好的翻译模型产生伪双语数据来训练自己,如图
\ref
{
fig:16-19
}
所示。图
\ref
{
fig:16-19
}
(a)的一个简单实现是利用无监督词典归纳得到的词典对单语数据进行逐词的翻译,得到最初的伪双语数据,然后在这些数据上训练最初的翻译模型,最后不断地交替优化数据和模型,得到更好的翻译模型和质量更好的伪数据
\upcite
{
DBLP:conf/iclr/LampleCDR18
}
。这样的做法通过不断优化训练用的双语数据,摆脱了无监督词典归纳在最初的伪双语数据中遗留下来的错误,同时也避免了使用无监督统计机器翻译模型的繁琐和代价。图
\ref
{
fig:16-19
}
(b)的实现则依赖于具体的翻译模型初始化方法,我们将在下一节讨论翻译模型的不同初始化方法。
\parinterval
为了获得更好的神经机器翻译模型,可以对训练流程和模型做更深度的整合。
{
\chapternine
}
已经介绍,神经机器翻译模型的训练包含两个阶段:初始化和优化,而无监督神经机器翻译的核心思路也是对应的两个阶段:无监督方法提供初始的监督信号和数据优化,因此可以考虑在模型的初始化阶段使用无监督方法提供初始的监督信号,然后优化过程不但优化模型的参数,还优化训练使用的数据,从而避免流水线带来的错误传播。其中初始的监督信号可以通过两种方法提供给模型,一种是直接使用无监督方法提供最初的伪双语数据来训练最初的翻译模型,另一种则是借助无监督方法来初始化模型,得到最初的翻译模型后直接使用初始化好的翻译模型产生伪双语数据来训练自己,如图
\ref
{
fig:16-19
}
所示。图
\ref
{
fig:16-19
}
(a)的一个简单实现是利用无监督词典归纳得到的词典对单语数据进行逐词的翻译,得到最初的伪双语数据,然后在这些数据上训练最初的翻译模型,最后不断地交替优化数据和模型,得到更好的翻译模型和质量更好的伪数据
\upcite
{
DBLP:conf/iclr/LampleCDR18
}
。这样的做法通过不断优化训练用的双语数据,摆脱了无监督词典归纳在最初的伪双语数据中遗留下来的错误,同时也避免了使用无监督统计机器翻译模型的繁琐和代价。图
\ref
{
fig:16-19
}
(b)的实现则依赖于具体的翻译模型初始化方法,我们将在下一节讨论翻译模型的不同初始化方法。
%----------------------------------------------
\begin{figure}
[h]
\centering
...
...
@@ -728,7 +728,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------------------------------------------------
\subsubsection
{
4. 其它问题
}
\parinterval
实际
中无监督神经机器翻译模型的训练并不简单。一般来说,可以相信在生成的伪数据上经过参数优化后模型会变得比生成伪数据的时候更好,这时候对这个更好的模型使用数据增强的手段(如回译等)就可以生成更好的训练数据。这样一个数据优化过程依赖于一个假设:模型经过参数优化后会生成比原始数据更好的数据。而在数据优化和参数优化
共同影响下,模型非常容易拟合数据中的简单模式,使得在数据优化过程中模型倾向产生包含这种简单模式的数据,然后模型对这种类型数据过拟合,最后训练模型的损失可以下降到很低,然而模型生成的结果却非常差。一个常见的问题解就是模型对任何输入都输出相同的译文,这时候翻译模型无法产生任何有意义的结果,而它的训练过程则退化成普通的语言模型(数据优化产生的数据里无论什么目标语言对应的源语言都是同一个句子)。这种情况下翻译模型虽然能降低损失(训练语言模型),但是它不能学会任何源语言跟目标语言之间的对应关系,也就无法翻译。这个现象也反映出无监督机器翻译训练的脆弱性。
\parinterval
实际
上无监督神经机器翻译模型的训练并不简单。一般来说,可以相信在生成的伪数据上经过参数优化后模型会变得比生成伪数据的时候更好,这时候对这个更好的模型使用数据增强的手段(如回译等)就可以生成更好的训练数据。这样的一个数据优化过程依赖于一个假设:模型经过参数优化后会生成比原始数据更好的数据。而在数据优化和参数优化的
共同影响下,模型非常容易拟合数据中的简单模式,使得在数据优化过程中模型倾向产生包含这种简单模式的数据,然后模型对这种类型数据过拟合,最后训练模型的损失可以下降到很低,然而模型生成的结果却非常差。一个常见的问题解就是模型对任何输入都输出相同的译文,这时候翻译模型无法产生任何有意义的结果,而它的训练过程则退化成普通的语言模型(数据优化产生的数据里无论什么目标语言对应的源语言都是同一个句子)。这种情况下翻译模型虽然能降低损失(训练语言模型),但是它不能学会任何源语言跟目标语言之间的对应关系,也就无法翻译。这个现象也反映出无监督机器翻译训练的脆弱性。
\parinterval
比较常见的解决方案是在双语数据对应的目标函数外增加一个语言模型的目标函数。因为,在初始阶段,由于数据中存在大量不通顺的句子,额外的语言模型目标函数能把部分句子纠正过来,使得模型逐渐生成更好的数据
\upcite
{
DBLP:conf/emnlp/LampleOCDR18
}
。这个方法在实际中非常有效,尽管目前还没有理论上的支持。
...
...
@@ -738,7 +738,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\item
词表共享:对于源语言和目标语言里都一样的词使用同一个词嵌入,而不是源语言和目标语言各自对应一个词嵌入,比如,阿拉伯数字或者一些实体名字。这样相当于在模型设计上告诉模型这个词在源语言和目标语言里面表达同一个意思,隐式地引入了单词翻译的监督信号。在无监督神经机器翻译里词表共享搭配子词切分会更加有效,因为子词的覆盖范围广,比如,多个不同的词可以包含同一个子词。
\vspace
{
0.5em
}
\item
模型共享:与多语言翻译系统类似,使用同一个翻译模型来进行
前
向翻译(源语言
$
\to
$
目标语言)和反向翻译(目标语言
$
\to
$
源语言)。这样做降低了模型的参数量,减少了过拟合的风险。
\item
模型共享:与多语言翻译系统类似,使用同一个翻译模型来进行
正
向翻译(源语言
$
\to
$
目标语言)和反向翻译(目标语言
$
\to
$
源语言)。这样做降低了模型的参数量,减少了过拟合的风险。
\vspace
{
0.5em
}
\end{itemize}
...
...
@@ -753,26 +753,24 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------
\begin{itemize}
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
模型参数初始化
}}
。无监督神经机器翻译的关键在于如何提供最开始的监督信号,从而启动后续的迭代流程。无监督词典归纳已经可以提供一些可靠的监督信号,那么如何在模型初始化中融入这些信息?既然神经机器翻译模型都使用词嵌入层作为输入,而无监督词典归纳总是
首
先把两个语言各自的单语词嵌入映射到一个空间后才归纳双语词典,那么可以使用这些映射后的词嵌入来初始化模型的词嵌入层,然后在这个基础上训练模型,因为这些映射后的词嵌入天然就包含了大量的监督信号,比如,两个语言里意思相近的词对应的词嵌入会比其他词更靠近对方
\upcite
{
DBLP:journals/ipm/FarhanTAJATT20
}
。 为了防止训练过程中模型参数的更新会破坏词嵌入当中的词对齐信息,通常初始化后会固定模型的词嵌入层不让其更新
\upcite
{
DBLP:conf/emnlp/ArtetxeLA18
}
。
\item
{
\small\bfnew
{
模型参数初始化
}}
。无监督神经机器翻译的关键在于如何提供最开始的监督信号,从而启动后续的迭代流程。无监督词典归纳已经可以提供一些可靠的监督信号,那么如何在模型初始化中融入这些信息?既然神经机器翻译模型都使用词嵌入层作为输入,而无监督词典归纳总是先把两个语言各自的单语词嵌入映射到一个空间后才归纳双语词典,那么可以使用这些映射后的词嵌入来初始化模型的词嵌入层,然后在这个基础上训练模型,因为这些映射后的词嵌入天然就包含了大量的监督信号,比如,两个语言里意思相近的词对应的词嵌入会比其他词更靠近对方
\upcite
{
DBLP:journals/ipm/FarhanTAJATT20
}
。 为了防止训练过程中模型参数的更新会破坏词嵌入当中的词对齐信息,通常初始化后会固定模型的词嵌入层不让其更新
\upcite
{
DBLP:conf/emnlp/ArtetxeLA18
}
。
\parinterval
进一步的研究表明,无监督神经机器翻译能在提供更少监督信号的情况下启动,也就是可以去除无监督词典归纳这一步骤
\upcite
{
DBLP:conf/nips/ConneauL19
}
。这时候模型的初始化直接使用共享词表的预训练模型的参数作为起始点。这个预训练模型直接使用前面提到的预训练方法(如MASS)进行训练,区别在于模型的大小如宽度和深度需要严格匹配翻译模型。此外,这个模型不仅仅只在一个语言的单语数据上进行训练,而是同时在两个语言的单语数据上进行训练,并且两个语言的词表进行共享。前面提到,在共享词表特别是共享子词词表的情况下,已经隐式
的
告诉模型源语言和目标语言里一样的(子)词互为翻译,相当于模型使用了少量的监督信号。在这基础上使用两个语言的单语数据进行预训练,则通过模型共享进一步挖掘了语言之间共通的部分。因此,使用预训练模型进行初始化后,无监督神经机器翻译模型已经得到大量的监督信号,从而得以不断通过优化来提升模型性能。
\parinterval
进一步的研究表明,无监督神经机器翻译能在提供更少监督信号的情况下启动,也就是可以去除无监督词典归纳这一步骤
\upcite
{
DBLP:conf/nips/ConneauL19
}
。这时候模型的初始化直接使用共享词表的预训练模型的参数作为起始点。这个预训练模型直接使用前面提到的预训练方法(如MASS)进行训练,区别在于模型的大小如宽度和深度需要严格匹配翻译模型。此外,这个模型不仅仅只在一个语言的单语数据上进行训练,而是同时在两个语言的单语数据上进行训练,并且两个语言的词表进行共享。前面提到,在共享词表特别是共享子词词表的情况下,已经隐式
地
告诉模型源语言和目标语言里一样的(子)词互为翻译,相当于模型使用了少量的监督信号。在这基础上使用两个语言的单语数据进行预训练,则通过模型共享进一步挖掘了语言之间共通的部分。因此,使用预训练模型进行初始化后,无监督神经机器翻译模型已经得到大量的监督信号,从而得以不断通过优化来提升模型性能。
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
语言模型的使用
}}
。无监督神经机器翻译的一个重要部分就是来自语言模型的目标函数。因为翻译模型本质上是在完成文本生成任务,所以只有文本生成类型的语言模型建模方法才可以应用到无监督神经机器翻译里。比如,经典的给定前文预测下一词就是一个典型的自回归生成任务(见
{
\chaptertwo
}
),因此可以运用到无监督神经机器翻译里。但是,目前在预训练里流行的BERT等模型是掩码语言模型
\upcite
{
devlin2019bert
}
,就不能直接在无监督神经翻译里使用。
\parinterval
另外一个在无监督神经机器翻译中比较常见的语言模型目标函数则是降噪自编码器。它也是文本生成类型的语言模型建模方法。对于一个句子
$
\seq
{
x
}$
,首先使用一个噪声函数
$
\seq
{
x
}^{
'
}
=
\mathrm
{
noise
}
(
\seq
{
x
}
)
$
来对
$
\seq
{
x
}$
注入噪声,产生一个质量较差的句子
$
\seq
{
x
}^{
'
}$
。然后,让模型学习如何从
$
\seq
{
x
}^{
'
}$
还原出
$
\seq
{
x
}$
。这样一个目标函数比预测下一词更贴近翻译任务的本质,因为它是一个序列到序列的映射,并且输入输出两个序列在语义上是等价的。我们之所以采用
$
\seq
{
x
}^{
'
}$
而不是
$
\seq
{
x
}$
自己来预测
$
\seq
{
x
}^{
'
}$
,是因为模型可以通过简单的复制输入作为输出来完成从
$
\seq
{
x
}$
预测
$
\seq
{
x
}$
的任务,并且在输入中注入噪声会让模型更加鲁棒,因
为
模型可以通过训练集数据学会如何利用句子中噪声以外的信息来处理其中噪声并得到正确的输出。通常来说,噪声函数
$
\mathrm
{
noise
}$
有三种形式,如表
\ref
{
tab:16-1
}
所示。
\parinterval
另外一个在无监督神经机器翻译中比较常见的语言模型目标函数则是降噪自编码器。它也是文本生成类型的语言模型建模方法。对于一个句子
$
\seq
{
x
}$
,首先使用一个噪声函数
$
\seq
{
x
}^{
'
}
=
\mathrm
{
noise
}
(
\seq
{
x
}
)
$
来对
$
\seq
{
x
}$
注入噪声,产生一个质量较差的句子
$
\seq
{
x
}^{
'
}$
。然后,让模型学习如何从
$
\seq
{
x
}^{
'
}$
还原出
$
\seq
{
x
}$
。这样一个目标函数比预测下一词更贴近翻译任务的本质,因为它是一个序列到序列的映射,并且输入输出两个序列在语义上是等价的。我们之所以采用
$
\seq
{
x
}^{
'
}$
而不是
$
\seq
{
x
}$
自己来预测
$
\seq
{
x
}^{
'
}$
,是因为模型可以通过简单的复制输入作为输出来完成从
$
\seq
{
x
}$
预测
$
\seq
{
x
}$
的任务,并且在输入中注入噪声会让模型更加鲁棒,因
此
模型可以通过训练集数据学会如何利用句子中噪声以外的信息来处理其中噪声并得到正确的输出。通常来说,噪声函数
$
\mathrm
{
noise
}$
有三种形式,如表
\ref
{
tab:16-1
}
所示。
%----------------------------------------------
\begin{table}
[h]
\centering
\caption
{
三种噪声函数(原句为``我
\
喜欢
\
吃
\
苹果
\
。'')
}
\begin{tabular}
{
l|l|l
}
\hline
\multicolumn
{
1
}{
c|
}{
噪声函数
}
&
\multicolumn
{
1
}{
c|
}{
描述
}
&
\multicolumn
{
1
}{
c
}{
例子
}
\\
\hline
交换
&
句子中任意两个词进行交换
&
``我
\
喜欢
\ \underline
{
苹果
}
\ \underline
{
吃
}
\
。''
\\
删除
&
句子中的词按一定概率被删除
&
``我
\
喜欢
\
吃
\
。''
\\
空白
&
句子中的词按一定概率被替换成空白符
&
``我
\ \underline
{
\ \ \ \ \ \ \ \
}
\
吃
\
苹果
\
。''
\\
\hline
\rule
{
0pt
}{
15pt
}
交换
&
句子中任意两个词进行交换
&
``我
\
喜欢
\ \underline
{
苹果
}
\ \underline
{
吃
}
\
。''
\\
\rule
{
0pt
}{
15pt
}
删除
&
句子中的词按一定概率被删除
&
``我
\
喜欢
\
吃
\
。''
\\
\rule
{
0pt
}{
15pt
}
空白
&
句子中的词按一定概率被替换成空白符
&
``我
\ \underline
{
\ \ \ \ \ \ \ \
}
\
吃
\
苹果
\
。''
\\
\end{tabular}
\label
{
tab:16-1
}
\end{table}
...
...
@@ -787,7 +785,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\section
{
领域适应
}
\parinterval
机器翻译常常面临训练时与应用时所处领域不一致的问题,比如,
在一个新闻类数据上训练的系统应用在翻译医学文献上。不同领域的句子通常存在着很大的区别,比如,日常用语的结构较为简单,而化学领域论文的单词和句子结构较为复杂。此外,不同领域之间存在着较为严重的一词多义问题,即同一个词在不同领域中经常会有不同的含义,实例
\ref
{
eg:16-1
}
展示了
单词pitch在不同领域的不同词义。
\parinterval
机器翻译常常面临训练时与应用时所处领域不一致的问题,比如,
一个在新闻类数据上训练的系统应用在医学文献翻译任务上。不同领域的句子通常存在着很大的区别,比如,日常用语的结构较为简单,而化学领域中论文的单词和句子结构较为复杂。此外,不同领域之间存在着较为严重的一词多义问题,即同一个词在不同领域中经常会有不同的含义,实例
\ref
{
eg:16-1
}
展示了英语
单词pitch在不同领域的不同词义。
%----------------------------------------------
\begin{example}
单词pitch在不同领域的不同词义
...
...
@@ -807,9 +805,9 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\end{example}
%----------------------------------------------
\parinterval
在机器翻译任务中,
某些领域的双语数据相对容易获取,如新闻等领域,所以机器翻译在这些领域上表现较佳。然而,即使在富资源语种上,化学、医学等专业领域的双语数据却十分有限。如果直接使用低资源领域的数据训练一个机器翻译模型,由于数据稀缺问题,会导致模型的性能较差
\upcite
{
DBLP:conf/iccv/SunSSG17
}
。
混合多个领域的数据进行训练,不同领域的数据量不平衡会导致数据较少的领域训练不充分,模型容易忽略低资源领域的知识,使得在低资源领域上的翻译结果差强人意
\upcite
{
DBLP:conf/acl/DuhNST13
}
。
\parinterval
在机器翻译任务中,
像新闻等领域的双语数据相对容易获取,所以机器翻译在这些领域上表现较佳。然而,即使在富资源语种上,化学、医学等专业领域的双语数据依然十分有限。如果直接使用低资源领域的数据来训练机器翻译模型,由于数据稀缺问题,会导致模型的性能较差
\upcite
{
DBLP:conf/iccv/SunSSG17
}
。而
混合多个领域的数据进行训练,不同领域的数据量不平衡会导致数据较少的领域训练不充分,模型容易忽略低资源领域的知识,使得在低资源领域上的翻译结果差强人意
\upcite
{
DBLP:conf/acl/DuhNST13
}
。
\parinterval
{
\small\bfnew
{
领域适应
}}
(Domain Adaptation)方法是利用其他领域(Source Domain
\index
{
Source Domain
}
, 又称
{
\small\bfnew
{
源领域
}}
\index
{
源领域
}
)
知识来改进特定领域(Target Domain
\index
{
Target Domain
}
, 又称
{
\small\bfnew
{
目标领域
}}
\index
{
目标领域
}
)翻译效果的方法,可以有效地减少模型对目标领域数据的依赖。领域适应主要从两个方向出发
:
\parinterval
{
\small\bfnew
{
领域适应
}}
(Domain Adaptation)方法是利用其他领域(Source Domain
\index
{
Source Domain
}
, 又称
{
\small\bfnew
{
源领域
}}
\index
{
源领域
}
)
的知识来改进特定领域(Target Domain
\index
{
Target Domain
}
, 又称
{
\small\bfnew
{
目标领域
}}
\index
{
目标领域
}
)翻译效果的方法,该方法可以有效地减少模型对目标领域数据的依赖。领域适应的研究方向主要有以下两点
:
\begin{itemize}
\vspace
{
0.5em
}
...
...
@@ -819,65 +817,65 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\vspace
{
0.5em
}
\end{itemize}
\parinterval
在统计机器翻译时代,从数据或模型角度提升机器翻译模型在特定领域上的翻译性能就已经备受关注,这些技术和思想也为神经机器翻译中的领域适应技术提供了参考。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
统计机器翻译中的领域适应
}
\parinterval
在统计机器翻译中,领域适应可以分为基于混合模型的方法
\upcite
{
DBLP:conf/wmt/FosterK07,DBLP:conf/iwslt/BisazzaRF11,niehues2012detailed,DBLP:conf/acl/SennrichSA13,joty2015using,imamura2016multi
}
、基于数据加权的方法
\upcite
{
DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10,shah2012general,DBLP:conf/iwslt/MansourN12,DBLP:conf/cncl/ZhouCZ15
}
、基于数据选择的方法
\upcite
{
DBLP:conf/lrec/EckVW04,DBLP:conf/coling/ZhaoEV04,DBLP:conf/acl/MooreL10,DBLP:conf/acl/DuhNST13,DBLP:conf/coling/HoangS14,joty2015using,chen2016bilingual
}
和基于伪数据的方法
\upcite
{
DBLP:conf/iwslt/Ueffing06,DBLP:conf/coling/WuWZ08,DBLP:conf/iwslt/Schwenk08,DBLP:conf/wmt/BertoldiF09,DBLP:conf/wmt/LambertSSA11
}
。
\parinterval
在统计机器翻译时代,使用基于数据或模型的方法来提升机器翻译模型在特定领域上的翻译性能就已经备受关注,而这些技术和思想也为神经机器翻译中的领域适应技术提供了参考。
\parinterval
统计机器翻译中,领域适应可以分为基于混合模型的方法
\upcite
{
DBLP:conf/wmt/FosterK07,DBLP:conf/iwslt/BisazzaRF11,niehues2012detailed,DBLP:conf/acl/SennrichSA13,joty2015using,imamura2016multi
}
、基于数据加权的方法
\upcite
{
DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10,shah2012general,DBLP:conf/iwslt/MansourN12,DBLP:conf/cncl/ZhouCZ15
}
、基于数据选择的方法
\upcite
{
DBLP:conf/lrec/EckVW04,DBLP:conf/coling/ZhaoEV04,DBLP:conf/acl/MooreL10,DBLP:conf/acl/DuhNST13,DBLP:conf/coling/HoangS14,joty2015using,chen2016bilingual
}
和基于伪数据的方法
\upcite
{
DBLP:conf/iwslt/Ueffing06,DBLP:conf/coling/WuWZ08,DBLP:conf/iwslt/Schwenk08,DBLP:conf/wmt/BertoldiF09,DBLP:conf/wmt/LambertSSA11
}
,本小节将对这四种方法进行简单介绍。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
1. 基于混合模型的方法
}
\parinterval
不同领域的数据存在着共性,但是又有各自的风格,使用多领域数据训练出不同的模型,分情况处理问题可能会带来更好的效果,例如对疑问句和陈述句分别使用两个模型进行推断效果更好
\upcite
{
DBLP:conf/eacl/Sennrich12
}
。混合模型是统计机器学习理论中的传统实现技术之一,通过训练与每个语料库分别对应的多个统计机器翻译子模型,如语言模型、翻译模型和重排序模型,然后将它们进行组合以实现最佳性能
\upcite
{
DBLP:conf/wmt/FosterK07
}
。混合模型方法的步骤如下:
\parinterval
不同领域的数据存在着共性,但是又有各自的风格,因此使用多领域数据训练出不同的模型,分情况处理问题可能会带来更好的效果,例如对疑问句和陈述句分别使用两个模型进行推断
可以使翻译效果更好
\upcite
{
DBLP:conf/eacl/Sennrich12
}
。混合模型是统计机器学习理论中的传统实现技术之一,通过训练与每个语料库分别对应的多个统计机器翻译子模型,如语言模型、翻译模型和重排序模型,然后将它们进行组合以实现最佳性能
\upcite
{
DBLP:conf/wmt/FosterK07
}
。该方法的主要步骤如下:
\begin{itemize}
\vspace
{
0.5em
}
\item
将训练数据根据所在的领域分为几个不同的部分。
\vspace
{
0.5em
}
\item
利用每一部分数据训练
一个
子模型。
\item
利用每一部分数据训练
对应的
子模型。
\vspace
{
0.5em
}
\item
根据测试数据的上下文信息
适当
为每个子模型调整权重。
\item
根据测试数据的上下文信息为每个子模型调整权重。
\vspace
{
0.5em
}
\item
对不同的领域使用调整出的最佳权重,
加权整合多个子模型的输出。
\item
针对不同领域,使用调整后的最佳权重,并
加权整合多个子模型的输出。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
混合模型方法把统计机器翻译的每个模块分为多个模型同时解决问题,有权重地组合多个模型的结果。这个想法对后来出现的神经机器翻译中的模型融合、加权推断等方法有一定的启发(见
{
\chapterfourteen
}
)。
\parinterval
混合模型方法把统计机器翻译的每个模块分为多个模型同时解决问题,有权重地组合多个模型的结果。这个想法对后来出现的神经机器翻译中的模型融合、加权推断等方法
也
有一定的启发(见
{
\chapterfourteen
}
)。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
2. 基于数据加权的方法
}
\parinterval
在真实场景中,由于每个领域的数据量有限,同时领域数量较多,针对每个领域单独训练一个机器翻译模型是不现实的。所以,通常的策略是训练一个机器翻译模型来支持多领域的翻译。虽然混合多个领域的数据可以有效增加训练数据规模,但正如前面所说,由于各个领域样本的数据量不平衡,在训练数据稀缺的领域上,模型表现往往差强人意。一种观点认为,数据量较少的领域数据具有更大的学习价值,可以提供较为珍贵的知识和信息,应该在训练过程中获得更大的权重
。数据加权方法使用规则或统计方法对每个实例或领域进行评分,作为它们的权重,然后赋予每个样本或领域不同的权重来训练统计机器翻译模型。一般来说,数据量较少的领域数据权重更高,从而使这些更有价值的数据发挥出更大的作用
\upcite
{
DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10
}
。
\parinterval
在真实场景中,由于每个领域的数据量有限,同时领域数量较多,针对每个领域单独训练一个机器翻译模型是不现实的。所以,通常的策略是训练一个机器翻译模型来支持多领域的翻译。虽然混合多个领域的数据可以有效增加训练数据规模,但正如前面所说,由于各个领域样本的数据量不平衡,在训练数据稀缺的领域上,模型表现往往差强人意。一种观点认为,数据量较少的领域数据具有更大的学习价值,可以提供较为珍贵的知识和信息,应该在训练过程中获得更大的权重
,从而使这些更有价值的数据发挥出更大的作用
\upcite
{
DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10
}
。数据加权方法使用规则或统计方法对每个实例或领域进行评分,作为它们的权重,然后赋予每个样本或领域不同的权重来训练统计机器翻译模型
。
\parinterval
上述思想本质上在解决
{
\small\bfnew
{
类别不均衡问题
}}
\upcite
{
DBLP:conf/emnlp/ZhuH07
}
\index
{
类别不均衡问题
}
(Class Imbalance Problem
\index
{
Class Imbalance Problem
}
)。另一种方法是通过数据重新采样对语料库进行加权
\upcite
{
DBLP:conf/wmt/ShahBS10,rousseau2011lium
}
。语料库加权方法通过构建目标领域语言模型,比较各个语料库与目标领域的相似性,赋予相似的语料库更高的权重。
\parinterval
上述思想本质上在解决
{
\small\bfnew
{
类别不均衡问题
}}
\upcite
{
DBLP:conf/emnlp/ZhuH07
}
\index
{
类别不均衡问题
}
(Class Imbalance Problem
\index
{
Class Imbalance Problem
}
)。另一种方法是通过数据重新采样对语料库进行加权
\upcite
{
DBLP:conf/wmt/ShahBS10,rousseau2011lium
}
。语料库加权方法通过构建目标领域
的
语言模型,比较各个语料库与目标领域的相似性,赋予相似的语料库更高的权重。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
3. 基于数据选择的方法
}
\parinterval
源领域大规模的双语数据中通常会包含一些和目标领域相似的句子,基于数据选择的方法通过相似度函数选择出与目标领域相似的源领域数据,再把选择出的源领域数据与原始目标领域数据
混合
训练模型,增加目标领域的双语数据规模,从而提高模型在目标领域的性能。相似度可以通过语言模型
\upcite
{
DBLP:conf/lrec/EckVW04,DBLP:conf/coling/ZhaoEV04,moore2010intelligent,DBLP:conf/acl/DuhNST13
}
、 多模型联合
\upcite
{
DBLP:conf/coling/HoangS14,joty2015using
}
、卷积神经网络
\upcite
{
chen2016bilingual
}
等方法进行计算。
\parinterval
源领域大规模的双语数据中通常会包含一些和目标领域相似的句子,基于数据选择的方法通过相似度函数选择出与目标领域相似的源领域数据,再把选择出的源领域数据与原始目标领域数据
进行混合,之后
训练模型,增加目标领域的双语数据规模,从而提高模型在目标领域的性能。相似度可以通过语言模型
\upcite
{
DBLP:conf/lrec/EckVW04,DBLP:conf/coling/ZhaoEV04,moore2010intelligent,DBLP:conf/acl/DuhNST13
}
、 多模型联合
\upcite
{
DBLP:conf/coling/HoangS14,joty2015using
}
、卷积神经网络
\upcite
{
chen2016bilingual
}
等方法进行计算。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
4. 基于伪数据的方法
}
\parinterval
数据选择方法可以从源领域中选择出和目标领域相似的训练数据,但可用的数据量是较为有限的。因此,另外一种思路是对现有的双语数据进行修改或通过单语数据生成伪数据来增加数据量。常用方法包括
通过信息检索
\upcite
{
DBLP:conf/acl/UtiyamaI03
}
、平行词嵌入
\upcite
{
DBLP:conf/acl/MarieF17
}
等方法生成一些伪平行句对或平行短语对
\upcite
{
DBLP:conf/coling/WangZLUS16,chu2015integrated
}
来增加可使用的伪双语数据。统计机器翻译可以有效地利用平行短语对来提高模型性能
。
\parinterval
数据选择方法可以从源领域中选择出和目标领域相似的训练数据,但可用的数据量是较为有限的。因此,另外一种思路是对现有的双语数据进行修改或通过单语数据生成伪数据来增加数据量。常用方法包括
信息检索
\upcite
{
DBLP:conf/acl/UtiyamaI03
}
、平行词嵌入
\upcite
{
DBLP:conf/acl/MarieF17
}
等,通过生成一些伪平行句对或平行短语对
\upcite
{
DBLP:conf/coling/WangZLUS16,chu2015integrated
}
来增加可使用的伪双语数据
。
\parinterval
其中,
{
\small\bfnew
{
自学习
}}
(Self-training)是一种具有代表性的生成伪数据的方法
\upcite
{
DBLP:journals/tit/Scudder65a
}
。自学习通过
源领域的双语训练数据训练一个基准翻译系统,然后对目标领域的单语数据进行翻译,再从翻译候选集合中选择高质量的译文和源语言句子组合成为双语句对,之后将其加入到训练数据中重新训练翻译系统,该过程将一直迭代到翻译性能稳定为止
\upcite
{
DBLP:conf/iwslt/Ueffing06
}
。基于自学习的统计机器翻译可以从一个性能较好的源领域机器翻译模型出发,逐步引入目标领域的知识,可以显著提高目标领域的翻译性能。
\parinterval
其中,
{
\small\bfnew
{
自学习
}}
\index
{
自学习
}
(Self-training)
\index
{
Self-training
}
是一种具有代表性的生成伪数据的方法
\upcite
{
DBLP:journals/tit/Scudder65a
}
。自学习利用
源领域的双语训练数据训练一个基准翻译系统,然后对目标领域的单语数据进行翻译,再从翻译候选集合中选择高质量的译文和源语言句子组合成为双语句对,之后将其加入到训练数据中重新训练翻译系统,该过程将一直迭代到翻译性能稳定为止
\upcite
{
DBLP:conf/iwslt/Ueffing06
}
。基于自学习的统计机器翻译可以从一个性能较好的源领域机器翻译模型出发,逐步引入目标领域的知识,可以显著提高目标领域的翻译性能。
\parinterval
随着神经机器翻译的不断发展,许多基于神经网络的领域适应方法也被提出
\upcite
{
DBLP:conf/coling/ChuW18
}
,
其核心思想仍和统计机器翻译时期相似,也是从数据角度和模型角度两方面进行改进。不同之处在于,统计机器翻译模型是多个独立模型的组合,而神经机器翻译是一个整体的模型,因此统计机器翻译中基于模型的方法
不能直接应用于神经机器翻译。
\parinterval
随着神经机器翻译的不断发展,许多基于神经网络的领域适应方法也被提出
\upcite
{
DBLP:conf/coling/ChuW18
}
,
但其核心思想仍和统计机器翻译时期相似,也是从数据角度和模型角度两方面进行改进。不同之处在于,统计机器翻译模型是多个独立模型的组合,而神经机器翻译是一个整体的模型,因此统计机器翻译中基于模型的方法并
不能直接应用于神经机器翻译。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -893,20 +891,20 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\subsubsection
{
1. 基于多领域数据的方法
}
\parinterval
一种简单的思路是利用其他领域的数据来辅助低资源领域上的模型训练,即基于多领域数据的领域适应
\upcite
{
DBLP:conf/acl/ChuDK17,DBLP:journals/corr/abs-1708-08712,DBLP:conf/acl/WangTNYCP20,DBLP:conf/acl/JiangLWZ20
}
。实际上,多领域建模也可以看作是一种多语言建模问题(
\ref
{
multilingual-translation-model
}
节)。通过借助其他相似领域的训练数据,可以缓解目标领域数据缺乏的问题。比如,想要训练网络小说领域的翻译系统,可以通过加入文学、字幕等领域的翻译数据来增加数据量。
\parinterval
一种简单的思路是利用其他领域的数据来辅助低资源领域上的模型训练,即基于多领域数据的领域适应
\upcite
{
DBLP:conf/acl/ChuDK17,DBLP:journals/corr/abs-1708-08712,DBLP:conf/acl/WangTNYCP20,DBLP:conf/acl/JiangLWZ20
}
。实际上,多领域建模也可以看作是一种多语言建模问题(
相关内容见本章
\ref
{
multilingual-translation-model
}
节)。通过借助其他相似领域的训练数据,可以缓解目标领域数据缺乏的问题。比如,想要训练网络小说领域的翻译系统,可以通过加入文学、字幕等领域的翻译数据来增加数据量。
\parinterval
但在神经机器翻译中,多领域数据不平衡问题也会导致数据量较少的领域训练不充分,带来较低的翻译品质。目前比较常用的多领域数据方法是在数据中加入标签来提高神经机器翻译模型对不同领域的区分能力
\upcite
{
DBLP:conf/acl/ChuDK17
}
,该方法主要通过两种策略来缓解领域不平衡问题:
\begin{itemize}
\vspace
{
0.5em
}
\item
在不同领域的源语
句子句首加上不同的标签来指定该句子
对应的领域,让神经机器翻译模型在预测过程中可以生成更符合领域特性的句子。
\item
在不同领域的源语
言句子句首加上不同的标签来指定该句子所
对应的领域,让神经机器翻译模型在预测过程中可以生成更符合领域特性的句子。
\item
把数据量较小的领域数据复制数倍,来对各个领域的数据量进行平衡,使模型对各个领域给与平等的关注。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
这种方法的
优点在于思路简单、易于实现,可以大大提高可用的数据量,但不同领域的数据不可避免地会产生一些干扰,在实际使用中可能会产生词汇预测错误的问题。
\parinterval
基于多领域数据的方法
优点在于思路简单、易于实现,可以大大提高可用的数据量,但不同领域的数据不可避免地会产生一些干扰,在实际使用中可能会产生词汇预测错误的问题。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
...
...
@@ -924,9 +922,9 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------------------------------------------------
\subsubsection
{
3. 基于单语数据的方法
}
\parinterval
尽管目标领域的双语数据是十分有限的,但通常存在大量可用的单语数据。例如在网络小说翻译任务中,只有少量的双语数据可用,而网络上有丰富的单语小说数据可用。
\ref
{
effective-use-of-data
}
节中提到了很多在低资源场景下利用单语数据的模型方法,比如进行数据增强或利用语言模型等。
这些方法均可以直接应用在领域适应任务上,有效地利用领域内的单语数据可以显著提高机器翻译性能。
\parinterval
虽然目标领域的双语数据十分有限,但通常存在大量可用的单语数据。例如在网络小说翻译任务中,只有少量的双语数据可用,但是网络上有丰富的小说单语数据可以使用。本章
\ref
{
effective-use-of-data
}
节中提到了很多在低资源场景下利用单语数据的模型方法,比如进行数据增强或利用语言模型等,
这些方法均可以直接应用在领域适应任务上,有效地利用领域内的单语数据可以显著提高机器翻译性能。
\parinterval
此外,如果目标领域的双语数据极度稀缺,甚至
完全
没有任何双语数据,这时可以使用
\ref
{
unsupervised-dictionary-induction
}
节中提到的无监督词典归纳方法从目标领域中归纳出双语词典,然后将目标领域的目标端单语数据通过逐词翻译的方法生成伪数据
\upcite
{
DBLP:conf/acl/HuXNC19
}
,即对每个单词根据双语词典进行对应翻译,构建伪平行语料,用来训练目标领域的神经机器翻译模型。
\parinterval
此外,如果目标领域的双语数据极度稀缺,甚至没有任何双语数据,这时可以使用
\ref
{
unsupervised-dictionary-induction
}
节中提到的无监督词典归纳方法从目标领域中归纳出双语词典,然后将目标领域的目标端单语数据通过逐词翻译的方法生成伪数据
\upcite
{
DBLP:conf/acl/HuXNC19
}
,即对每个单词根据双语词典进行对应翻译,构建伪平行语料,用来训练目标领域的神经机器翻译模型。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -934,7 +932,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\subsection
{
基于模型的神经机器翻译领域适应
}
\label
{
modeling-methods-in neural-machine-translation
}
\parinterval
一个神经机器翻译模型的实现
分为三个组成
部分:设计神经网络模型结构、制定训练策略训练模型、模型推断生成翻译结果。因此,领域适应也可以体现在这三个步骤中:
\parinterval
一个神经机器翻译模型的实现
主要分为三个
部分:设计神经网络模型结构、制定训练策略训练模型、模型推断生成翻译结果。因此,领域适应也可以体现在这三个步骤中:
\begin{itemize}
\vspace
{
0.5em
}
...
...
@@ -954,7 +952,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\parinterval
统计机器翻译时代基于模型结构的方法集中在提升词对齐模型、语言模型等子模型的领域适应性,从而提升统计机器翻译模型在特定领域的表现。而神经机器翻译模型是一个端到端的框架,因此对模型的调整往往体现在整体结构上。
\parinterval
在使用多领域数据时,神经机器翻译的结构无法有效地利用多领域语料库的信息多样性,混合多个相差较大的领域数据进行训练会使单个领域的翻译性能下降
\upcite
{
DBLP:conf/eacl/NegriTFBF17
}
。为了解决这一问题,一个比较典型的做法是在使用多领域数据训练时,如图
\ref
{
fig:16-21
}
所示,在神经机器翻译模型的编码器中添加一个判别器,使用判别器预测输入句子的领域
\upcite
{
DBLP:conf/wmt/BritzLP17
}
,具体的做法为:在编码器的顶部添加一个判别器网络,这个判别器使用源语言句子
$
x
$
的编码器表示
$
\mathbi
{
x
'
}
$
作为输入,预测句子所属的领域标签
$
d
$
。为了使预测领域标签d的正确概率
$
\funp
{
P
(
d|H
)
}$
最大,模型在训练过程中最小化如下损失函数
$
\funp
{
L
}_{
\rm
{
disc
}}$
。
\parinterval
在使用多领域数据时,神经机器翻译的结构无法有效地利用多领域语料库的信息多样性,混合多个相差较大的领域数据进行训练会使单个领域的翻译性能下降
\upcite
{
DBLP:conf/eacl/NegriTFBF17
}
。为了解决这一问题,一个比较典型的做法是在使用多领域数据训练时,如图
\ref
{
fig:16-21
}
所示,在神经机器翻译模型的编码器中添加一个判别器,使用判别器预测输入句子的领域
\upcite
{
DBLP:conf/wmt/BritzLP17
}
,具体的做法为:在编码器的顶部添加一个判别器网络,这个判别器使用源语言句子
$
x
$
的编码器表示
$
\mathbi
{
x
}
'
$
作为输入,预测句子所属的领域标签
$
d
$
。为了使预测领域标签d的正确概率
$
\funp
{
P
(
d|H
)
}$
最大,模型在训练过程中最小化如下损失函数
$
\funp
{
L
}_{
\rm
{
disc
}}$
。
%----------------------------------------------
\begin{figure}
[h]
\centering
...
...
@@ -980,7 +978,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\funp
{
L
}
&
=
&
\funp
{
L
}_{
\rm
{
disc
}}
+
\funp
{
L
}_{
\rm
{
gen
}}
\label
{
eq:16-14
}
\end{eqnarray}
\parinterval
这种方法使模型具备了识别不同领域数据的能力,从而可以针对不同领域进行特定的建模,生成符合领域特征的翻译结果。此外,还可以利用词频-逆文档频率方法
\upcite
{
DBLP:journals/ibmrd/Luhn58
}
预测输入句子的领域标签,在词嵌入层加上领域特定的嵌入表示。还有一些对模型结构进行更改的工作
在于
融合语言模型到神经机器翻译模型中
\upcite
{
2015OnGulcehre,DBLP:conf/emnlp/DomhanH17
}
。
\parinterval
这种方法使模型具备了识别不同领域数据的能力,从而可以针对不同领域进行特定的建模,生成符合领域特征的翻译结果。此外,还可以利用词频-逆文档频率方法
\upcite
{
DBLP:journals/ibmrd/Luhn58
}
预测输入句子的领域标签,在词嵌入层加上领域特定的嵌入表示。还有一些对模型结构进行更改的工作
比如
融合语言模型到神经机器翻译模型中
\upcite
{
2015OnGulcehre,DBLP:conf/emnlp/DomhanH17
}
。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
...
...
@@ -989,25 +987,23 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\parinterval
因为特定领域的训练数据通常十分稀缺,所以如何更充分地利用数据是一个重要问题。基于训练策略的领域适应方法是神经机器翻译中较为广泛使用的方法,具有易于实现、作用显著的优点
\upcite
{
DBLP:conf/naacl/SimianerWD19
}
。基于训练策略的领域适应方法是指在模型的训练阶段改变获得训练目标的过程,通过加权或者微调等方法更加高效地利用数据。
\parinterval
受到统计机器翻译中数据加权方法的启发,一个简单的思路是给神经机器翻译的训练数据分配不同的训练权重,从而使和目标领域更相似
数据发挥更大的作用,并减少不相似数据的干扰。一种常用的做法是通过目标领域内和领域外语言模型
计算样本的权重
\upcite
{
DBLP:conf/emnlp/WangULCS17
}
。领域内语言模型对句子的打分越高,表示该句子与目标领域越相似,反之,领域外语言模型对句子的打分越高,表示该句子可能与目标领域无关,会对训练过程造成一些干扰。
\parinterval
受到统计机器翻译中数据加权方法的启发,一个简单的思路是给神经机器翻译的训练数据分配不同的训练权重,从而使和目标领域更相似
的数据发挥更大的作用,并减少不相似数据的干扰。一种常用的做法是使用目标领域内和领域外语言模型来
计算样本的权重
\upcite
{
DBLP:conf/emnlp/WangULCS17
}
。领域内语言模型对句子的打分越高,表示该句子与目标领域越相似,反之,领域外语言模型对句子的打分越高,表示该句子可能与目标领域无关,会对训练过程造成一些干扰。
\parinterval
与句子级别进行加权方法相似,加权思想还可以应用在词级别,即对每个词进行权重评分,对目标领域中的词赋予更高的权重,以使模型倾向于生成更多目标领域的词
\upcite
{
DBLP:journals/corr/abs-1906-03129
}
。
\parinterval
数据选择方法会降低训练数据的数据量,而在数据量较少的时候模型
表现可能较差,针对这个问题,一种方法是在不同的训练轮次动态地改变训练数据子集。动态数据选择使得每轮的训练数据均小于全部数据量,但是在每轮中的训练数据均不同,可能前一轮没有训练的数据在当前轮被包括进来,由此可以缓解训练数据减小的问题。
一种做法是先将完整的数据送入模型,再根据相似度逐次减少每轮的数据量,最后得到在目标领域上效果最好的领域适应模型
\upcite
{
DBLP:conf/emnlp/WeesBM17
}
。或者将最相似的句子最先送入模型,让模型可以最先学到跟目标领域最相关的知识,奠定良好的基础
\upcite
{
DBLP:conf/naacl/ZhangSKMCD19
}
。
\parinterval
数据选择方法会降低训练数据的数据量,而在数据量较少的时候模型
性能表现可能较差,针对这个问题,一种方法是在不同的训练轮次动态地改变训练数据子集。动态数据选择使得每轮的训练数据均小于全部数据量,但是在每轮中的训练数据均不同,可能前一轮没有训练的数据在当前轮被包括进来,由此可以缓解训练数据减小的问题。另
一种做法是先将完整的数据送入模型,再根据相似度逐次减少每轮的数据量,最后得到在目标领域上效果最好的领域适应模型
\upcite
{
DBLP:conf/emnlp/WeesBM17
}
。或者将最相似的句子最先送入模型,让模型可以最先学到跟目标领域最相关的知识,奠定良好的基础
\upcite
{
DBLP:conf/naacl/ZhangSKMCD19
}
。
\parinterval
还有一种方法是不从随机状态开始训练网络,而是使用翻译性能较好的源领域模型作为初始状态,因为源领域模型中包含着一些通用知识可以被目标领域借鉴。比如,想获得口语领域的机器翻译模型,
使用新闻领域模型作为初始状态
训练口语领域模型。同时,微调方法经常配合预训练使用。微调方法的具体过程如下:
\parinterval
还有一种方法是不从随机状态开始训练网络,而是使用翻译性能较好的源领域模型作为初始状态,因为源领域模型中包含着一些通用知识可以被目标领域借鉴。比如,想获得口语领域的机器翻译模型,
可以使用新闻领域模型作为初始状态来
训练口语领域模型。同时,微调方法经常配合预训练使用。微调方法的具体过程如下:
\begin{itemize}
\vspace
{
0.5em
}
\item
在资源丰富的源领域语料库上对系统进行训练直至收敛。
\vspace
{
0.5em
}
\item
在资源贫乏的目标领域语料库上进行训练,对系统参数进行微调使其更适应目标领域。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
然而微调的方法会带来严重的灾难性遗忘问题,即在目标领域上过拟合,导致在源领域上的翻译性能大幅度下降。如果想要保证模型在目标领域上有较好翻译性能的同时在源领域的翻译性能也不下降,一个比较常用的方法是进行混合微调
\upcite
{
DBLP:conf/acl/ChuDK17
}
。具体做法是先在源领域数据上训练一个神经机器翻译模型,然后将目标领域数据复制数倍和源领域数据量相等,之后将数据混合后对神经机器翻译模型进行微调。混合微调方法既降低了目标领域数据量小导致的过拟合问题,又带来了更好的微调性能。除了混合微调外,还有研究人员使用
\ref
{
multilingual-translation-model
}
节的知识蒸馏方法缓解灾难性遗忘问题,即对源领域和目标领域进行多次循环知识蒸馏,迭代学习对方领域的知识,可以保证在源领域和目标领域上的翻译性能共同逐步上升
\upcite
{
DBLP:conf/emnlp/ZengLSGLYL19
}
。过拟合导致的灾难性遗忘还可以使用
\ref
{
subsection-13.2
}
一节中的L2正则化和Dropout方法来缓解
\upcite
{
barone2017regularization
}
。
\parinterval
然而微调的方法会带来严重的灾难性遗忘问题,即在目标领域上过拟合,导致在源领域上的翻译性能大幅度下降。如果想要保证模型在目标领域上有较好翻译性能的同时在源领域的翻译性能也不下降,一个比较常用的方法是进行混合微调
\upcite
{
DBLP:conf/acl/ChuDK17
}
。具体做法是先在源领域数据上训练一个神经机器翻译模型,然后将目标领域数据复制数倍和源领域数据量相等,之后将数据混合后对神经机器翻译模型进行微调。混合微调方法既降低了目标领域数据量小导致的过拟合问题,又带来了更好的微调性能。除了混合微调外,还有研究人员使用
\ref
{
multilingual-translation-model
}
节的知识蒸馏方法缓解灾难性遗忘问题,即对源领域和目标领域进行多次循环知识蒸馏,迭代学习对方领域的知识,可以保证在源领域和目标领域上的翻译性能共同逐步上升
\upcite
{
DBLP:conf/emnlp/ZengLSGLYL19
}
。过拟合导致的灾难性遗忘
问题
还可以使用
\ref
{
subsection-13.2
}
一节中的L2正则化和Dropout方法来缓解
\upcite
{
barone2017regularization
}
。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
...
...
@@ -1028,7 +1024,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\vspace
{
0.5em
}
\end{itemize}
\parinterval
集成推断方法相较于直接使用大量数据训练成一个模型的主要优势在于速度快,多个领域的模型可以
并行地独立训练,使训练时间大大缩短。集成推断也可以结合加权
思想,对不同领域的句子,赋予每个模型不同的先验权重进行推断,来获得最佳的推断结果
\upcite
{
DBLP:conf/acl/SaundersSGB19
}
。还有部分工作研究在推断过程中融入语言模型
\upcite
{
2015OnGulcehre,DBLP:conf/emnlp/DomhanH17
}
或目标领域的罕见词
\upcite
{
DBLP:conf/naacl/BapnaF19
}
。
\parinterval
集成推断方法相较于直接使用大量数据训练成一个模型的主要优势在于速度快,多个领域的模型可以
独立训练,使训练时间大大缩短。集成推断也可以结合加权的
思想,对不同领域的句子,赋予每个模型不同的先验权重进行推断,来获得最佳的推断结果
\upcite
{
DBLP:conf/acl/SaundersSGB19
}
。还有部分工作研究在推断过程中融入语言模型
\upcite
{
2015OnGulcehre,DBLP:conf/emnlp/DomhanH17
}
或目标领域的罕见词
\upcite
{
DBLP:conf/naacl/BapnaF19
}
。
%----------------------------------------------------------------------------------------
% NEW SECTION
...
...
@@ -1038,13 +1034,13 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
低资源机器翻译是机器翻译大规模应用所面临的挑战之一,因此也备受关注。一方面,小样本学习和零样本学习技术的发展,使得研究者可以有更多的手段对问题求解;另一方面,从多语言之间的联系出发,也可以进一步挖掘语料背后的知识,并应用于低资源翻译任务。本章从多个方面介绍了低资源机器翻译方法,并结合多语言、零资源翻译等问题给出了不同场景下解决问题的思路。除此之外,还有几方面工作值得进一步关注:
\parinterval
如何更高效地利用已有双语数据或单语数据进行数据增强始终是一个热点问题。研究人员
们分别探索了源语言单语和目标语单语的使用方法
\upcite
{
DBLP:conf/emnlp/ZhangZ16,DBLP:conf/emnlp/WuWXQLL19,DBLP:conf/acl/XiaKAN19
}
,以及如何对已有双语数据进行修改
\upcite
{
DBLP:conf/emnlp/WangPDN18,DBLP:conf/acl/GaoZWXQCZL19
}
。经过数据增强得到的伪数据的质量时好时坏,如何提高伪数据的质量以及更好地利用伪数据进行十分重要
\upcite
{
DBLP:conf/emnlp/FadaeeM18,DBLP:conf/nlpcc/XuLXLLXZ19,DBLP:conf/wmt/CaswellCG19,DBLP:journals/corr/abs200403672,DBLP:conf/emnlp/WangLWLS19
}
。此外,还有一些工作对数据增强技术进行了理论分析
\upcite
{
DBLP:conf/emnlp/LiLHZZ19,DBLP:conf/acl/MarieRF20
}
。
\parinterval
如何更高效地利用已有双语数据或单语数据进行数据增强始终是一个热点问题。研究人员
分别探索了源语言单语和目标语言单语的使用方法
\upcite
{
DBLP:conf/emnlp/ZhangZ16,DBLP:conf/emnlp/WuWXQLL19,DBLP:conf/acl/XiaKAN19
}
,以及如何对已有双语数据进行修改
\upcite
{
DBLP:conf/emnlp/WangPDN18,DBLP:conf/acl/GaoZWXQCZL19
}
。经过数据增强得到的伪数据的质量时好时坏,如何提高伪数据的质量以及更好地利用伪数据进行训练也是十分重要的问题
\upcite
{
DBLP:conf/emnlp/FadaeeM18,DBLP:conf/nlpcc/XuLXLLXZ19,DBLP:conf/wmt/CaswellCG19,DBLP:journals/corr/abs200403672,DBLP:conf/emnlp/WangLWLS19
}
。此外,还有一些工作对数据增强技术进行了理论分析
\upcite
{
DBLP:conf/emnlp/LiLHZZ19,DBLP:conf/acl/MarieRF20
}
。
\parinterval
语言模型除了应用在解码过程中来提高翻译结果的流畅度之外,另外一种常用的做法是用来对翻译结果进行重排序。翻译模型在解码过程中可以生成多个候选,可以利用语言模型、不同的翻译模型等分别对每个候选打分,选择分数最高的句子作为最终的翻译结果
\upcite
{
DBLP:conf/wmt/WangCJYCLSWY17,ng2019facebook,DBLP:conf/wmt/WangLLJZLLXZ18,DBLP:conf/wmt/LiLXLLLWZXWFCLL19
}
,这一方法在各种机器翻译评测任务中得到了广泛使用。
\parinterval
预训练模型BERT的提出引发了人们对预训练方法的关注,从多个维度对预训练方法进行了更广泛和更深入的探讨。预训练模型的目标最早主要是语言模型或掩码语言模型,之后又提出了新的预训练任务,如排列语言模型
\upcite
{
DBLP:conf/nips/YangDYCSL19
}
、降噪自编码器
\upcite
{
lewis2019bart
}
等
\upcite
{
DBLP:conf/iclr/LanCGGSS20,DBLP:conf/acl/ZhangHLJSL19
}
。预训练技术也逐渐向多语言领域扩展
\upcite
{
DBLP:conf/nips/ConneauL19,DBLP:conf/emnlp/HuangLDGSJZ19,song2019mass
}
,甚至不再只局限于文本任务,逐渐向更多模态探索
\upcite
{
DBLP:conf/iccv/SunMV0S19,DBLP:journals/corr/abs-2010-12831,DBLP:conf/nips/LuBPL19,DBLP:conf/interspeech/ChuangLLL20
}
。对于如何将预训练模型高效地应用到下游任务中,也进行了很多的经验性对比与分析
\upcite
{
DBLP:journals/corr/abs-1802-05365,DBLP:conf/rep4nlp/PetersRS19,DBLP:conf/cncl/SunQXH19
}
。但将预训练模型应用于下游任务存在的一个问题是,由于模型巨大的参数量会带来较大的延时及显存消耗。因此,很多工作对如何压缩预训练模型进行了研究
\upcite
{
shen2020q,Lan2020ALBERTAL,DBLP:journals/corr/abs-1910-01108,Jiao2020TinyBERTDB
}
。
\parinterval
最早的多语言方向的工作开始于多任务学习,通过共享编码器模块或是注意力模块来进行一对多
\upcite
{
DBLP:conf/acl/DongWHYW15
}
或多对一
\upcite
{
DBLP:journals/tacl/LeeCH17
}
或多对多
\upcite
{
DBLP:conf/naacl/FiratCB16
}
的学习,然而这些方法需要为每个翻译语言对设计单独的编码器和解码器,限制了其可扩展性。为了解决以上问题,研究人员进一步探索了用于多语言翻译的单个机器翻译模型的方法,也就是我们所说的多语言单模型系统
\upcite
{
DBLP:journals/corr/HaNW16,DBLP:journals/tacl/JohnsonSLKWCTVW17
}
。为了弥补多语言单模型系统中缺乏语言表示多样性的问题,可以重新组织分享模块,设计特定任务相关模块
\upcite
{
DBLP:conf/coling/BlackwoodBW18,DBLP:conf/wmt/SachanN18,DBLP:conf/wmt/LuKLBZS18,DBLP:conf/acl/WangZZZXZ19
}
;可以将多语言单词编码
与语言聚类分离,用一种多语言词典编码框架智能地共享词汇级别的信息,有助于语言间的泛化
\upcite
{
DBLP:conf/iclr/WangPAN19
}
;可以将语言聚类为不同的组,并为每个聚类单独训练一个多语言模型
\upcite
{
DBLP:conf/emnlp/TanCHXQL19
}
。零资源翻译是多语言翻译领域一个非常重要的问题,近两年受到了广泛的关注,零资源翻译不仅可以解决低资源语种双语数据缺失的问题,还可以显著提高数据
效率,在零资源翻译中,仅在
$
O
(
k
)
$
并行语料库上进行训练之后,单个多语言翻译模型就能在任何
$
O
(
k
^{
2
}
)
$
语言对之间进行概括和转换
\upcite
{
DBLP:conf/naacl/Al-ShedivatP19
}
。但是,零资源翻译的性能通常很不稳定并且明显落后于有监督的翻译方向。为了改善零资源翻译,可以开发新的跨语言正则器,例如对齐正则器
\upcite
{
DBLP:journals/corr/abs-1903-07091
}
,一致性正则器
\upcite
{
DBLP:conf/naacl/Al-ShedivatP19
}
;可以通过反向翻译
\upcite
{
DBLP:conf/acl/GuWCL19,DBLP:conf/emnlp/FiratSAYC16
}
或基于枢轴的翻译
\upcite
{
DBLP:conf/emnlp/CurreyH19
}
生成人工并行数据;也可以尝试通过微调来改善零资源翻译性能
\upcite
{
firat2016zero,DBLP:journals/corr/abs-1805-10338
}
。
\parinterval
最早的多语言方向的工作开始于多任务学习,通过共享编码器模块或是注意力模块来进行一对多
\upcite
{
DBLP:conf/acl/DongWHYW15
}
或多对一
\upcite
{
DBLP:journals/tacl/LeeCH17
}
或多对多
\upcite
{
DBLP:conf/naacl/FiratCB16
}
的学习,然而这些方法需要为每个翻译语言对设计单独的编码器和解码器,限制了其可扩展性。为了解决以上问题,研究人员进一步探索了用于多语言翻译的单个机器翻译模型的方法,也就是我们所说的多语言单模型系统
\upcite
{
DBLP:journals/corr/HaNW16,DBLP:journals/tacl/JohnsonSLKWCTVW17
}
。为了弥补多语言单模型系统中缺乏语言表示多样性的问题,可以重新组织分享模块,设计特定任务相关模块
\upcite
{
DBLP:conf/coling/BlackwoodBW18,DBLP:conf/wmt/SachanN18,DBLP:conf/wmt/LuKLBZS18,DBLP:conf/acl/WangZZZXZ19
}
;可以将多语言单词编码
和语言聚类分离,用一种多语言词典编码框架智能地共享词汇级别的信息,有助于语言间的泛化
\upcite
{
DBLP:conf/iclr/WangPAN19
}
;可以将语言聚类为不同的组,并为每个聚类单独训练一个多语言模型
\upcite
{
DBLP:conf/emnlp/TanCHXQL19
}
。零资源翻译是多语言翻译领域一个非常重要的问题,近两年受到了广泛的关注,零资源翻译不仅可以解决低资源语种双语数据缺失的问题,还可以显著提高数据使用
效率,在零资源翻译中,仅在
$
O
(
k
)
$
并行语料库上进行训练之后,单个多语言翻译模型就能在任何
$
O
(
k
^{
2
}
)
$
语言对之间进行概括和转换
\upcite
{
DBLP:conf/naacl/Al-ShedivatP19
}
。但是,零资源翻译的性能通常很不稳定并且明显落后于有监督的翻译方向。为了改善零资源翻译,可以开发新的跨语言正则器,例如对齐正则器
\upcite
{
DBLP:journals/corr/abs-1903-07091
}
,一致性正则器
\upcite
{
DBLP:conf/naacl/Al-ShedivatP19
}
;可以通过反向翻译
\upcite
{
DBLP:conf/acl/GuWCL19,DBLP:conf/emnlp/FiratSAYC16
}
或基于枢轴的翻译
\upcite
{
DBLP:conf/emnlp/CurreyH19
}
生成人工并行数据;也可以尝试通过微调来改善零资源翻译性能
\upcite
{
firat2016zero,DBLP:journals/corr/abs-1805-10338
}
。
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论