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
f8d39eca
Commit
f8d39eca
authored
Jan 12, 2021
by
孟霞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
14繁衍率模型输入补充
parent
e8655e2e
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
17 行增加
和
18 行删除
+17
-18
Chapter14/chapter14.tex
+17
-18
没有找到文件。
Chapter14/chapter14.tex
查看文件 @
f8d39eca
...
...
@@ -254,9 +254,9 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\subsection
{
搜索错误
}
\parinterval
机器翻译的错误分为两类:搜索错误和模型错误。搜索错误是指由于搜索算法的限制,即使潜在的搜索空间中有更好的解,模型也无法找到。比较典型的例子是,在对搜索结果进行剪枝的时候,如果剪枝过多,找到的结果很有可能不是最优的
。
这时就出现了搜索错误。而模型错误则是指由于模型学习能力的限制,即使搜索空间中存在最优解,模型也无法将该解排序在前面。
\parinterval
机器翻译的错误分为两类:搜索错误和模型错误。搜索错误是指由于搜索算法的限制,即使潜在的搜索空间中有更好的解,模型也无法找到。比较典型的例子是,在对搜索结果进行剪枝的时候,如果剪枝过多,找到的结果很有可能不是最优的
,
这时就出现了搜索错误。而模型错误则是指由于模型学习能力的限制,即使搜索空间中存在最优解,模型也无法将该解排序在前面。
\parinterval
在统计机器翻译中,搜索错误可以通过减少剪枝进行缓解。比较简单的方式是增加搜索束宽度,这往往会带来一定的性能提升
\upcite
{
Xiao2016ALA
}
。也可以对搜索问题进行单独建模,以保证学习到的模型出现更少的搜索错误
\upcite
{
Liu2014SearchAwareTF,Yu2013MaxViolationPA
}
。但是,在神经机器翻译中,这个问题却表现出不同的现象:在很多神经机器翻译系统中,随着搜索束的增大,系统的BLEU不升反降。图
\ref
{
fig:14-3
}
展示了神经机器翻译系统中BLEU随搜索束大小的变化曲线,这里为了使该图更加规整直观,横坐标处将束大小进行了取对数操作。这个现象与传统的常识是相违背的,因此也有一些研究尝试解释这个现象
\upcite
{
Stahlberg2019OnNS,Niehues2017AnalyzingNM
}
。
在实验中,研究人员发现增加搜索束的大小会导致翻译生成的结果变得更短。他们将这个现象归因于:神经机器翻译的建模基于局部归一的最大似然估计,增加搜索束的大小,会导致更多的模型错误
\upcite
{
Sountsov2016LengthBI,Murray2018CorrectingLB,StahlbergNeural
}
。此外,也有研究人员把这种翻译过短的现象归因于搜索错误
\upcite
{
Stahlberg2019OnNS
}
。 由于搜索时所面临的搜索空间是十分巨大的,因此搜索时可能无法找到模型定义的“最好”的译文。在某种意义上,这也体现了训练和推断不一致的问题(见
{
\chapterthirteen
}
)。
\parinterval
在统计机器翻译中,搜索错误可以通过减少剪枝进行缓解。比较简单的方式是增加搜索束宽度,这往往会带来一定的性能提升
\upcite
{
Xiao2016ALA
}
。也可以对搜索问题进行单独建模,以保证学习到的模型出现更少的搜索错误
\upcite
{
Liu2014SearchAwareTF,Yu2013MaxViolationPA
}
。但是,在神经机器翻译中,这个问题却表现出不同的现象:在很多神经机器翻译系统中,随着搜索束的增大,系统的BLEU不升反降。图
\ref
{
fig:14-3
}
展示了神经机器翻译系统中BLEU随搜索束大小的变化曲线,这里为了使该图更加规整直观,横坐标处将束大小进行了取对数操作。这个现象与传统的常识是相违背的,因此也有一些研究尝试解释这个现象
\upcite
{
Stahlberg2019OnNS,Niehues2017AnalyzingNM
}
。
%----------------------------------------------------------------------
\begin{figure}
[htp]
...
...
@@ -266,10 +266,9 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\label
{
fig:14-3
}
\end{figure}
%----------------------------------------------------------------------
\parinterval
在实验中,研究人员发现增加搜索束的大小会导致翻译生成的结果变得更短。他们将这个现象归因于:神经机器翻译的建模基于局部归一的最大似然估计,增加搜索束的大小,会导致更多的模型错误
\upcite
{
Sountsov2016LengthBI,Murray2018CorrectingLB,StahlbergNeural
}
。此外,也有研究人员把这种翻译过短的现象归因于搜索错误
\upcite
{
Stahlberg2019OnNS
}
: 由于搜索时所面临的搜索空间是十分巨大的,因此搜索时可能无法找到模型定义的“最好”的译文,在某种意义上,这也体现了训练和推断不一致的问题(见
{
\chapterthirteen
}
)。一种解决该问题的思路是从“训练和推断行为不一致”的角度切入。比如,为了解决曝光偏置问题
\upcite
{
Ranzato2016SequenceLT
}
,可以让系统使用前面步骤的预测结果作为预测下一个词所需要的历史信息,而不是依赖于标准答案
\upcite
{
Bengio2015ScheduledSF,Zhang2019BridgingTG
}
。为了解决训练和推断目标不一致的问题,可以在训练的时候模拟推断的行为,同时让模型训练的目标与评价系统的标准尽可能一致
\upcite
{
DBLP:conf/acl/ShenCHHWSL16
}
。
\parinterval
一种解决问题的思路是从“训练和推断行为不一致”的角度切入。比如,为了解决曝光偏置问题
\upcite
{
Ranzato2016SequenceLT
}
,可以让系统使用前面步骤的预测结果作为预测下一个词所需要的历史信息,而不是依赖于标准答案
\upcite
{
Bengio2015ScheduledSF,Zhang2019BridgingTG
}
。为了解决训练和推断目标不一致的问题,可以在训练的时候模拟推断的行为,同时让模型训练的目标与评价系统的标准尽可能一致
\upcite
{
DBLP:conf/acl/ShenCHHWSL16
}
。
\parinterval
需要注意的是,前面提到的搜索束变大造成的翻译品质下降的问题还有其它解决方法。比如,可以通过对结果重排序来缓解这个问题
\upcite
{
DBLP:conf/emnlp/Yang0M18
}
,也可以通过设计更好的覆盖度模型来生成长度更加合理的译文
\upcite
{
li-etal-2018-simple
}
。从这个角度说,上述问题的成因也较为复杂,因此需要同时考虑模型错误和搜索错误。
\parinterval
此外,还有其它方法解决增大搜索束造成的翻译品质下降的问题。比如,可以通过对结果重排序来缓解这个问题
\upcite
{
DBLP:conf/emnlp/Yang0M18
}
,也可以通过设计更好的覆盖度模型来生成长度更加合理的译文
\upcite
{
li-etal-2018-simple
}
。从这个角度说,上述问题的成因也较为复杂,因此需要同时考虑模型错误和搜索错误。
%----------------------------------------------------------------------------------------
% NEW SECTION
...
...
@@ -318,7 +317,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\label
{
fig:14-5
}
\end{figure}
%----------------------------------------------
\parinterval
一种
方法是将不同层的注意力权重进行共享,这样顶层的注意力权重可以复用底层的注意力权重
\upcite
{
Xiao2019SharingAW
}
。在编码-解码注意力中,由于注意力机制中输入的Value 都是一样的
\footnote
{
在Transformer解码器,编码-解码注意力输入的Value是编码器的输出,因此是相同的(见
\chaptertwelve
)。
}
。
,甚至可以直接复用前一层注意力计算的结果。图
\ref
{
fig:14-6
}
给出了不同方法的对比,其中
$
S
$
表示注意力权重,
$
A
$
表示注意模型的输出。可以看到,使用共享的思想,可以大大减少冗余的计算。
\parinterval
一种
消除冗余计算的方法是将不同层的注意力权重进行共享,这样顶层的注意力权重可以复用底层的注意力权重
\upcite
{
Xiao2019SharingAW
}
。在编码-解码注意力中,由于注意力机制中输入的Value 都是一样的
\footnote
{
在Transformer解码器,编码-解码注意力输入的Value是编码器的输出,因此是相同的(见
\chaptertwelve
)。
}
,甚至可以直接复用前一层注意力计算的结果。图
\ref
{
fig:14-6
}
给出了不同方法的对比,其中
$
S
$
表示注意力权重,
$
A
$
表示注意模型的输出。可以看到,使用共享的思想,可以大大减少冗余的计算。
%----------------------------------------------
\begin{figure}
[htp]
...
...
@@ -329,7 +328,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\end{figure}
%----------------------------------------------
\parinterval
另一种方法是对不同层的参数进行共享。这种方法虽然不能带来直接的提速,但是可以大大减小模型的体积。比如,可以重复使用同一层的参数完成多层的计算。极端
一些的
情况下,六层网络可以只使用一层网络的参数
\upcite
{
DBLP:conf/aaai/DabreF19
}
。不过,在深层模型中(层数> 20),浅层部分的差异往往较大,而深层(远离输入)之间的相似度会更高。这时可以考虑对深层的部分进行更多的共享。
\parinterval
另一种方法是对不同层的参数进行共享。这种方法虽然不能带来直接的提速,但是可以大大减小模型的体积。比如,可以重复使用同一层的参数完成多层的计算。极端情况下,六层网络可以只使用一层网络的参数
\upcite
{
DBLP:conf/aaai/DabreF19
}
。不过,在深层模型中(层数> 20),浅层部分的差异往往较大,而深层(远离输入)之间的相似度会更高。这时可以考虑对深层的部分进行更多的共享。
\parinterval
减少冗余计算也代表了一种剪枝的思想。本质上,这类方法利用了模型参数的稀疏性假设
\upcite
{
Narang2017BlockSparseRN,Gale2019TheSO
}
:一部分参数对模型整体的行为影响不大,因此可以直接被抛弃掉。这类方法也被使用在神经机器翻译模型的不同部分。比如,对于Transformer模型,也有研究发现多头注意力中的有些头是有冗余的
\upcite
{
Michel2019AreSH
}
,因此可以直接对其进行剪枝
\upcite
{
DBLP:journals/corr/abs-1905-09418
}
。
...
...
@@ -341,9 +340,9 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\parinterval
在推断时,神经机器翻译的解码器是最耗时的,因为每个目标语言位置需要单独输出单词的分布,同时在搜索过程中每一个翻译假设都要被扩展成多个翻译假设,进一步增加了计算量。因此,提高推断速度的一种思路是使用更加轻量的解码器加快翻译假设的生成速度
\upcite
{
Hinton2015Distilling,Munim2019SequencelevelKD
}
。
\parinterval
比较简单的做法是把解码器的网络变得更“浅”、更“窄”。所谓浅网络是指使用更少的层构建神经网络,比如,使用3 层,甚至1 层网络的Transformer 解码器。所谓窄网络是指将网络中某些层中神经元的数量减少。不过,直接训练这样的小模型会
带来翻译品质的
下降。这时会考虑使用知识蒸馏等技术来提升小模型的品质(见
{
\chapterthirteen
}
)。
\parinterval
比较简单的做法是把解码器的网络变得更“浅”、更“窄”。所谓浅网络是指使用更少的层构建神经网络,比如,使用3 层,甚至1 层网络的Transformer 解码器。所谓窄网络是指将网络中某些层中神经元的数量减少。不过,直接训练这样的小模型会
造成翻译品质
下降。这时会考虑使用知识蒸馏等技术来提升小模型的品质(见
{
\chapterthirteen
}
)。
\parinterval
另一种提高推断速度的思路是
化简Transformer 解码器的神经网络也可以提高推断速度。比如,可以使用平均注意力机制代替原始Transformer 中的自注意力机制
\upcite
{
DBLP:journals/corr/abs-1805-00631
}
,也可以使用运算更轻的卷积操作代替注意力模块
\upcite
{
Wu2019PayLA
}
。前面提到的基于共享注意力机制的模型也是一种典型的轻量模型
\upcite
{
Xiao2019SharingAW
}
。这些方法本质上也是对注意力模型结构的优化,这类思想在近几年也受到了很多关注
\upcite
{
Kitaev2020ReformerTE,Katharopoulos2020TransformersAR,DBLP:journals/corr/abs-2006-04768
}
,在
{
\chapterfifteen
}
也会有进一步讨论。
\parinterval
化简Transformer 解码器的神经网络也可以提高推断速度。比如,可以使用平均注意力机制代替原始Transformer 中的自注意力机制
\upcite
{
DBLP:journals/corr/abs-1805-00631
}
,也可以使用运算更轻的卷积操作代替注意力模块
\upcite
{
Wu2019PayLA
}
。前面提到的基于共享注意力机制的模型也是一种典型的轻量模型
\upcite
{
Xiao2019SharingAW
}
。这些方法本质上也是对注意力模型结构的优化,这类思想在近几年也受到了很多关注
\upcite
{
Kitaev2020ReformerTE,Katharopoulos2020TransformersAR,DBLP:journals/corr/abs-2006-04768
}
,在
{
\chapterfifteen
}
也会有进一步讨论。
\parinterval
此外,使用异构神经网络也是一种平衡精度和速度的有效方法。在很多研究中发现,基于Transformer 的编码器对翻译品质的影响更大,而解码器的作用会小一些。因此,一种想法是使用速度更快的解码器结构,比如,用基于循环神经网络的解码器代替Transformer模型中基于注意力机制的解码器
\upcite
{
Chen2018TheBO
}
。这样,既能发挥Transformer 在编码上的优势,同时也能利用循环神经网络在解码器速度上的优势。使用类似的思想,也可以用卷积神经网络等结构进行解码器的设计。
...
...
@@ -415,7 +414,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\section
{
非自回归翻译
}
\parinterval
目前大多数神经机器翻译模型都使用自左向右逐词生成译文的策略,即第
$
j
$
个目标语言单词的生成依赖于先前生成的
$
j
-
1
$
个词。这种翻译方式也被称作
{
\small\sffamily\bfseries
{
自回归解码
}}
\index
{
自回归解码
}
(Autoregressive Decoding)
\index
{
Autoregressive Decoding
}
。虽然以Transformer为代表的模型使得训练过程高度并行化,加快了训练速度。但由于推断过程自回归的特性,模型无法同时生成译文中的所有单词,
这导致模型的推断过程非常缓慢,
对于神经机器翻译的实际应用是个很大的挑战。因此,如何设计一个在训练和推断阶段都能够并行化的模型是目前研究的热点之一。
\parinterval
目前大多数神经机器翻译模型都使用自左向右逐词生成译文的策略,即第
$
j
$
个目标语言单词的生成依赖于先前生成的
$
j
-
1
$
个词。这种翻译方式也被称作
{
\small\sffamily\bfseries
{
自回归解码
}}
\index
{
自回归解码
}
(Autoregressive Decoding)
\index
{
Autoregressive Decoding
}
。虽然以Transformer为代表的模型使得训练过程高度并行化,加快了训练速度。但由于推断过程自回归的特性,模型无法同时生成译文中的所有单词,
导致模型的推断过程非常缓慢,这
对于神经机器翻译的实际应用是个很大的挑战。因此,如何设计一个在训练和推断阶段都能够并行化的模型是目前研究的热点之一。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
...
...
@@ -423,7 +422,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\subsection
{
自回归 vs 非自回归
}
\parinterval
目前主流的神经机器翻译的推断是一种
{
\small\sffamily\bfseries
{
自回归翻译
}}
\index
{
自回归翻译
}
(Autoregressive Translation)
\index
{
Autoregressive Translation
}
过程。所谓自回归是一种描述时间序列生成的方式
。对于目标序列
$
\seq
{
y
}
=
\{
y
_
1
,
\dots
,y
_
n
\}
$
,自回归模型假设
$
j
$
时刻状态
$
y
_
j
$
的生成依赖于之前的状态
$
\{
y
_
1
,
\dots
,y
_{
j
-
1
}
\}
$
,而且
$
y
_
j
$
与
$
\{
y
_
1
,
\dots
,y
_{
j
-
1
}
\}
$
构成线性关系,那么生成
$
y
_
j
$
就是自回归的序列生成过程。神经机器翻译借用了这个概念,但是并不要求使用线性模型
,
\ref
{
sec:14-2-1
}
节提到的自左向右翻译模型和自右向左翻译模型都属于自回归翻译模型。自回归模型在机器翻译任务上也有很好的表现,特别是配合束搜索往往能够有效地寻找近似最优译文。但是,由于解码器的每个步骤必须顺序地而不是并行地运行,自回归翻译模型会阻碍不同译文单词生成的并行化。特别是在GPU 上,翻译的自回归性会大大降低计算的并行度和设备利用率。
\parinterval
目前主流的神经机器翻译的推断是一种
{
\small\sffamily\bfseries
{
自回归翻译
}}
\index
{
自回归翻译
}
(Autoregressive Translation)
\index
{
Autoregressive Translation
}
过程。所谓自回归是一种描述时间序列生成的方式
:对于目标序列
$
\seq
{
y
}
=
\{
y
_
1
,
\dots
,y
_
n
\}
$
,如果
$
j
$
时刻状态
$
y
_
j
$
的生成依赖于之前的状态
$
\{
y
_
1
,
\dots
,y
_{
j
-
1
}
\}
$
,而且
$
y
_
j
$
与
$
\{
y
_
1
,
\dots
,y
_{
j
-
1
}
\}
$
构成线性关系,那么称目标序列
$
\seq
{
y
}$
的生成过程是自回归的。神经机器翻译借用了这个概念,但是并不要求
$
y
_
j
$
与
$
\{
y
_
1
,
\dots
,y
_{
j
-
1
}
\}
$
构成线性关系
,
\ref
{
sec:14-2-1
}
节提到的自左向右翻译模型和自右向左翻译模型都属于自回归翻译模型。自回归模型在机器翻译任务上也有很好的表现,特别是配合束搜索往往能够有效地寻找近似最优译文。但是,由于解码器的每个步骤必须顺序地而不是并行地运行,自回归翻译模型会阻碍不同译文单词生成的并行化。特别是在GPU 上,翻译的自回归性会大大降低计算的并行度和设备利用率。
\parinterval
对于这个问题,研究人员也考虑移除翻译的自回归性,进行
{
\small\sffamily\bfseries
{
非自回归翻译
}}
\index
{
非自回归翻译
}
(Non-Autoregressive Translation,NAT)
\index
{
Non-Autoregressive Translation
}
\upcite
{
Gu2017NonAutoregressiveNM
}
。一个简单的非自回归翻译模型将问题建模为公式
\eqref
{
eq:14-9
}
:
...
...
@@ -440,9 +439,9 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\subsection
{
非自回归翻译模型的结构
}
\parinterval
在介绍非自回归模型的具体结构之前,先来看看如何实现一个简单的非自回归翻译模型。这里用标准的Transformer来举例。首先为了一次性生成所有的词,需要丢弃解码器对未来信息屏蔽的矩阵,从而去掉模型的自回归性。此外,还要考虑生成译文的长度。
自回归模型
每步的输入是上一步解码出的结果,当预测到终止符<eos>时,序列的生成就自动停止了,然而非自回归模型却没有这样的特性,因此还需要一个长度预测器来预测出其长度,之后再用这个长度得到每个位置的表示,将其作为解码器的输入,进而完成整个序列的生成。
\parinterval
在介绍非自回归模型的具体结构之前,先来看看如何实现一个简单的非自回归翻译模型。这里用标准的Transformer来举例。首先为了一次性生成所有的词,需要丢弃解码器对未来信息屏蔽的矩阵,从而去掉模型的自回归性。此外,还要考虑生成译文的长度。
在自回归模型中,
每步的输入是上一步解码出的结果,当预测到终止符<eos>时,序列的生成就自动停止了,然而非自回归模型却没有这样的特性,因此还需要一个长度预测器来预测出其长度,之后再用这个长度得到每个位置的表示,将其作为解码器的输入,进而完成整个序列的生成。
\parinterval
图
\ref
{
fig:14-12
}
对比了自回归翻译模型和简单的非自回归翻译模型。可以看到这种自回归翻译模型可以一次性生成完整的译文。不过,高并行性也带来了翻译品质的下降。比如,在IWSLT 英德等数据上的BLEU[
\%
] 值只有个位数,而现在最好的自回归模型已经能够达到30左右的BLEU得分。这是因为每个位置词的预测只依赖于源语言句子
$
\seq
{
x
}$
,使得预测不准确。
\parinterval
图
\ref
{
fig:14-12
}
对比了自回归翻译模型和简单的非自回归翻译模型。可以看到这种自回归翻译模型可以一次性生成完整的译文。不过,高并行性也带来了翻译品质的下降。比如,在IWSLT 英德等数据上的BLEU[
\%
] 值只有个位数,而现在最好的自回归模型已经能够达到30左右的BLEU得分。这是因为每个位置词的预测只依赖于源语言句子
$
\seq
{
x
}$
,使得预测不准确。
需要注意的是,图
\ref
{
fig:14-12
}
(b)中将位置编码作为非自回归模型解码器的输入只是一个最简单的例子,在真实的系统中,非自回归解码器的输入一般是拷贝的源语言句子词嵌入与位置编码的融合。
%----------------------------------------------------------------------
\begin{figure}
[htp]
...
...
@@ -474,7 +473,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\parinterval
图
\ref
{
fig:14-14
}
给出了基于繁衍率的Transformer非自回归模型的结构
\upcite
{
Gu2017NonAutoregressiveNM
}
,由三个模块组成:编码器,解码器,繁衍率预测器。类似于标准的Transformer模型,这里编码器和解码器都完全由前馈神经网络和多头注意力模块组成。唯一的不同是解码器中新增了位置注意力模块(图
\ref
{
fig:14-14
}
中被红色虚线框住的模块),用于更好的捕捉目标语言端的位置信息。
\parinterval
繁衍率预测器的一个作用是预测整个译文句子的长度,以便并行地生成所有译文单词。可以通过对每个源语言单词计算繁衍率来估计最终译文的长度。具体来说,繁衍率指的是:根据每个源语言单词预测出其对应的目标语言单词的个数(见
\chaptersix
),如图
\ref
{
fig:14-14
}
所示,翻译过程中英语单词“We”对应一个汉语单词“我们”,其繁衍率为1。于是,可以得到源语言句子对应的繁衍率序列(图
\ref
{
fig:14-14
}
中的数字1
\
1
\
2
\
0
\
1),最终译文长度则由源语言单词的繁衍率之和决定。在模型训练阶段,繁衍率序列可以通过外部词对齐工具得到, 用于之后训练繁衍率预测器。但由于外部词对齐系统会出现错误,因此在模型收敛之后,可以对繁衍率预测器进行额外的微调。
\parinterval
繁衍率预测器的一个作用是预测整个译文句子的长度,以便并行地生成所有译文单词。可以通过对每个源语言单词计算繁衍率来估计最终译文的长度。具体来说,繁衍率指的是:根据每个源语言单词预测出其对应的目标语言单词的个数(见
\chaptersix
),如图
\ref
{
fig:14-14
}
所示,翻译过程中英语单词“We”对应一个汉语单词“我们”,其繁衍率为1。于是,可以得到源语言句子对应的繁衍率序列(图
\ref
{
fig:14-14
}
中的数字1
\
1
\
2
\
0
\
1),最终译文长度则由源语言单词的繁衍率之和决定。
之后将源语言单词按该繁衍率序列进行拷贝,在图中的例子中,将“We”、“totally”、“.”拷贝一次,将"accept"、“it”分别拷贝两次和零次,就得到了最终解码器的输入“We totally accept accept .”。
在模型训练阶段,繁衍率序列可以通过外部词对齐工具得到, 用于之后训练繁衍率预测器。但由于外部词对齐系统会出现错误,因此在模型收敛之后,可以对繁衍率预测器进行额外的微调。
%----------------------------------------------------------------------
\begin{figure}
[htp]
...
...
@@ -597,7 +596,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\section
{
多模型集成
}
\label
{
sec:14-5
}
\parinterval
在机器学习领域,把多个模型融合成一个模型是提升系统性能的一种有效方法。比如,在经典的AdaBoost 方法中
\upcite
{
DBLP:journals/jcss/FreundS97
}
,用多个“弱” 分类器构建的“强” 分类器可以使模型在训练集上的分类错误率无限接近0。类似的思想也被应用到机器翻译中
\upcite
{
DBLP:conf/acl/XiaoZZW10,DBLP:conf/icassp/SimBGSW07,DBLP:conf/acl/RostiMS07,DBLP:conf/wmt/RostiZMS08
}
,被称为
{
\small\sffamily\bfseries
{
系统融合
}}
\index
{
系统融合
}
(System Combination)
\index
{
System Combination
}
。在各种机器翻译比赛中,系统融合已经成为经常使用的技术之一。
因为
许多模型融合方法都是在推断阶段完成,因此此类方法开发的代价较低。
\parinterval
在机器学习领域,把多个模型融合成一个模型是提升系统性能的一种有效方法。比如,在经典的AdaBoost 方法中
\upcite
{
DBLP:journals/jcss/FreundS97
}
,用多个“弱” 分类器构建的“强” 分类器可以使模型在训练集上的分类错误率无限接近0。类似的思想也被应用到机器翻译中
\upcite
{
DBLP:conf/acl/XiaoZZW10,DBLP:conf/icassp/SimBGSW07,DBLP:conf/acl/RostiMS07,DBLP:conf/wmt/RostiZMS08
}
,被称为
{
\small\sffamily\bfseries
{
系统融合
}}
\index
{
系统融合
}
(System Combination)
\index
{
System Combination
}
。在各种机器翻译比赛中,系统融合已经成为经常使用的技术之一。
由于
许多模型融合方法都是在推断阶段完成,因此此类方法开发的代价较低。
\parinterval
广义上来讲,使用多个特征组合的方式都可以被看作是一种模型的融合。融合多个神经机器翻译系统的方法有很多,可以分为假设选择、局部预测融合、译文重组三类,下面分别进行介绍。
...
...
@@ -609,7 +608,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\parinterval
{
\small\sffamily\bfseries
{
假设选择
}}
\index
{
假设选择
}
(Hypothesis Selection)
\index
{
Hypothesis Selection
}
是最简单的系统融合方法
\upcite
{
DBLP:conf/emnlp/DuanLXZ09
}
。其思想是:给定一个翻译假设集合,综合多个模型对每一个翻译假设进行打分,之后选择得分最高的假设作为结果输出。
\parinterval
假设选择
里
首先需要考虑的问题是假设生成。构建翻译假设集合是假设选择的第一步,也是最重要的一步。理想的情况下,这个集合应该尽可能包含更多高质量的翻译假设,这样后面有更大的几率选出更好的结果。不过,由于单个模型的性能是有上限的,因此无法期望这些翻译假设的品质超越单个模型的上限。研究人员更加关心的是翻译假设的多样性,因为已经证明多样的翻译假设非常有助于提升系统融合的性能
\upcite
{
DBLP:journals/corr/LiMJ16,xiao2013bagging
}
。为了生成多样的翻译假设,通常有两种思路:1)使用不同的模型生成翻译假设;2)使用同一个模型的不同参数和设置生成翻译假设。图
\ref
{
fig:14-8
}
展示了二者的区别。比如,可以使用基于循环神经网络的模型和Transformer模型生成不同的翻译假设,之后都放入集合中;也可以只用Transformer 模型,但是用不同的模型参数构建多个系统,之后分别生成翻译假设。在神经机器翻译中,经常采用的是第二种方式,因为系统开发的成本更低。
\parinterval
假设选择
中
首先需要考虑的问题是假设生成。构建翻译假设集合是假设选择的第一步,也是最重要的一步。理想的情况下,这个集合应该尽可能包含更多高质量的翻译假设,这样后面有更大的几率选出更好的结果。不过,由于单个模型的性能是有上限的,因此无法期望这些翻译假设的品质超越单个模型的上限。研究人员更加关心的是翻译假设的多样性,因为已经证明多样的翻译假设非常有助于提升系统融合的性能
\upcite
{
DBLP:journals/corr/LiMJ16,xiao2013bagging
}
。为了生成多样的翻译假设,通常有两种思路:1)使用不同的模型生成翻译假设;2)使用同一个模型的不同参数和设置生成翻译假设。图
\ref
{
fig:14-8
}
展示了二者的区别。比如,可以使用基于循环神经网络的模型和Transformer模型生成不同的翻译假设,之后都放入集合中;也可以只用Transformer 模型,但是用不同的模型参数构建多个系统,之后分别生成翻译假设。在神经机器翻译中,经常采用的是第二种方式,因为系统开发的成本更低。
%----------------------------------------------
\begin{figure}
[htp]
...
...
@@ -622,7 +621,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\parinterval
此外,模型的选择也十分重要。所谓假设选择实际上就是要用一个更强的模型在候选中进行选择。这个“强” 模型一般是由更多、更复杂的子模型组合而成。常用的方法是直接使用翻译假设生成时的模型构建“强” 模型。比如,使用两个模型生成了翻译假设集合,之后对所有翻译假设都分别用这两个模型进行打分。最后,综合两个模型的打分(如线性插值)得到翻译假设的最终得分,并进行选择。当然,也可以使用更强大的统计模型对多个子模型进行组合,如使用更深、更宽的神经网络。
\parinterval
假设选择也可以被看作是一种简单的投票模型
。
对所有的候选用多个模型投票,选出最好的结果输出。包括重排序在内的很多方法也是假设选择的一种特例。比如,在重排序中,可以把生成
$
n
$
-best列表的过程看作是翻译假设生成过程,而重排序的过程可以被看作是融合多个子模型进行最终结果选择的过程。
\parinterval
假设选择也可以被看作是一种简单的投票模型
,
对所有的候选用多个模型投票,选出最好的结果输出。包括重排序在内的很多方法也是假设选择的一种特例。比如,在重排序中,可以把生成
$
n
$
-best列表的过程看作是翻译假设生成过程,而重排序的过程可以被看作是融合多个子模型进行最终结果选择的过程。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
...
...
@@ -703,7 +702,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\section
{
小结与扩展阅读
}
\parinterval
推断系统(或解码系统)是神经机器翻译的重要组成部分。在神经机器翻译研究中,单独
就
推断问题开展的讨论并不多见。更多的工作是将其与实践结合,常见于开源系统、评测比赛中。但是,从应用的角度看,研发高效的推断系统是机器翻译能够被大规模使用的前提。本章也从神经机器翻译推断的基本问题出发,重点探讨了推断系统的效率、非自回归翻译、多模型集成等问题。但是,由于推断问题涉及的问题十分广泛,因此本章也无法对其进行全面覆盖。关于神经机器翻译模型推断还有以下若干研究方向值得关注:
\parinterval
推断系统(或解码系统)是神经机器翻译的重要组成部分。在神经机器翻译研究中,单独
针对
推断问题开展的讨论并不多见。更多的工作是将其与实践结合,常见于开源系统、评测比赛中。但是,从应用的角度看,研发高效的推断系统是机器翻译能够被大规模使用的前提。本章也从神经机器翻译推断的基本问题出发,重点探讨了推断系统的效率、非自回归翻译、多模型集成等问题。但是,由于推断问题涉及的问题十分广泛,因此本章也无法对其进行全面覆盖。关于神经机器翻译模型推断还有以下若干研究方向值得关注:
\begin{itemize}
\vspace
{
0.5em
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论