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
a20ba476
Commit
a20ba476
authored
Jan 05, 2021
by
zengxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
10
parent
f6c38e28
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
11 行增加
和
11 行删除
+11
-11
Chapter10/chapter10.tex
+11
-11
没有找到文件。
Chapter10/chapter10.tex
查看文件 @
a20ba476
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
\parinterval
{
\small\sffamily\bfseries
{
神经机器翻译
}}
\index
{
神经机器翻译
}
(Neural Machine Translation)
\index
{
Neural Machine Translation
}
是机器翻译的前沿方法。近几年,随着深度学习技术的发展和在各领域中的深入应用,基于端到端表示学习的方法正在改变着我们处理自然语言的方式,神经机器翻译在这种趋势下应运而生。一方面,神经机器翻译仍然延续着统计建模和基于数据驱动的思想,因此在基本问题的定义上与前人的研究是一致的;另一方面,神经机器翻译脱离了统计机器翻译中对隐含翻译结构的假设,同时使用分布式表示来对文字序列进行建模,这使得它可以从一个全新的视角看待翻译问题。现在,神经机器翻译已经成为了机器翻译研究及应用的热点,译文质量得到了巨大的提升。
\parinterval
{
\small\sffamily\bfseries
{
神经机器翻译
}}
\index
{
神经机器翻译
}
(Neural Machine Translation)
\index
{
Neural Machine Translation
}
是机器翻译的前沿方法。近几年,随着深度学习技术的发展和在各领域中的深入应用,基于端到端表示学习的方法正在改变着我们处理自然语言的方式,神经机器翻译在这种趋势下应运而生。一方面,神经机器翻译仍然延续着统计建模和基于数据驱动的思想,因此在基本问题的定义上与前人的研究是一致的;另一方面,神经机器翻译脱离了统计机器翻译中对隐含翻译结构的假设,同时使用分布式表示来对文字序列进行建模,这使得它可以从一个全新的视角看待翻译问题。现在,神经机器翻译已经成为了机器翻译研究及应用的热点,译文质量得到了巨大的提升。
\parinterval
本章将介绍神经机器翻译中的一种基础模型
\ \dash
\
基于循环神经网络的模型。该模型是神经机器翻译中最早被成功应用的模型之一。基于这个模型框架,研究
者
进行了大量的探索和改进工作,包括使用LSTM等循环单元结构、引入注意力机制等。这些内容都会在本章进行讨论。
\parinterval
本章将介绍神经机器翻译中的一种基础模型
\ \dash
\
基于循环神经网络的模型。该模型是神经机器翻译中最早被成功应用的模型之一。基于这个模型框架,研究
人员
进行了大量的探索和改进工作,包括使用LSTM等循环单元结构、引入注意力机制等。这些内容都会在本章进行讨论。
%----------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SECTION 10.1
% NEW SECTION 10.1
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
\begin{itemize}
\begin{itemize}
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\item
自上世纪末所发展起来的基于数据驱动的方法为神经机器翻译提供了很好的基础。本质上,神经机器翻译仍然是一种基于统计建模的数据驱动的方法,因此无论是对问题的基本建模方式,还是训练统计模型所使用到的带标注数据,都可以复用机器翻译领域以前的研究成果。特别是机器翻译长期的发展已经积累了大量的双语、单语数据,这些数据在统计机器翻译时代就发挥了很大作用。随着时间的推移,数据规模和质量又得到进一步提升,包括一些评测基准、任务设置都已经非常完备,研究
者
可以直接在数据条件全部具备的情况下开展神经机器翻译的研究工作,这些都节省了大量的时间成本。从这个角度说,神经机器翻译是站在巨人的肩膀上才发展起来的。
\item
自上世纪末所发展起来的基于数据驱动的方法为神经机器翻译提供了很好的基础。本质上,神经机器翻译仍然是一种基于统计建模的数据驱动的方法,因此无论是对问题的基本建模方式,还是训练统计模型所使用到的带标注数据,都可以复用机器翻译领域以前的研究成果。特别是机器翻译长期的发展已经积累了大量的双语、单语数据,这些数据在统计机器翻译时代就发挥了很大作用。随着时间的推移,数据规模和质量又得到进一步提升,包括一些评测基准、任务设置都已经非常完备,研究
人员
可以直接在数据条件全部具备的情况下开展神经机器翻译的研究工作,这些都节省了大量的时间成本。从这个角度说,神经机器翻译是站在巨人的肩膀上才发展起来的。
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\item
深度学习经过长时间的酝酿终于爆发,为机器翻译等自然语言处理任务提供了新的思路和技术手段。神经机器翻译的不断壮大伴随着深度学习技术的发展。在深度学习的视角下,语言文字可以被表示成抽象的实数向量,这种文字的表示结果可以被自动学习,为机器翻译建模提供了更大的灵活性。相对于神经机器翻译,深度学习的发展更加曲折。虽然深度学习经过了漫长的起伏过程,但是神经机器翻译恰好出现在深度学习逐渐走向成熟的阶段。反过来说,受到深度学习及相关技术空前发展的影响,自然语言处理的范式也发生了变化,神经机器翻译的出现只是这种趋势下的一种必然。
\item
深度学习经过长时间的酝酿终于爆发,为机器翻译等自然语言处理任务提供了新的思路和技术手段。神经机器翻译的不断壮大伴随着深度学习技术的发展。在深度学习的视角下,语言文字可以被表示成抽象的实数向量,这种文字的表示结果可以被自动学习,为机器翻译建模提供了更大的灵活性。相对于神经机器翻译,深度学习的发展更加曲折。虽然深度学习经过了漫长的起伏过程,但是神经机器翻译恰好出现在深度学习逐渐走向成熟的阶段。反过来说,受到深度学习及相关技术空前发展的影响,自然语言处理的范式也发生了变化,神经机器翻译的出现只是这种趋势下的一种必然。
\vspace
{
0.3em
}
\vspace
{
0.3em
}
...
@@ -68,9 +68,9 @@
...
@@ -68,9 +68,9 @@
% NEW SUB-SECTION 10.1.1
% NEW SUB-SECTION 10.1.1
%----------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
\subsection
{
神经机器翻译的起源
}
\subsection
{
神经机器翻译的起源
}
\parinterval
从广义上讲,神经机器翻译是一种基于人工神经网络的方法,它把翻译过程描述为可以用人工神经网络表示的函数,所有的训练和推断都在这些函数上进行。由于神经机器翻译中的神经网络可以用连续可微函数表示,因此这类方法也可以用基于梯度的方法进行优化,相关技术非常成熟。更为重要的是,在神经网络的设计中,研究
者
引入了分布式表示的概念,这也是近些年自然语言处理领域的重要成果之一。传统统计机器翻译仍然把词序列看作离散空间里的由多个特征函数描述的点,类似于
$
n
$
-gram语言模型,这类模型对数据稀疏问题非常敏感。此外,人工设计特征也在一定程度上限制了模型对问题的表示能力。神经机器翻译把文字序列表示为实数向量,一方面避免了特征工程繁重的工作,另一方面使得系统可以对文字序列的“表示”进行学习。可以说,神经机器翻译的成功很大程度上源自“ 表示学习”这种自然语言处理的新范式的出现。在表示学习的基础上,注意力机制、深度神经网络等技术都被应用于神经机器翻译,使其得以进一步发展。
\parinterval
从广义上讲,神经机器翻译是一种基于人工神经网络的方法,它把翻译过程描述为可以用人工神经网络表示的函数,所有的训练和推断都在这些函数上进行。由于神经机器翻译中的神经网络可以用连续可微函数表示,因此这类方法也可以用基于梯度的方法进行优化,相关技术非常成熟。更为重要的是,在神经网络的设计中,研究
人员
引入了分布式表示的概念,这也是近些年自然语言处理领域的重要成果之一。传统统计机器翻译仍然把词序列看作离散空间里的由多个特征函数描述的点,类似于
$
n
$
-gram语言模型,这类模型对数据稀疏问题非常敏感。此外,人工设计特征也在一定程度上限制了模型对问题的表示能力。神经机器翻译把文字序列表示为实数向量,一方面避免了特征工程繁重的工作,另一方面使得系统可以对文字序列的“表示”进行学习。可以说,神经机器翻译的成功很大程度上源自“ 表示学习”这种自然语言处理的新范式的出现。在表示学习的基础上,注意力机制、深度神经网络等技术都被应用于神经机器翻译,使其得以进一步发展。
\parinterval
虽然神经机器翻译中大量地使用了人工神经网络方法,但是它并不是最早在机器翻译中使用人工神经网络的框架。实际上,人工神经网络在机器翻译中应用的历史要远早于现在的神经机器翻译。 在统计机器翻译时代,也有很多研究
者
利用人工神经网络进行机器翻译系统模块的构建
\upcite
{
devlin-etal-2014-fast,Schwenk
_
continuousspace
}
,比如,研究人员成功地在统计机器翻译系统中使用了基于神经网络的联合表示模型,取得了很好的效果
\upcite
{
devlin-etal-2014-fast
}
。
\parinterval
虽然神经机器翻译中大量地使用了人工神经网络方法,但是它并不是最早在机器翻译中使用人工神经网络的框架。实际上,人工神经网络在机器翻译中应用的历史要远早于现在的神经机器翻译。 在统计机器翻译时代,也有很多研究
人员
利用人工神经网络进行机器翻译系统模块的构建
\upcite
{
devlin-etal-2014-fast,Schwenk
_
continuousspace
}
,比如,研究人员成功地在统计机器翻译系统中使用了基于神经网络的联合表示模型,取得了很好的效果
\upcite
{
devlin-etal-2014-fast
}
。
\parinterval
不过,以上这些工作大多都是在系统的局部模块中使用人工神经网络和深度学习方法。与之不同的是,神经机器翻译是用人工神经网络完成整个翻译过程的建模,这样做的一个好处是,整个系统可以进行端到端学习,无需引入对任何翻译的隐含结构假设。这种利用端到端学习对机器翻译进行神经网络建模的方式也就成为了现在大家所熟知的神经机器翻译。这里简单列出部分代表性的工作:
\parinterval
不过,以上这些工作大多都是在系统的局部模块中使用人工神经网络和深度学习方法。与之不同的是,神经机器翻译是用人工神经网络完成整个翻译过程的建模,这样做的一个好处是,整个系统可以进行端到端学习,无需引入对任何翻译的隐含结构假设。这种利用端到端学习对机器翻译进行神经网络建模的方式也就成为了现在大家所熟知的神经机器翻译。这里简单列出部分代表性的工作:
...
@@ -82,7 +82,7 @@
...
@@ -82,7 +82,7 @@
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\item
同年Dzmitry Bahdanau等人首次将
{
\small\bfnew
{
注意力机制
}}
\index
{
注意力机制
}
(Attention Mechanism
\index
{
Attention Mechanism
}
)应用到机器翻译领域,在机器翻译任务上对翻译和局部翻译单元之间的对应关系同时建模
\upcite
{
bahdanau2014neural
}
。Bahdanau等人工作的意义在于,使用了更加有效的模型来表示源语言的信息,同时使用注意力机制对两种语言不同部分之间的相互联系进行建模。这种方法可以有效地处理长句子的翻译,而且注意力的中间结果具有一定的可解释性
\footnote
{
比如,目标语言和源语言句子不同单词之间的注意力强度能够在一定程度上反应单词之间的互译程度。
}
。然而相比于前人的神经机器翻译模型,注意力模型也引入了额外的成本,计算量较大。
\item
同年Dzmitry Bahdanau等人首次将
{
\small\bfnew
{
注意力机制
}}
\index
{
注意力机制
}
(Attention Mechanism
\index
{
Attention Mechanism
}
)应用到机器翻译领域,在机器翻译任务上对翻译和局部翻译单元之间的对应关系同时建模
\upcite
{
bahdanau2014neural
}
。Bahdanau等人工作的意义在于,使用了更加有效的模型来表示源语言的信息,同时使用注意力机制对两种语言不同部分之间的相互联系进行建模。这种方法可以有效地处理长句子的翻译,而且注意力的中间结果具有一定的可解释性
\footnote
{
比如,目标语言和源语言句子不同单词之间的注意力强度能够在一定程度上反应单词之间的互译程度。
}
。然而相比于前人的神经机器翻译模型,注意力模型也引入了额外的成本,计算量较大。
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\item
2016年谷歌公司发布了基于多层循环神经网络方法的GNMT系统。该系统集成了当时的神经机器翻译技术,并进行了诸多的改进。它的性能显著优于基于短语的机器翻译系统
\upcite
{
Wu2016GooglesNM
}
,引起了研究
者
的广泛关注。在之后不到一年的时间里,脸书公司采用卷积神经网络(CNN)研发了新的神经机器翻译系统
\upcite
{
DBLP:journals/corr/GehringAGYD17
}
,实现了比基于循环神经网络(RNN)系统更高的翻译水平,并大幅提升翻译速度。
\item
2016年谷歌公司发布了基于多层循环神经网络方法的GNMT系统。该系统集成了当时的神经机器翻译技术,并进行了诸多的改进。它的性能显著优于基于短语的机器翻译系统
\upcite
{
Wu2016GooglesNM
}
,引起了研究
人员
的广泛关注。在之后不到一年的时间里,脸书公司采用卷积神经网络(CNN)研发了新的神经机器翻译系统
\upcite
{
DBLP:journals/corr/GehringAGYD17
}
,实现了比基于循环神经网络(RNN)系统更高的翻译水平,并大幅提升翻译速度。
\vspace
{
0.3em
}
\vspace
{
0.3em
}
\item
2017年,Ashish Vaswani等人提出了新的翻译模型Transformer。其完全摒弃了循环神经网络和卷积神经网络,仅仅通过多头注意力机制和前馈神经网络,不需要使用序列对齐的循环框架就展示出强大的性能,并且巧妙地解决了翻译中长距离依赖问题
\upcite
{
vaswani2017attention
}
。Transformer是第一个完全基于注意力机制搭建的模型,不仅训练速度更快,在翻译任务上也获得了更好的结果,一跃成为目前最主流的神经机器翻译框架。
\item
2017年,Ashish Vaswani等人提出了新的翻译模型Transformer。其完全摒弃了循环神经网络和卷积神经网络,仅仅通过多头注意力机制和前馈神经网络,不需要使用序列对齐的循环框架就展示出强大的性能,并且巧妙地解决了翻译中长距离依赖问题
\upcite
{
vaswani2017attention
}
。Transformer是第一个完全基于注意力机制搭建的模型,不仅训练速度更快,在翻译任务上也获得了更好的结果,一跃成为目前最主流的神经机器翻译框架。
\vspace
{
0.3em
}
\vspace
{
0.3em
}
...
@@ -141,7 +141,7 @@
...
@@ -141,7 +141,7 @@
\end{figure}
\end{figure}
%----------------------------------------------
%----------------------------------------------
\parinterval
神经机器翻译在其他评价指标上的表现也全面超越统计机器翻译。比如,在IWSLT 2015英语-德语任务中,研究
者
搭建了四个较为先进的机器翻译系统
\upcite
{
Bentivogli2016NeuralVP
}
:
\parinterval
神经机器翻译在其他评价指标上的表现也全面超越统计机器翻译。比如,在IWSLT 2015英语-德语任务中,研究
人员
搭建了四个较为先进的机器翻译系统
\upcite
{
Bentivogli2016NeuralVP
}
:
\begin{itemize}
\begin{itemize}
\vspace
{
0.3em
}
\vspace
{
0.3em
}
...
@@ -253,7 +253,7 @@ NMT & 21.7 & 18.7 & -13.7 \\
...
@@ -253,7 +253,7 @@ NMT & 21.7 & 18.7 & -13.7 \\
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
\parinterval
当然,神经机器翻译也并不完美,很多问题有待解决。首先,神经机器翻译需要大规模浮点运算的支持,模型的推断速度较低。为了获得优质的翻译结果,往往需要大量GPU设备的支持,计算资源成本很高;其次,由于缺乏人类的先验知识对翻译过程的指导,神经机器翻译的运行过程缺乏可解释性,系统的可干预性也较差;此外,虽然脱离了繁重的特征工程,神经机器翻译仍然需要人工设计网络结构,在模型的各种超参数的设置、训练策略的选择等方面,仍然需要大量的人工参与。这也导致很多实验结果不容易复现。显然,完全不依赖人工的机器翻译还很遥远。不过,随着研究
者
的不断攻关,很多问题也得到了解决。
\parinterval
当然,神经机器翻译也并不完美,很多问题有待解决。首先,神经机器翻译需要大规模浮点运算的支持,模型的推断速度较低。为了获得优质的翻译结果,往往需要大量GPU设备的支持,计算资源成本很高;其次,由于缺乏人类的先验知识对翻译过程的指导,神经机器翻译的运行过程缺乏可解释性,系统的可干预性也较差;此外,虽然脱离了繁重的特征工程,神经机器翻译仍然需要人工设计网络结构,在模型的各种超参数的设置、训练策略的选择等方面,仍然需要大量的人工参与。这也导致很多实验结果不容易复现。显然,完全不依赖人工的机器翻译还很遥远。不过,随着研究
人员
的不断攻关,很多问题也得到了解决。
%----------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SECTION 10.2
% NEW SECTION 10.2
...
@@ -272,7 +272,7 @@ NMT & 21.7 & 18.7 & -13.7 \\
...
@@ -272,7 +272,7 @@ NMT & 21.7 & 18.7 & -13.7 \\
\parinterval
编码器-解码器框架是一种典型的基于“表示”的模型。编码器的作用是将输入的文字序列通过某种转换变为一种新的“表示”形式,这种“表示”包含了输入序列的所有信息。之后,解码器把这种“表示”重新转换为输出的文字序列。这其中的一个核心问题是表示学习,即:如何定义对输入文字序列的表示形式,并自动学习这种表示,同时应用它生成输出序列。一般来说,不同的表示学习方法可以对应不同的机器翻译模型,比如,在最初的神经机器翻译模型中,源语言句子都被表示为一个独立的向量,这时表示结果是静态的;而在注意力机制中,源语言句子的表示是动态的,也就是翻译目标语言的每个单词时都会使用不同的表示结果。
\parinterval
编码器-解码器框架是一种典型的基于“表示”的模型。编码器的作用是将输入的文字序列通过某种转换变为一种新的“表示”形式,这种“表示”包含了输入序列的所有信息。之后,解码器把这种“表示”重新转换为输出的文字序列。这其中的一个核心问题是表示学习,即:如何定义对输入文字序列的表示形式,并自动学习这种表示,同时应用它生成输出序列。一般来说,不同的表示学习方法可以对应不同的机器翻译模型,比如,在最初的神经机器翻译模型中,源语言句子都被表示为一个独立的向量,这时表示结果是静态的;而在注意力机制中,源语言句子的表示是动态的,也就是翻译目标语言的每个单词时都会使用不同的表示结果。
\parinterval
图
\ref
{
fig:10-5
}
是一个应用编码器-解码器结构来解决机器翻译问题的简单实例。给定一个中文句子“我/对/你/感到/满意”,编码器会将这句话编码成一个实数向量
$
(
0
.
2
,
-
1
,
6
,
\\
5
,
0
.
7
,
-
2
)
$
,这个向量就是源语言句子的“表示”结果。虽然有些不可思议,但是神经机器翻译模型把这个向量等同于输入序列。向量中的数字并没有实际的意义,然而解码器却能从中提取到源语言句子中所包含的信息。也有研究
者
把向量的每一个维度看作是一个“特征”,这样源语言句子就被表示成多个“特征”的联合,而且这些特征可以被自动学习。有了这样的源语言句子的“表示”,解码器可以把这个实数向量作为输入,然后逐词生成目标语言句子“I am satisfied with you”。
\parinterval
图
\ref
{
fig:10-5
}
是一个应用编码器-解码器结构来解决机器翻译问题的简单实例。给定一个中文句子“我/对/你/感到/满意”,编码器会将这句话编码成一个实数向量
$
(
0
.
2
,
-
1
,
6
,
\\
5
,
0
.
7
,
-
2
)
$
,这个向量就是源语言句子的“表示”结果。虽然有些不可思议,但是神经机器翻译模型把这个向量等同于输入序列。向量中的数字并没有实际的意义,然而解码器却能从中提取到源语言句子中所包含的信息。也有研究
人员
把向量的每一个维度看作是一个“特征”,这样源语言句子就被表示成多个“特征”的联合,而且这些特征可以被自动学习。有了这样的源语言句子的“表示”,解码器可以把这个实数向量作为输入,然后逐词生成目标语言句子“I am satisfied with you”。
%----------------------------------------------
%----------------------------------------------
\begin{figure}
[htp]
\begin{figure}
[htp]
...
@@ -507,7 +507,7 @@ $\funp{P}({y_j | \mathbi{s}_{j-1} ,y_{j-1},\mathbi{C}})$由Softmax实现,Softm
...
@@ -507,7 +507,7 @@ $\funp{P}({y_j | \mathbi{s}_{j-1} ,y_{j-1},\mathbi{C}})$由Softmax实现,Softm
\subsection
{
长短时记忆网络
}
\subsection
{
长短时记忆网络
}
\label
{
sec:lstm-cell
}
\label
{
sec:lstm-cell
}
\parinterval
RNN结构使得当前时刻循环单元的状态包含了之前时间步的状态信息。但是这种对历史信息的记忆并不是无损的,随着序列变长,RNN的记忆信息的损失越来越严重。在很多长序列处理任务中(如长文本生成)都观测到了类似现象。对于这个问题,研究
者们
提出了
{
\small\bfnew
{
长短时记忆
}}
\index
{
长短时记忆
}
(Long Short-term Memory)
\index
{
Long Short-term Memory
}
模型,也就是常说的LSTM模型
\upcite
{
HochreiterLong
}
。
\parinterval
RNN结构使得当前时刻循环单元的状态包含了之前时间步的状态信息。但是这种对历史信息的记忆并不是无损的,随着序列变长,RNN的记忆信息的损失越来越严重。在很多长序列处理任务中(如长文本生成)都观测到了类似现象。对于这个问题,研究
人员
提出了
{
\small\bfnew
{
长短时记忆
}}
\index
{
长短时记忆
}
(Long Short-term Memory)
\index
{
Long Short-term Memory
}
模型,也就是常说的LSTM模型
\upcite
{
HochreiterLong
}
。
\parinterval
LSTM模型是RNN模型的一种改进。相比RNN仅传递前一时刻的状态
$
\mathbi
{
h
}_{
t
-
1
}$
,LSTM会同时传递两部分信息:状态信息
$
\mathbi
{
h
}_{
t
-
1
}$
和记忆信息
$
\mathbi
{
c
}_{
t
-
1
}$
。这里,
$
\mathbi
{
c
}_{
t
-
1
}$
是新引入的变量,它也是循环单元的一部分,用于显性地记录需要记录的历史内容,
$
\mathbi
{
h
}_{
t
-
1
}$
和
$
\mathbi
{
c
}_{
t
-
1
}$
在循环单元中会相互作用。LSTM通过“门”单元来动态地选择遗忘多少以前的信息和记忆多少当前的信息。LSTM中所使用的门单元结构如图
\ref
{
fig:10-11
}
所示,包括遗忘门,输入门和输出门。图中
$
\sigma
$
代表Sigmoid函数,它将函数输入映射为0-1范围内的实数,用来充当门控信号。
\parinterval
LSTM模型是RNN模型的一种改进。相比RNN仅传递前一时刻的状态
$
\mathbi
{
h
}_{
t
-
1
}$
,LSTM会同时传递两部分信息:状态信息
$
\mathbi
{
h
}_{
t
-
1
}$
和记忆信息
$
\mathbi
{
c
}_{
t
-
1
}$
。这里,
$
\mathbi
{
c
}_{
t
-
1
}$
是新引入的变量,它也是循环单元的一部分,用于显性地记录需要记录的历史内容,
$
\mathbi
{
h
}_{
t
-
1
}$
和
$
\mathbi
{
c
}_{
t
-
1
}$
在循环单元中会相互作用。LSTM通过“门”单元来动态地选择遗忘多少以前的信息和记忆多少当前的信息。LSTM中所使用的门单元结构如图
\ref
{
fig:10-11
}
所示,包括遗忘门,输入门和输出门。图中
$
\sigma
$
代表Sigmoid函数,它将函数输入映射为0-1范围内的实数,用来充当门控信号。
...
@@ -876,7 +876,7 @@ a (\mathbi{s},\mathbi{h}) &=& \left\{ \begin{array}{ll}
...
@@ -876,7 +876,7 @@ a (\mathbi{s},\mathbi{h}) &=& \left\{ \begin{array}{ll}
\subsection
{
实例 - GNMT
}
\subsection
{
实例 - GNMT
}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\parinterval
循环神经网络在机器翻译中有很多成功的应用,比如:RNNSearch
\upcite
{
bahdanau2014neural
}
、Nematus
\upcite
{
DBLP:journals/corr/SennrichFCBHHJL17
}
等系统就被很多研究
者
作为实验系统。在众多基于循环神经网络的系统中,GNMT系统是非常成功的一个
\upcite
{
Wu2016GooglesNM
}
。GNMT是谷歌2016年发布的神经机器翻译系统。
\parinterval
循环神经网络在机器翻译中有很多成功的应用,比如:RNNSearch
\upcite
{
bahdanau2014neural
}
、Nematus
\upcite
{
DBLP:journals/corr/SennrichFCBHHJL17
}
等系统就被很多研究
人员
作为实验系统。在众多基于循环神经网络的系统中,GNMT系统是非常成功的一个
\upcite
{
Wu2016GooglesNM
}
。GNMT是谷歌2016年发布的神经机器翻译系统。
\parinterval
GNMT使用了编码器-解码器结构,构建了一个8层的深度网络,每层网络均由LSTM组成,且在编码器-解码器之间使用了多层注意力连接。其结构如图
\ref
{
fig:10-24
}
,编码器只有最下面2层为双向LSTM。GNMT在束搜索中也加入了长度惩罚和覆盖度因子来确保输出高质量的翻译结果。
\parinterval
GNMT使用了编码器-解码器结构,构建了一个8层的深度网络,每层网络均由LSTM组成,且在编码器-解码器之间使用了多层注意力连接。其结构如图
\ref
{
fig:10-24
}
,编码器只有最下面2层为双向LSTM。GNMT在束搜索中也加入了长度惩罚和覆盖度因子来确保输出高质量的翻译结果。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
...
@@ -1252,7 +1252,7 @@ L(\mathbi{Y},\widehat{\mathbi{Y}}) &=& \sum_{j=1}^n L_{\textrm{ce}}(\mathbi{y}_j
...
@@ -1252,7 +1252,7 @@ L(\mathbi{Y},\widehat{\mathbi{Y}}) &=& \sum_{j=1}^n L_{\textrm{ce}}(\mathbi{y}_j
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
循环神经网络有很多变种结构。比如,除了RNN、LSTM、GRU,还有其他改进的循环单元结构,如LRN
\upcite
{
DBLP:journals/corr/abs-1905-13324
}
、SRU
\upcite
{
Lei2017TrainingRA
}
、ATR
\upcite
{
Zhang2018SimplifyingNM
}
。
\item
循环神经网络有很多变种结构。比如,除了RNN、LSTM、GRU,还有其他改进的循环单元结构,如LRN
\upcite
{
DBLP:journals/corr/abs-1905-13324
}
、SRU
\upcite
{
Lei2017TrainingRA
}
、ATR
\upcite
{
Zhang2018SimplifyingNM
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
注意力机制的使用是机器翻译乃至整个自然语言处理近几年获得成功的重要因素之一
\upcite
{
bahdanau2014neural,DBLP:journals/corr/LuongPM15
}
。早期,有研究
者
尝试将注意力机制和统计机器翻译的词对齐进行统一
\upcite
{
WangNeural,He2016ImprovedNM,li-etal-2019-word
}
。最近,也有大量的研究工作对注意力机制进行改进,比如,使用自注意力机制构建翻译模型等
\upcite
{
vaswani2017attention
}
。而对注意力模型的改进也成为了自然语言处理中的热点问题之一。在
{
\chapterfifteen
}
会对机器翻译中不同注意力模型进行进一步讨论。
\item
注意力机制的使用是机器翻译乃至整个自然语言处理近几年获得成功的重要因素之一
\upcite
{
bahdanau2014neural,DBLP:journals/corr/LuongPM15
}
。早期,有研究
人员
尝试将注意力机制和统计机器翻译的词对齐进行统一
\upcite
{
WangNeural,He2016ImprovedNM,li-etal-2019-word
}
。最近,也有大量的研究工作对注意力机制进行改进,比如,使用自注意力机制构建翻译模型等
\upcite
{
vaswani2017attention
}
。而对注意力模型的改进也成为了自然语言处理中的热点问题之一。在
{
\chapterfifteen
}
会对机器翻译中不同注意力模型进行进一步讨论。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
一般来说,神经机器翻译的计算过程是没有人工干预的,翻译流程也无法用人类的知识直接进行解释,因此一个有趣的方向是在神经机器翻译中引入先验知识,使得机器翻译的行为更“像”人。比如,可以使用句法树来引入人类的语言学知识
\upcite
{
Yang2017TowardsBH,Wang2019TreeTI
}
,基于句法的神经机器翻译也包含大量的树结构的神经网络建模
\upcite
{
DBLP:journals/corr/abs-1809-01854,DBLP:journals/corr/abs-1808-09374
}
。此外,也可以把用户定义的词典或者翻译记忆加入到翻译过程中
\upcite
{
DBLP:journals/corr/ZhangZ16c,zhang-etal-2017-prior,duan-etal-2020-bilingual,cao-xiong-2018-encoding
}
,使得用户的约束可以直接反映到机器翻译的结果上来。先验知识的种类还有很多,包括词对齐
\upcite
{
li-etal-2019-word,DBLP:conf/emnlp/MiWI16,DBLP:conf/coling/LiuUFS16
}
、 篇章信息
\upcite
{
Werlen2018DocumentLevelNM,DBLP:journals/corr/abs-1805-10163,DBLP:conf/acl/LiLWJXZLL20
}
等等,都是神经机器翻译中能够使用的信息。
\item
一般来说,神经机器翻译的计算过程是没有人工干预的,翻译流程也无法用人类的知识直接进行解释,因此一个有趣的方向是在神经机器翻译中引入先验知识,使得机器翻译的行为更“像”人。比如,可以使用句法树来引入人类的语言学知识
\upcite
{
Yang2017TowardsBH,Wang2019TreeTI
}
,基于句法的神经机器翻译也包含大量的树结构的神经网络建模
\upcite
{
DBLP:journals/corr/abs-1809-01854,DBLP:journals/corr/abs-1808-09374
}
。此外,也可以把用户定义的词典或者翻译记忆加入到翻译过程中
\upcite
{
DBLP:journals/corr/ZhangZ16c,zhang-etal-2017-prior,duan-etal-2020-bilingual,cao-xiong-2018-encoding
}
,使得用户的约束可以直接反映到机器翻译的结果上来。先验知识的种类还有很多,包括词对齐
\upcite
{
li-etal-2019-word,DBLP:conf/emnlp/MiWI16,DBLP:conf/coling/LiuUFS16
}
、 篇章信息
\upcite
{
Werlen2018DocumentLevelNM,DBLP:journals/corr/abs-1805-10163,DBLP:conf/acl/LiLWJXZLL20
}
等等,都是神经机器翻译中能够使用的信息。
\end{itemize}
\end{itemize}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论