Commit add56fd8 by xiaotong

update

parent 3ff225fd
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
\end{figure} \end{figure}
%---------------------------------------------- %----------------------------------------------
\parinterval 除了上面例子中展示的流畅度和准确度外,神经机器翻译在其它评价指标上的表现也全面超越统计机器翻译\cite{Bentivogli2016NeuralVP}。比如,在IWSLT 2015英语-德语任务中,与三个最先进的统计机器翻译系统(PBSY、HPB、SPB)相比,神经机器翻译系统的mTER得分在不同长度句子上都得到了明显的下降,如图\ref{fig:6-3}\footnote{mTER是一种错误率度量,值越低表明译文越好。}。其次,神经机器翻译的单词形态错误率和单词词义错误率都远低于统计机器翻译系统(表\ref{tab:HTER} )。并且,神经机器翻译系统的KRS得分也优于统计机器翻译系统(表\ref{tab:KRS}\footnote{KRS得分度量了了机器翻译译文与参考译文之间的字序相关性,其分值越高越好。} \parinterval 除了上面例子中展示的流畅度和准确度外,神经机器翻译在其它评价指标上的表现也全面超越统计机器翻译\cite{Bentivogli2016NeuralVP}。比如,在IWSLT 2015英语-德语任务中,与三个最先进的统计机器翻译系统(PBSY、HPB、SPB)相比,神经机器翻译系统的mTER得分在不同长度句子上都得到了明显的下降,如图\ref{fig:6-3}\footnote{mTER是一种错误率度量,值越低表明译文越好。}。其次,神经机器翻译的单词形态错误率和单词词义错误率都远低于统计机器翻译系统(表\ref{tab:HTER} )。
%---------------------------------------------- %----------------------------------------------
% 表 % 表
...@@ -131,30 +131,14 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -131,30 +131,14 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
\end{tabular} \end{tabular}
\end{table} \end{table}
%-------------------------------------- %--------------------------------------
%----------------------------------------------
% 表
\begin{table}[htp]
\centering
\caption{NMT与SMT系统的KRS得分、移位错误数和百分比\cite{Bentivogli2016NeuralVP}}
\label{tab:KRS}
\begin{tabular}{r | l l l l}
\textbf{system} &\textbf{\#words} & \textbf{\#shifts} & \textbf{\%shifts} & \textbf{KRS}\\ \hline
PBSY & 11.517 & 354 & 3.1 &84.6 \\
HPB & 11.417 & 415 & 3.6 &84.3 \\
SPB & 11.420 & 398 & 3.5 &84.5 \\
NMT & 11.284 & 173 & $1.5^{\ast}$ & $88.3^{\ast}$ \\
\end{tabular}
\end{table} \parinterval 更振奋人心的是,神经机器翻译在某些任务上的结果已经相当惊艳,比如在汉英新闻翻译任务中,神经机器翻译就取得了至少和专业翻译人员相媲美的效果\cite{Hassan2018AchievingHP}。在该任务中,神经机器系统(Combo-4、Combo-5 和 Combo-6)的人工评价得分与Reference-HT(专业翻译人员翻译)得分无显著差别,且远超Reference-WMT(WMT的参考译文,也是由人类翻译)得分(表\ref{tab:Human assessment})。
%--------------------------------------
\noindent 更振奋人心的是,神经机器翻译在某些任务上的结果已经相当惊艳,比如在汉英新闻翻译任务中,神经机器翻译就取得了至少和专业翻译人员相媲美的效果\cite{Hassan2018AchievingHP}。在该任务中,神经机器系统(Combo-4、Combo-5 和 Combo-6)的人工评价得分与Reference-HT(专业翻译人员翻译)得分无显著差别,且远超Reference-WMT(WMT的参考译文,也是由人类翻译)得分(表\ref{tab:Human assessment})。
%---------------------------------------------- %----------------------------------------------
% 表 % 表
\begin{table}[htp] \begin{table}[htp]
\centering \centering
\caption{人类评估结果} \caption{不同机器翻译系统人类评价结果\cite{Hassan2018AchievingHP}}
\label{tab:Human assessment} \label{tab:Human assessment}
\begin{tabular}{l | l l} \begin{tabular}{l | l l}
\# &\textbf{\begin{tabular}[c]{@{}l@{}}Ave\%\\ (平均原始分数)\end{tabular}} &\textbf{System} \\ \hline \# &\textbf{\begin{tabular}[c]{@{}l@{}}Ave\%\\ (平均原始分数)\end{tabular}} &\textbf{System} \\ \hline
...@@ -162,7 +146,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -162,7 +146,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
&68.5 &Reference-HT \\ &68.5 &Reference-HT \\
&68.9 &Combo-5 \\ &68.9 &Combo-5 \\
&68.6 &Combo-4 \\ &68.6 &Combo-4 \\
2 &62.1 &eference-WMT \\ 2 &62.1 &Reference-WMT \\
\end{tabular} \end{tabular}
\end{table} \end{table}
...@@ -218,7 +202,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -218,7 +202,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
\parinterval (二)不需要特征工程,特征学习更加全面 \parinterval (二)不需要特征工程,特征学习更加全面
\parinterval 经典的统计机器翻译可以通过判别式模型引入任意特征,不过这些特征需要人工设计,因此这个过程也被称为特征工程(feature engineering)。特征工程依赖大量的人工,特别是对不同的语种、不同场景的翻译任务,所采用的特征可能不尽相同,这也使得设计有效的特征成为了统计机器翻译时代最主要的工作之一。但是,由于人类自身的思维和认知水平的限制,人工设计的特征可能不全面,甚至会遗漏一些重要的翻译现象。神经机器翻译并不依赖任何人工特征的设计,或者说它的特征都隐含在分布式表示中。这些``特征''都是自动学习得到的,因此神经机器翻译并不会受到人工思维的限制,学习到的特征对问题描述更加全面。 \parinterval 经典的统计机器翻译可以通过判别式模型引入任意特征,不过这些特征需要人工设计,因此这个过程也被称为特征工程(Feature Engineering)。特征工程依赖大量的人工,特别是对不同的语种、不同场景的翻译任务,所采用的特征可能不尽相同,这也使得设计有效的特征成为了统计机器翻译时代最主要的工作之一。但是,由于人类自身的思维和认知水平的限制,人工设计的特征可能不全面,甚至会遗漏一些重要的翻译现象。神经机器翻译并不依赖任何人工特征的设计,或者说它的特征都隐含在分布式表示中。这些``特征''都是自动学习得到的,因此神经机器翻译并不会受到人工思维的限制,学习到的特征对问题描述更加全面。
\parinterval (三)不含隐含结构假设,端到端学习对问题建模更加直接 \parinterval (三)不含隐含结构假设,端到端学习对问题建模更加直接
...@@ -229,11 +213,13 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -229,11 +213,13 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
\parinterval 统计机器翻译系统依赖很多模块,比如词对齐、短语(规则)表、目标语言模型等等,因为所有的信息(如$n$-gram)都是离散化表示的,因此模型需要消耗大量的存储资源。同时,由于系统模块较多,开发的难度也较大。神经机器翻译的模型都是用神经网络进行表示,模型参数大多是实数矩阵,因此存储资源的消耗很小。而且神经网络可以作为一个整体进行开发和调试,系统搭建的代价相对较低。实际上,由于模型体积小,神经机器翻译也非常合适于离线小设备上的翻译任务。 \parinterval 统计机器翻译系统依赖很多模块,比如词对齐、短语(规则)表、目标语言模型等等,因为所有的信息(如$n$-gram)都是离散化表示的,因此模型需要消耗大量的存储资源。同时,由于系统模块较多,开发的难度也较大。神经机器翻译的模型都是用神经网络进行表示,模型参数大多是实数矩阵,因此存储资源的消耗很小。而且神经网络可以作为一个整体进行开发和调试,系统搭建的代价相对较低。实际上,由于模型体积小,神经机器翻译也非常合适于离线小设备上的翻译任务。
\parinterval 当然,神经机器翻译也并不完美,很多问题有待解决。首先,神经机器翻译需要大规模浮点运算的支持,模型的推断速度较低。为了获得优质的翻译结果,往往需要大量GPU设备的支持,计算资源成本很高;其次,由于缺乏人类的先验知识对翻译过程的指导,神经机器翻译的运行过程缺乏可解释性,系统的可干预性也较差;此外,虽然脱离了繁重的特征工程,神经机器翻译仍然需要人工设计网络结构,包括模型的各种超参的设置、训练策略的选择等,仍然有大量人工参与。这也导致很多实验结果不容易重现。显然,完全不依赖人工进行机器翻译还很遥远。不过,随着研究者的不断攻关,很多问题也得到了缓解。在随后的内容中我们也会对相关技术进行介绍。 \parinterval 当然,神经机器翻译也并不完美,很多问题有待解决。首先,神经机器翻译需要大规模浮点运算的支持,模型的推断速度较低。为了获得优质的翻译结果,往往需要大量GPU设备的支持,计算资源成本很高;其次,由于缺乏人类的先验知识对翻译过程的指导,神经机器翻译的运行过程缺乏可解释性,系统的可干预性也较差;此外,虽然脱离了繁重的特征工程,神经机器翻译仍然需要人工设计网络结构,包括模型的各种超参的设置、训练策略的选择等,仍然有大量人工参与。这也导致很多实验结果不容易重现。显然,完全不依赖人工进行机器翻译还很遥远。不过,随着研究者的不断攻关,很多问题也得到了缓解。在随后的内容中我们也会对相关技术进行介绍。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{编码器-解码器框架}\index{Chapter6.2}%Index的作用,目前不清晰 \section{编码器-解码器框架}\index{Chapter6.2}%Index的作用,目前不清晰
\parinterval 说到神经机器翻译就不得不提编码器-解码器模型(encoder-decoder paradigm),或编码器-解码器框架。本质上,编码器-解码器是描述输入-输出之间关系的一种方式。虽然,编码器-解码器这个概念对机器翻译来说多少有些``新鲜'',但是这种形式的事物在日常生活中并不少见。例如在电视系统上为了便于视频的传播,会使用各种编码器将视频编码成数字信号,在客户端,相应的解码器组件会把收到的数字信号解码为视频。另外一个更贴近生活的例子是电话。它通过对声波和电信号进行相互转换,达到传递声音的目的。这种``先编码,再解码''的思想被应用到密码学、信息论等多个领域。 \parinterval 说到神经机器翻译就不得不提编码器-解码器模型(Encoder-Decoder Paradigm),或编码器-解码器框架。本质上,编码器-解码器是描述输入-输出之间关系的一种方式。虽然,编码器-解码器这个概念对机器翻译来说多少有些``新鲜'',但是这种形式的事物在日常生活中并不少见。例如在电视系统上为了便于视频的传播,会使用各种编码器将视频编码成数字信号,在客户端,相应的解码器组件会把收到的数字信号解码为视频。另外一个更贴近生活的例子是电话。它通过对声波和电信号进行相互转换,达到传递声音的目的。这种``先编码,再解码''的思想被应用到密码学、信息论等多个领域。
\parinterval 不难看出,机器翻译问题也完美的贴合编码器-解码器结构的特点。我们可以将源语言编码为类似信息传输中的数字信号,然后利用解码器对其进行转换,生成目标语言。下面就来看一下神经机器翻译是如何在编码器-解码器框架下进行工作的。 \parinterval 不难看出,机器翻译问题也完美的贴合编码器-解码器结构的特点。我们可以将源语言编码为类似信息传输中的数字信号,然后利用解码器对其进行转换,生成目标语言。下面就来看一下神经机器翻译是如何在编码器-解码器框架下进行工作的。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{框架结构}\index{Chapter6.2.1} \subsection{框架结构}\index{Chapter6.2.1}
\parinterval 编码器-解码器框架是一种典型的基于``表示''的模型。编码器的作用是将输入的文字序列通过某种转换变为一种新的``表示''形式,这种``表示''包含了输入序列的所有信息。之后,解码器通把这种``表示''重新转换为输出的文字序列。这其中的一个核心问题是表示学习,即:如何定义对输入文字序列的表示形式,并自动学习这种表示,同时应用它生成输出序列。一般来说,不同的表示学习方法可以对应不同的机器翻译模型,比如,在最初的神经机器翻译模型中,源语言句子都被表示为一个独立的向量,这时表示结果是静态的;而在注意力机制中,源语言句子的表示是动态的,也就是翻译目标语每个单词时都会使用不同的表示结果。 \parinterval 编码器-解码器框架是一种典型的基于``表示''的模型。编码器的作用是将输入的文字序列通过某种转换变为一种新的``表示''形式,这种``表示''包含了输入序列的所有信息。之后,解码器通把这种``表示''重新转换为输出的文字序列。这其中的一个核心问题是表示学习,即:如何定义对输入文字序列的表示形式,并自动学习这种表示,同时应用它生成输出序列。一般来说,不同的表示学习方法可以对应不同的机器翻译模型,比如,在最初的神经机器翻译模型中,源语言句子都被表示为一个独立的向量,这时表示结果是静态的;而在注意力机制中,源语言句子的表示是动态的,也就是翻译目标语每个单词时都会使用不同的表示结果。
...@@ -273,6 +259,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -273,6 +259,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
\parinterval 实际上,编码器-解码器模型也并不是表示学习实现的唯一途径。比如,在第五章提到的神经语言模型实际上也是一种有效的学习句子表示的方法,它所衍生出的预训练模型可以从大规模单语数据上学习句子的表示形式。这种学习会比使用少量的双语数据进行编码端和解码端的学习更加充分。相比机器翻译任务,语言模型相当于一个编码器的学习 \footnote{相比神经机器翻译的编码器,神经语言模型会多出一个输出层,这时可以直接把神经语言模型的中间层的输出作为编码器的输出。},可以无缝潜入到神经机器翻译模型中。不过,值得注意的是,机器翻译的目的是解决双语字符串之间的映射问题,因此它所使用的句子表示是为了更好的进行翻译,从这个角度说,机器翻译中的表示学习又和语言模型的表示学习有不同。不过,这里不会深入讨论神经语言模型和预训练与神经机器翻译之间的异同,感兴趣的读者可以参看第五章相关内容。 \parinterval 实际上,编码器-解码器模型也并不是表示学习实现的唯一途径。比如,在第五章提到的神经语言模型实际上也是一种有效的学习句子表示的方法,它所衍生出的预训练模型可以从大规模单语数据上学习句子的表示形式。这种学习会比使用少量的双语数据进行编码端和解码端的学习更加充分。相比机器翻译任务,语言模型相当于一个编码器的学习 \footnote{相比神经机器翻译的编码器,神经语言模型会多出一个输出层,这时可以直接把神经语言模型的中间层的输出作为编码器的输出。},可以无缝潜入到神经机器翻译模型中。不过,值得注意的是,机器翻译的目的是解决双语字符串之间的映射问题,因此它所使用的句子表示是为了更好的进行翻译,从这个角度说,机器翻译中的表示学习又和语言模型的表示学习有不同。不过,这里不会深入讨论神经语言模型和预训练与神经机器翻译之间的异同,感兴趣的读者可以参看第五章相关内容。
\parinterval 还有一点,在神经机器翻译中,句子的表示形式可以有很多选择。使用单个向量表示一个句子是一种最简单的方法。当然,我们也可以用矩阵、高阶张量完成表示。甚至,在解码时动态的生成源语言的表示结果。这部分技术也会在随后的内容中进行介绍。 \parinterval 还有一点,在神经机器翻译中,句子的表示形式可以有很多选择。使用单个向量表示一个句子是一种最简单的方法。当然,我们也可以用矩阵、高阶张量完成表示。甚至,在解码时动态的生成源语言的表示结果。这部分技术也会在随后的内容中进行介绍。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{简单的运行实例}\index{Chapter6.2.3}\label{chapter6.2.3} \subsection{简单的运行实例}\index{Chapter6.2.3}\label{chapter6.2.3}
\parinterval 为了对编码器-解码器框架和神经机器翻译的运行过程有一个直观的认识,这里演示一个简单的翻译实例。我们采用标准的循环神经网络作为编码器和解码器的结构。假设系统的输入和输出为: \parinterval 为了对编码器-解码器框架和神经机器翻译的运行过程有一个直观的认识,这里演示一个简单的翻译实例。我们采用标准的循环神经网络作为编码器和解码器的结构。假设系统的输入和输出为:
...@@ -295,7 +282,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -295,7 +282,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
%\end{figure} %\end{figure}
%---------------------------------------------- %----------------------------------------------
\noindent 其中,<eos>(end of sequence)表示序列的终止,<sos>(start of sequence)表示序列的开始。 \noindent 其中,<eos>(End of Sequence)表示序列的终止,<sos>(Start of Sequence)表示序列的开始。
%---------------------------------------------- %----------------------------------------------
% 图3.10 % 图3.10
...@@ -312,6 +299,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -312,6 +299,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
\parinterval 编码器直接把源语言句子的分布式表示作为输入的隐层状态,之后像编码器一样依次读入目标语言单词,这是一个标准的循环神经网络的执行过程。与编码器不同的是,解码器会有一个输出层,用于根据当前时间步循环神经网路的隐层状态生成目标语单词及其概率分布。可以看到,解码端一个时刻的输出单词与下一个时刻的输入单词是一样的。从这个角度说,解码器也是一种神经语言模型,只不过它会从另外一种语言(源语言)获得一些信息,而不是仅仅做单语句子的生成。具体来说,当生成第一个单词``I''时,解码器利用了源语言句子表示(红色方框)和目标语的起始词``<sos>''。在生成第二个单词``am''时,解码器利用了上一个时间步的隐藏状态(隐藏层变量)和已经生成的``I''的信息。这个过程会循环执行直到生成完整的目标语句子。 \parinterval 编码器直接把源语言句子的分布式表示作为输入的隐层状态,之后像编码器一样依次读入目标语言单词,这是一个标准的循环神经网络的执行过程。与编码器不同的是,解码器会有一个输出层,用于根据当前时间步循环神经网路的隐层状态生成目标语单词及其概率分布。可以看到,解码端一个时刻的输出单词与下一个时刻的输入单词是一样的。从这个角度说,解码器也是一种神经语言模型,只不过它会从另外一种语言(源语言)获得一些信息,而不是仅仅做单语句子的生成。具体来说,当生成第一个单词``I''时,解码器利用了源语言句子表示(红色方框)和目标语的起始词``<sos>''。在生成第二个单词``am''时,解码器利用了上一个时间步的隐藏状态(隐藏层变量)和已经生成的``I''的信息。这个过程会循环执行直到生成完整的目标语句子。
\parinterval 从这个例子可以看出,神经机器翻译的流程其实并不复杂:首先通过编码器神经网络将源语言句子编码成实数向量,然后解码器神经网络利用源语言句子的表示结果逐词生成译文。几乎所有的神经机器翻译系统都是类似架构。 \parinterval 从这个例子可以看出,神经机器翻译的流程其实并不复杂:首先通过编码器神经网络将源语言句子编码成实数向量,然后解码器神经网络利用源语言句子的表示结果逐词生成译文。几乎所有的神经机器翻译系统都是类似架构。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{机器翻译范式的对比}\index{Chapter6.2.4} \subsection{机器翻译范式的对比}\index{Chapter6.2.4}
\parinterval 对于不同类型的机器翻译方法,人类所扮演的作用是不同的。在统计机器翻译时代,往往需要人工来定义翻译时所需要的特征和翻译单元,翻译中的每一个步骤对于人来说都是透明的,翻译过程具有一定的可解释性。而在神经机器翻译时代,神经机器翻译将所有的工作都交给神经网络,对翻译的过程完全交由神经网络计算得到。其在整个神经网络的运行过程中并不需要人工先验知识,其中所生成的中间表示也只有神经网络自身才可以理解。有时候也会把神经机器翻译系统看作``黑盒''。所谓``黑盒''并不是指神经网络计算的过程不可见,而是这种复杂的计算过程无法控制也很难解释。那么是神经机器翻译会魔法吗,不需要任何人为的干预就可以进行翻译吗?其实不然,相对于统计机器翻译,真正变化的是人类使用知识的形式。 \parinterval 对于不同类型的机器翻译方法,人类所扮演的作用是不同的。在统计机器翻译时代,往往需要人工来定义翻译时所需要的特征和翻译单元,翻译中的每一个步骤对于人来说都是透明的,翻译过程具有一定的可解释性。而在神经机器翻译时代,神经机器翻译将所有的工作都交给神经网络,对翻译的过程完全交由神经网络计算得到。其在整个神经网络的运行过程中并不需要人工先验知识,其中所生成的中间表示也只有神经网络自身才可以理解。有时候也会把神经机器翻译系统看作``黑盒''。所谓``黑盒''并不是指神经网络计算的过程不可见,而是这种复杂的计算过程无法控制也很难解释。那么是神经机器翻译会魔法吗,不需要任何人为的干预就可以进行翻译吗?其实不然,相对于统计机器翻译,真正变化的是人类使用知识的形式。
......
...@@ -6,7 +6,7 @@ width=10cm, height=5cm, ...@@ -6,7 +6,7 @@ width=10cm, height=5cm,
symbolic x coords={1-15,16-25,26-35,>35}, symbolic x coords={1-15,16-25,26-35,>35},
xtick=data, xtick=data,
ytick={10,12,...,28}, ytick={10,12,...,28},
xlabel={Sentence Length(range)}, xlabel={句子长度(范围)},
ylabel={$\%$\footnotesize{mTER}}, ylabel={$\%$\footnotesize{mTER}},
xlabel style={align=center}, xlabel style={align=center},
ylabel style={}, ylabel style={},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论