Commit d2c8f277 by xiaotong

updates of section 7

parent c8fbf6ff
...@@ -16,22 +16,22 @@ ...@@ -16,22 +16,22 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{神经机器翻译实战 \ \dash \ 参加一次比赛} \chapter{神经机器翻译实战 \ \dash \ 参加一次比赛}
\parinterval 作为机器翻译的前沿方向,神经机器翻译方法是近些年来最受关注的研究热点之一。凭借其高品质的译文,在各种机器翻译比赛和产品中随处可见神经机器翻译的身影。第六章已经系统的介绍了神经机器翻译的基础模型,包括:基于循环神经网络的翻译模型、基于Transformer的翻译模型、注意力机制等等。但是,简单使用这些模型和方法显然无法取得最好的结果。实际上,先进的系统往往依赖多种技术的综合运用,是一项庞大的系统工程。 \parinterval 作为机器翻译的前沿方向,神经机器翻译方法是近些年来最受关注的热点之一。凭借其高品质的译文,神经机器翻译的身影在各种机器翻译比赛和产品中随处可见。第六章已经介绍了神经机器翻译的基础模型,包括:基于循环神经网络的翻译模型、基于Transformer的翻译模型、注意力机制等等。但是,简单使用这些模型和方法显然无法取得最好的结果。实际上,先进的系统往往依赖多种技术的综合运用,是一项庞大的系统工程。
\parinterval 本章将沿着神经机器翻译框架继续探讨:如何研发性能更为突出的机器翻译系统。这里将介绍若干常用的提升神经机器翻译系统品质和速度的方法。同时,也会讨论一些开放性的前沿课题,旨在使机器翻译的效果达到更加先进的水平。本章的绝大部分内容都经过笔者所在团队的实验,具有实践方面的参考价值。正如本章的副标题一样,我们希望这里所讨论的内容可以帮助读者了解如何开发出一套足以参加高水平机器翻译比赛的系统,为相关研究建立更加科学、合理的基线,同时为机器翻译的应用提供一些具体可落地的思路。 \parinterval 本章将沿着神经机器翻译框架继续探讨:如何研发性能更为突出的机器翻译系统。这里将介绍若干常用的提升神经机器翻译系统品质和速度的方法。同时,也会讨论一些开放性的前沿课题,旨在使机器翻译的效果达到更加先进的水平。本章的绝大部分内容都经过笔者所在团队的实验,具有实践方面的参考价值。正如本章的副标题一样,希望这里所讨论的内容可以帮助读者了解如何开发出一套足以参加高水平机器翻译比赛的系统,为相关研究建立更加科学、合理的基线,同时为机器翻译的应用提供一些具体可落地的思路。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{神经机器翻译并不简单}%Index的作用,目前不清晰 \section{神经机器翻译并不简单}%Index的作用,目前不清晰
\parinterval 同统计机器翻译一样,高品质神经机器翻译的开发并没有想象的那么简单。虽然有很多开源系统可以参考,但是系统实践者仍然有大量的工作需要完成。在神经机器翻译系统研发方面,有若干问题需要注意: \parinterval 同统计机器翻译一样,高品质神经机器翻译的开发并没有想象的那么简单。虽然有很多开源系统可以参考,但是系统实践者仍然有大量的工作需要完成。在神经机器翻译系统研发方面,有若干问题需要注意:
\begin{itemize} \begin{itemize}
\item {\small\bfnew{神经网络模型很脆弱}}。神经机器翻译对超参数、训练策略的选择、网络结构的细微差别都非常敏感。比如,学习率、dropout比率上下浮动10\%都会带来翻译结果的明显区别。这也导致系统研发人员需要花费大量的时间来寻找合理的系统配置。虽然也有一些研究工作探讨自动化调参和结构设计(如:AutoML),但是为了确保翻译品质,现在普遍的做法仍然是``人肉''搜索最佳的网络架构和系统配置。 \item {\small\bfnew{神经网络模型很脆弱}}。神经机器翻译对超参数、训练策略的选择、网络结构的细微差别都非常敏感。比如,学习率、Dropout比率上下浮动一点点都会带来翻译结果的明显区别。这也导致系统研发人员需要花费大量的时间来寻找合理的系统配置。虽然也有一些研究工作探讨自动化调参和结构设计(如:AutoML),但是为了确保翻译品质,现在普遍的做法仍然是``人肉''搜索最佳的网络架构和系统配置。
\item {\small\bfnew{神经机器翻译需要对不同翻译任务进行适应}}。理想中一套``包打天下''的模型和设置是不存在的。针对不同语种、不同领域,机器翻译系统都需要进行调整。比如,一个新闻数据上训练的系统在专利数据上的表现往往不会很好。这里并不否认在很多研究工作中为了缩短研究周期,可以用同一套系统及设置在所有任务上进行实验。但是,具体到每个翻译任务上,高质量翻译都需要对系统进行细致的调整,比如,与语言相关的数据加工等。 \item {\small\bfnew{神经机器翻译需要对不同翻译任务进行适应}}。理想中一套``包打天下''的模型和设置是不存在的。针对不同语种、不同领域,机器翻译系统都需要进行调整。比如,一个新闻数据上训练的系统在专利数据上的表现往往不会很好。这里并不否认在很多研究工作中为了缩短研究周期,可以用同一套系统及设置在所有任务上进行实验。但是,具体到每个翻译任务上,高质量翻译都需要对系统进行细致的调整,比如,与语言相关的数据加工等。
\item {\small\bfnew{神经机器翻译的``最后一公里''仍然很长}}。无论是使用开源系统,还是从论文中进行复现,都可以很容易的得到一个基础版本的机器翻译系统。但是这样的系统离真正的state-of-the-art往往会有距离,离实用系统的距离可能更远。更具挑战的是,很多高水平系统中所使用的技巧甚至都没有被开源或者以论文的形式发表,这大大增加了普通研究者挑战前沿的难度。 \item {\small\bfnew{神经机器翻译的``最后一公里''仍然很长}}。无论是使用开源系统,还是从论文中进行复现,都可以很容易的得到一个基础版本的机器翻译系统。但是这样的系统离真正的state-of-the-art往往会有距离,离实用系统的距离可能更远。更具挑战的是,很多高水平系统中所使用的技巧甚至都没有被开源或者以论文的形式发表,这大大增加了普通研究者挑战前沿的难度。
\item {\small\bfnew{优秀系统的研发需要长时间的打磨,但是很多时候我们仅仅是在快速原型}}。这不是一个技术问题。因为如果有足够的时间,所有人都可以把任何事情做到极致。但是,不论是为了毕业、提职,还是希望在领域占据一席之地,我们总是希望在尽可能短的时间内把系统研发出来,把结果报道出来。这种做法无可厚非,因为科学研究需要对更本质的科学问题进行探索,而非简单的工程开发与调试。但是,对一个初级的系统进行研究往往会掩盖掉``真正的问题'',因为很多问题在更先进的系统中根本就不存在。这甚至会造成一种奇怪的现象,性能一直被报道在提高,但实际上是在原地踏步。 \item {\small\bfnew{优秀系统的研发需要长时间的打磨,但是很多时候我们仅仅是在快速原型}}。这不是一个技术问题。因为如果有足够的时间,所有人都可以把任何事情做到极致。但是,不论是为了毕业、提职,还是希望在领域占据一席之地,我们总是希望在尽可能短的时间内把系统研发出来,把结果报道出来。这种做法无可厚非,因为科学研究需要对更本质的科学问题进行探索,而非简单的工程开发与调试。但是,对一个初级的系统进行研究往往会掩盖掉``真正的问题'',因为很多问题在更先进的系统中根本就不存在。
\end{itemize} \end{itemize}
\parinterval 这里并不是要对神经机器翻译产生``畏难情绪'',更不是要对机器翻译繁荣的景象泼冷水。这里只是希望可以冷静的看待神经机器翻译技术的发展现状,让相关研究和系统研发更加扎实。少一些对技术的过度吹捧,多一些脚踏实地的工匠精神。 \parinterval 这里并不是要对神经机器翻译产生``畏难情绪'',更不是要对机器翻译繁荣的景象泼冷水。这里只是希望可以冷静的看待神经机器翻译技术的发展现状,让相关研究和系统研发更加扎实。少一些对技术的过度吹捧,多一些脚踏实地的工匠精神。
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
\begin{itemize} \begin{itemize}
\item {\small\bfnew{技术的先进性和成熟度}}。选择什么样的神经网络模型、什么样的训练方法、什么样的模型初始化策略等等,都会对最终的系统产生影响。显然,更加先进、成熟度更高的技术会带来性能的提升。比如,在最近,Transformer架构就受到了很多人的青睐,Adam等训练策略在神经机器翻译中也很流行。当然,未来一定会有更加强大的模型和技术被提出。因此系统研发者也需要紧跟技术的前沿,这样才能保证系统的先进性。 \item {\small\bfnew{技术的先进性和成熟度}}。选择什么样的神经网络模型、什么样的训练方法、什么样的模型初始化策略等等,都会对最终的系统产生影响。显然,更加先进、成熟度更高的技术会带来性能的提升。比如,在最近,Transformer架构就受到了很多人的青睐,Adam等训练策略在神经机器翻译中也很流行。当然,未来一定会有更加强大的模型和技术被提出。因此系统研发者也需要紧跟技术的前沿,这样才能保证系统的先进性。
\item {\small\bfnew{数据的质量和规模}}。数据驱动的方法对数据的依赖性不言而喻。虽然技术日新月异,但是``更好更多的数据''是一直被广泛接受的``真理''。所谓数据质量和规模一般都是针对任务而言,因此如何(或者是否可以)获取适合目标任务的高质量、大规模的数据是所有机器翻译研发中需要考虑的因素。在机器翻译系统研发的初级阶段,特别是在数据规模受限的情况下,增加高质量数据带来的性能提升往往更容易体现出来(如图\ref{fig:7-1})。 \item {\small\bfnew{数据的质量和规模}}。数据驱动的方法对数据的依赖性不言而喻。虽然技术日新月异,但是``更好更多的数据''是一直被广泛接受的``真理''。所谓数据质量和规模一般都是针对任务而言,因此如何(或者是否可以)获取适合目标任务的高质量、大规模的数据是实践中需要考虑的因素。在机器翻译系统研发的初级阶段,特别是在数据规模受限的情况下,增加高质量数据带来的性能提升往往更容易体现出来(如图\ref{fig:7-1})。
%---------------------------------------------- %----------------------------------------------
% 图7.1 % 图7.1
...@@ -57,9 +57,7 @@ ...@@ -57,9 +57,7 @@
\item {\small\bfnew{系统的打磨}}。容易被忽视的是系统的工程打磨,包括对数据的细致处理、参数的精细调整。更重要的是,在应用的过程中需要对发现的问题不断进行修正,这种日积月累的改变最终会带来翻译品质的显著提升。不过,系统打磨所需要的毅力与投入是十分巨大的。甚至从整个系统研发的进程来看,打磨的时间往往会占据主要部分。这对系统研发者来说也是一种考验。 \item {\small\bfnew{系统的打磨}}。容易被忽视的是系统的工程打磨,包括对数据的细致处理、参数的精细调整。更重要的是,在应用的过程中需要对发现的问题不断进行修正,这种日积月累的改变最终会带来翻译品质的显著提升。不过,系统打磨所需要的毅力与投入是十分巨大的。甚至从整个系统研发的进程来看,打磨的时间往往会占据主要部分。这对系统研发者来说也是一种考验。
\end{itemize} \end{itemize}
\parinterval 从应用的角度,评价系统的维度有很多,因此研发系统所使用的策略也会有所不同。比如,如果希望让机器翻译能够在小型离线设备上运行,这时我们可能会同时关心模型的体积和翻译的速度;如果是为了做非实时的文本翻译,翻译品质可能是最关键的。 \parinterval 从应用的角度,评价系统的维度有很多,因此研发系统所使用的策略也会有所不同。比如,如果希望让机器翻译能够在小型离线设备上运行,这时可能会同时关心模型的体积和翻译的速度;如果是为了做非实时的文本翻译,翻译品质就是最关键的。
\parinterval 为了方便后面的讨论,本章以WMT和CCMT新闻翻译比赛为背景\footnote{WMT评测网站为:\url{http://www.statmt.org/wmt19/translation-task.html},CCMT评测网站:\url{http://mteval.cipsc.org.cn/}} ,介绍搭建机器翻译系统的步骤和关键技术,同时包括一些系统实现时的一些注意事项。WMT和CCMT新闻翻译是机器翻译研究中的权威评测任务,其涉及到多个语种的翻译,而且任务的设置已经得到机器翻译领域同行的广泛认可。在这些任务上报道的结果对相关系统的改进和对比都有很好的参考意义。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{搭建神经机器翻译系统的步骤 } \subsection{搭建神经机器翻译系统的步骤 }
...@@ -67,11 +65,12 @@ ...@@ -67,11 +65,12 @@
\parinterval 构建一个机器翻译系统的主要步骤如图\ref{fig:7-2}所示,包含三个方面: \parinterval 构建一个机器翻译系统的主要步骤如图\ref{fig:7-2}所示,包含三个方面:
\begin{itemize} \begin{itemize}
\vspace{0.3em}
\item {\small\bfnew{数据处理}}:机器翻译的训练数据、测试数据都需要进行加工和处理,包括,数据的清洗、翻译单元的切分、对特殊字符的处理等。数据处理的好坏对机器翻译系统的品质影响很大。 \item {\small\bfnew{数据处理}}:机器翻译的训练数据、测试数据都需要进行加工和处理,包括,数据的清洗、翻译单元的切分、对特殊字符的处理等。数据处理的好坏对机器翻译系统的品质影响很大。
\vspace{0.3em}
\item {\small\bfnew{建模和架构选择}}:确定了翻译任务,下一步需要设计机器翻译模型,核心的步骤是神经网络架构的选择,比如,是使用循环神经网络还是Transformer。在确定架构之后,需要进一步设计细致的网络结构,比如,注意力机制、深层网络等等。神经网络结构的设计也会影响模型训练和推断策略的选择。 \item {\small\bfnew{建模和架构选择}}:确定了翻译任务,下一步需要设计机器翻译模型。核心是神经网络架构的选择,比如,是使用循环神经网络还是Transformer。在确定架构之后,需要进一步设计细致的网络结构,比如,注意力机制、深层网络等等。神经网络结构的设计也会影响模型训练和推断策略的选择。
\vspace{0.3em}
\item {\small\bfnew{训练和推断}}:模型设计好之后,需要实现训练和推断模块。这部分会涉及损失函数的设计、超参数的调整、推断中搜索算法的设计等等。如果对翻译速度有要求,模型的加速和压缩策略往往也需要考虑进来。 \item {\small\bfnew{训练和推断}}:模型设计好之后,需要实现训练和推断模块。这部分会涉及损失函数的设计、超参数的调整、推断中搜索算法的设计等等。如果对翻译速度有要求,模型的加速和压缩策略往往也需要考虑进来。
\end{itemize} \end{itemize}
%---------------------------------------------- %----------------------------------------------
...@@ -183,7 +182,7 @@ ...@@ -183,7 +182,7 @@
\item 应该除去低质量的或者有噪声的数据,即{\small\bfnew{数据过滤}}\index{数据过滤}(Data Filtering)\index{Data Filtering} \item 应该除去低质量的或者有噪声的数据,即{\small\bfnew{数据过滤}}\index{数据过滤}(Data Filtering)\index{Data Filtering}
\end{itemize} \end{itemize}
\parinterval 数据选择认为所有样本都是有用的,只是作用大小不同。因此,如果可以更充分的利用对机器翻译帮助更大的那部分数据,系统性能应该可以得到提升\cite{wang-etal-2018-dynamic} 比如,很多比赛系统中会使用测试数据与训练数据(源语言部分)进行匹配,选择一部与测试集更相关的数据,之后用这部分数据微调系统;也可以对不同训练数据的集合进行加权,之后进行权重敏感的训练,以期望权重大的数据对模型产生更大的影响 \parinterval 数据选择认为所有样本都是有用的,只是作用大小不同。因此,如果可以更充分的利用对机器翻译帮助更大的那部分数据,系统性能应该可以得到提升\cite{wang-etal-2018-dynamic} 比如,很多比赛系统中会使用测试数据与训练数据(源语言部分)进行匹配,选择一部与测试集更相关的数据,之后用这部分数据微调系统{\red 参考文献!引用WMT、CCMT});也可以对不同训练数据的集合进行加权,之后进行权重敏感的训练,以期望权重大的数据对模型产生更大的影响({\red 参考文献!NICT?}
\parinterval 数据过滤则认为数据中存在不太多的噪声,可以通过去除这种噪声提高数据整体的质量,进而提升训练效果。有很多方法,比如:过滤掉非对齐的样本、翻译质量极低的样本、重复样本等等。图\ref{fig:7-6}展示了数据过滤的实例。通常数据过滤需要很多工程手段的综合运用,因此也非常考验系统研发团队对系统打磨的能力。 \parinterval 数据过滤则认为数据中存在不太多的噪声,可以通过去除这种噪声提高数据整体的质量,进而提升训练效果。有很多方法,比如:过滤掉非对齐的样本、翻译质量极低的样本、重复样本等等。图\ref{fig:7-6}展示了数据过滤的实例。通常数据过滤需要很多工程手段的综合运用,因此也非常考验系统研发团队对系统打磨的能力。
...@@ -204,24 +203,26 @@ ...@@ -204,24 +203,26 @@
\begin{example} \begin{example}
\quad \quad
今天\ \ 天气\ \ 不错\ \ 中文:今天\ \ 天气\ \ 不错\ \
Let's\ \ go\ \ ! \\ 英文:Let's\ \ go\ \ ! \\
桃树\ \ \ \ 杏树\ \ \ \ 梨树\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 开满 \ \ \ \ \ \ 中文:桃树\ \ \ \ 杏树\ \ \ \ 梨树\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 开满 \ \ \ \ \ \
Flowers\ \ bloom\ \ . 英文:Flowers\ \ bloom\ \ .
\end{example} \end{example}
\parinterval 对于有明显问题的数据或者低质量的数据,一般采用启发性的数据过滤方法,有几方面的因素可以考虑: \parinterval 对于有明显问题的数据或者低质量的数据,一般采用启发性的数据过滤方法,有几方面的因素可以考虑:
\begin{itemize} \begin{itemize}
\vspace{0.3em}
\item 翻译长度比是否合理。有缺失成分的句子,会造成译文和源语言句子的长度比过大或者过小,因此可以设定一个区间,过滤掉长度落在这个区间外的所有句子。 \item 翻译长度比是否合理。有缺失成分的句子,会造成译文和源语言句子的长度比过大或者过小,因此可以设定一个区间,过滤掉长度落在这个区间外的所有句子。
\vspace{0.3em}
\item 单词对应是否合理。两个互为译文的句子之间的单词应该具有较好的对应关系。因此,可以考虑使用自动词对齐的结果,对句对的对齐质量进行评价。统计机器翻译中,这类方法已经广泛被用于短语翻译质量的度量,这里可以直接复用类似的方法(见第四章)。 \item 单词对应是否合理。两个互为译文的句子之间的单词应该具有较好的对应关系。因此,可以考虑使用自动词对齐的结果,对句对的对齐质量进行评价。统计机器翻译中,这类方法已经广泛被用于短语翻译质量的度量,这里可以直接复用类似的方法(见第四章)。
\vspace{0.3em}
\item 译文是否流畅。译文的流畅度是评价译文质量的重要指标。因此,如果训练数据中混有大量的不流畅译文也会对最终系统的译文质量产生影响。通常,在数据过滤中也会使用语言模型对译文流畅度进行评价。 \item 译文是否流畅。译文的流畅度是评价译文质量的重要指标。因此,如果训练数据中混有大量的不流畅译文也会对最终系统的译文质量产生影响。通常,在数据过滤中也会使用语言模型对译文流畅度进行评价。
\vspace{0.3em}
\end{itemize} \end{itemize}
\parinterval 以上这些因素可以被看作是不同的特征。可以使用额外的模型组合这些特征,最终得到一个数据过滤的参考分数。当然,数据过滤的策略很多,不同语言的处理策略也不相同。系统研发人员需要大量尝试才能得到一套完整的数据过滤方法。 \parinterval 以上这些因素可以被看作是不同的特征。可以使用额外的模型组合这些特征,最终得到一个数据过滤的参考分数。当然,数据过滤的策略很多,不同语言的处理策略也不相同。系统研发人员需要大量尝试才能得到一套完整的数据过滤方法。
...@@ -417,7 +418,7 @@ R(\mathbf{w}) & = & \big| |\mathbf{w}| {\big|}_1 \\ ...@@ -417,7 +418,7 @@ R(\mathbf{w}) & = & \big| |\mathbf{w}| {\big|}_1 \\
\begin{eqnarray} \begin{eqnarray}
R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
& = &\sum_{w_i}{w_i}^2 \nonumber & = &\sum_{w_i}{w_i}^2 \nonumber
\label{eqC7.4} \label{eqC7.4}
\end{eqnarray} \end{eqnarray}
\parinterval 从几何的角度看,L1和L2正则项都是有物理意义的。二者都可以被看作是空间上的一个区域,比如,在二维平面上,L1范数表示一个以0点为中心的矩形,L2范数表示一个以0点为中心的圆。因此,优化问题可以被看作是在两个区域($L(\mathbf{w})$$R(\mathbf{w})$)叠加在一起所形成的区域进行优化。由于L1和L2正则项都是在0点(坐标原点)附近形成的区域,因此优化的过程可以确保参数不会偏离0点太多。也就是说,L1和L2正则项引入了一个先验:模型的解不应该离0点太远。而L1和L2正则项实际上是在度量这个距离。 \parinterval 从几何的角度看,L1和L2正则项都是有物理意义的。二者都可以被看作是空间上的一个区域,比如,在二维平面上,L1范数表示一个以0点为中心的矩形,L2范数表示一个以0点为中心的圆。因此,优化问题可以被看作是在两个区域($L(\mathbf{w})$$R(\mathbf{w})$)叠加在一起所形成的区域进行优化。由于L1和L2正则项都是在0点(坐标原点)附近形成的区域,因此优化的过程可以确保参数不会偏离0点太多。也就是说,L1和L2正则项引入了一个先验:模型的解不应该离0点太远。而L1和L2正则项实际上是在度量这个距离。
...@@ -658,7 +659,7 @@ y_{j}^{ls}=(1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q ...@@ -658,7 +659,7 @@ y_{j}^{ls}=(1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\item {\small\bfnew{按词数排序}}:另外一种方式是按照单词数构建批次。对比按照句长生成批次,该方式可以防止某些批次中句子整体长度特别长或者特别短的情况,保证不同批次之间整体的词数处于大致相同的范围,这样所得到的梯度也是可比较的。通常的做法是根据源语言词数、目标语言词数,或者源语词数与目标语言词数的最大值等指标生成批次。 \item {\small\bfnew{按词数排序}}:另外一种方式是按照单词数构建批次。对比按照句长生成批次,该方式可以防止某些批次中句子整体长度特别长或者特别短的情况,保证不同批次之间整体的词数处于大致相同的范围,这样所得到的梯度也是可比较的。通常的做法是根据源语言词数、目标语言词数,或者源语词数与目标语言词数的最大值等指标生成批次。
\item {\small\bfnew{按课程学习的方式}}:考虑样本的``难度''也是生成批次的一种策略。比如,可以使用{\small\bfnew{课程学习}}\index{课程学习}(Curriculum Learning)\index{Curriculum Learning}的思想\cite{bengioCurriculumlearning},让系统先学习``简单''的样本,之后逐渐增加样本的难度,达到循序渐进的学习。具体来说,可以利用句子长度、词频等指标计算每个批次的``难度'',记为$d$。之后,选择满足$d\leq c$的样本构建一个批次。这里,$c$表示难度的阈值,它可以随着训练的执行不断增大。 \item {\small\bfnew{按课程学习的方式}}:考虑样本的``难度''也是生成批次的一种策略。比如,可以使用{\small\bfnew{课程学习}}\index{课程学习}(Curriculum Learning)\index{Curriculum Learning} 的思想\cite{bengioCurriculumlearning},让系统先学习``简单''的样本,之后逐渐增加样本的难度,达到循序渐进的学习。具体来说,可以利用句子长度、词频等指标计算每个批次的``难度'',记为$d$。之后,选择满足$d\leq c$的样本构建一个批次。这里,$c$表示难度的阈值,它可以随着训练的执行不断增大。
\end{itemize} \end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...@@ -1191,7 +1192,7 @@ $g_l$会作为输入的一部分送入第$l+1$个子层。其网络的结构图\ ...@@ -1191,7 +1192,7 @@ $g_l$会作为输入的一部分送入第$l+1$个子层。其网络的结构图\
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 可以看到,权值矩阵$\mathbf{W}$是一个下三角矩阵。开始时,对矩阵参数的每行进行平均初始化,即初始化矩阵$\mathbf{W}_0$的每一行各个位置的值为$1/N,N \in (1,2,3 \cdots L_{num}+1)$。伴随着神经网络的训练,网络通过反向传播算法来不断更新$\mathbf{W}$中每一行不同位置权重的大小。 \parinterval 可以看到,权值矩阵$\mathbf{W}$是一个下三角矩阵。开始时,对矩阵参数的每行进行平均初始化,即初始化矩阵$\mathbf{W}_0$的每一行各个位置的值为$1/N,N \in (1,2,3 \cdots L_{num}+1)$ 伴随着神经网络的训练,网络通过反向传播算法来不断更新$\mathbf{W}$中每一行不同位置权重的大小。
\parinterval 动态线性层聚合的一个好处是,系统可以自动学习不同子层对当前子层的贡献度。在实验中也发现,离当前子层更近的部分贡献度(权重)会更大,这也是符合直觉的。 \parinterval 动态线性层聚合的一个好处是,系统可以自动学习不同子层对当前子层的贡献度。在实验中也发现,离当前子层更近的部分贡献度(权重)会更大,这也是符合直觉的。
...@@ -1607,7 +1608,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\textbf{y}} | \textbf{x}) ...@@ -1607,7 +1608,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\textbf{y}} | \textbf{x})
\label{eqC7.5.4.2.1} \label{eqC7.5.4.2.1}
\end{eqnarray} \end{eqnarray}
\noindent 公式\ref{eqC7.5.4.2.1}假设$\textrm{P}(\mathbf s|\mathbf t)=\textrm{P}(\mathbf s|\mathbf s,\mathbf t)$。这个假设显然是成立的,因为当知道一个句子的译文时,并不需要知道它的源文就可以把它翻译回去。如果直接优化(最大化)公式\ref{eqC7.5.4.2.1}右侧,相当于对这个等式$\textrm{P}(\mathbf s|\mathbf t)$$\textrm{P}(\mathbf t|\mathbf s)$施加了{\small\bfnew{循环一致性}}\index{循环一致性}(Circle Consistency)\index{Circle Consistency}的约束\cite{DBLP:conf/iccv/ZhuPIE17},也就是对于一个句子$\mathbf s$,通过$\textrm{P}(\mathbf t|\mathbf s)$把它翻译成$\mathbf t$后,根据$\textrm{P}(\mathbf s|\mathbf t)$应该能重新翻译出$\mathbf s$,如图\ref{fig:7-35}所示。公式\ref{eqC7.5.4.2.1}给出了同时优化$\textrm{P}(\mathbf s|\mathbf t)$$\textrm{P}(\mathbf t|\mathbf s)$的一个目标函数形式。这个目标函数的一个额外的好处是它本质上是在学习一个由$\textrm{P}(\mathbf s|\mathbf t)$$\textrm{P}(\mathbf t|\mathbf s)$组成的语言模型$\textrm{P}(\mathbf s)$,而$\textrm{P}(\mathbf s)$的学习依赖于单语数据,这意味着这个目标函数可以很自然地直接使用大量单语数据来同时训练两个翻译模型。相同的结论可以推广到$\textrm{P}(\mathbf t)$\cite{DBLP:conf/nips/HeXQWYLM16} \noindent 公式\ref{eqC7.5.4.2.1}假设$\textrm{P}(\mathbf s|\mathbf t)=\textrm{P}(\mathbf s|\mathbf s,\mathbf t)$。这个假设显然是成立的,因为当知道一个句子的译文时,并不需要知道它的源文就可以把它翻译回去。如果直接优化(最大化)公式\ref{eqC7.5.4.2.1}右侧,相当于对这个等式$\textrm{P}(\mathbf s|\mathbf t)$$\textrm{P}(\mathbf t|\mathbf s)$施加了{\small\bfnew{循环一致性}}\index{循环一致性}(Circle Consistency)\index{Circle Consistency}的约束\cite{DBLP:conf/iccv/ZhuPIE17},也就是对于一个句子$\mathbf s$,通过$\textrm{P}(\mathbf t|\mathbf s)$把它翻译成$\mathbf t$后,根据$\textrm{P}(\mathbf s|\mathbf t)$应该能重新翻译出$\mathbf s$,如图\ref{fig:7-35}所示。公式\ref{eqC7.5.4.2.1}给出了同时优化$\textrm{P}(\mathbf s|\mathbf t)$$\textrm{P}(\mathbf t|\mathbf s)$的一个目标函数形式。这个目标函数的一个额外的好处是它本质上是在学习一个由$\textrm{P}(\mathbf s|\mathbf t)$$\textrm{P}(\mathbf t|\mathbf s)$组成的语言模型$\textrm{P}(\mathbf s)$,而$\textrm{P}(\mathbf s)$的学习依赖于单语数据,这意味着这个目标函数可以很自然地直接使用大量单语数据来同时训练两个翻译模型。相同的结论可以推广到$\textrm{P}(\mathbf t)$\cite{DBLP:conf/nips/HeXQWYLM16}
%---------------------------------------------- %----------------------------------------------
% 图7. % 图7.
......
...@@ -6,31 +6,31 @@ ...@@ -6,31 +6,31 @@
\indexentry{Normalization|hyperpage}{11} \indexentry{Normalization|hyperpage}{11}
\indexentry{数据清洗|hyperpage}{11} \indexentry{数据清洗|hyperpage}{11}
\indexentry{Dada Cleaning|hyperpage}{11} \indexentry{Dada Cleaning|hyperpage}{11}
\indexentry{数据选择|hyperpage}{14} \indexentry{数据选择|hyperpage}{13}
\indexentry{Data Selection|hyperpage}{14} \indexentry{Data Selection|hyperpage}{13}
\indexentry{数据过滤|hyperpage}{14} \indexentry{数据过滤|hyperpage}{13}
\indexentry{Data Filtering|hyperpage}{14} \indexentry{Data Filtering|hyperpage}{13}
\indexentry{开放词表|hyperpage}{16} \indexentry{开放词表|hyperpage}{16}
\indexentry{Open-Vocabulary|hyperpage}{16} \indexentry{Open-Vocabulary|hyperpage}{16}
\indexentry{子词|hyperpage}{17} \indexentry{子词|hyperpage}{17}
\indexentry{Sub-word|hyperpage}{17} \indexentry{Sub-word|hyperpage}{17}
\indexentry{字节对编码|hyperpage}{18} \indexentry{字节对编码|hyperpage}{17}
\indexentry{双字节编码|hyperpage}{18} \indexentry{双字节编码|hyperpage}{17}
\indexentry{Byte Pair Encoding,BPE|hyperpage}{18} \indexentry{Byte Pair Encoding,BPE|hyperpage}{17}
\indexentry{正则化|hyperpage}{21} \indexentry{正则化|hyperpage}{20}
\indexentry{Regularization|hyperpage}{21} \indexentry{Regularization|hyperpage}{20}
\indexentry{过拟合问题|hyperpage}{21} \indexentry{过拟合问题|hyperpage}{20}
\indexentry{Overfitting Problem|hyperpage}{21} \indexentry{Overfitting Problem|hyperpage}{20}
\indexentry{反问题|hyperpage}{21} \indexentry{反问题|hyperpage}{20}
\indexentry{Inverse Problem|hyperpage}{21} \indexentry{Inverse Problem|hyperpage}{20}
\indexentry{适定的|hyperpage}{21} \indexentry{适定的|hyperpage}{20}
\indexentry{Well-posed|hyperpage}{21} \indexentry{Well-posed|hyperpage}{20}
\indexentry{不适定问题|hyperpage}{21} \indexentry{不适定问题|hyperpage}{20}
\indexentry{Ill-posed Problem|hyperpage}{21} \indexentry{Ill-posed Problem|hyperpage}{20}
\indexentry{降噪|hyperpage}{21} \indexentry{降噪|hyperpage}{21}
\indexentry{Denoising|hyperpage}{21} \indexentry{Denoising|hyperpage}{21}
\indexentry{泛化|hyperpage}{22} \indexentry{泛化|hyperpage}{21}
\indexentry{Generalization|hyperpage}{22} \indexentry{Generalization|hyperpage}{21}
\indexentry{相互适应|hyperpage}{24} \indexentry{相互适应|hyperpage}{24}
\indexentry{Co-Adaptation|hyperpage}{24} \indexentry{Co-Adaptation|hyperpage}{24}
\indexentry{集成学习|hyperpage}{25} \indexentry{集成学习|hyperpage}{25}
...@@ -48,14 +48,14 @@ ...@@ -48,14 +48,14 @@
\indexentry{顶层网络的表示|hyperpage}{28} \indexentry{顶层网络的表示|hyperpage}{28}
\indexentry{语义信息|hyperpage}{28} \indexentry{语义信息|hyperpage}{28}
\indexentry{Semantic Information|hyperpage}{28} \indexentry{Semantic Information|hyperpage}{28}
\indexentry{词嵌入|hyperpage}{29} \indexentry{词嵌入|hyperpage}{28}
\indexentry{Embedding|hyperpage}{29} \indexentry{Embedding|hyperpage}{28}
\indexentry{数据并行|hyperpage}{29} \indexentry{数据并行|hyperpage}{29}
\indexentry{Data Parallelism|hyperpage}{29} \indexentry{Data Parallelism|hyperpage}{29}
\indexentry{模型并行|hyperpage}{29} \indexentry{模型并行|hyperpage}{29}
\indexentry{Model Parallelism|hyperpage}{29} \indexentry{Model Parallelism|hyperpage}{29}
\indexentry{课程学习|hyperpage}{32} \indexentry{课程学习|hyperpage}{31}
\indexentry{Curriculum Learning|hyperpage}{32} \indexentry{Curriculum Learning|hyperpage}{31}
\indexentry{推断|hyperpage}{32} \indexentry{推断|hyperpage}{32}
\indexentry{Inference|hyperpage}{32} \indexentry{Inference|hyperpage}{32}
\indexentry{解码|hyperpage}{32} \indexentry{解码|hyperpage}{32}
...@@ -64,36 +64,36 @@ ...@@ -64,36 +64,36 @@
\indexentry{Search Error|hyperpage}{32} \indexentry{Search Error|hyperpage}{32}
\indexentry{模型错误|hyperpage}{32} \indexentry{模型错误|hyperpage}{32}
\indexentry{Modeling Error|hyperpage}{32} \indexentry{Modeling Error|hyperpage}{32}
\indexentry{批量推断|hyperpage}{38} \indexentry{批量推断|hyperpage}{37}
\indexentry{Batch Inference|hyperpage}{38} \indexentry{Batch Inference|hyperpage}{37}
\indexentry{批量处理|hyperpage}{38} \indexentry{批量处理|hyperpage}{37}
\indexentry{Batching|hyperpage}{38} \indexentry{Batching|hyperpage}{37}
\indexentry{非自回归翻译|hyperpage}{40} \indexentry{非自回归翻译|hyperpage}{40}
\indexentry{Regressive Translation|hyperpage}{40} \indexentry{Regressive Translation|hyperpage}{40}
\indexentry{繁衍率|hyperpage}{40} \indexentry{繁衍率|hyperpage}{40}
\indexentry{Fertility|hyperpage}{40} \indexentry{Fertility|hyperpage}{40}
\indexentry{偏置|hyperpage}{42} \indexentry{偏置|hyperpage}{41}
\indexentry{Bias|hyperpage}{42} \indexentry{Bias|hyperpage}{41}
\indexentry{退化|hyperpage}{42} \indexentry{退化|hyperpage}{41}
\indexentry{Degenerate|hyperpage}{42} \indexentry{Degenerate|hyperpage}{41}
\indexentry{过翻译|hyperpage}{43} \indexentry{过翻译|hyperpage}{43}
\indexentry{Over Translation|hyperpage}{43} \indexentry{Over Translation|hyperpage}{43}
\indexentry{欠翻译|hyperpage}{43} \indexentry{欠翻译|hyperpage}{43}
\indexentry{Under Translation|hyperpage}{43} \indexentry{Under Translation|hyperpage}{43}
\indexentry{充分性|hyperpage}{44} \indexentry{充分性|hyperpage}{43}
\indexentry{Adequacy|hyperpage}{44} \indexentry{Adequacy|hyperpage}{43}
\indexentry{系统融合|hyperpage}{44} \indexentry{系统融合|hyperpage}{44}
\indexentry{System Combination|hyperpage}{44} \indexentry{System Combination|hyperpage}{44}
\indexentry{假设选择|hyperpage}{45} \indexentry{假设选择|hyperpage}{44}
\indexentry{Hypothesis Selection|hyperpage}{45} \indexentry{Hypothesis Selection|hyperpage}{44}
\indexentry{多样性|hyperpage}{45} \indexentry{多样性|hyperpage}{45}
\indexentry{Diversity|hyperpage}{45} \indexentry{Diversity|hyperpage}{45}
\indexentry{重排序|hyperpage}{45} \indexentry{重排序|hyperpage}{45}
\indexentry{Re-ranking|hyperpage}{45} \indexentry{Re-ranking|hyperpage}{45}
\indexentry{动态线性层聚合方法|hyperpage}{51} \indexentry{动态线性层聚合方法|hyperpage}{50}
\indexentry{Dynamic Linear Combination of Layers,DLCL|hyperpage}{51} \indexentry{Dynamic Linear Combination of Layers,DLCL|hyperpage}{50}
\indexentry{相互适应|hyperpage}{55} \indexentry{相互适应|hyperpage}{54}
\indexentry{Co-adaptation|hyperpage}{55} \indexentry{Co-adaptation|hyperpage}{54}
\indexentry{数据增强|hyperpage}{57} \indexentry{数据增强|hyperpage}{57}
\indexentry{Data Augmentation|hyperpage}{57} \indexentry{Data Augmentation|hyperpage}{57}
\indexentry{回译|hyperpage}{57} \indexentry{回译|hyperpage}{57}
...@@ -102,20 +102,20 @@ ...@@ -102,20 +102,20 @@
\indexentry{Iterative Back Translation|hyperpage}{58} \indexentry{Iterative Back Translation|hyperpage}{58}
\indexentry{前向翻译|hyperpage}{58} \indexentry{前向翻译|hyperpage}{58}
\indexentry{Forward Translation|hyperpage}{58} \indexentry{Forward Translation|hyperpage}{58}
\indexentry{预训练|hyperpage}{59} \indexentry{预训练|hyperpage}{58}
\indexentry{Pre-training|hyperpage}{59} \indexentry{Pre-training|hyperpage}{58}
\indexentry{微调|hyperpage}{59} \indexentry{微调|hyperpage}{58}
\indexentry{Fine-tuning|hyperpage}{59} \indexentry{Fine-tuning|hyperpage}{58}
\indexentry{多任务学习|hyperpage}{61} \indexentry{多任务学习|hyperpage}{60}
\indexentry{Multitask Learning|hyperpage}{61} \indexentry{Multitask Learning|hyperpage}{60}
\indexentry{模型压缩|hyperpage}{62} \indexentry{模型压缩|hyperpage}{61}
\indexentry{Model Compression|hyperpage}{62} \indexentry{Model Compression|hyperpage}{61}
\indexentry{学习难度|hyperpage}{62} \indexentry{学习难度|hyperpage}{62}
\indexentry{Learning Difficulty|hyperpage}{62} \indexentry{Learning Difficulty|hyperpage}{62}
\indexentry{教师模型|hyperpage}{63} \indexentry{教师模型|hyperpage}{62}
\indexentry{Teacher Model|hyperpage}{63} \indexentry{Teacher Model|hyperpage}{62}
\indexentry{学生模型|hyperpage}{63} \indexentry{学生模型|hyperpage}{62}
\indexentry{Student Model|hyperpage}{63} \indexentry{Student Model|hyperpage}{62}
\indexentry{基于单词的知识精炼|hyperpage}{63} \indexentry{基于单词的知识精炼|hyperpage}{63}
\indexentry{Word-level Knowledge Distillation|hyperpage}{63} \indexentry{Word-level Knowledge Distillation|hyperpage}{63}
\indexentry{基于序列的知识精炼|hyperpage}{63} \indexentry{基于序列的知识精炼|hyperpage}{63}
...@@ -123,10 +123,10 @@ ...@@ -123,10 +123,10 @@
\indexentry{中间层输出|hyperpage}{64} \indexentry{中间层输出|hyperpage}{64}
\indexentry{Hint-based Knowledge Transfer|hyperpage}{64} \indexentry{Hint-based Knowledge Transfer|hyperpage}{64}
\indexentry{注意力分布|hyperpage}{64} \indexentry{注意力分布|hyperpage}{64}
\indexentry{Attention To Attention Transfer|hyperpage}{65} \indexentry{Attention To Attention Transfer|hyperpage}{64}
\indexentry{循环一致性|hyperpage}{67} \indexentry{循环一致性|hyperpage}{67}
\indexentry{Circle Consistency|hyperpage}{67} \indexentry{Circle Consistency|hyperpage}{67}
\indexentry{翻译中回译|hyperpage}{68} \indexentry{翻译中回译|hyperpage}{68}
\indexentry{On-the-fly Back-translation|hyperpage}{68} \indexentry{On-the-fly Back-translation|hyperpage}{68}
\indexentry{网络结构搜索技术|hyperpage}{71} \indexentry{网络结构搜索技术|hyperpage}{70}
\indexentry{Neural Architecture Search;NAS|hyperpage}{71} \indexentry{Neural Architecture Search;NAS|hyperpage}{70}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论