Commit 890d3491 by xiaotong

updates of section titles

parent d2c8f277
...@@ -68,6 +68,7 @@ ...@@ -68,6 +68,7 @@
\parinterval 显然,实现机器翻译并不简单,甚至有人把机器翻译看作是实现人工智能的终极目标。幸运的是,今天的机器翻译无论从技术方法上还是从应用上都有了巨大的飞跃,很多问题在不断被求解。如果你看到过十年前机器翻译的结果,再对比今天的结果,一定会感叹翻译质量的今非昔比,很多译文已经非常准确且流畅。从当今机器翻译的前沿技术看,近三十年机器翻译的进步更多的得益于基于数据驱动方法和统计建模方法的使用。特别是近些年深度学习等基于表示学习的端到端方法使得机器翻译的水平达到了新高度。因此,本书将会对基于统计建模和深度学习方法的机器翻译模型、方法和系统实现进行全面介绍和分析,希望这些内容可以对相关内容的学习和科研工作提供参考。 \parinterval 显然,实现机器翻译并不简单,甚至有人把机器翻译看作是实现人工智能的终极目标。幸运的是,今天的机器翻译无论从技术方法上还是从应用上都有了巨大的飞跃,很多问题在不断被求解。如果你看到过十年前机器翻译的结果,再对比今天的结果,一定会感叹翻译质量的今非昔比,很多译文已经非常准确且流畅。从当今机器翻译的前沿技术看,近三十年机器翻译的进步更多的得益于基于数据驱动方法和统计建模方法的使用。特别是近些年深度学习等基于表示学习的端到端方法使得机器翻译的水平达到了新高度。因此,本书将会对基于统计建模和深度学习方法的机器翻译模型、方法和系统实现进行全面介绍和分析,希望这些内容可以对相关内容的学习和科研工作提供参考。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{机器翻译简史} \section{机器翻译简史}
\parinterval 虽然翻译这个概念在人类历史中已经存在了上千年,但机器翻译发展至今只有七十余年的历史。纵观机器翻译的发展,历程曲折又耐人寻味,可以说了解机器翻译的历史对我们深入理解相关技术方法会有很好的启发,甚至对我们了解整个自然语言处理领域的发展也有启示作用。 \parinterval 虽然翻译这个概念在人类历史中已经存在了上千年,但机器翻译发展至今只有七十余年的历史。纵观机器翻译的发展,历程曲折又耐人寻味,可以说了解机器翻译的历史对我们深入理解相关技术方法会有很好的启发,甚至对我们了解整个自然语言处理领域的发展也有启示作用。
...@@ -168,6 +169,7 @@ ...@@ -168,6 +169,7 @@
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\sectionnewpage
\section{机器翻译现状} \section{机器翻译现状}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\parinterval 机器翻译技术发展到今天已经过无数次迭代,技术范式也经过若干次更替,近些年机器翻译的应用也如雨后春笋。但是大家都很好奇今天的机器翻译的质量究竟如何呢?乐观地说,在受限条件下,机器翻译的译文结果还是非常不错的,甚至可以接近人工翻译的结果。然而,在开放式翻译任务中,机器翻译的结果却并不理想。更严格来说,机器翻译的质量远没有达到人们所期望的完美的程度。对于有些人提到的``机器翻译代替人工翻译''也并不是事实。比如,在高精度同声传译任务中,机器翻译仍需要更多打磨;再比如,针对于小说的翻译,机器翻译还无法做到与人工翻译媲美;甚至有人尝试用机器翻译系统翻译中国古代诗词,这里更多的是娱乐的味道。但是毫无疑问的是,机器翻译可以帮助人类,甚至有朝一日可以代替一些低端的人工翻译工作。 \parinterval 机器翻译技术发展到今天已经过无数次迭代,技术范式也经过若干次更替,近些年机器翻译的应用也如雨后春笋。但是大家都很好奇今天的机器翻译的质量究竟如何呢?乐观地说,在受限条件下,机器翻译的译文结果还是非常不错的,甚至可以接近人工翻译的结果。然而,在开放式翻译任务中,机器翻译的结果却并不理想。更严格来说,机器翻译的质量远没有达到人们所期望的完美的程度。对于有些人提到的``机器翻译代替人工翻译''也并不是事实。比如,在高精度同声传译任务中,机器翻译仍需要更多打磨;再比如,针对于小说的翻译,机器翻译还无法做到与人工翻译媲美;甚至有人尝试用机器翻译系统翻译中国古代诗词,这里更多的是娱乐的味道。但是毫无疑问的是,机器翻译可以帮助人类,甚至有朝一日可以代替一些低端的人工翻译工作。
...@@ -208,6 +210,7 @@ ...@@ -208,6 +210,7 @@
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\sectionnewpage
\section{机器翻译方法} \section{机器翻译方法}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\parinterval 为了对机器翻译技术有一个整体的认识,这里对一些主要的机器翻译框架进行简要介绍。 \parinterval 为了对机器翻译技术有一个整体的认识,这里对一些主要的机器翻译框架进行简要介绍。
...@@ -318,6 +321,7 @@ ...@@ -318,6 +321,7 @@
\parinterval 从现在机器翻译的研究和应用情况来看,基于统计建模的方法(统计机器翻译和神经机器翻译)是主流。这主要是由于它们的系统研发周期短,通过搜集一定量的数据即可实现快速原型。是随着互联网等信息的不断开放,低成本的数据获取可以让系统更快得以实现。特别是最近神经机器翻译凭借其高质量的译文,受到研究人员和开发者的广泛青睐。当然,对不同方法进行融合也是有价值的研究方向,也有很多有趣的探索,比如无指导机器翻译中还是会同时使用统计机器翻译和神经机器翻译方法,这也是一种典型的融合多种方法的思路。 \parinterval 从现在机器翻译的研究和应用情况来看,基于统计建模的方法(统计机器翻译和神经机器翻译)是主流。这主要是由于它们的系统研发周期短,通过搜集一定量的数据即可实现快速原型。是随着互联网等信息的不断开放,低成本的数据获取可以让系统更快得以实现。特别是最近神经机器翻译凭借其高质量的译文,受到研究人员和开发者的广泛青睐。当然,对不同方法进行融合也是有价值的研究方向,也有很多有趣的探索,比如无指导机器翻译中还是会同时使用统计机器翻译和神经机器翻译方法,这也是一种典型的融合多种方法的思路。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{翻译质量评价} \section{翻译质量评价}
\parinterval 机器翻译质量的评价对于机器翻译的发展具有至关重要的意义。首先,评价的结果可以用于指导研究人员不断改进机器翻译结果,并找到最具潜力的技术发展方向。同时,一个权威的翻译质量评价指标可以帮助用户更有效地使用机器翻译的结果。 \parinterval 机器翻译质量的评价对于机器翻译的发展具有至关重要的意义。首先,评价的结果可以用于指导研究人员不断改进机器翻译结果,并找到最具潜力的技术发展方向。同时,一个权威的翻译质量评价指标可以帮助用户更有效地使用机器翻译的结果。
...@@ -461,6 +465,7 @@ His house is on the south bank of the river. ...@@ -461,6 +465,7 @@ His house is on the south bank of the river.
\parinterval 基于检测点的评价方法的意义在于,它并不是简单给出一个分数,而是帮助系统研发人员定位问题。因此这类方法更多的使用在对机器翻译的结果进行分析上,是对BLEU等整体评价指标的一种很好的补充。 \parinterval 基于检测点的评价方法的意义在于,它并不是简单给出一个分数,而是帮助系统研发人员定位问题。因此这类方法更多的使用在对机器翻译的结果进行分析上,是对BLEU等整体评价指标的一种很好的补充。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{机器翻译应用} \section{机器翻译应用}
\parinterval 机器翻译有着十分广泛的应用,下面看一下机器翻译生活中的具体应用形式: \parinterval 机器翻译有着十分广泛的应用,下面看一下机器翻译生活中的具体应用形式:
...@@ -515,6 +520,7 @@ His house is on the south bank of the river. ...@@ -515,6 +520,7 @@ His house is on the south bank of the river.
\parinterval 翻译结果后编辑是指在机器翻译的结果之上,通过少量的人工编辑来进一步完善机器译文。在传统的人工翻译过程中,翻译人员完全依靠人工的方式进行翻译,这虽然保证了翻译质量,但是时间成本高。相对应的,机器翻译具有速度快和成本低的优势。在一些领域,目前的机器翻译质量已经可以很大程度上减小翻译人员的工作量,翻译人员可以在机器翻译的辅助下,花费相对较小的代价来完成翻译。 \parinterval 翻译结果后编辑是指在机器翻译的结果之上,通过少量的人工编辑来进一步完善机器译文。在传统的人工翻译过程中,翻译人员完全依靠人工的方式进行翻译,这虽然保证了翻译质量,但是时间成本高。相对应的,机器翻译具有速度快和成本低的优势。在一些领域,目前的机器翻译质量已经可以很大程度上减小翻译人员的工作量,翻译人员可以在机器翻译的辅助下,花费相对较小的代价来完成翻译。
\sectionnewpage
\section{开源项目与评测} \section{开源项目与评测}
\parinterval 从实践的角度,机器翻译的发展主要可以归功于两方面的推动作用:开源系统和评测。开源系统通过代码共享的方式使得最新的研究成果可以快速传播,同时实验结果可以复现。而评测比赛,使得各个研究组织的成果可以进行科学的对比,共同推动机器翻译的发展与进步。此外,开源项目也促进了不同团队之间的协作,让研究人员在同一个平台上集中力量攻关。 \parinterval 从实践的角度,机器翻译的发展主要可以归功于两方面的推动作用:开源系统和评测。开源系统通过代码共享的方式使得最新的研究成果可以快速传播,同时实验结果可以复现。而评测比赛,使得各个研究组织的成果可以进行科学的对比,共同推动机器翻译的发展与进步。此外,开源项目也促进了不同团队之间的协作,让研究人员在同一个平台上集中力量攻关。
...@@ -614,6 +620,7 @@ His house is on the south bank of the river. ...@@ -614,6 +620,7 @@ His house is on the south bank of the river.
\parinterval 从机器翻译发展的角度看,这些评测任务给相关研究提供了基准数据集,使得不同的系统都可以在同一个环境下进行比较和分析,进而建立了机器翻译研究所需的实验基础。此外,公开评测也使得研究者可以第一时间了解机器翻译研究的最新成果,比如,有多篇ACL会议最佳论文的灵感就来自当年参加机器翻译评测任务的系统。 \parinterval 从机器翻译发展的角度看,这些评测任务给相关研究提供了基准数据集,使得不同的系统都可以在同一个环境下进行比较和分析,进而建立了机器翻译研究所需的实验基础。此外,公开评测也使得研究者可以第一时间了解机器翻译研究的最新成果,比如,有多篇ACL会议最佳论文的灵感就来自当年参加机器翻译评测任务的系统。
\sectionnewpage
\section{推荐学习资源} \section{推荐学习资源}
\parinterval 首先,推荐一本书《Statistical Machine Translation》\cite{koehn2009statistical},其作者是机器翻译领域著名学者Philipp Koehn教授。该书是机器翻译领域内的经典之作,介绍了统计机器翻译技术的进展。该书从语言学和概率学两个方面介绍了统计机器翻译的构成要素,然后介绍了统计机器翻译的主要模型:基于词、基于短语和基于树的模型,以及机器翻译评价、语言建模、判别式训练等方法。此外,作者在该书的最新版本中增加了神经机器翻译的章节,方便研究人员全面了解机器翻译的最新发展趋势(\cite{DBLP:journals/corr/abs-1709-07809})。 \parinterval 首先,推荐一本书《Statistical Machine Translation》\cite{koehn2009statistical},其作者是机器翻译领域著名学者Philipp Koehn教授。该书是机器翻译领域内的经典之作,介绍了统计机器翻译技术的进展。该书从语言学和概率学两个方面介绍了统计机器翻译的构成要素,然后介绍了统计机器翻译的主要模型:基于词、基于短语和基于树的模型,以及机器翻译评价、语言建模、判别式训练等方法。此外,作者在该书的最新版本中增加了神经机器翻译的章节,方便研究人员全面了解机器翻译的最新发展趋势(\cite{DBLP:journals/corr/abs-1709-07809})。
......
...@@ -67,6 +67,7 @@ ...@@ -67,6 +67,7 @@
\parinterval 本章将会对上述问题及求解问题的方法进行介绍。首先,会用一个例子给出统计建模的基本思路,之后会应用这种方法进行中文分词、语言建模和句法分析。 \parinterval 本章将会对上述问题及求解问题的方法进行介绍。首先,会用一个例子给出统计建模的基本思路,之后会应用这种方法进行中文分词、语言建模和句法分析。
\vspace{-1em} \vspace{-1em}
%--概率论基础----------------------------------------- %--概率论基础-----------------------------------------
\sectionnewpage
\section{概率论基础} \section{概率论基础}
\parinterval 为了便于后续内容的介绍,首先对本书中使用的概率和统计学概念进行说明。 \parinterval 为了便于后续内容的介绍,首先对本书中使用的概率和统计学概念进行说明。
%--随机变量和概率--------------------- %--随机变量和概率---------------------
...@@ -334,6 +335,7 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -334,6 +335,7 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 结合相对熵公式可知,交叉熵是KL距离公式中的右半部分。因此,求关于Q的交叉熵的最小值等价于求KL距离的最小值。从实践的角度来说,交叉熵与KL距离的目的相同:都是用来描述两个分布的差异,由于交叉熵计算上更加直观方便,因此在机器翻译中被广泛应用。 \parinterval 结合相对熵公式可知,交叉熵是KL距离公式中的右半部分。因此,求关于Q的交叉熵的最小值等价于求KL距离的最小值。从实践的角度来说,交叉熵与KL距离的目的相同:都是用来描述两个分布的差异,由于交叉熵计算上更加直观方便,因此在机器翻译中被广泛应用。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{中文分词} \section{中文分词}
\parinterval 对于机器翻译系统而言,输入的是已经切分好的单词序列,而不是原始的字符串(图\ref{fig:2.3-1})。比如,对于一个中文句子,单词之间是没有间隔的,因此需要把一个个的单词切分出来,这样机器翻译系统可以区分不同的翻译单元。甚至,可以对语言学上的单词进行进一步切分,得到词片段序列(比如:中国人$\to$中国/人)。可以把上述过程看作是一种{\small\sffamily\bfseries{分词}}\index{分词}(Segmentation)\index{Segmentation}过程,即:将一个输入的自然语言字符串切割成单元序列(token序列),每个单元都对应可以处理的最小单位。 \parinterval 对于机器翻译系统而言,输入的是已经切分好的单词序列,而不是原始的字符串(图\ref{fig:2.3-1})。比如,对于一个中文句子,单词之间是没有间隔的,因此需要把一个个的单词切分出来,这样机器翻译系统可以区分不同的翻译单元。甚至,可以对语言学上的单词进行进一步切分,得到词片段序列(比如:中国人$\to$中国/人)。可以把上述过程看作是一种{\small\sffamily\bfseries{分词}}\index{分词}(Segmentation)\index{Segmentation}过程,即:将一个输入的自然语言字符串切割成单元序列(token序列),每个单元都对应可以处理的最小单位。
...@@ -610,6 +612,7 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -610,6 +612,7 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 当然,真正的分词系统还需要解决很多其他问题,比如使用动态规划等方法高效搜索最优解以及如何处理未见过的词等等,由于本节的重点是介绍中文分词的基础方法和统计建模思想,因此无法覆盖所有中文分词的技术内容,有兴趣的读者可以参考\ref{sec2:summary}节的相关文献做进一步深入研究。 \parinterval 当然,真正的分词系统还需要解决很多其他问题,比如使用动态规划等方法高效搜索最优解以及如何处理未见过的词等等,由于本节的重点是介绍中文分词的基础方法和统计建模思想,因此无法覆盖所有中文分词的技术内容,有兴趣的读者可以参考\ref{sec2:summary}节的相关文献做进一步深入研究。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{$n$-gram语言模型 } \section{$n$-gram语言模型 }
\parinterval 在基于统计的汉语分词模型中,我们通过``大题小做''的技巧,利用独立性假设把整个句子的单词切分概率转化为每个单个词出现概率的乘积。这里,每个单词也被称作1-gram(或uni-gram),而1-gram概率的乘积实际上也是在度量词序列出现的可能性(记为$\textrm{P}(w_1 w_2...w_m)$)。这种计算整个单词序列概率$\textrm{P}(w_1 w_2...w_m)$的方法被称为统计语言模型。1-gram语言模型是最简单的一种语言模型,它没有考虑任何的上下文。很自然的一个问题是:能否考虑上下文信息构建更强大的语言模型,进而得到更准确的分词结果。下面将进一步介绍更加通用的$n$-gram语言模型,它在机器翻译及其他自然语言处理任务中有更加广泛的应用。 \parinterval 在基于统计的汉语分词模型中,我们通过``大题小做''的技巧,利用独立性假设把整个句子的单词切分概率转化为每个单个词出现概率的乘积。这里,每个单词也被称作1-gram(或uni-gram),而1-gram概率的乘积实际上也是在度量词序列出现的可能性(记为$\textrm{P}(w_1 w_2...w_m)$)。这种计算整个单词序列概率$\textrm{P}(w_1 w_2...w_m)$的方法被称为统计语言模型。1-gram语言模型是最简单的一种语言模型,它没有考虑任何的上下文。很自然的一个问题是:能否考虑上下文信息构建更强大的语言模型,进而得到更准确的分词结果。下面将进一步介绍更加通用的$n$-gram语言模型,它在机器翻译及其他自然语言处理任务中有更加广泛的应用。
...@@ -887,6 +890,7 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll} ...@@ -887,6 +890,7 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll}
\parinterval Kneser-Ney平滑是很多语言模型工具的基础\cite{wang-etal-2018-niutrans}\cite{heafield-2011-kenlm}\cite{stolcke2002srilm}。还有很多以此为基础衍生出来的算法,感兴趣的读者可以通过参考文献自行了解\cite{parsing2009speech}\cite{ney1994structuring}\cite{chen1999empirical} \parinterval Kneser-Ney平滑是很多语言模型工具的基础\cite{wang-etal-2018-niutrans}\cite{heafield-2011-kenlm}\cite{stolcke2002srilm}。还有很多以此为基础衍生出来的算法,感兴趣的读者可以通过参考文献自行了解\cite{parsing2009speech}\cite{ney1994structuring}\cite{chen1999empirical}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{句法分析(短语结构分析)} \section{句法分析(短语结构分析)}
\parinterval 通过前面两节的内容,已经了解什么叫做``词''、如何对分词问题进行统计建模。同时也了解了如何对词序列的生成进行概率描述。无论是分词还是语言模型都是句子浅层词串信息的一种表示。对于一个自然语言句子来说,它更深层次的结构信息可以通过句法信息来描述,而句法信息也是机器翻译和自然语言处理其他任务中常用的知识之一。 \parinterval 通过前面两节的内容,已经了解什么叫做``词''、如何对分词问题进行统计建模。同时也了解了如何对词序列的生成进行概率描述。无论是分词还是语言模型都是句子浅层词串信息的一种表示。对于一个自然语言句子来说,它更深层次的结构信息可以通过句法信息来描述,而句法信息也是机器翻译和自然语言处理其他任务中常用的知识之一。
...@@ -1167,6 +1171,7 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber ...@@ -1167,6 +1171,7 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber
%------------------------------------------- %-------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{小结及深入阅读} \label{sec2:summary} \section{小结及深入阅读} \label{sec2:summary}
\parinterval 本章重点介绍了如何对自然语言处理问题进行统计建模,并从数据中自动学习统计模型的参数,最终使用学习到的模型对新的问题进行处理。之后,本章将这种思想应用到三个自然语言处理任务中,包括:中文分词、语言建模、句法分析,它们也和机器翻译有着紧密的联系。通过系统化的建模,可以发现:经过适当的假设和化简,统计模型可以很好的描述复杂的自然语言处理问题。相关概念和方法也会在后续章节的内容中被广泛使用。 \parinterval 本章重点介绍了如何对自然语言处理问题进行统计建模,并从数据中自动学习统计模型的参数,最终使用学习到的模型对新的问题进行处理。之后,本章将这种思想应用到三个自然语言处理任务中,包括:中文分词、语言建模、句法分析,它们也和机器翻译有着紧密的联系。通过系统化的建模,可以发现:经过适当的假设和化简,统计模型可以很好的描述复杂的自然语言处理问题。相关概念和方法也会在后续章节的内容中被广泛使用。
......
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
%--------------------------- %---------------------------
\parinterval 对于今天的自然语言处理研究,``分析、转换和生成''依然是一个非常深刻的观点。包括机器翻译在内的很多自然语言处理问题都可以用这个过程来解释。比如,对于现在比较前沿的神经机器翻译方法,从大的框架来说,依然在做分析(编码器)、转换(编码-解码注意力)和生成(解码器),只不过这些过程隐含在神经网络的设计中。当然,这里并不会对``分析、转换和生成''的架构展开过多的讨论,随着后面技术内容讨论的深入,这个观念会有进一步体现。 \parinterval 对于今天的自然语言处理研究,``分析、转换和生成''依然是一个非常深刻的观点。包括机器翻译在内的很多自然语言处理问题都可以用这个过程来解释。比如,对于现在比较前沿的神经机器翻译方法,从大的框架来说,依然在做分析(编码器)、转换(编码-解码注意力)和生成(解码器),只不过这些过程隐含在神经网络的设计中。当然,这里并不会对``分析、转换和生成''的架构展开过多的讨论,随着后面技术内容讨论的深入,这个观念会有进一步体现。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{构建一个简单的机器翻译系统} \section{构建一个简单的机器翻译系统}
\label{sec:simple-mt-example} \label{sec:simple-mt-example}
...@@ -420,6 +421,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} ...@@ -420,6 +421,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{5.5em}%调整布局用 \vspace{5.5em}%调整布局用
\sectionnewpage
\section{基于词的翻译建模} \section{基于词的翻译建模}
\parinterval\ref{sec:simple-mt-example}节中,我们实现了一个简单的基于词的统计机器翻译模型,内容涉及建模、训练和解码。但是,还有很多问题还没有进行深入讨论,比如,如何处理空翻译?如何对调序问题进行建模?如何用更严密的数学模型描述翻译过程?如何对更加复杂的统计模型进行训练?等等。针对以上问题,本节将系统的介绍IBM统计机器翻译模型。作为经典的机器翻译模型,对IBM模型的学习将帮助我们建立对自然语言处理问题的系统化建模思想,特别是对问题的数学描述方法将会成为理解本书后续内容的基础工具。 \parinterval\ref{sec:simple-mt-example}节中,我们实现了一个简单的基于词的统计机器翻译模型,内容涉及建模、训练和解码。但是,还有很多问题还没有进行深入讨论,比如,如何处理空翻译?如何对调序问题进行建模?如何用更严密的数学模型描述翻译过程?如何对更加复杂的统计模型进行训练?等等。针对以上问题,本节将系统的介绍IBM统计机器翻译模型。作为经典的机器翻译模型,对IBM模型的学习将帮助我们建立对自然语言处理问题的系统化建模思想,特别是对问题的数学描述方法将会成为理解本书后续内容的基础工具。
...@@ -609,6 +611,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} ...@@ -609,6 +611,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\end{eqnarray} \end{eqnarray}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{IBM模型1-2} \section{IBM模型1-2}
\parinterval 公式\ref{eqC3.18-new}和公式\ref{eqC3.19-new}把翻译问题定义为对译文和词对齐同时进行生成的问题。其中有两个问题:首先,公式\ref{eqC3.18-new}的右端($ \sum_{\mathbf{a}}\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$)要求对所有的词对齐概率进行求和,但是词对齐的数量随着句子长度是呈指数增长,如何遍历所有的对齐$\mathbf{a}$?其次,公式\ref{eqC3.19-new}虽然对词对齐的问题进行了描述,但是模型中的很多参数仍然很复杂,如何计算$\textrm{P}(m|\mathbf{t})$$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,\mathbf{t})$$\textrm{P}(s_j|a_1^{j},s_1^{j-1},m,\mathbf{t})$?针对这些问题,Brown等人总共提出了5种解决方案,这也就是被后人所熟知的5个IBM翻译模型。第一个问题可以通过一定的数学或者工程技巧进行求解;第二个问题可以通过一些假设进行化简,依据化简的层次和复杂度不同,可以分为IBM模型1、IBM模型2、IBM模型3、IBM模型4以及IBM模型5。本节首先介绍较为简单的IBM模型1-2。 \parinterval 公式\ref{eqC3.18-new}和公式\ref{eqC3.19-new}把翻译问题定义为对译文和词对齐同时进行生成的问题。其中有两个问题:首先,公式\ref{eqC3.18-new}的右端($ \sum_{\mathbf{a}}\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$)要求对所有的词对齐概率进行求和,但是词对齐的数量随着句子长度是呈指数增长,如何遍历所有的对齐$\mathbf{a}$?其次,公式\ref{eqC3.19-new}虽然对词对齐的问题进行了描述,但是模型中的很多参数仍然很复杂,如何计算$\textrm{P}(m|\mathbf{t})$$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,\mathbf{t})$$\textrm{P}(s_j|a_1^{j},s_1^{j-1},m,\mathbf{t})$?针对这些问题,Brown等人总共提出了5种解决方案,这也就是被后人所熟知的5个IBM翻译模型。第一个问题可以通过一定的数学或者工程技巧进行求解;第二个问题可以通过一些假设进行化简,依据化简的层次和复杂度不同,可以分为IBM模型1、IBM模型2、IBM模型3、IBM模型4以及IBM模型5。本节首先介绍较为简单的IBM模型1-2。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...@@ -973,6 +976,7 @@ a(i|j,m,l) &=\frac{\sum_{k=0}^{K}c_{\mathbb{E}}(i|j;\mathbf{s}^{[k]},\mathbf{t}^ ...@@ -973,6 +976,7 @@ a(i|j,m,l) &=\frac{\sum_{k=0}^{K}c_{\mathbb{E}}(i|j;\mathbf{s}^{[k]},\mathbf{t}^
\end{eqnarray} \end{eqnarray}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{IBM模型3-5及隐马尔可夫模型} \section{IBM模型3-5及隐马尔可夫模型}
\parinterval 本节在IBM模型1-2的基础上继续介绍IBM模型3-5,这些模型采用了更细致的建模方式来描述翻译问题,包括引入产出率、单词的抽象等重要方法。此外,本节也会介绍隐马尔可夫模型,它和IBM模型有一定联系,但是从另一个视角看待翻译问题。 \parinterval 本节在IBM模型1-2的基础上继续介绍IBM模型3-5,这些模型采用了更细致的建模方式来描述翻译问题,包括引入产出率、单词的抽象等重要方法。此外,本节也会介绍隐马尔可夫模型,它和IBM模型有一定联系,但是从另一个视角看待翻译问题。
...@@ -1238,6 +1242,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new} ...@@ -1238,6 +1242,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\parinterval 类似的,IBM模型3-5和隐马尔可夫模型也都可以使用期望最大化(EM)方法进行模型训练。相关数学推导可参考附录\ref{appendix-B}的内容。通常,可以使用这些模型获得双语句子间的词对齐结果,比如著名的GIZA++工具。这时,往往会使用多个模型,把简单的模型训练后的参数作为初始值送给后面更加复杂的模型。比如,先用IBM模型1训练,之后把参数送给IBM模型2,再训练,之后把参数送给隐马尔可夫模型等。值得注意的是,并不是所有的模型使用EM算法都能找到全局最优解。特别是IBM模型3-5的训练中使用一些剪枝和近似的方法,优化的真实目标函数会更加复杂。不过,IBM模型1是一个{\small\bfnew{凸函数}}\index{凸函数}(Convex function)\index{Convex function},因此理论上使用EM方法是能找到全局最优解的。更实际的好处是,IBM模型1训练的最终结果与参数的初始化过程无关。这也是为什么在使用IBM系列模型时,往往会使用IBM模型1作为起始模型的原因。 \parinterval 类似的,IBM模型3-5和隐马尔可夫模型也都可以使用期望最大化(EM)方法进行模型训练。相关数学推导可参考附录\ref{appendix-B}的内容。通常,可以使用这些模型获得双语句子间的词对齐结果,比如著名的GIZA++工具。这时,往往会使用多个模型,把简单的模型训练后的参数作为初始值送给后面更加复杂的模型。比如,先用IBM模型1训练,之后把参数送给IBM模型2,再训练,之后把参数送给隐马尔可夫模型等。值得注意的是,并不是所有的模型使用EM算法都能找到全局最优解。特别是IBM模型3-5的训练中使用一些剪枝和近似的方法,优化的真实目标函数会更加复杂。不过,IBM模型1是一个{\small\bfnew{凸函数}}\index{凸函数}(Convex function)\index{Convex function},因此理论上使用EM方法是能找到全局最优解的。更实际的好处是,IBM模型1训练的最终结果与参数的初始化过程无关。这也是为什么在使用IBM系列模型时,往往会使用IBM模型1作为起始模型的原因。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{问题分析} \section{问题分析}
\parinterval IBM模型是一个时代的经典,但也留下了一些值得思考的问题。这一方面体现了科学技术发展需要一步步前行,而非简单的一蹴而就。另一方面也体现了机器翻译问题的困难程度。下面对IBM存在的问题进行分析,同时给出一些解决问题的思路,希望通过这些讨论可以使我们对机器翻译问题有更深层次的理解。 \parinterval IBM模型是一个时代的经典,但也留下了一些值得思考的问题。这一方面体现了科学技术发展需要一步步前行,而非简单的一蹴而就。另一方面也体现了机器翻译问题的困难程度。下面对IBM存在的问题进行分析,同时给出一些解决问题的思路,希望通过这些讨论可以使我们对机器翻译问题有更深层次的理解。
...@@ -1284,7 +1289,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new} ...@@ -1284,7 +1289,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\parinterval 概念(cept.)的意义是什么?经过前面的分析可知,IBM模型的词对齐模型使用了cept.这个概念。但是,在IBM模型中使用的cept.最多只能对应一个目标语言单词(模型并没有用到源语言cept. 的概念)。因此可以直接用单词代替cept.。这样,即使不引入cept.的概念,也并不影响IBM模型的建模。实际上,cept.的引入确实可以帮助我们从语法和语义的角度解释词对齐过程。不过,这个方法在IBM 模型中的效果究竟如何还没有定论。 \parinterval 概念(cept.)的意义是什么?经过前面的分析可知,IBM模型的词对齐模型使用了cept.这个概念。但是,在IBM模型中使用的cept.最多只能对应一个目标语言单词(模型并没有用到源语言cept. 的概念)。因此可以直接用单词代替cept.。这样,即使不引入cept.的概念,也并不影响IBM模型的建模。实际上,cept.的引入确实可以帮助我们从语法和语义的角度解释词对齐过程。不过,这个方法在IBM 模型中的效果究竟如何还没有定论。
\sectionnewpage
\section{小结及深入阅读} \section{小结及深入阅读}
\parinterval 本章对IBM系列模型进行了全面的介绍和讨论,从一个简单的基于单词的翻译模型开始,本章以建模、解码、训练多个维度对统计机器翻译进行了描述,期间也涉及了词对齐、优化等多个重要概念。IBM 模型共分为5个模型,对翻译问题的建模依次由浅入深,同时模型复杂度也依次增加。IBM模型作为入门统计机器翻译的``必经之路'',其思想对今天的机器翻译仍然产生着影响。虽然单独使用IBM模型进行机器翻译现在已经不多见,甚至很多从事神经机器翻译等前沿研究的人对IBM模型已经逐渐淡忘,但是不能否认IBM模型标志着一个时代的开始。从某种意义上,当使用公式$\hat{\mathbf{t}} = \argmax_{\mathbf{t}} \textrm{P}(\mathbf{t}|\mathbf{s})$描述机器翻译问题的时候,或多或少都在与IBM模型使用相似的思想。 \parinterval 本章对IBM系列模型进行了全面的介绍和讨论,从一个简单的基于单词的翻译模型开始,本章以建模、解码、训练多个维度对统计机器翻译进行了描述,期间也涉及了词对齐、优化等多个重要概念。IBM 模型共分为5个模型,对翻译问题的建模依次由浅入深,同时模型复杂度也依次增加。IBM模型作为入门统计机器翻译的``必经之路'',其思想对今天的机器翻译仍然产生着影响。虽然单独使用IBM模型进行机器翻译现在已经不多见,甚至很多从事神经机器翻译等前沿研究的人对IBM模型已经逐渐淡忘,但是不能否认IBM模型标志着一个时代的开始。从某种意义上,当使用公式$\hat{\mathbf{t}} = \argmax_{\mathbf{t}} \textrm{P}(\mathbf{t}|\mathbf{s})$描述机器翻译问题的时候,或多或少都在与IBM模型使用相似的思想。
......
...@@ -134,6 +134,7 @@ ...@@ -134,6 +134,7 @@
\parinterval 使用句法信息在机器翻译中不新鲜。在基于规则和模板的翻译模型中,就大量的使用了句法等结构信息。只是由于早期句法分析技术不成熟,系统的整体效果并不突出。在统计机器翻译时代,句法可以很好的融合在统计建模中。通过概率化的文法设计,可以对翻译过程进行很好的描述。在本章的\ref{section-4.3}节和\ref{section-4.4}节中将会详细讨论句法信息在统计机器翻译中的应用。 \parinterval 使用句法信息在机器翻译中不新鲜。在基于规则和模板的翻译模型中,就大量的使用了句法等结构信息。只是由于早期句法分析技术不成熟,系统的整体效果并不突出。在统计机器翻译时代,句法可以很好的融合在统计建模中。通过概率化的文法设计,可以对翻译过程进行很好的描述。在本章的\ref{section-4.3}节和\ref{section-4.4}节中将会详细讨论句法信息在统计机器翻译中的应用。
%---------4.2基于短语的翻译模型 %---------4.2基于短语的翻译模型
\sectionnewpage
\section{基于短语的翻译模型}\label{section-4.2} \section{基于短语的翻译模型}\label{section-4.2}
\parinterval 基于短语的翻译模型是统计机器翻译最具代表性的模型之一\cite{koehn2003statistical,chiang2007hierarchical}。这类模型易于实现,而且性能突出。统计机器翻译中很多经典的方法都出自基于短语的模型,比如:统计调序模型、最小错误率训练等等。下面就来了解一下基于短语的机器翻译是如何工作的。 \parinterval 基于短语的翻译模型是统计机器翻译最具代表性的模型之一\cite{koehn2003statistical,chiang2007hierarchical}。这类模型易于实现,而且性能突出。统计机器翻译中很多经典的方法都出自基于短语的模型,比如:统计调序模型、最小错误率训练等等。下面就来了解一下基于短语的机器翻译是如何工作的。
...@@ -865,6 +866,7 @@ dr = \textrm{start}_i-\textrm{end}_{i-1}-1 ...@@ -865,6 +866,7 @@ dr = \textrm{start}_i-\textrm{end}_{i-1}-1
%------------------------------------------- %-------------------------------------------
%---------4.3基于层次短语的模型 %---------4.3基于层次短语的模型
\sectionnewpage
\section{基于层次短语的模型}\label{section-4.3} \section{基于层次短语的模型}\label{section-4.3}
\parinterval 在机器翻译中,如果翻译需要局部上下文的信息,把短语作为翻译单元是一种理想的方案。但是,单词之间的关系并不总是``局部''的,很多时候需要距离更远一些的搭配。比较典型的例子是含有从句的情况。比如: \parinterval 在机器翻译中,如果翻译需要局部上下文的信息,把短语作为翻译单元是一种理想的方案。但是,单词之间的关系并不总是``局部''的,很多时候需要距离更远一些的搭配。比较典型的例子是含有从句的情况。比如:
...@@ -1348,6 +1350,7 @@ span\textrm{[0,4]}&=&\textrm{``猫} \quad \textrm{喜欢} \quad \textrm{吃} \qu ...@@ -1348,6 +1350,7 @@ span\textrm{[0,4]}&=&\textrm{``猫} \quad \textrm{喜欢} \quad \textrm{吃} \qu
\parinterval 理论上,立方剪枝最多访问$n{m}^2$个点。但是在实践中发现,如果终止条件设计的合理,搜索的代价基本上与$m$或者$n$呈线性关系。因此,立方剪枝可以大大提高解码速度。立方剪枝实际上是一种启发性的搜索方法。它把搜索空间表示为一个三维空间。它假设:如果空间中某个点的模型得分较高,那么它``周围''的点的得分也很可能较高。这也是对模型得分沿着空间中不同维度具有连续性的一种假设。这种方法也大量的使用在句法分析中,并取得了很好的效果。 \parinterval 理论上,立方剪枝最多访问$n{m}^2$个点。但是在实践中发现,如果终止条件设计的合理,搜索的代价基本上与$m$或者$n$呈线性关系。因此,立方剪枝可以大大提高解码速度。立方剪枝实际上是一种启发性的搜索方法。它把搜索空间表示为一个三维空间。它假设:如果空间中某个点的模型得分较高,那么它``周围''的点的得分也很可能较高。这也是对模型得分沿着空间中不同维度具有连续性的一种假设。这种方法也大量的使用在句法分析中,并取得了很好的效果。
%---------4.4基于语言学句法的模型 %---------4.4基于语言学句法的模型
\sectionnewpage
\section{基于语言学句法的模型}\label{section-4.4} \section{基于语言学句法的模型}\label{section-4.4}
\parinterval 层次短语模型是一种典型的基于翻译文法的模型。它把翻译问题转化为语言分析问题。在翻译一个句子的时候,模型会生成一个树形结构,这样也就得到了句子结构的某种表示。图\ref{fig:derivation-of-hierarchical-phrase-and-tree-structure model}展示了一个使用层次短语系统进行翻译时所生成的翻译推导$d$,以及这个推导所对应的树形结构(源语言)。这棵树体现了机器翻译的视角下的句子结构,尽管这个结构并不是人类语言学中的句法树。 \parinterval 层次短语模型是一种典型的基于翻译文法的模型。它把翻译问题转化为语言分析问题。在翻译一个句子的时候,模型会生成一个树形结构,这样也就得到了句子结构的某种表示。图\ref{fig:derivation-of-hierarchical-phrase-and-tree-structure model}展示了一个使用层次短语系统进行翻译时所生成的翻译推导$d$,以及这个推导所对应的树形结构(源语言)。这棵树体现了机器翻译的视角下的句子结构,尽管这个结构并不是人类语言学中的句法树。
...@@ -2264,6 +2267,7 @@ d_1 = {d'} \circ {r_5} ...@@ -2264,6 +2267,7 @@ d_1 = {d'} \circ {r_5}
\parinterval 总的来说,基于句法的解码器较为复杂。无论是算法的设计还是工程技巧的运用,对开发者的能力都有一定要求。因此开发一个优秀的基于句法的机器翻译系统是一项有挑战的工作。 \parinterval 总的来说,基于句法的解码器较为复杂。无论是算法的设计还是工程技巧的运用,对开发者的能力都有一定要求。因此开发一个优秀的基于句法的机器翻译系统是一项有挑战的工作。
%---------4.5小结及深入阅读 %---------4.5小结及深入阅读
\sectionnewpage
\section{小结及深入阅读}\label{section-4.5} \section{小结及深入阅读}\label{section-4.5}
\parinterval 统计机器翻译模型是近三十年内自然语言处理的重要里程碑之一。其统计建模的思想长期影响着自然语言处理的研究。无论是基于短语的模型,还是基于层次短语的模型,还是基于语言学句法的模型都在尝试回答:究竟应该用什么样的知识对机器翻译进行统计建模?不过,这个问题至今还没有确定的答案。但是,显而易见,统计机器翻译为机器翻译的研究提供了一种范式,即让计算机用概率化的``知识''描述翻译问题。这些`` 知识''就是统计模型的参数,模型可以从大量的双语和单语数据中自动学习参数。这种建模思想在今天的机器翻译研究中仍然随处可见。 \parinterval 统计机器翻译模型是近三十年内自然语言处理的重要里程碑之一。其统计建模的思想长期影响着自然语言处理的研究。无论是基于短语的模型,还是基于层次短语的模型,还是基于语言学句法的模型都在尝试回答:究竟应该用什么样的知识对机器翻译进行统计建模?不过,这个问题至今还没有确定的答案。但是,显而易见,统计机器翻译为机器翻译的研究提供了一种范式,即让计算机用概率化的``知识''描述翻译问题。这些`` 知识''就是统计模型的参数,模型可以从大量的双语和单语数据中自动学习参数。这种建模思想在今天的机器翻译研究中仍然随处可见。
......
...@@ -153,6 +153,7 @@ ...@@ -153,6 +153,7 @@
%表1------------------------ %表1------------------------
%--5.2神经网络基础----------------------------------------- %--5.2神经网络基础-----------------------------------------
\sectionnewpage
\section{神经网络基础} \section{神经网络基础}
\parinterval 神经网络是一种由大量的节点(或称神经元)之间相互连接构成的计算模型。那么什么是神经元?神经元之间又是如何连接的?神经网络的数学描述又是什么样的?这一节将围绕这些问题对神经网络的基础知识作进行系统的介绍。 \parinterval 神经网络是一种由大量的节点(或称神经元)之间相互连接构成的计算模型。那么什么是神经元?神经元之间又是如何连接的?神经网络的数学描述又是什么样的?这一节将围绕这些问题对神经网络的基础知识作进行系统的介绍。
...@@ -833,6 +834,7 @@ x_0\cdot w_0+x_1\cdot w_1+x_2\cdot w_2 & = & 0\cdot 1+0\cdot 1+1\cdot 1 \nonumbe ...@@ -833,6 +834,7 @@ x_0\cdot w_0+x_1\cdot w_1+x_2\cdot w_2 & = & 0\cdot 1+0\cdot 1+1\cdot 1 \nonumbe
\parinterval 在本书后面的内容中还会看到,深层网络在机器翻译中可以带来明显的性能提升。 \parinterval 在本书后面的内容中还会看到,深层网络在机器翻译中可以带来明显的性能提升。
%--5.3神经网络的张量实现----------------------------------------- %--5.3神经网络的张量实现-----------------------------------------
\sectionnewpage
\section{神经网络的张量实现} \section{神经网络的张量实现}
\parinterval 在神经网络内部,输入经过若干次变换,最终得到输出的结果。这个过程类似于一种逐层的数据``流动''。不禁会产生这样的疑问:在神经网络中,数据是以哪种形式``流动''的?如何去编程实现这种数据``流动''呢? \parinterval 在神经网络内部,输入经过若干次变换,最终得到输出的结果。这个过程类似于一种逐层的数据``流动''。不禁会产生这样的疑问:在神经网络中,数据是以哪种形式``流动''的?如何去编程实现这种数据``流动''呢?
...@@ -1201,6 +1203,7 @@ y&=&{\rm{Sigmoid}}({\rm{Tanh}}(\mathbf x\cdot \mathbf w^1+\mathbf b^1)\cdot \mat ...@@ -1201,6 +1203,7 @@ y&=&{\rm{Sigmoid}}({\rm{Tanh}}(\mathbf x\cdot \mathbf w^1+\mathbf b^1)\cdot \mat
%------------------------------------------- %-------------------------------------------
%--5.4神经网络的参数训练----------------------------------------- %--5.4神经网络的参数训练-----------------------------------------
\sectionnewpage
\section{神经网络的参数训练} \section{神经网络的参数训练}
\parinterval 简单来说,神经网络可以被看作是由变量和函数组成的表达式,例如:$ \mathbf y=\mathbf x+\mathbf b $$ \mathbf y={\rm{ReLU}}(\mathbf x\cdot \mathbf w+\mathbf b) $$ \mathbf y={\rm{Sigmoid}}({\rm{ReLU}}(\mathbf x\cdot \mathbf w^1+\mathbf b^1)\cdot \mathbf w^2+\mathbf b^2) $等等,其中的$ \mathbf x $$ \mathbf y $作为输入和输出变量, $ \mathbf w $$ \mathbf b $等其他变量作为{\small\sffamily\bfseries{模型参数}}\index{模型参数}(Model Parameters)\index{Model Parameters}。确定了函数表达式和模型参数,也就确定了神经网络模型。通常,表达式的形式需要系统开发者设计,而模型参数的数量有时会非常巨大,因此需要自动学习,这个过程也被称为模型学习或{\small\bfnew{训练}}\index{训练}(Training)\index{Training}。为了实现这个目标,通常会准备一定量的带有标准答案的数据,称之为{\small\sffamily\bfseries{有标注数据}}\index{有标注数据}(Annotated Data/Labeled Data)\index{Annotated Data/Labeled Data}。这些数据会用于对模型参数的学习,这也对应了统计模型中的参数估计过程。在机器学习中,一般把这种使用有标注数据进行统计模型参数训练的过程称为{\small\sffamily\bfseries{有指导的训练}}\index{有指导的训练}{\small\sffamily\bfseries{有监督的训练}}\index{有监督的训练}(Supervised Training)\index{Supervised Training}。在本章中,如果没有特殊说明,模型训练都是指有监督的训练。那么神经网络内部是怎样利用有标注数据对参数进行训练的呢? \parinterval 简单来说,神经网络可以被看作是由变量和函数组成的表达式,例如:$ \mathbf y=\mathbf x+\mathbf b $$ \mathbf y={\rm{ReLU}}(\mathbf x\cdot \mathbf w+\mathbf b) $$ \mathbf y={\rm{Sigmoid}}({\rm{ReLU}}(\mathbf x\cdot \mathbf w^1+\mathbf b^1)\cdot \mathbf w^2+\mathbf b^2) $等等,其中的$ \mathbf x $$ \mathbf y $作为输入和输出变量, $ \mathbf w $$ \mathbf b $等其他变量作为{\small\sffamily\bfseries{模型参数}}\index{模型参数}(Model Parameters)\index{Model Parameters}。确定了函数表达式和模型参数,也就确定了神经网络模型。通常,表达式的形式需要系统开发者设计,而模型参数的数量有时会非常巨大,因此需要自动学习,这个过程也被称为模型学习或{\small\bfnew{训练}}\index{训练}(Training)\index{Training}。为了实现这个目标,通常会准备一定量的带有标准答案的数据,称之为{\small\sffamily\bfseries{有标注数据}}\index{有标注数据}(Annotated Data/Labeled Data)\index{Annotated Data/Labeled Data}。这些数据会用于对模型参数的学习,这也对应了统计模型中的参数估计过程。在机器学习中,一般把这种使用有标注数据进行统计模型参数训练的过程称为{\small\sffamily\bfseries{有指导的训练}}\index{有指导的训练}{\small\sffamily\bfseries{有监督的训练}}\index{有监督的训练}(Supervised Training)\index{Supervised Training}。在本章中,如果没有特殊说明,模型训练都是指有监督的训练。那么神经网络内部是怎样利用有标注数据对参数进行训练的呢?
...@@ -1917,6 +1920,7 @@ w_{t+1}&=&w_t-\frac{\eta}{\sqrt{z_t+\epsilon}} v_t ...@@ -1917,6 +1920,7 @@ w_{t+1}&=&w_t-\frac{\eta}{\sqrt{z_t+\epsilon}} v_t
%------------------------------------------- %-------------------------------------------
%--5.5神经语言模型----------------------------------------- %--5.5神经语言模型-----------------------------------------
\sectionnewpage
\section{神经语言模型}\label{sec5:nlm} \section{神经语言模型}\label{sec5:nlm}
\parinterval 神经网络给我们提供了一种工具,只要将问题的输入和输出定义好,就可以学习输入和输出之间的对应关系。显然,很多自然语言处理任务都可以用神经网络进行实现。比如,在机器翻译中,可以把输入的源语言句子和输出的目标语言句子用神经网络建模;在文本分类中,可以把输入的文本内容和输出的类别标签进行神经网络建模,等等。 \parinterval 神经网络给我们提供了一种工具,只要将问题的输入和输出定义好,就可以学习输入和输出之间的对应关系。显然,很多自然语言处理任务都可以用神经网络进行实现。比如,在机器翻译中,可以把输入的源语言句子和输出的目标语言句子用神经网络建模;在文本分类中,可以把输入的文本内容和输出的类别标签进行神经网络建模,等等。
...@@ -2283,6 +2287,7 @@ Jobs was the CEO of {\red{\underline{apple}}}. ...@@ -2283,6 +2287,7 @@ Jobs was the CEO of {\red{\underline{apple}}}.
%------------------------------------------- %-------------------------------------------
%--5.6小结及深入阅读----------------------------------------- %--5.6小结及深入阅读-----------------------------------------
\sectionnewpage
\section{小结及深入阅读} \section{小结及深入阅读}
\parinterval 神经网络为解决自然语言处理问题提供了全新的思路。而所谓深度学习也是建立在多层神经网络结构之上的一系列模型和方法。本章从神经网络的基本概念到其在语言建模中的应用进行了概述。由于篇幅所限,这里无法覆盖所有神经网络和深度学习的相关内容,感兴趣的读者可以进一步阅读《Neural Network Methods in Natural Language Processing》\cite{goldberg2017neural}和《Deep Learning》\cite{lecun2015deep}。此外,也有很多研究方向值得关注: \parinterval 神经网络为解决自然语言处理问题提供了全新的思路。而所谓深度学习也是建立在多层神经网络结构之上的一系列模型和方法。本章从神经网络的基本概念到其在语言建模中的应用进行了概述。由于篇幅所限,这里无法覆盖所有神经网络和深度学习的相关内容,感兴趣的读者可以进一步阅读《Neural Network Methods in Natural Language Processing》\cite{goldberg2017neural}和《Deep Learning》\cite{lecun2015deep}。此外,也有很多研究方向值得关注:
......
...@@ -215,6 +215,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -215,6 +215,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
\parinterval 当然,神经机器翻译也并不完美,很多问题有待解决。首先,神经机器翻译需要大规模浮点运算的支持,模型的推断速度较低。为了获得优质的翻译结果,往往需要大量GPU设备的支持,计算资源成本很高;其次,由于缺乏人类的先验知识对翻译过程的指导,神经机器翻译的运行过程缺乏可解释性,系统的可干预性也较差;此外,虽然脱离了繁重的特征工程,神经机器翻译仍然需要人工设计网络结构,包括模型的各种超参的设置、训练策略的选择等,仍然有大量人工参与。这也导致很多实验结果不容易重现。显然,完全不依赖人工进行机器翻译还很遥远。不过,随着研究者的不断攻关,很多问题也得到了缓解。 \parinterval 当然,神经机器翻译也并不完美,很多问题有待解决。首先,神经机器翻译需要大规模浮点运算的支持,模型的推断速度较低。为了获得优质的翻译结果,往往需要大量GPU设备的支持,计算资源成本很高;其次,由于缺乏人类的先验知识对翻译过程的指导,神经机器翻译的运行过程缺乏可解释性,系统的可干预性也较差;此外,虽然脱离了繁重的特征工程,神经机器翻译仍然需要人工设计网络结构,包括模型的各种超参的设置、训练策略的选择等,仍然有大量人工参与。这也导致很多实验结果不容易重现。显然,完全不依赖人工进行机器翻译还很遥远。不过,随着研究者的不断攻关,很多问题也得到了缓解。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{编码器-解码器框架}%Index的作用,目前不清晰 \section{编码器-解码器框架}%Index的作用,目前不清晰
\parinterval 说到神经机器翻译就不得不提{\small\bfnew{编码器-解码器模型}}\index{编码器-解码器模型}(Encoder-Decoder Paradigm)\index{Encoder-Decoder Paradigm},或{\small\bfnew{编码器-解码器框架}} \index{编码器-解码器框架}。本质上,编码器-解码器模型是描述输入-输出之间关系的一种方式。编码器-解码器这个概念在日常生活中并不少见。例如在电视系统上为了便于视频的传播,会使用各种编码器将视频编码成数字信号,在客户端,相应的解码器组件会把收到的数字信号解码为视频。另外一个更贴近生活的例子是电话。它通过对声波和电信号进行相互转换,达到传递声音的目的。这种``先编码,再解码''的思想被应用到密码学、信息论等多个领域。 \parinterval 说到神经机器翻译就不得不提{\small\bfnew{编码器-解码器模型}}\index{编码器-解码器模型}(Encoder-Decoder Paradigm)\index{Encoder-Decoder Paradigm},或{\small\bfnew{编码器-解码器框架}} \index{编码器-解码器框架}。本质上,编码器-解码器模型是描述输入-输出之间关系的一种方式。编码器-解码器这个概念在日常生活中并不少见。例如在电视系统上为了便于视频的传播,会使用各种编码器将视频编码成数字信号,在客户端,相应的解码器组件会把收到的数字信号解码为视频。另外一个更贴近生活的例子是电话。它通过对声波和电信号进行相互转换,达到传递声音的目的。这种``先编码,再解码''的思想被应用到密码学、信息论等多个领域。
...@@ -326,6 +327,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1 ...@@ -326,6 +327,7 @@ NMT & $ 21.7^{\ast}$ & $18.7^{\ast}$ & -1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\vspace{5.5em}%调整布局用 %\vspace{5.5em}%调整布局用
\sectionnewpage
\section{基于循环神经网络的翻译模型及注意力机制} \section{基于循环神经网络的翻译模型及注意力机制}
\label{sec:6.3} \label{sec:6.3}
\parinterval 早期神经机器翻译的进展主要来自两个方面:1)使用循环神经网络对单词序列进行建模;2)注意力机制的使用。表\ref{tab:papers in 2013-2015}列出了2013-2015年间有代表性的部分研究工作。从这些工作的内容上看,当时的研究重点还是如何有效的使用循环神经网络进行翻译建模以及使用注意力机制捕捉双语单词序列间的对应关系。 \parinterval 早期神经机器翻译的进展主要来自两个方面:1)使用循环神经网络对单词序列进行建模;2)注意力机制的使用。表\ref{tab:papers in 2013-2015}列出了2013-2015年间有代表性的部分研究工作。从这些工作的内容上看,当时的研究重点还是如何有效的使用循环神经网络进行翻译建模以及使用注意力机制捕捉双语单词序列间的对应关系。
...@@ -1226,6 +1228,7 @@ L(\mathbf{Y},\widehat{\mathbf{Y}}) = \sum_{j=1}^n L_{\textrm{ce}}(\mathbf{y}_j,\ ...@@ -1226,6 +1228,7 @@ L(\mathbf{Y},\widehat{\mathbf{Y}}) = \sum_{j=1}^n L_{\textrm{ce}}(\mathbf{y}_j,\
\end{table} \end{table}
%-------------------------------------- %--------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{Transformer} \section{Transformer}
\parinterval 编码器-解码器框架提供了一个非常灵活的机制,因为开发者只需要设计编码器和解码器的结构就能完成机器翻译。但是,架构的设计是深度学习中最具挑战的工作,优秀的架构往往需要长时间的探索和大量的实验验证,而且还需要一点点``灵感''。 \parinterval 编码器-解码器框架提供了一个非常灵活的机制,因为开发者只需要设计编码器和解码器的结构就能完成机器翻译。但是,架构的设计是深度学习中最具挑战的工作,优秀的架构往往需要长时间的探索和大量的实验验证,而且还需要一点点``灵感''。
...@@ -1731,6 +1734,7 @@ Transformer Deep(48层) & 30.2 & 43.1 & 194$\times 10^{6}$ ...@@ -1731,6 +1734,7 @@ Transformer Deep(48层) & 30.2 & 43.1 & 194$\times 10^{6}$
\end{figure} \end{figure}
%---------------------------------------------- %----------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{序列到序列问题及应用} \section{序列到序列问题及应用}
\parinterval 虽然翻译的目的是进行自然语言文字的转化,但是并不需要限制机器翻译只能进行两种语言之间的转换。从某种意义上讲,一个输入序列转化到一个输出序列的过程都可以被看作``翻译''。这类问题通常被称作{\small\sffamily\bfseries{序列到序列的转换/生成问题}}\index{序列到序列的转换/生成问题}(Sequence-to-Sequence Problem)\index{Sequence-to-Sequence Problem}。而机器翻译模型也是一种典型的序列到序列模型。 \parinterval 虽然翻译的目的是进行自然语言文字的转化,但是并不需要限制机器翻译只能进行两种语言之间的转换。从某种意义上讲,一个输入序列转化到一个输出序列的过程都可以被看作``翻译''。这类问题通常被称作{\small\sffamily\bfseries{序列到序列的转换/生成问题}}\index{序列到序列的转换/生成问题}(Sequence-to-Sequence Problem)\index{Sequence-to-Sequence Problem}。而机器翻译模型也是一种典型的序列到序列模型。
...@@ -1799,6 +1803,7 @@ Transformer Deep(48层) & 30.2 & 43.1 & 194$\times 10^{6}$ ...@@ -1799,6 +1803,7 @@ Transformer Deep(48层) & 30.2 & 43.1 & 194$\times 10^{6}$
%------------------------------------------- %-------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{小结及深入阅读}%Index的作用,目前不清晰 \section{小结及深入阅读}%Index的作用,目前不清晰
\parinterval 神经机器翻译是近几年的热门方向。无论是前沿性的技术探索,还是面向应用落地的系统研发,神经机器翻译已经成为当下最好的选择之一。研究人员对神经机器翻译的热情使得这个领域得到了快速的发展。本章作为神经机器翻译的入门章节,对神经机器翻译的建模思想和基础框架进行了描述。同时,对常用的神经机器翻译架构 - 循环神经网络和Transformer - 进行了讨论与分析。下一章会对神经机器翻译中的一些常用技术和前沿方法进行进一步介绍。 \parinterval 神经机器翻译是近几年的热门方向。无论是前沿性的技术探索,还是面向应用落地的系统研发,神经机器翻译已经成为当下最好的选择之一。研究人员对神经机器翻译的热情使得这个领域得到了快速的发展。本章作为神经机器翻译的入门章节,对神经机器翻译的建模思想和基础框架进行了描述。同时,对常用的神经机器翻译架构 - 循环神经网络和Transformer - 进行了讨论与分析。下一章会对神经机器翻译中的一些常用技术和前沿方法进行进一步介绍。
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
\parinterval 作为机器翻译的前沿方向,神经机器翻译方法是近些年来最受关注的热点之一。凭借其高品质的译文,神经机器翻译的身影在各种机器翻译比赛和产品中随处可见。第六章已经介绍了神经机器翻译的基础模型,包括:基于循环神经网络的翻译模型、基于Transformer的翻译模型、注意力机制等等。但是,简单使用这些模型和方法显然无法取得最好的结果。实际上,先进的系统往往依赖多种技术的综合运用,是一项庞大的系统工程。 \parinterval 作为机器翻译的前沿方向,神经机器翻译方法是近些年来最受关注的热点之一。凭借其高品质的译文,神经机器翻译的身影在各种机器翻译比赛和产品中随处可见。第六章已经介绍了神经机器翻译的基础模型,包括:基于循环神经网络的翻译模型、基于Transformer的翻译模型、注意力机制等等。但是,简单使用这些模型和方法显然无法取得最好的结果。实际上,先进的系统往往依赖多种技术的综合运用,是一项庞大的系统工程。
\parinterval 本章将沿着神经机器翻译框架继续探讨:如何研发性能更为突出的机器翻译系统。这里将介绍若干常用的提升神经机器翻译系统品质和速度的方法。同时,也会讨论一些开放性的前沿课题,旨在使机器翻译的效果达到更加先进的水平。本章的绝大部分内容都经过笔者所在团队的实验,具有实践方面的参考价值。正如本章的副标题一样,希望这里所讨论的内容可以帮助读者了解如何开发出一套足以参加高水平机器翻译比赛的系统,为相关研究建立更加科学、合理的基线,同时为机器翻译的应用提供一些具体可落地的思路。 \parinterval 本章将沿着神经机器翻译框架继续探讨:如何研发性能更为突出的机器翻译系统。这里将介绍若干常用的提升神经机器翻译系统品质和速度的方法。同时,也会讨论一些开放性的前沿课题,旨在使机器翻译的效果达到更加先进的水平。本章的绝大部分内容都经过笔者所在团队的实验,具有实践方面的参考价值。正如本章的副标题一样,希望这里所讨论的内容可以帮助读者了解如何开发出一套足以参加高水平机器翻译比赛的系统,为相关研究建立更加科学、合理的基线,同时为机器翻译的应用提供一些具体可落地的思路。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{神经机器翻译并不简单}%Index的作用,目前不清晰 \section{神经机器翻译并不简单}%Index的作用,目前不清晰
...@@ -92,6 +94,7 @@ ...@@ -92,6 +94,7 @@
\parinterval 此外,Transformer使用了自注意力机制,因此训练时模型并行度较高,模型训练的时间较短。这为系统研发节省了时间。特别是面临大量超参数调整时,较短的训练周期会大大加速优化的进程。 \parinterval 此外,Transformer使用了自注意力机制,因此训练时模型并行度较高,模型训练的时间较短。这为系统研发节省了时间。特别是面临大量超参数调整时,较短的训练周期会大大加速优化的进程。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{数据处理} \section{数据处理}
\parinterval 同统计机器翻译一样,神经机器翻译也需要对输入和输入的句子进行分词,目的是得到翻译的最基本单元。但是,这里所说的单词并不是语言学上的单词,更多的是指面向机器翻译任务的最小翻译片段。比如,可以复用第二章中的自动分词系统对句子进行切分,之后在切分得到的``词''序列上完成翻译建模。 \parinterval 同统计机器翻译一样,神经机器翻译也需要对输入和输入的句子进行分词,目的是得到翻译的最基本单元。但是,这里所说的单词并不是语言学上的单词,更多的是指面向机器翻译任务的最小翻译片段。比如,可以复用第二章中的自动分词系统对句子进行切分,之后在切分得到的``词''序列上完成翻译建模。
...@@ -134,7 +137,7 @@ ...@@ -134,7 +137,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{标准化} \subsection{标准化}
\parinterval 在机器翻译的数据处理过程中,标准化是指对数据中的字符表示或者大小写等进行统一,具体包括符号标准化,大小写转换和中文的简繁体转化等。由于数据来源多样,不同的数据集中可能使用不同的符号标准或者大小写规范等。同一个符号,由于使用的编码不同,计算机也会认为是不同的符号或单词,进而增大词表规模,带来不必要的计算开销。此外,这种多样性会变相地导致数据中各种符号相对稀疏,增大了模型的学习负担。通过标准化,可以将功能相同的符号或者单词表示进行统一,去除其中的噪音,减小词表规模。 \parinterval 在机器翻译的数据处理过程中,标准化是指对数据中的字符表示或者大小写等进行统一,具体包括符号标准化,大小写转换和中文的简繁体转化等。由于数据来源多样,不同的数据集中可能使用不同的符号标准或者大小写规范等。同一个符号,由于使用的编码不同,计算机也会认为是不同的符号或单词。此外,这种多样性会变相地导致数据中各种符号相对稀疏,增大了模型的学习负担。通过标准化,可以将功能相同的符号或者单词表示进行统一,去除其中的噪音,减小词表规模。
%---------------------------------------------- %----------------------------------------------
% 表 % 表
...@@ -174,20 +177,20 @@ ...@@ -174,20 +177,20 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{数据清洗} \subsection{数据清洗}
\label{chapter7.2.3} \label{chapter7.2.3}
\parinterval 数据清洗的本质是让机器翻译系统更有效的从数据中学习。有两种观点: \parinterval 数据清洗的本质是让机器翻译系统更有效的从数据中进行学习。有两种观点:
\begin{itemize} \begin{itemize}
\vspace{0.3em}
\item 应该选择性的使用对系统性能提升最大的数据,即{\small\bfnew{数据选择}}\index{数据选择}(Data Selection)\index{Data Selection} \item 应该选择性的使用对系统性能提升最大的数据,即{\small\bfnew{数据选择}}\index{数据选择}(Data Selection)\index{Data Selection}
\vspace{0.3em}
\item 应该除去低质量的或者有噪声的数据,即{\small\bfnew{数据过滤}}\index{数据过滤}(Data Filtering)\index{Data Filtering} \item 应该除去低质量的或者有噪声的数据,即{\small\bfnew{数据过滤}}\index{数据过滤}(Data Filtering)\index{Data Filtering}
\vspace{0.3em}
\end{itemize} \end{itemize}
\parinterval 数据选择认为所有样本都是有用的,只是作用大小不同。因此,如果可以更充分的利用对机器翻译帮助更大的那部分数据,系统性能应该可以得到提升\cite{wang-etal-2018-dynamic} 比如,很多比赛系统中会使用测试数据与训练数据(源语言部分)进行匹配,选择一部与测试集更相关的数据,之后用这部分数据微调系统({\red 参考文献!引用WMT、CCMT});也可以对不同训练数据的集合进行加权,之后进行权重敏感的训练,以期望权重大的数据对模型产生更大的影响({\red 参考文献!NICT?})。 \parinterval 数据选择认为所有样本都是有用的,只是作用大小不同。因此,如果可以更充分的利用对机器翻译帮助更大的那部分数据,系统性能应该可以得到提升\cite{wang-etal-2018-dynamic} 比如,很多比赛系统中会使用测试数据与训练数据(源语言部分)进行匹配,选择一部与测试集更相关的数据,之后用这部分数据微调系统({\red 参考文献!引用WMT、CCMT});也可以对不同训练数据的集合进行加权,之后进行权重敏感的训练,以期望权重大的数据对模型产生更大的影响({\red 参考文献!NICT?})。
\parinterval 数据过滤则认为数据中存在不太多的噪声,可以通过去除这种噪声提高数据整体的质量,进而提升训练效果。有很多方法,比如:过滤掉非对齐的样本、翻译质量极低的样本、重复样本等等。图\ref{fig:7-6}展示了数据过滤的实例。通常数据过滤需要很多工程手段的综合运用,因此也非常考验系统研发团队对系统打磨的能力。 \parinterval 数据过滤则认为数据中存在不太多的噪声,可以通过去除这种噪声提高数据整体的质量,进而提升训练效果。有很多方法,比如:过滤掉非对齐的样本、翻译质量极低的样本、重复样本等等。图\ref{fig:7-6}展示了数据过滤的实例。通常数据过滤需要很多工程手段的综合运用,因此也非常考验系统研发团队对系统打磨的能力。
\parinterval 下面会简单介绍数据过滤的基础方法,因为它们在系统实践中已经被证明是十分有效的。
%---------------------------------------------- %----------------------------------------------
% 图7.8 % 图7.8
\begin{figure}[htp] \begin{figure}[htp]
...@@ -198,7 +201,7 @@ ...@@ -198,7 +201,7 @@
\end{figure} \end{figure}
%---------------------------------------------- %----------------------------------------------
\parinterval 由于原始双语数据往往是基于篇章或者段落,在语料库的构建过程中,需要对原始数据进行句对齐,从而获得训练机器翻译系统所需要的数据。由于句对齐算法并不完美,以及原始数据本身可能存在错误,会导致得到的数据中存在一些非对齐的句对。比如,处理数据时经常会遇到一句话只翻译了一半的情况。更极端一些的例子是,整个源语言和目标语言句子完全不对应。下面的例子展示了一些典型的非对齐汉英双语句子。显然,数据清洗需要过滤掉这样的数据。 \parinterval 下面会简单介绍数据过滤的基础方法,因为它们在系统实践中已经被证明是十分有效的。由于原始双语数据往往是基于篇章或者段落,在语料库的构建过程中,需要对原始数据进行句对齐,从而获得训练机器翻译系统所需要的数据。由于句对齐算法并不完美,以及原始数据本身可能存在错误,会导致得到的数据中存在一些非对齐的句对。比如,处理数据时经常会遇到一句话只翻译了一半的情况。更极端一些的例子是,整个源语言和目标语言句子完全不对应。下面的例子展示了一些典型的非对齐汉英双语句子。显然,数据清洗需要过滤掉这样的数据。
\begin{example} \begin{example}
\quad \quad
...@@ -221,13 +224,13 @@ ...@@ -221,13 +224,13 @@
\vspace{0.3em} \vspace{0.3em}
\item 单词对应是否合理。两个互为译文的句子之间的单词应该具有较好的对应关系。因此,可以考虑使用自动词对齐的结果,对句对的对齐质量进行评价。统计机器翻译中,这类方法已经广泛被用于短语翻译质量的度量,这里可以直接复用类似的方法(见第四章)。 \item 单词对应是否合理。两个互为译文的句子之间的单词应该具有较好的对应关系。因此,可以考虑使用自动词对齐的结果,对句对的对齐质量进行评价。统计机器翻译中,这类方法已经广泛被用于短语翻译质量的度量,这里可以直接复用类似的方法(见第四章)。
\vspace{0.3em} \vspace{0.3em}
\item 译文是否流畅。译文的流畅度是评价译文质量的重要指标。因此,如果训练数据中混有大量的不流畅译文也会对最终系统的译文质量产生影响。通常,在数据过滤中也会使用语言模型对译文流畅度进行评价。 \item 译文是否流畅。译文的流畅度是评价译文质量的重要指标。通常,在数据过滤中也会使用语言模型对译文流畅度进行评价。
\vspace{0.3em} \vspace{0.3em}
\end{itemize} \end{itemize}
\parinterval 以上这些因素可以被看作是不同的特征。可以使用额外的模型组合这些特征,最终得到一个数据过滤的参考分数。当然,数据过滤的策略很多,不同语言的处理策略也不相同。系统研发人员需要大量尝试才能得到一套完整的数据过滤方法。 \parinterval 以上这些因素可以被看作是不同的特征。可以使用额外的模型组合这些特征,最终得到一个数据过滤的参考分数。当然,数据过滤的策略很多,不同语言的处理策略也不相同。系统研发人员需要大量尝试才能得到一套完整的数据过滤方法。
\parinterval 另外有一点需要注意,数据质量和数据覆盖度是衡量一个语料质量的两个维度,二者通常是矛盾的。很多时候,在获得高质量数据的同时,数据的多样性也降低了。一个极端的例子是数据集中只包含一个翻译很好的双语句子,这个语料的质量是完美的,但是由于它只能覆盖单一的语言现象,无法训练出一个很好的翻译模型。在实践中,往往需要平衡数据的质量和数据的覆盖度。有些情况下为了覆盖更多样的样本,也可以适当保留一些质量不太高的数据\cite{姚树杰2011基于句对质量和覆盖度的统计机器翻译训练语料选取}。这是由于,即使这些数据不完美,但是仍然可以提供部分正确的翻译信息,让模型从中学习有用的知识。 \parinterval 另外有一点需要注意,数据质量和数据覆盖度是衡量一个语料质量的两个维度,二者通常是矛盾的。很多时候,在获得高质量数据的同时,数据的多样性也降低了。一个极端的例子是数据集中只包含一个翻译很好的双语句子,这个语料的质量是完美的,但是由于它只能覆盖单一的语言现象,无法训练出一个很好的翻译模型。在实践中,往往需要平衡数据的质量和数据的覆盖度。有些情况下为了覆盖更多样的样本,也可以适当保留一些质量不太高的数据\cite{姚树杰2011}。这是由于,即使这些数据不完美,但是仍然可以提供部分正确的翻译信息,让模型从中学习有用的知识。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...@@ -266,7 +269,7 @@ ...@@ -266,7 +269,7 @@
\parinterval 一种解决开放词表翻译问题的方法是改造输出层结构\cite{garciamartinez:hal-01433161}\cite{DBLP:journals/corr/JeanCMB14},比如,替换原始的Softmax层,用更加高效的神经网络结构进行超大规模词表上的预测。不过这类方法往往需要对系统进行修改,由于模型结构和训练方法的调整使得系统开发与调试的工作量增加。而且这类方法仍然无法解决OOV问题。因此在实用系统中并不常用。 \parinterval 一种解决开放词表翻译问题的方法是改造输出层结构\cite{garciamartinez:hal-01433161}\cite{DBLP:journals/corr/JeanCMB14},比如,替换原始的Softmax层,用更加高效的神经网络结构进行超大规模词表上的预测。不过这类方法往往需要对系统进行修改,由于模型结构和训练方法的调整使得系统开发与调试的工作量增加。而且这类方法仍然无法解决OOV问题。因此在实用系统中并不常用。
\parinterval 另一种思路是不改变机器翻译系统,而是从数据处理的角度来缓解OOV问题。既然使用单词会带来数据稀疏问题,那么自然会想到使用更小的单元。比如,把字符作为最小的翻译单元 \footnote{中文中字符可以被看作是汉字。} \ \dash \ 也就是基于字符的翻译模型。以英文为例,只需要构造一个包含26个英文字母、数字和一些特殊符号的字符表,便可以表示所有的单词。 \parinterval 另一种思路是不改变机器翻译系统,而是从数据处理的角度来缓解OOV问题。既然使用单词会带来数据稀疏问题,那么自然会想到使用更小的单元。比如,把字符作为最小的翻译单元 \footnote{中文中字符可以被看作是汉字。} \ \dash \ 也就是基于字符的翻译模型{\red 参考文献!}。以英文为例,只需要构造一个包含26个英文字母、数字和一些特殊符号的字符表,便可以表示所有的单词。
\parinterval 但是字符级翻译也面临着新的问题 - 使用字符增加了系统捕捉不同语言单元之间搭配的难度。假设平均一个单词由5个字符组成,所处理的序列长度便增大5倍。这使得具有独立意义的不同语言单元需要跨越更远的距离才能产生联系。此外,基于字符的方法也破坏了单词中天然存在的构词规律,或者说破坏了单词内字符的局部依赖。比如,英文单词``telephone''中的``tele''和``phone''都是有具体意义的词缀,但是如果把它们打散为字符就失去了这些含义。 \parinterval 但是字符级翻译也面临着新的问题 - 使用字符增加了系统捕捉不同语言单元之间搭配的难度。假设平均一个单词由5个字符组成,所处理的序列长度便增大5倍。这使得具有独立意义的不同语言单元需要跨越更远的距离才能产生联系。此外,基于字符的方法也破坏了单词中天然存在的构词规律,或者说破坏了单词内字符的局部依赖。比如,英文单词``telephone''中的``tele''和``phone''都是有具体意义的词缀,但是如果把它们打散为字符就失去了这些含义。
...@@ -285,11 +288,13 @@ ...@@ -285,11 +288,13 @@
\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 这里面的核心是如何构建子词词表,下面对一些典型方法进行介绍。
...@@ -297,18 +302,18 @@ ...@@ -297,18 +302,18 @@
%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%
\subsubsection{双字节编码(BPE)} \subsubsection{双字节编码(BPE)}
\parinterval {\small\bfnew{字节对编码}}\index{字节对编码}{\small\bfnew{双字节编码}}\index{双字节编码}(Byte Pair Encoding,BPE)\index{Byte Pair Encoding,BPE}是一种常用的子词词表构建方法\cite{DBLP:journals/corr/SennrichHB15}。BPE方法最早用于数据压缩,对于数据中常见的连续字符串替换为一个不存在的字符,之后通过构建一个替换关系的对应表,对压缩后的数据进行还原。机器翻译借用了这种思想,把子词切分看作是学习对自然语言句子进行压缩编码表示的问题\cite{philipAlgorithmfordataCompression}。其目的是,保证编码后的结果(即子词切分)占用的字节尽可能少。这样,子词单元会尽可能被不同单词复用,同时又不会因为使用过小的单元造成子词切分序列过长。 \parinterval {\small\bfnew{字节对编码}}\index{字节对编码}{\small\bfnew{双字节编码}}\index{双字节编码}(Byte Pair Encoding,BPE)\index{Byte Pair Encoding,BPE}是一种常用的子词词表构建方法\cite{DBLP:journals/corr/SennrichHB15}。BPE方法最早用于数据压缩,对于数据中常见的连续字符串替换为一个不存在的字符,之后通过构建一个替换关系的对应表,对压缩后的数据进行还原。机器翻译借用了这种思想,把子词切分看作是学习对自然语言句子进行压缩编码表示的问题\cite{philipAlgorithmfordataCompression}。其目的是,保证编码后的结果(即子词切分)占用的字节尽可能少。这样,子词单元会尽可能被不同单词复用,同时又不会因为使用过小的单元造成子词切分序列过长。使用BPE算法构建子词词表可以分为如下几个步骤:
\parinterval 使用BPE算法构建子词词表可以分为如下几个步骤:
\begin{itemize} \begin{itemize}
\vspace{0.3em}
\item 对每个句子进行分词; \item 对每个句子进行分词;
\vspace{0.3em}
\item 将分词后的每个单词进行进一步切分,划分为字符序列。同时,在每个单词结尾添加结束符<e>用于标记单词的边界。之后,统计该单词在数据中出现的次数。例如单词low在数据中出现了5次,可以将其记为``l o w <e>:5''。 \item 将分词后的每个单词进行进一步切分,划分为字符序列。同时,在每个单词结尾添加结束符<e>用于标记单词的边界。之后,统计该单词在数据中出现的次数。例如单词low在数据中出现了5次,可以将其记为``l o w <e>:5''。
\vspace{0.3em}
\item 对得到的字符集合进行统计,统计每个单词中2-gram符号出现的频次 \footnote{发生合并前,一个字符便是一个符号}。之后,选择最高频的2-gram符号,将其合并为新的符号,即新的子词。例如``A''和``B''连续出现的频次最高,则以``AB''替换所有单词内连续出现的``A''和``B''并将其加入子词词表。这样,``AB''会被作为一个整体,这样``AB''在之后的过程中可以与其他符号进一步合并。需要注意的是替换和合并不会跨越单词的边界,即只对单个单词进行替换和合并。 \item 对得到的字符集合进行统计,统计每个单词中2-gram符号出现的频次 \footnote{发生合并前,一个字符便是一个符号}。之后,选择最高频的2-gram符号,将其合并为新的符号,即新的子词。例如``A''和``B''连续出现的频次最高,则以``AB''替换所有单词内连续出现的``A''和``B''并将其加入子词词表。这样,``AB''会被作为一个整体,在之后的过程中可以与其他符号进一步合并。需要注意的是替换和合并不会跨越单词的边界,即只对单个单词进行替换和合并。
\vspace{0.3em}
\item 不断重复上一步骤,直到子词词表大小达到预定的大小或者下一个最高频的2-gram字符的频次为1。子词词表大小是BPE的唯一的参数,它用了控制上述子词合并的规模。 \item 不断重复上一步骤,直到子词词表大小达到预定的大小或者下一个最高频的2-gram字符的频次为1。子词词表大小是BPE的唯一的参数,它用了控制上述子词合并的规模。
\vspace{0.3em}
%---------------------------------------------- %----------------------------------------------
% 图7. % 图7.
...@@ -324,9 +329,9 @@ ...@@ -324,9 +329,9 @@
\parinterval\ref{fig:7-9}给出了BPE算法执行的实例。在执行合并操作时,需要考虑不同的情况。假设词表中存在子词``ab''和``cd'',此时要加入子词``abcd''。可能会出现如下的情况: \parinterval\ref{fig:7-9}给出了BPE算法执行的实例。在执行合并操作时,需要考虑不同的情况。假设词表中存在子词``ab''和``cd'',此时要加入子词``abcd''。可能会出现如下的情况:
\begin{itemize} \begin{itemize}
\item 若``ab''、``cd''、``abcd''完全独立,彼此的出现互不影响,将``abcd''加入词表,词表数目+1 \item 若``ab''、``cd''、``abcd''完全独立,彼此的出现互不影响,将``abcd''加入词表,词表数目$+1$
\item 若``ab''和``cd''必同时出现则词表中加入``abcd'',去除``ab''和``cd'',词表数目-1。这个操作是为了较少词表中的冗余; \item 若``ab''和``cd''必同时出现则词表中加入``abcd'',去除``ab''和``cd'',词表数目$-1$。这个操作是为了较少词表中的冗余;
\item 若出现``ab'',其后必出现``cd'',但是``cd''却可以作为独立的子词出现,则将``abcd''加入词表,去除``ab'',反之亦然,词表数目不变。 \item 若出现``ab'',其后必出现``cd'',但是``cd''却可以作为独立的子词出现,则将``abcd''加入词表,去除``ab'',反之亦然,词表数目不变。
\end{itemize} \end{itemize}
...@@ -347,18 +352,19 @@ ...@@ -347,18 +352,19 @@
\parinterval 使用BPE方法的策略有很多。不仅可以单独对源语言和目标语言进行子词的切分,也可以联合源语言和目标语言,共同进行子词切分,被称作Joint-BPE\cite{DBLP:journals/corr/SennrichHB15}。单语BPE比较简单直接,而Joint-BPE则可以增加两种语言子词切分的一致性。对于相似语系中的语言,如英语和德语,常使用Joint-BPE的方法联合构建词表。而对于中英这些差异比较大的语种,则需要独立的进行子词切分。 \parinterval 使用BPE方法的策略有很多。不仅可以单独对源语言和目标语言进行子词的切分,也可以联合源语言和目标语言,共同进行子词切分,被称作Joint-BPE\cite{DBLP:journals/corr/SennrichHB15}。单语BPE比较简单直接,而Joint-BPE则可以增加两种语言子词切分的一致性。对于相似语系中的语言,如英语和德语,常使用Joint-BPE的方法联合构建词表。而对于中英这些差异比较大的语种,则需要独立的进行子词切分。
\parinterval BPE还有很多变种方法。在进行子词切分时,BPE从最长的子词开始进行切分。这个启发性规则可以保证切分结果的唯一性,实际上,在对一个单词用同一个子词词表切分时,可能存在多种切分方式,如hello,我们可以分割为``hell''和``o'',也可以分割为``h''和``ello''。这种切分的多样性可以来提高神经机器翻译系统的健壮性\cite{DBLP:journals/corr/abs-1804-10959}。而在谷歌提出的T5预训练模型中\cite{DBLP:journals/corr/abs-1910-10683}则使用了基于字符级别的BPE。此外,尽管BPE被命名为字节对编码,实际上一般处理的是Unicode编码,而不是字节。在预训练模型GPT2中,也探索了字节级别的BPE,在机器翻译、问答等任务中取得了很好的效果\cite{radford2019language} \parinterval BPE还有很多变种方法。在进行子词切分时,BPE从最长的子词开始进行切分。这个启发性规则可以保证切分结果的唯一性,实际上,在对一个单词用同一个子词词表切分时,可能存在多种切分方式,如hello,我们可以分割为``hell''和``o'',也可以分割为``h''和``ello''。这种切分的多样性可以来提高神经机器翻译系统的健壮性\cite{DBLP:journals/corr/abs-1804-10959}。而在T5等预训练模型中\cite{DBLP:journals/corr/abs-1910-10683}则使用了基于字符级别的BPE。此外,尽管BPE被命名为字节对编码,实际上一般处理的是Unicode编码,而不是字节。在预训练模型GPT2中,也探索了字节级别的BPE,在机器翻译、问答等任务中取得了很好的效果\cite{radford2019language}
%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%
\subsubsection{其他方法} \subsubsection{其他方法}
\parinterval 与基于统计的BPE算法不同,基于Word Piece和1-gram Language Model(ULM)的方法则是利用语言模型进行子词词表的构造\cite{DBLP:journals/corr/abs-1804-10959}。本质上,基于语言模型的方法和基于BPE的方法的思路是一样的,即通过合并字符和子词不断生成新的子词。它们的区别仅在于合并子词的方式不同。基于BPE的方法选择出现频次最高的连续字符2-gram合并为新的子词,而基于语言模型的方法中则是根据概率选择要合并哪些子词。 \parinterval 与基于统计的BPE算法不同,基于Word Piece和1-gram Language Model(ULM)的方法则是利用语言模型进行子词词表的构造\cite{DBLP:journals/corr/abs-1804-10959}。本质上,基于语言模型的方法和基于BPE的方法的思路是一样的,即通过合并字符和子词不断生成新的子词。它们的区别仅在于合并子词的方式不同。基于BPE的方法选择出现频次最高的连续字符2-gram合并为新的子词,而基于语言模型的方法中则是根据语言模型概率选择要合并哪些子词。
\parinterval 具体来说,基于Word Piece的方法首先将句子切割为字符表示的形式,并利用该数据训练一个1-gram语言模型,记为$\textrm{logP}(\cdot)$。假设两个相邻的子词单元$a$$b$被合并为新的子词$c$,则整个句子的语言模型得分的变化为$\triangle=+\textrm{logP}(c)-\textrm{logP}(a)-\textrm{logP}(b)$。这样,可以不断的选择使$\triangle$最大的两个子词单元进行合并,直到达到预设的词表大小或者句子概率的增量低于某个阈值。而ULM方法则更为极端,它以最大化整个句子的概率为目标构建整个词表,具体实现上也不同于基于Word Piece的方法,这里不做详细介绍。 \parinterval 具体来说,基于Word Piece的方法首先将句子切割为字符表示的形式{\red 参考文献}),并利用该数据训练一个1-gram语言模型,记为$\textrm{logP}(\cdot)$。假设两个相邻的子词单元$a$$b$被合并为新的子词$c$,则整个句子的语言模型得分的变化为$\triangle=\textrm{logP}(c)-\textrm{logP}(a)-\textrm{logP}(b)$。这样,可以不断的选择使$\triangle$最大的两个子词单元进行合并,直到达到预设的词表大小或者句子概率的增量低于某个阈值。而ULM方法以最大化整个句子的概率为目标构建词表({\red 参考文献},具体实现上也不同于基于Word Piece的方法,这里不做详细介绍。
\parinterval 使用子词表示句子的方法可以有效的平衡词汇量,增大对未见单词的覆盖度。像英译德、汉译英任务,使用16k或者32k的子词词表大小便能取得很好的效果。 \parinterval 使用子词表示句子的方法可以有效的平衡词汇量,增大对未见单词的覆盖度。像英译德、汉译英任务,使用16k或者32k的子词词表大小便能取得很好的效果。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{建模与训练} \section{建模与训练}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{正则化} \subsection{正则化}
...@@ -527,7 +533,7 @@ y_{j}^{ls}=(1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q ...@@ -527,7 +533,7 @@ y_{j}^{ls}=(1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\parinterval 宽网络通常指隐藏层维度更大的网络,目前在图像处理领域和自然语言处理领域被广泛地使用。第五章已经验证了包含足够多神经元的多层前馈神经网络可以无限逼近任意复杂的连续函数\cite{Hornic1989Multilayer},这也在一定程度上说明了神经网络建模中神经元数目的重要性。 \parinterval 宽网络通常指隐藏层维度更大的网络,目前在图像处理领域和自然语言处理领域被广泛地使用。第五章已经验证了包含足够多神经元的多层前馈神经网络可以无限逼近任意复杂的连续函数\cite{Hornic1989Multilayer},这也在一定程度上说明了神经网络建模中神经元数目的重要性。
\parinterval 增大隐藏层神经元的数目是网络变宽的基本方式之一。例如,图像处理领域中提出的宽残差网络(Wide Residual Network)使用更大的卷积核来提高每次卷积计算的精度\cite{DBLP:journals/corr/ZagoruykoK16};神经机器翻译中,Transformer-Big模型广受研究人员的认可,它同样是一个典型的宽网络。对比基线模型Transformer-Base,Transformer-Big通过扩大隐藏层维度与滤波器(Filter)维度,取得了显著的翻译性能提升。表\ref{tab:Parameter-setting}是相应的参数设置。 \parinterval 增大隐藏层神经元的数目是网络变宽的基本方式之一。例如,图像处理领域中提出的{\small\bfnew{宽残差网络}}\index{宽残差网络}(Wide Residual Network)\index{Wide Residual Network}使用更大的卷积核来提高每次卷积计算的精度\cite{DBLP:journals/corr/ZagoruykoK16};神经机器翻译中,Transformer-Big模型广受研究人员的认可,它同样是一个典型的宽网络。对比基线模型Transformer-Base,Transformer-Big通过扩大隐藏层维度与滤波器(Filter)维度,取得了显著的翻译性能提升。表\ref{tab:Parameter-setting}是相应的参数设置。
%---------------------------------------------- %----------------------------------------------
% 表 % 表
...@@ -663,6 +669,7 @@ y_{j}^{ls}=(1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q ...@@ -663,6 +669,7 @@ y_{j}^{ls}=(1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\end{itemize} \end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{推断} \section{推断}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{推断优化} \subsection{推断优化}
...@@ -1083,6 +1090,7 @@ b &=& \omega_{\textrm{high}}\cdot |\mathbf{x}| ...@@ -1083,6 +1090,7 @@ b &=& \omega_{\textrm{high}}\cdot |\mathbf{x}|
%---------7.5 进阶技术 %---------7.5 进阶技术
\sectionnewpage
\section{进阶技术} \section{进阶技术}
\parinterval 这里继续对神经机器翻译的进阶技术进行介绍和讨论,内容涉及:深层模型、单语数据使用、知识精炼、双向训练等。 \parinterval 这里继续对神经机器翻译的进阶技术进行介绍和讨论,内容涉及:深层模型、单语数据使用、知识精炼、双向训练等。
...@@ -1638,6 +1646,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\textbf{y}} | \textbf{x}) ...@@ -1638,6 +1646,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\textbf{y}} | \textbf{x})
\parinterval 这个事实说明对回译进行适当的增广后应该能取得与无监督对偶学习相似的结果。{\small\bfnew{ 翻译中回译}}\index{翻译中回译}(On-the-fly Back-translation)\index{On-the-fly Back-translation}就是这样一个例子。一般回译的过程是先把数据集里所有$\mathbf s$都翻译出来,然后只训练$\textrm{P}(\mathbf s|\mathbf t)$。区别于回译,从数据集中采集到一个$\mathbf s$之后,翻译中回译立刻把$\mathbf s$翻译成$\mathbf t$,然后训练$\textrm{P}(\mathbf s|\mathbf t)$,并且下一步迭代中采集一个$\mathbf t$然后训练$\textrm{P}(\mathbf t|\mathbf s)$,这样交替更新$\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|\mathbf t)$$\textrm{P}(\mathbf t|\mathbf s)$的策略允许$\textrm{P}(\mathbf s|\mathbf t)$在两个样本间通过其产生的输出$\mathbf s$来把信息传递到$\textrm{P}(\mathbf t|\mathbf s)$,因此也能获得相近的效果,并且在实现和计算上都非常高效。翻译中回译已经在无监督神经机器翻译系统训练中被广泛使用\cite{lample2019cross} \parinterval 这个事实说明对回译进行适当的增广后应该能取得与无监督对偶学习相似的结果。{\small\bfnew{ 翻译中回译}}\index{翻译中回译}(On-the-fly Back-translation)\index{On-the-fly Back-translation}就是这样一个例子。一般回译的过程是先把数据集里所有$\mathbf s$都翻译出来,然后只训练$\textrm{P}(\mathbf s|\mathbf t)$。区别于回译,从数据集中采集到一个$\mathbf s$之后,翻译中回译立刻把$\mathbf s$翻译成$\mathbf t$,然后训练$\textrm{P}(\mathbf s|\mathbf t)$,并且下一步迭代中采集一个$\mathbf t$然后训练$\textrm{P}(\mathbf t|\mathbf s)$,这样交替更新$\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|\mathbf t)$$\textrm{P}(\mathbf t|\mathbf s)$的策略允许$\textrm{P}(\mathbf s|\mathbf t)$在两个样本间通过其产生的输出$\mathbf s$来把信息传递到$\textrm{P}(\mathbf t|\mathbf s)$,因此也能获得相近的效果,并且在实现和计算上都非常高效。翻译中回译已经在无监督神经机器翻译系统训练中被广泛使用\cite{lample2019cross}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sectionnewpage
\section{小结及深入阅读} \section{小结及深入阅读}
\parinterval 神经机器翻译的模型和技术方法已经十分丰富,无论是对基础问题的研究,还是研发实际可用的系统,人们都会面临很多选择。本章,从构建一个足以参加机器翻译比赛的系统出发,对神经机器翻译的数据处理、建模与训练、推断的基本问题进行了介绍。其中的许多方法已经在实践中得到验证,具有较好的参考意义。此外,本章也对一些前沿方法进行了讨论,旨在挖掘更具潜力的方向。 \parinterval 神经机器翻译的模型和技术方法已经十分丰富,无论是对基础问题的研究,还是研发实际可用的系统,人们都会面临很多选择。本章,从构建一个足以参加机器翻译比赛的系统出发,对神经机器翻译的数据处理、建模与训练、推断的基本问题进行了介绍。其中的许多方法已经在实践中得到验证,具有较好的参考意义。此外,本章也对一些前沿方法进行了讨论,旨在挖掘更具潜力的方向。
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
& `wid' & `widest$<$e$>$' & `lowe' & `lower'& `lower$<$e$>$' & `wid' & `widest$<$e$>$' & `lowe' & `lower'& `lower$<$e$>$'
\end{tabular}}; \end{tabular}};
\node[node,anchor=west] (line1) at ([xshift = 8em]node1.south east) {按字符拆分单词,并添加}; \node[node,anchor=west] (line1) at ([xshift = 8em]node1.south east) {按字符拆分,并添加};
\node[node,anchor=north west] (line2) at ([yshift=0.3em]line1.south west) {终结符$<$e$>$,统计词频。}; \node[node,anchor=north west] (line2) at ([yshift=0.3em]line1.south west) {终结符$<$e$>$,统计词频。};
\node[node,anchor=north west] (line3) at ([yshift=-4em]line2.south west) {统计每一个连续字节对}; \node[node,anchor=north west] (line3) at ([yshift=-4em]line2.south west) {统计每一个连续字节对};
......
\begin{tikzpicture} \begin{tikzpicture}
\node[font=\scriptsize] (model) at (0,0) {Model out:}; \node[font=\scriptsize] (model) at (0,0) {Model Output:};
\node[anchor=north west,font=\scriptsize] (label_smooth) at ([yshift=-1.8em]model.south west) {label smoothing:}; \node[anchor=north west,font=\scriptsize] (label_smooth) at ([yshift=-1.8em]model.south west) {Label Smoothing:};
\node[anchor=south west,font=\scriptsize] (one-hot) at ([yshift=2em]model.north west) {one hot:}; \node[anchor=south west,font=\scriptsize] (one-hot) at ([yshift=2em]model.north west) {One-hot:};
\node [anchor=west,minimum width=1em,minimum height=0.2em,fill=ublue!80,inner sep=0pt] (model_label1) at ([xshift=2em,yshift=-0.5em]model.east) {}; \node [anchor=west,minimum width=1em,minimum height=0.2em,fill=ublue!80,inner sep=0pt] (model_label1) at ([xshift=2em,yshift=-0.5em]model.east) {};
\node [anchor=south,font=\scriptsize] (model_w1) at (model_label1.north) {$p_{1}$}; \node [anchor=south,font=\scriptsize] (model_w1) at (model_label1.north) {$p_{1}$};
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
\node [op] { \node [op] {
\begin{tabular}{l} \begin{tabular}{l}
\rule{0pt}{13pt} 这里 \ \ 来举 \ \ 几个 \ \ 例子 。\\ \rule{0pt}{13pt} 这里 \ \ 来举 \ \ 几个 \ \ 例子 。\\
\rule{0pt}{13pt}\ \ 必需 \ \ \ \ 装扮成 \ \ 男人 。 \\ \rule{0pt}{13pt}\ \ 必需 \ \ \ \ 装扮成 \ \ 男人 \ \ \\
\rule{0pt}{13pt} 语言 \ \ 本身\ \ 不会 \ \ 发生 \ \ 那些 \ \ 我们 \ \ 跟不上 \ \ \ \ 变化 。 \\ \rule{0pt}{13pt} 语言 \ \ 本身\ \ 不会 \ \ 发生 \ \ 那些 \ \ 我们 \ \ 跟不上 \ \ \ \ 变化 。 \\
\rule{0pt}{13pt}\ \ \ \ \ \ \ \ 缠 着 \ \ 一条 \ \ 运动衫 。 \\ \rule{0pt}{13pt}\ \ \ \ \ \ \ \ 缠 着 \ \ 一条 \ \ 运动衫 。 \\
\rule{0pt}{13pt}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 一段时间 内 \ \ 偿还 \ \ \ \ \ \ \\ \rule{0pt}{13pt}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 一段时间 内 \ \ 偿还 \ \ \ \ \ \ \\
......
...@@ -4162,7 +4162,7 @@ pages ={157-166}, ...@@ -4162,7 +4162,7 @@ pages ={157-166},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% chapter 7------------------------------------------------------ %%%%% chapter 7------------------------------------------------------
@article{姚树杰2011基于句对质量和覆盖度的统计机器翻译训练语料选取, @article{姚树杰2011,
title={基于句对质量和覆盖度的统计机器翻译训练语料选取}, title={基于句对质量和覆盖度的统计机器翻译训练语料选取},
author={姚树杰 and 肖桐 and 朱靖波}, author={姚树杰 and 肖桐 and 朱靖波},
journal={中文信息学报}, journal={中文信息学报},
......
...@@ -37,6 +37,8 @@ ...@@ -37,6 +37,8 @@
\indexentry{Ensemble Learning|hyperpage}{25} \indexentry{Ensemble Learning|hyperpage}{25}
\indexentry{容量|hyperpage}{26} \indexentry{容量|hyperpage}{26}
\indexentry{Capacity|hyperpage}{26} \indexentry{Capacity|hyperpage}{26}
\indexentry{宽残差网络|hyperpage}{26}
\indexentry{Wide Residual Network|hyperpage}{26}
\indexentry{探测任务|hyperpage}{28} \indexentry{探测任务|hyperpage}{28}
\indexentry{Probing Task|hyperpage}{28} \indexentry{Probing Task|hyperpage}{28}
\indexentry{浅层网络表示|hyperpage}{28} \indexentry{浅层网络表示|hyperpage}{28}
......
...@@ -2,566 +2,566 @@ ...@@ -2,566 +2,566 @@
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\select@language {english} \select@language {english}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {part}{\@mypartnumtocformat {I}{机器翻译基础}}{13}{part.1} \contentsline {part}{\@mypartnumtocformat {I}{机器翻译基础}}{11}{part.1}
\ttl@starttoc {default@1} \ttl@starttoc {default@1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {1}机器翻译简介}{15}{chapter.1} \contentsline {chapter}{\numberline {1}机器翻译简介}{13}{chapter.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.1}机器翻译的概念}{15}{section.1.1} \contentsline {section}{\numberline {1.1}机器翻译的概念}{13}{section.1.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.2}机器翻译简史}{18}{section.1.2} \contentsline {section}{\numberline {1.2}机器翻译简史}{16}{section.1.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.1}人工翻译}{18}{subsection.1.2.1} \contentsline {subsection}{\numberline {1.2.1}人工翻译}{16}{subsection.1.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.2}机器翻译的萌芽}{19}{subsection.1.2.2} \contentsline {subsection}{\numberline {1.2.2}机器翻译的萌芽}{17}{subsection.1.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.3}机器翻译的受挫}{20}{subsection.1.2.3} \contentsline {subsection}{\numberline {1.2.3}机器翻译的受挫}{18}{subsection.1.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.4}机器翻译的快速成长}{21}{subsection.1.2.4} \contentsline {subsection}{\numberline {1.2.4}机器翻译的快速成长}{19}{subsection.1.2.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.5}机器翻译的爆发}{22}{subsection.1.2.5} \contentsline {subsection}{\numberline {1.2.5}机器翻译的爆发}{20}{subsection.1.2.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.3}机器翻译现状}{23}{section.1.3} \contentsline {section}{\numberline {1.3}机器翻译现状}{21}{section.1.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.4}机器翻译方法}{24}{section.1.4} \contentsline {section}{\numberline {1.4}机器翻译方法}{22}{section.1.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.1}基于规则的机器翻译}{26}{subsection.1.4.1} \contentsline {subsection}{\numberline {1.4.1}基于规则的机器翻译}{24}{subsection.1.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.2}基于实例的机器翻译}{26}{subsection.1.4.2} \contentsline {subsection}{\numberline {1.4.2}基于实例的机器翻译}{24}{subsection.1.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.3}统计机器翻译}{27}{subsection.1.4.3} \contentsline {subsection}{\numberline {1.4.3}统计机器翻译}{25}{subsection.1.4.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.4}神经机器翻译}{28}{subsection.1.4.4} \contentsline {subsection}{\numberline {1.4.4}神经机器翻译}{26}{subsection.1.4.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.5}对比分析}{29}{subsection.1.4.5} \contentsline {subsection}{\numberline {1.4.5}对比分析}{27}{subsection.1.4.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.5}翻译质量评价}{30}{section.1.5} \contentsline {section}{\numberline {1.5}翻译质量评价}{28}{section.1.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.1}人工评价}{30}{subsection.1.5.1} \contentsline {subsection}{\numberline {1.5.1}人工评价}{28}{subsection.1.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.2}自动评价}{31}{subsection.1.5.2} \contentsline {subsection}{\numberline {1.5.2}自动评价}{29}{subsection.1.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{BLEU}{31}{section*.15} \contentsline {subsubsection}{BLEU}{29}{section*.15}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{TER}{33}{section*.16} \contentsline {subsubsection}{TER}{31}{section*.16}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于检测点的评价}{33}{section*.17} \contentsline {subsubsection}{基于检测点的评价}{31}{section*.17}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.6}机器翻译应用}{34}{section.1.6} \contentsline {section}{\numberline {1.6}机器翻译应用}{32}{section.1.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.7}开源项目与评测}{36}{section.1.7} \contentsline {section}{\numberline {1.7}开源项目与评测}{34}{section.1.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.7.1}开源机器翻译系统}{36}{subsection.1.7.1} \contentsline {subsection}{\numberline {1.7.1}开源机器翻译系统}{34}{subsection.1.7.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{统计机器翻译开源系统}{37}{section*.19} \contentsline {subsubsection}{统计机器翻译开源系统}{35}{section*.19}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{神经机器翻译开源系统}{38}{section*.20} \contentsline {subsubsection}{神经机器翻译开源系统}{36}{section*.20}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.7.2}常用数据集及公开评测任务}{40}{subsection.1.7.2} \contentsline {subsection}{\numberline {1.7.2}常用数据集及公开评测任务}{38}{subsection.1.7.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.8}推荐学习资源}{42}{section.1.8} \contentsline {section}{\numberline {1.8}推荐学习资源}{40}{section.1.8}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {2}词法、语法及统计建模基础}{47}{chapter.2} \contentsline {chapter}{\numberline {2}词法、语法及统计建模基础}{45}{chapter.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {2.1}问题概述 }{48}{section.2.1} \contentsline {section}{\numberline {2.1}问题概述 }{46}{section.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {2.2}概率论基础}{49}{section.2.2} \contentsline {section}{\numberline {2.2}概率论基础}{47}{section.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.2.1}随机变量和概率}{49}{subsection.2.2.1} \contentsline {subsection}{\numberline {2.2.1}随机变量和概率}{47}{subsection.2.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.2.2}联合概率、条件概率和边缘概率}{51}{subsection.2.2.2} \contentsline {subsection}{\numberline {2.2.2}联合概率、条件概率和边缘概率}{49}{subsection.2.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.2.3}链式法则}{52}{subsection.2.2.3} \contentsline {subsection}{\numberline {2.2.3}链式法则}{50}{subsection.2.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.2.4}贝叶斯法则}{53}{subsection.2.2.4} \contentsline {subsection}{\numberline {2.2.4}贝叶斯法则}{51}{subsection.2.2.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.2.5}KL距离和熵}{55}{subsection.2.2.5} \contentsline {subsection}{\numberline {2.2.5}KL距离和熵}{53}{subsection.2.2.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{信息熵}{55}{section*.27} \contentsline {subsubsection}{信息熵}{53}{section*.27}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{KL距离}{56}{section*.29} \contentsline {subsubsection}{KL距离}{54}{section*.29}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{交叉熵}{56}{section*.30} \contentsline {subsubsection}{交叉熵}{54}{section*.30}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {2.3}中文分词}{57}{section.2.3} \contentsline {section}{\numberline {2.3}中文分词}{55}{section.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.3.1}基于词典的分词方法}{58}{subsection.2.3.1} \contentsline {subsection}{\numberline {2.3.1}基于词典的分词方法}{56}{subsection.2.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.3.2}基于统计的分词方法}{59}{subsection.2.3.2} \contentsline {subsection}{\numberline {2.3.2}基于统计的分词方法}{57}{subsection.2.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{统计模型的学习与推断}{59}{section*.34} \contentsline {subsubsection}{统计模型的学习与推断}{57}{section*.34}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{掷骰子游戏}{60}{section*.36} \contentsline {subsubsection}{掷骰子游戏}{58}{section*.36}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{全概率分词方法}{62}{section*.40} \contentsline {subsubsection}{全概率分词方法}{60}{section*.40}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {2.4}$n$-gram语言模型 }{64}{section.2.4} \contentsline {section}{\numberline {2.4}$n$-gram语言模型 }{62}{section.2.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.4.1}建模}{65}{subsection.2.4.1} \contentsline {subsection}{\numberline {2.4.1}建模}{63}{subsection.2.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.4.2}未登录词和平滑算法}{67}{subsection.2.4.2} \contentsline {subsection}{\numberline {2.4.2}未登录词和平滑算法}{65}{subsection.2.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{加法平滑方法}{68}{section*.46} \contentsline {subsubsection}{加法平滑方法}{66}{section*.46}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{古德-图灵估计法}{69}{section*.48} \contentsline {subsubsection}{古德-图灵估计法}{67}{section*.48}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Kneser-Ney平滑方法}{70}{section*.50} \contentsline {subsubsection}{Kneser-Ney平滑方法}{68}{section*.50}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {2.5}句法分析(短语结构分析)}{72}{section.2.5} \contentsline {section}{\numberline {2.5}句法分析(短语结构分析)}{70}{section.2.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.5.1}句子的句法树表示}{72}{subsection.2.5.1} \contentsline {subsection}{\numberline {2.5.1}句子的句法树表示}{70}{subsection.2.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.5.2}上下文无关文法}{74}{subsection.2.5.2} \contentsline {subsection}{\numberline {2.5.2}上下文无关文法}{72}{subsection.2.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {2.5.3}规则和推导的概率}{78}{subsection.2.5.3} \contentsline {subsection}{\numberline {2.5.3}规则和推导的概率}{76}{subsection.2.5.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {2.6}小结及深入阅读}{80}{section.2.6} \contentsline {section}{\numberline {2.6}小结及深入阅读}{78}{section.2.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {part}{\@mypartnumtocformat {II}{统计机器翻译}}{83}{part.2} \contentsline {part}{\@mypartnumtocformat {II}{统计机器翻译}}{81}{part.2}
\ttl@stoptoc {default@1} \ttl@stoptoc {default@1}
\ttl@starttoc {default@2} \ttl@starttoc {default@2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {3}基于词的机器翻译模型}{85}{chapter.3} \contentsline {chapter}{\numberline {3}基于词的机器翻译模型}{83}{chapter.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {3.1}什么是基于词的翻译模型}{85}{section.3.1} \contentsline {section}{\numberline {3.1}什么是基于词的翻译模型}{83}{section.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {3.2}构建一个简单的机器翻译系统}{87}{section.3.2} \contentsline {section}{\numberline {3.2}构建一个简单的机器翻译系统}{85}{section.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.2.1}如何进行翻译?}{87}{subsection.3.2.1} \contentsline {subsection}{\numberline {3.2.1}如何进行翻译?}{85}{subsection.3.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{机器翻译流程}{88}{section*.63} \contentsline {subsubsection}{机器翻译流程}{86}{section*.63}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{人工翻译 vs. 机器翻译}{89}{section*.65} \contentsline {subsubsection}{人工翻译 vs. 机器翻译}{87}{section*.65}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.2.2}基本框架}{89}{subsection.3.2.2} \contentsline {subsection}{\numberline {3.2.2}基本框架}{87}{subsection.3.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.2.3}单词翻译概率}{90}{subsection.3.2.3} \contentsline {subsection}{\numberline {3.2.3}单词翻译概率}{88}{subsection.3.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{什么是单词翻译概率?}{90}{section*.67} \contentsline {subsubsection}{什么是单词翻译概率?}{88}{section*.67}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{如何从一个双语平行数据中学习?}{90}{section*.69} \contentsline {subsubsection}{如何从一个双语平行数据中学习?}{88}{section*.69}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{如何从大量的双语平行数据中学习?}{92}{section*.70} \contentsline {subsubsection}{如何从大量的双语平行数据中学习?}{90}{section*.70}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.2.4}句子级翻译模型}{93}{subsection.3.2.4} \contentsline {subsection}{\numberline {3.2.4}句子级翻译模型}{91}{subsection.3.2.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基础模型}{93}{section*.72} \contentsline {subsubsection}{基础模型}{91}{section*.72}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{生成流畅的译文}{95}{section*.74} \contentsline {subsubsection}{生成流畅的译文}{93}{section*.74}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.2.5}解码}{97}{subsection.3.2.5} \contentsline {subsection}{\numberline {3.2.5}解码}{95}{subsection.3.2.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {3.3}基于词的翻译建模}{100}{section.3.3} \contentsline {section}{\numberline {3.3}基于词的翻译建模}{98}{section.3.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.3.1}噪声信道模型}{100}{subsection.3.3.1} \contentsline {subsection}{\numberline {3.3.1}噪声信道模型}{98}{subsection.3.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.3.2}统计机器翻译的三个基本问题}{102}{subsection.3.3.2} \contentsline {subsection}{\numberline {3.3.2}统计机器翻译的三个基本问题}{100}{subsection.3.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{词对齐}{103}{section*.83} \contentsline {subsubsection}{词对齐}{101}{section*.83}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于词对齐的翻译模型}{103}{section*.86} \contentsline {subsubsection}{基于词对齐的翻译模型}{101}{section*.86}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于词对齐的翻译实例}{105}{section*.88} \contentsline {subsubsection}{基于词对齐的翻译实例}{103}{section*.88}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {3.4}IBM模型1-2}{106}{section.3.4} \contentsline {section}{\numberline {3.4}IBM模型1-2}{104}{section.3.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.4.1}IBM模型1}{106}{subsection.3.4.1} \contentsline {subsection}{\numberline {3.4.1}IBM模型1}{104}{subsection.3.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.4.2}IBM模型2}{108}{subsection.3.4.2} \contentsline {subsection}{\numberline {3.4.2}IBM模型2}{106}{subsection.3.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.4.3}解码及计算优化}{109}{subsection.3.4.3} \contentsline {subsection}{\numberline {3.4.3}解码及计算优化}{107}{subsection.3.4.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.4.4}训练}{110}{subsection.3.4.4} \contentsline {subsection}{\numberline {3.4.4}训练}{108}{subsection.3.4.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{目标函数}{110}{section*.93} \contentsline {subsubsection}{目标函数}{108}{section*.93}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{优化}{111}{section*.95} \contentsline {subsubsection}{优化}{109}{section*.95}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {3.5}IBM模型3-5及隐马尔可夫模型}{117}{section.3.5} \contentsline {section}{\numberline {3.5}IBM模型3-5及隐马尔可夫模型}{115}{section.3.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.5.1}基于产出率的翻译模型}{117}{subsection.3.5.1} \contentsline {subsection}{\numberline {3.5.1}基于产出率的翻译模型}{115}{subsection.3.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.5.2}IBM 模型3}{120}{subsection.3.5.2} \contentsline {subsection}{\numberline {3.5.2}IBM 模型3}{118}{subsection.3.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.5.3}IBM 模型4}{121}{subsection.3.5.3} \contentsline {subsection}{\numberline {3.5.3}IBM 模型4}{119}{subsection.3.5.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.5.4} IBM 模型5}{123}{subsection.3.5.4} \contentsline {subsection}{\numberline {3.5.4} IBM 模型5}{121}{subsection.3.5.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.5.5}隐马尔可夫模型}{124}{subsection.3.5.5} \contentsline {subsection}{\numberline {3.5.5}隐马尔可夫模型}{122}{subsection.3.5.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{隐马尔可夫模型}{125}{section*.107} \contentsline {subsubsection}{隐马尔可夫模型}{123}{section*.107}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{词对齐模型}{126}{section*.109} \contentsline {subsubsection}{词对齐模型}{124}{section*.109}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.5.6}解码和训练}{127}{subsection.3.5.6} \contentsline {subsection}{\numberline {3.5.6}解码和训练}{125}{subsection.3.5.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {3.6}问题分析}{127}{section.3.6} \contentsline {section}{\numberline {3.6}问题分析}{125}{section.3.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.6.1}词对齐及对称化}{127}{subsection.3.6.1} \contentsline {subsection}{\numberline {3.6.1}词对齐及对称化}{125}{subsection.3.6.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.6.2}Deficiency}{128}{subsection.3.6.2} \contentsline {subsection}{\numberline {3.6.2}Deficiency}{126}{subsection.3.6.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.6.3}句子长度}{129}{subsection.3.6.3} \contentsline {subsection}{\numberline {3.6.3}句子长度}{127}{subsection.3.6.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {3.6.4}其他问题}{130}{subsection.3.6.4} \contentsline {subsection}{\numberline {3.6.4}其他问题}{128}{subsection.3.6.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {3.7}小结及深入阅读}{130}{section.3.7} \contentsline {section}{\numberline {3.7}小结及深入阅读}{128}{section.3.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {4}基于短语和句法的机器翻译模型}{133}{chapter.4} \contentsline {chapter}{\numberline {4}基于短语和句法的机器翻译模型}{131}{chapter.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {4.1}翻译中的结构信息}{133}{section.4.1} \contentsline {section}{\numberline {4.1}翻译中的结构信息}{131}{section.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.1.1}更大粒度的翻译单元}{134}{subsection.4.1.1} \contentsline {subsection}{\numberline {4.1.1}更大粒度的翻译单元}{132}{subsection.4.1.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.1.2}句子的结构信息}{136}{subsection.4.1.2} \contentsline {subsection}{\numberline {4.1.2}句子的结构信息}{134}{subsection.4.1.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {4.2}基于短语的翻译模型}{138}{section.4.2} \contentsline {section}{\numberline {4.2}基于短语的翻译模型}{136}{section.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.2.1}机器翻译中的短语}{138}{subsection.4.2.1} \contentsline {subsection}{\numberline {4.2.1}机器翻译中的短语}{136}{subsection.4.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.2.2}数学建模及判别式模型}{141}{subsection.4.2.2} \contentsline {subsection}{\numberline {4.2.2}数学建模及判别式模型}{139}{subsection.4.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于翻译推导的建模}{141}{section*.121} \contentsline {subsubsection}{基于翻译推导的建模}{139}{section*.121}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{对数线性模型}{142}{section*.122} \contentsline {subsubsection}{对数线性模型}{140}{section*.122}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{搭建模型的基本流程}{143}{section*.123} \contentsline {subsubsection}{搭建模型的基本流程}{141}{section*.123}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.2.3}短语抽取}{144}{subsection.4.2.3} \contentsline {subsection}{\numberline {4.2.3}短语抽取}{142}{subsection.4.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{与词对齐一致的短语}{145}{section*.126} \contentsline {subsubsection}{与词对齐一致的短语}{143}{section*.126}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{获取词对齐}{146}{section*.130} \contentsline {subsubsection}{获取词对齐}{144}{section*.130}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{度量双语短语质量}{147}{section*.132} \contentsline {subsubsection}{度量双语短语质量}{145}{section*.132}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.2.4}调序}{148}{subsection.4.2.4} \contentsline {subsection}{\numberline {4.2.4}调序}{146}{subsection.4.2.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于距离的调序}{148}{section*.136} \contentsline {subsubsection}{基于距离的调序}{146}{section*.136}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于方向的调序}{149}{section*.138} \contentsline {subsubsection}{基于方向的调序}{147}{section*.138}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于分类的调序}{151}{section*.141} \contentsline {subsubsection}{基于分类的调序}{149}{section*.141}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.2.5}特征}{151}{subsection.4.2.5} \contentsline {subsection}{\numberline {4.2.5}特征}{149}{subsection.4.2.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.2.6}最小错误率训练}{152}{subsection.4.2.6} \contentsline {subsection}{\numberline {4.2.6}最小错误率训练}{150}{subsection.4.2.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.2.7}栈解码}{155}{subsection.4.2.7} \contentsline {subsection}{\numberline {4.2.7}栈解码}{153}{subsection.4.2.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{翻译候选匹配}{156}{section*.146} \contentsline {subsubsection}{翻译候选匹配}{154}{section*.146}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{翻译假设扩展}{156}{section*.148} \contentsline {subsubsection}{翻译假设扩展}{154}{section*.148}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{剪枝}{157}{section*.150} \contentsline {subsubsection}{剪枝}{155}{section*.150}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{解码中的栈结构}{159}{section*.152} \contentsline {subsubsection}{解码中的栈结构}{157}{section*.152}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {4.3}基于层次短语的模型}{160}{section.4.3} \contentsline {section}{\numberline {4.3}基于层次短语的模型}{158}{section.4.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.3.1}同步上下文无关文法}{163}{subsection.4.3.1} \contentsline {subsection}{\numberline {4.3.1}同步上下文无关文法}{161}{subsection.4.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{文法定义}{163}{section*.157} \contentsline {subsubsection}{文法定义}{161}{section*.157}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{推导}{164}{section*.158} \contentsline {subsubsection}{推导}{162}{section*.158}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{胶水规则}{165}{section*.159} \contentsline {subsubsection}{胶水规则}{163}{section*.159}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{处理流程}{166}{section*.160} \contentsline {subsubsection}{处理流程}{164}{section*.160}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.3.2}层次短语规则抽取}{166}{subsection.4.3.2} \contentsline {subsection}{\numberline {4.3.2}层次短语规则抽取}{164}{subsection.4.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.3.3}翻译模型及特征}{168}{subsection.4.3.3} \contentsline {subsection}{\numberline {4.3.3}翻译模型及特征}{166}{subsection.4.3.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.3.4}CYK解码}{169}{subsection.4.3.4} \contentsline {subsection}{\numberline {4.3.4}CYK解码}{167}{subsection.4.3.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.3.5}立方剪枝}{172}{subsection.4.3.5} \contentsline {subsection}{\numberline {4.3.5}立方剪枝}{170}{subsection.4.3.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {4.4}基于语言学句法的模型}{175}{section.4.4} \contentsline {section}{\numberline {4.4}基于语言学句法的模型}{173}{section.4.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.4.1}基于句法的翻译模型分类}{177}{subsection.4.4.1} \contentsline {subsection}{\numberline {4.4.1}基于句法的翻译模型分类}{175}{subsection.4.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.4.2}基于树结构的文法}{177}{subsection.4.4.2} \contentsline {subsection}{\numberline {4.4.2}基于树结构的文法}{175}{subsection.4.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{树到树翻译规则}{179}{section*.176} \contentsline {subsubsection}{树到树翻译规则}{177}{section*.176}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于树结构的翻译推导}{181}{section*.178} \contentsline {subsubsection}{基于树结构的翻译推导}{179}{section*.178}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{树到串翻译规则}{183}{section*.181} \contentsline {subsubsection}{树到串翻译规则}{181}{section*.181}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.4.3}树到串翻译规则抽取}{184}{subsection.4.4.3} \contentsline {subsection}{\numberline {4.4.3}树到串翻译规则抽取}{182}{subsection.4.4.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{树的切割与最小规则}{185}{section*.183} \contentsline {subsubsection}{树的切割与最小规则}{183}{section*.183}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{空对齐处理}{188}{section*.189} \contentsline {subsubsection}{空对齐处理}{186}{section*.189}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{组合规则}{189}{section*.191} \contentsline {subsubsection}{组合规则}{187}{section*.191}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{SPMT规则}{190}{section*.193} \contentsline {subsubsection}{SPMT规则}{188}{section*.193}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{句法树二叉化}{191}{section*.195} \contentsline {subsubsection}{句法树二叉化}{189}{section*.195}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.4.4}树到树翻译规则抽取}{192}{subsection.4.4.4} \contentsline {subsection}{\numberline {4.4.4}树到树翻译规则抽取}{190}{subsection.4.4.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于节点对齐的规则抽取}{193}{section*.199} \contentsline {subsubsection}{基于节点对齐的规则抽取}{191}{section*.199}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于对齐矩阵的规则抽取}{193}{section*.202} \contentsline {subsubsection}{基于对齐矩阵的规则抽取}{192}{section*.202}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.4.5}句法翻译模型的特征}{194}{subsection.4.4.5} \contentsline {subsection}{\numberline {4.4.5}句法翻译模型的特征}{194}{subsection.4.4.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.4.6}基于超图的推导空间表示}{197}{subsection.4.4.6} \contentsline {subsection}{\numberline {4.4.6}基于超图的推导空间表示}{195}{subsection.4.4.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {4.4.7}基于树的解码 vs 基于串的解码}{199}{subsection.4.4.7} \contentsline {subsection}{\numberline {4.4.7}基于树的解码 vs 基于串的解码}{197}{subsection.4.4.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于树的解码}{200}{section*.209} \contentsline {subsubsection}{基于树的解码}{199}{section*.209}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于串的解码}{202}{section*.212} \contentsline {subsubsection}{基于串的解码}{200}{section*.212}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {4.5}小结及深入阅读}{203}{section.4.5} \contentsline {section}{\numberline {4.5}小结及深入阅读}{202}{section.4.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {part}{\@mypartnumtocformat {III}{神经机器翻译}}{207}{part.3} \contentsline {part}{\@mypartnumtocformat {III}{神经机器翻译}}{205}{part.3}
\ttl@stoptoc {default@2} \ttl@stoptoc {default@2}
\ttl@starttoc {default@3} \ttl@starttoc {default@3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {5}人工神经网络和神经语言建模}{209}{chapter.5} \contentsline {chapter}{\numberline {5}人工神经网络和神经语言建模}{207}{chapter.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {5.1}深度学习与人工神经网络}{210}{section.5.1} \contentsline {section}{\numberline {5.1}深度学习与人工神经网络}{208}{section.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.1.1}发展简史}{210}{subsection.5.1.1} \contentsline {subsection}{\numberline {5.1.1}发展简史}{208}{subsection.5.1.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{早期的人工神经网络和第一次寒冬}{210}{section*.214} \contentsline {subsubsection}{早期的人工神经网络和第一次寒冬}{208}{section*.214}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{神经网络的第二次高潮和第二次寒冬}{211}{section*.215} \contentsline {subsubsection}{神经网络的第二次高潮和第二次寒冬}{209}{section*.215}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{深度学习和神经网络方法的崛起}{212}{section*.216} \contentsline {subsubsection}{深度学习和神经网络方法的崛起}{210}{section*.216}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.1.2}为什么需要深度学习}{213}{subsection.5.1.2} \contentsline {subsection}{\numberline {5.1.2}为什么需要深度学习}{211}{subsection.5.1.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{端到端学习和表示学习}{213}{section*.218} \contentsline {subsubsection}{端到端学习和表示学习}{211}{section*.218}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{深度学习的效果}{214}{section*.220} \contentsline {subsubsection}{深度学习的效果}{212}{section*.220}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {5.2}神经网络基础}{214}{section.5.2} \contentsline {section}{\numberline {5.2}神经网络基础}{212}{section.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.2.1}线性代数基础}{214}{subsection.5.2.1} \contentsline {subsection}{\numberline {5.2.1}线性代数基础}{212}{subsection.5.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{标量、向量和矩阵}{215}{section*.222} \contentsline {subsubsection}{标量、向量和矩阵}{213}{section*.222}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{矩阵的转置}{216}{section*.223} \contentsline {subsubsection}{矩阵的转置}{214}{section*.223}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{矩阵加法和数乘}{216}{section*.224} \contentsline {subsubsection}{矩阵加法和数乘}{214}{section*.224}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{矩阵乘法和矩阵点乘}{217}{section*.225} \contentsline {subsubsection}{矩阵乘法和矩阵点乘}{215}{section*.225}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{线性映射}{218}{section*.226} \contentsline {subsubsection}{线性映射}{216}{section*.226}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{范数}{219}{section*.227} \contentsline {subsubsection}{范数}{217}{section*.227}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.2.2}人工神经元和感知机}{220}{subsection.5.2.2} \contentsline {subsection}{\numberline {5.2.2}人工神经元和感知机}{218}{subsection.5.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{感知机\ \raisebox {0.5mm}{------}\ 最简单的人工神经元模型}{221}{section*.230} \contentsline {subsubsection}{感知机\ \raisebox {0.5mm}{------}\ 最简单的人工神经元模型}{219}{section*.230}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{神经元内部权重}{222}{section*.233} \contentsline {subsubsection}{神经元内部权重}{220}{section*.233}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{神经元的输入\ \raisebox {0.5mm}{------}\ 离散 vs 连续}{223}{section*.235} \contentsline {subsubsection}{神经元的输入\ \raisebox {0.5mm}{------}\ 离散 vs 连续}{221}{section*.235}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{神经元内部的参数学习}{223}{section*.237} \contentsline {subsubsection}{神经元内部的参数学习}{221}{section*.237}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.2.3}多层神经网络}{224}{subsection.5.2.3} \contentsline {subsection}{\numberline {5.2.3}多层神经网络}{222}{subsection.5.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{线性变换和激活函数}{224}{section*.239} \contentsline {subsubsection}{线性变换和激活函数}{222}{section*.239}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{单层神经网络$\rightarrow $多层神经网络}{226}{section*.246} \contentsline {subsubsection}{单层神经网络$\rightarrow $多层神经网络}{224}{section*.246}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.2.4}函数拟合能力}{227}{subsection.5.2.4} \contentsline {subsection}{\numberline {5.2.4}函数拟合能力}{225}{subsection.5.2.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {5.3}神经网络的张量实现}{231}{section.5.3} \contentsline {section}{\numberline {5.3}神经网络的张量实现}{229}{section.5.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.3.1} 张量及其计算}{232}{subsection.5.3.1} \contentsline {subsection}{\numberline {5.3.1} 张量及其计算}{230}{subsection.5.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{张量}{232}{section*.256} \contentsline {subsubsection}{张量}{230}{section*.256}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{张量的矩阵乘法}{234}{section*.259} \contentsline {subsubsection}{张量的矩阵乘法}{232}{section*.259}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{张量的单元操作}{235}{section*.261} \contentsline {subsubsection}{张量的单元操作}{233}{section*.261}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.3.2}张量的物理存储形式}{236}{subsection.5.3.2} \contentsline {subsection}{\numberline {5.3.2}张量的物理存储形式}{234}{subsection.5.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.3.3}使用开源框架实现张量计算}{236}{subsection.5.3.3} \contentsline {subsection}{\numberline {5.3.3}使用开源框架实现张量计算}{234}{subsection.5.3.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.3.4}前向传播与计算图}{238}{subsection.5.3.4} \contentsline {subsection}{\numberline {5.3.4}前向传播与计算图}{236}{subsection.5.3.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.3.5}神经网络实例}{241}{subsection.5.3.5} \contentsline {subsection}{\numberline {5.3.5}神经网络实例}{239}{subsection.5.3.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {5.4}神经网络的参数训练}{242}{section.5.4} \contentsline {section}{\numberline {5.4}神经网络的参数训练}{240}{section.5.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.4.1}损失函数}{243}{subsection.5.4.1} \contentsline {subsection}{\numberline {5.4.1}损失函数}{241}{subsection.5.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.4.2}基于梯度的参数优化}{243}{subsection.5.4.2} \contentsline {subsection}{\numberline {5.4.2}基于梯度的参数优化}{241}{subsection.5.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{梯度下降}{244}{section*.279} \contentsline {subsubsection}{梯度下降}{242}{section*.279}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{梯度获取}{246}{section*.281} \contentsline {subsubsection}{梯度获取}{244}{section*.281}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于梯度的方法的变种和改进}{249}{section*.285} \contentsline {subsubsection}{基于梯度的方法的变种和改进}{247}{section*.285}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.4.3}参数更新的并行化策略}{252}{subsection.5.4.3} \contentsline {subsection}{\numberline {5.4.3}参数更新的并行化策略}{250}{subsection.5.4.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.4.4}梯度消失、梯度爆炸和稳定性训练}{254}{subsection.5.4.4} \contentsline {subsection}{\numberline {5.4.4}梯度消失、梯度爆炸和稳定性训练}{252}{subsection.5.4.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{易于优化的激活函数}{254}{section*.288} \contentsline {subsubsection}{易于优化的激活函数}{252}{section*.288}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{梯度裁剪}{255}{section*.292} \contentsline {subsubsection}{梯度裁剪}{253}{section*.292}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{稳定性训练}{256}{section*.293} \contentsline {subsubsection}{稳定性训练}{254}{section*.293}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.4.5}过拟合}{257}{subsection.5.4.5} \contentsline {subsection}{\numberline {5.4.5}过拟合}{255}{subsection.5.4.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.4.6}反向传播}{258}{subsection.5.4.6} \contentsline {subsection}{\numberline {5.4.6}反向传播}{256}{subsection.5.4.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{输出层的反向传播}{259}{section*.296} \contentsline {subsubsection}{输出层的反向传播}{257}{section*.296}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{隐藏层的反向传播}{261}{section*.300} \contentsline {subsubsection}{隐藏层的反向传播}{259}{section*.300}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{程序实现}{262}{section*.303} \contentsline {subsubsection}{程序实现}{260}{section*.303}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {5.5}神经语言模型}{263}{section.5.5} \contentsline {section}{\numberline {5.5}神经语言模型}{262}{section.5.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.5.1}基于神经网络的语言建模}{264}{subsection.5.5.1} \contentsline {subsection}{\numberline {5.5.1}基于神经网络的语言建模}{262}{subsection.5.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于前馈神经网络的语言模型}{265}{section*.306} \contentsline {subsubsection}{基于前馈神经网络的语言模型}{263}{section*.306}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于循环神经网络的语言模型}{267}{section*.309} \contentsline {subsubsection}{基于循环神经网络的语言模型}{265}{section*.309}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于自注意力机制的语言模型}{268}{section*.311} \contentsline {subsubsection}{基于自注意力机制的语言模型}{266}{section*.311}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{语言模型的评价}{269}{section*.313} \contentsline {subsubsection}{语言模型的评价}{267}{section*.313}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.5.2}单词表示模型}{270}{subsection.5.5.2} \contentsline {subsection}{\numberline {5.5.2}单词表示模型}{268}{subsection.5.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{One-hot编码}{270}{section*.314} \contentsline {subsubsection}{One-hot编码}{268}{section*.314}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{分布式表示}{270}{section*.316} \contentsline {subsubsection}{分布式表示}{268}{section*.316}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {5.5.3}句子表示模型及预训练}{272}{subsection.5.5.3} \contentsline {subsection}{\numberline {5.5.3}句子表示模型及预训练}{270}{subsection.5.5.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{简单的上下文表示模型}{272}{section*.320} \contentsline {subsubsection}{简单的上下文表示模型}{270}{section*.320}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{ELMO模型}{274}{section*.323} \contentsline {subsubsection}{ELMO模型}{272}{section*.323}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{GPT模型}{274}{section*.325} \contentsline {subsubsection}{GPT模型}{272}{section*.325}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{BERT模型}{275}{section*.327} \contentsline {subsubsection}{BERT模型}{273}{section*.327}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{为什么要预训练?}{276}{section*.329} \contentsline {subsubsection}{为什么要预训练?}{274}{section*.329}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {5.6}小结及深入阅读}{277}{section.5.6} \contentsline {section}{\numberline {5.6}小结及深入阅读}{275}{section.5.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {6}神经机器翻译模型}{279}{chapter.6} \contentsline {chapter}{\numberline {6}神经机器翻译模型}{277}{chapter.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {6.1}神经机器翻译的发展简史}{279}{section.6.1} \contentsline {section}{\numberline {6.1}神经机器翻译的发展简史}{277}{section.6.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.1.1}神经机器翻译的起源}{281}{subsection.6.1.1} \contentsline {subsection}{\numberline {6.1.1}神经机器翻译的起源}{279}{subsection.6.1.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.1.2}神经机器翻译的品质 }{283}{subsection.6.1.2} \contentsline {subsection}{\numberline {6.1.2}神经机器翻译的品质 }{281}{subsection.6.1.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.1.3}神经机器翻译的优势 }{286}{subsection.6.1.3} \contentsline {subsection}{\numberline {6.1.3}神经机器翻译的优势 }{284}{subsection.6.1.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {6.2}编码器-解码器框架}{288}{section.6.2} \contentsline {section}{\numberline {6.2}编码器-解码器框架}{286}{section.6.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.2.1}框架结构}{288}{subsection.6.2.1} \contentsline {subsection}{\numberline {6.2.1}框架结构}{286}{subsection.6.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.2.2}表示学习}{289}{subsection.6.2.2} \contentsline {subsection}{\numberline {6.2.2}表示学习}{287}{subsection.6.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.2.3}简单的运行实例}{290}{subsection.6.2.3} \contentsline {subsection}{\numberline {6.2.3}简单的运行实例}{288}{subsection.6.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.2.4}机器翻译范式的对比}{291}{subsection.6.2.4} \contentsline {subsection}{\numberline {6.2.4}机器翻译范式的对比}{289}{subsection.6.2.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {6.3}基于循环神经网络的翻译模型及注意力机制}{292}{section.6.3} \contentsline {section}{\numberline {6.3}基于循环神经网络的翻译模型及注意力机制}{290}{section.6.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.3.1}建模}{293}{subsection.6.3.1} \contentsline {subsection}{\numberline {6.3.1}建模}{290}{subsection.6.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.3.2}输入(词嵌入)及输出(Softmax)}{296}{subsection.6.3.2} \contentsline {subsection}{\numberline {6.3.2}输入(词嵌入)及输出(Softmax)}{294}{subsection.6.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.3.3}循环神经网络结构}{299}{subsection.6.3.3} \contentsline {subsection}{\numberline {6.3.3}循环神经网络结构}{298}{subsection.6.3.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{循环神经单元(RNN)}{299}{section*.351} \contentsline {subsubsection}{循环神经单元(RNN)}{298}{section*.351}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{长短时记忆网络(LSTM)}{300}{section*.352} \contentsline {subsubsection}{长短时记忆网络(LSTM)}{298}{section*.352}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{门控循环单元(GRU)}{301}{section*.355} \contentsline {subsubsection}{门控循环单元(GRU)}{300}{section*.355}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{双向模型}{303}{section*.357} \contentsline {subsubsection}{双向模型}{302}{section*.357}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{多层循环神经网络}{304}{section*.359} \contentsline {subsubsection}{多层循环神经网络}{302}{section*.359}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.3.4}注意力机制}{304}{subsection.6.3.4} \contentsline {subsection}{\numberline {6.3.4}注意力机制}{303}{subsection.6.3.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{翻译中的注意力机制}{306}{section*.362} \contentsline {subsubsection}{翻译中的注意力机制}{304}{section*.362}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{上下文向量的计算}{307}{section*.365} \contentsline {subsubsection}{上下文向量的计算}{305}{section*.365}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{注意力机制的解读}{310}{section*.370} \contentsline {subsubsection}{注意力机制的解读}{308}{section*.370}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.3.5}训练}{312}{subsection.6.3.5} \contentsline {subsection}{\numberline {6.3.5}训练}{310}{subsection.6.3.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{损失函数}{312}{section*.373} \contentsline {subsubsection}{损失函数}{310}{section*.373}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{长参数初始化}{313}{section*.374} \contentsline {subsubsection}{长参数初始化}{311}{section*.374}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{优化策略}{313}{section*.375} \contentsline {subsubsection}{优化策略}{312}{section*.375}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{梯度裁剪}{314}{section*.377} \contentsline {subsubsection}{梯度裁剪}{312}{section*.377}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{学习率策略}{314}{section*.378} \contentsline {subsubsection}{学习率策略}{312}{section*.378}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{并行训练}{315}{section*.381} \contentsline {subsubsection}{并行训练}{314}{section*.381}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.3.6}推断}{317}{subsection.6.3.6} \contentsline {subsection}{\numberline {6.3.6}推断}{315}{subsection.6.3.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{贪婪搜索}{319}{section*.385} \contentsline {subsubsection}{贪婪搜索}{317}{section*.385}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{束搜索}{320}{section*.388} \contentsline {subsubsection}{束搜索}{318}{section*.388}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{长度惩罚}{320}{section*.390} \contentsline {subsubsection}{长度惩罚}{319}{section*.390}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.3.7}实例-GNMT}{322}{subsection.6.3.7} \contentsline {subsection}{\numberline {6.3.7}实例-GNMT}{320}{subsection.6.3.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {6.4}Transformer}{322}{section.6.4} \contentsline {section}{\numberline {6.4}Transformer}{321}{section.6.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.1}自注意力模型}{324}{subsection.6.4.1} \contentsline {subsection}{\numberline {6.4.1}自注意力模型}{323}{subsection.6.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.2}Transformer架构}{326}{subsection.6.4.2} \contentsline {subsection}{\numberline {6.4.2}Transformer架构}{324}{subsection.6.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.3}位置编码}{328}{subsection.6.4.3} \contentsline {subsection}{\numberline {6.4.3}位置编码}{326}{subsection.6.4.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.4}基于点乘的注意力机制}{330}{subsection.6.4.4} \contentsline {subsection}{\numberline {6.4.4}基于点乘的注意力机制}{329}{subsection.6.4.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.5}掩码操作}{332}{subsection.6.4.5} \contentsline {subsection}{\numberline {6.4.5}掩码操作}{331}{subsection.6.4.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.6}多头注意力}{333}{subsection.6.4.6} \contentsline {subsection}{\numberline {6.4.6}多头注意力}{332}{subsection.6.4.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.7}残差网络和层正则化}{334}{subsection.6.4.7} \contentsline {subsection}{\numberline {6.4.7}残差网络和层正则化}{333}{subsection.6.4.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.8}前馈全连接网络子层}{335}{subsection.6.4.8} \contentsline {subsection}{\numberline {6.4.8}前馈全连接网络子层}{334}{subsection.6.4.8}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.9}训练}{336}{subsection.6.4.9} \contentsline {subsection}{\numberline {6.4.9}训练}{335}{subsection.6.4.9}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.4.10}推断}{339}{subsection.6.4.10} \contentsline {subsection}{\numberline {6.4.10}推断}{338}{subsection.6.4.10}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {6.5}序列到序列问题及应用}{339}{section.6.5} \contentsline {section}{\numberline {6.5}序列到序列问题及应用}{338}{section.6.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.5.1}自动问答}{340}{subsection.6.5.1} \contentsline {subsection}{\numberline {6.5.1}自动问答}{339}{subsection.6.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.5.2}自动文摘}{340}{subsection.6.5.2} \contentsline {subsection}{\numberline {6.5.2}自动文摘}{339}{subsection.6.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.5.3}文言文翻译}{341}{subsection.6.5.3} \contentsline {subsection}{\numberline {6.5.3}文言文翻译}{340}{subsection.6.5.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.5.4}对联生成}{341}{subsection.6.5.4} \contentsline {subsection}{\numberline {6.5.4}对联生成}{340}{subsection.6.5.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {6.5.5}古诗生成}{342}{subsection.6.5.5} \contentsline {subsection}{\numberline {6.5.5}古诗生成}{341}{subsection.6.5.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {6.6}小结及深入阅读}{343}{section.6.6} \contentsline {section}{\numberline {6.6}小结及深入阅读}{342}{section.6.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {7}神经机器翻译实战 \ \raisebox {0.5mm}{------}\ 参加一次比赛}{345}{chapter.7} \contentsline {chapter}{\numberline {7}神经机器翻译实战 \ \raisebox {0.5mm}{------}\ 参加一次比赛}{345}{chapter.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
...@@ -573,49 +573,49 @@ ...@@ -573,49 +573,49 @@
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.1.3}架构选择 }{348}{subsection.7.1.3} \contentsline {subsection}{\numberline {7.1.3}架构选择 }{348}{subsection.7.1.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {7.2}数据处理}{349}{section.7.2} \contentsline {section}{\numberline {7.2}数据处理}{348}{section.7.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.2.1}分词}{349}{subsection.7.2.1} \contentsline {subsection}{\numberline {7.2.1}分词}{349}{subsection.7.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.2.2}标准化}{350}{subsection.7.2.2} \contentsline {subsection}{\numberline {7.2.2}标准化}{350}{subsection.7.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.2.3}数据清洗}{352}{subsection.7.2.3} \contentsline {subsection}{\numberline {7.2.3}数据清洗}{351}{subsection.7.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.2.4}子词切分}{354}{subsection.7.2.4} \contentsline {subsection}{\numberline {7.2.4}子词切分}{353}{subsection.7.2.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{大词表和OOV问题}{354}{section*.428} \contentsline {subsubsection}{大词表和OOV问题}{354}{section*.428}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{子词}{355}{section*.430} \contentsline {subsubsection}{子词}{354}{section*.430}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{双字节编码(BPE)}{356}{section*.432} \contentsline {subsubsection}{双字节编码(BPE)}{355}{section*.432}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{其他方法}{358}{section*.435} \contentsline {subsubsection}{其他方法}{358}{section*.435}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {7.3}建模与训练}{359}{section.7.3} \contentsline {section}{\numberline {7.3}建模与训练}{358}{section.7.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.3.1}正则化}{359}{subsection.7.3.1} \contentsline {subsection}{\numberline {7.3.1}正则化}{358}{subsection.7.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{L1/L2正则化}{360}{section*.437} \contentsline {subsubsection}{L1/L2正则化}{360}{section*.437}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{标签平滑}{361}{section*.438} \contentsline {subsubsection}{标签平滑}{361}{section*.438}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Dropout}{362}{section*.440} \contentsline {subsubsection}{Dropout}{361}{section*.440}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Layer Dropout}{363}{section*.443} \contentsline {subsubsection}{Layer Dropout}{363}{section*.443}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.3.2}增大模型容量}{364}{subsection.7.3.2} \contentsline {subsection}{\numberline {7.3.2}增大模型容量}{364}{subsection.7.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{宽网络}{365}{section*.445} \contentsline {subsubsection}{宽网络}{364}{section*.445}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{深网络}{366}{section*.447} \contentsline {subsubsection}{深网络}{365}{section*.447}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{增大输入层和输出层表示能力}{367}{section*.449} \contentsline {subsubsection}{增大输入层和输出层表示能力}{366}{section*.449}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{大模型的分布式计算}{367}{section*.450} \contentsline {subsubsection}{大模型的分布式计算}{367}{section*.450}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.3.3}大批量训练}{368}{subsection.7.3.3} \contentsline {subsection}{\numberline {7.3.3}大批量训练}{367}{subsection.7.3.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{为什么需要大批量训练}{368}{section*.451} \contentsline {subsubsection}{为什么需要大批量训练}{367}{section*.451}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{如何构建批次}{369}{section*.454} \contentsline {subsubsection}{如何构建批次}{369}{section*.454}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
...@@ -623,37 +623,37 @@ ...@@ -623,37 +623,37 @@
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.4.1}推断优化}{370}{subsection.7.4.1} \contentsline {subsection}{\numberline {7.4.1}推断优化}{370}{subsection.7.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{推断系统的架构}{371}{section*.456} \contentsline {subsubsection}{推断系统的架构}{370}{section*.456}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{自左向右推断 vs 自右向左推断}{372}{section*.458} \contentsline {subsubsection}{自左向右推断 vs 自右向左推断}{371}{section*.458}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{推断加速}{373}{section*.459} \contentsline {subsubsection}{推断加速}{372}{section*.459}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.4.2}译文长度控制}{379}{subsection.7.4.2} \contentsline {subsection}{\numberline {7.4.2}译文长度控制}{379}{subsection.7.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{长度惩罚因子}{380}{section*.465} \contentsline {subsubsection}{长度惩罚因子}{379}{section*.465}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{译文长度范围约束}{381}{section*.467} \contentsline {subsubsection}{译文长度范围约束}{380}{section*.467}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{覆盖度模型}{381}{section*.468} \contentsline {subsubsection}{覆盖度模型}{381}{section*.468}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.4.3}多模型集成}{382}{subsection.7.4.3} \contentsline {subsection}{\numberline {7.4.3}多模型集成}{382}{subsection.7.4.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{假设选择}{383}{section*.469} \contentsline {subsubsection}{假设选择}{382}{section*.469}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{局部预测融合}{384}{section*.471} \contentsline {subsubsection}{局部预测融合}{383}{section*.471}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{译文重组}{385}{section*.473} \contentsline {subsubsection}{译文重组}{384}{section*.473}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {7.5}进阶技术}{386}{section.7.5} \contentsline {section}{\numberline {7.5}进阶技术}{385}{section.7.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.5.1}深层模型}{386}{subsection.7.5.1} \contentsline {subsection}{\numberline {7.5.1}深层模型}{385}{subsection.7.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Post-Norm vs Pre-Norm}{386}{section*.476} \contentsline {subsubsection}{Post-Norm vs Pre-Norm}{386}{section*.476}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{层聚合}{389}{section*.479} \contentsline {subsubsection}{层聚合}{388}{section*.479}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{深层模型的训练加速}{390}{section*.481} \contentsline {subsubsection}{深层模型的训练加速}{389}{section*.481}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{渐进式训练}{390}{section*.482} \contentsline {subsubsection}{渐进式训练}{390}{section*.482}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
...@@ -661,25 +661,25 @@ ...@@ -661,25 +661,25 @@
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{学习率重置策略}{391}{section*.486} \contentsline {subsubsection}{学习率重置策略}{391}{section*.486}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{深层模型的鲁棒性训练}{393}{section*.488} \contentsline {subsubsection}{深层模型的鲁棒性训练}{392}{section*.488}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.5.2}单语数据的使用}{395}{subsection.7.5.2} \contentsline {subsection}{\numberline {7.5.2}单语数据的使用}{394}{subsection.7.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{伪数据}{395}{section*.491} \contentsline {subsubsection}{伪数据}{395}{section*.491}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{预训练}{396}{section*.494} \contentsline {subsubsection}{预训练}{396}{section*.494}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{联合训练}{399}{section*.497} \contentsline {subsubsection}{联合训练}{398}{section*.497}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.5.3}知识精炼}{400}{subsection.7.5.3} \contentsline {subsection}{\numberline {7.5.3}知识精炼}{399}{subsection.7.5.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{什么是知识精炼}{400}{section*.499} \contentsline {subsubsection}{什么是知识精炼}{399}{section*.499}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{知识精炼的基本方法}{401}{section*.500} \contentsline {subsubsection}{知识精炼的基本方法}{401}{section*.500}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{机器翻译中的知识精炼}{403}{section*.502} \contentsline {subsubsection}{机器翻译中的知识精炼}{402}{section*.502}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {7.5.4}双向训练}{404}{subsection.7.5.4} \contentsline {subsection}{\numberline {7.5.4}双向训练}{403}{subsection.7.5.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{有监督对偶学习}{404}{section*.504} \contentsline {subsubsection}{有监督对偶学习}{404}{section*.504}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
...@@ -687,29 +687,5 @@ ...@@ -687,29 +687,5 @@
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{翻译中回译}{406}{section*.507} \contentsline {subsubsection}{翻译中回译}{406}{section*.507}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {7.6}小结及深入阅读}{407}{section.7.6} \contentsline {section}{\numberline {7.6}小结及深入阅读}{406}{section.7.6}
\defcounter {refsection}{0}\relax
\contentsline {part}{\@mypartnumtocformat {IV}{附录}}{411}{part.4}
\ttl@stoptoc {default@3}
\ttl@starttoc {default@4}
\defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {A}附录A}{413}{Appendix.1.A}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {A.1}基准数据集}{413}{section.1.A.1}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {A.2}平行语料}{414}{section.1.A.2}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {A.3}相关工具}{415}{section.1.A.3}
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {A.3.1}数据预处理工具}{415}{subsection.1.A.3.1}
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {A.3.2}评价工具}{416}{subsection.1.A.3.2}
\defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {B}附录B}{417}{Appendix.2.B}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {B.1}IBM模型3训练方法}{417}{section.2.B.1}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {B.2}IBM模型4训练方法}{419}{section.2.B.2}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {B.3}IBM模型5训练方法}{421}{section.2.B.3}
\contentsfinish \contentsfinish
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
\end{tikzpicture} \end{tikzpicture}
\vfill \vfill
\endgroup \endgroup·
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% COPYRIGHT PAGE % COPYRIGHT PAGE
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
\noindent \textsc{\url{https://github.com/NiuTrans/MTBook}}\\ % URL \noindent \textsc{\url{https://github.com/NiuTrans/MTBook}}\\ % URL
\noindent {\red{Licensed under the Creative Commons Attribution-NonCommercial 4.0 Unported License (the ``License''). You may not use this file except in compliance with the License. You may obtain a copy of the License at \url{http://creativecommons.org/licenses/by-nc/3.0}. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \textsc{``as is'' basis, without warranties or conditions of any kind}, either express or implied. See the License for the specific language governing permissions and limitations under the License.}}\\ % License information, replace this with your own license (if any) \noindent {\red{Licensed under the Creative Commons Attribution-NonCommercial 4.0 Unported License (the ``License''). You may not use this file except in compliance with the License. You may obtain a copy of the License at \url{http://creativecommons.org/licenses/by-nc/4.0}. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \textsc{``as is'' basis, without warranties or conditions of any kind}, either express or implied. See the License for the specific language governing permissions and limitations under the License.}}\\ % License information, replace this with your own license (if any)
\noindent \textit{First Edition, April 2020} \noindent \textit{First Edition, April 2020}
......
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
\noindent \textsc{\url{https://github.com/NiuTrans/MTBook}}\\ % URL \noindent \textsc{\url{https://github.com/NiuTrans/MTBook}}\\ % URL
\noindent {\red{Licensed under the Creative Commons Attribution-NonCommercial 4.0 Unported License (the ``License''). You may not use this file except in compliance with the License. You may obtain a copy of the License at \url{http://creativecommons.org/licenses/by-nc/3.0}. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \textsc{``as is'' basis, without warranties or conditions of any kind}, either express or implied. See the License for the specific language governing permissions and limitations under the License.}}\\ % License information, replace this with your own license (if any) \noindent {\red{Licensed under the Creative Commons Attribution-NonCommercial 4.0 Unported License (the ``License''). You may not use this file except in compliance with the License. You may obtain a copy of the License at \url{http://creativecommons.org/licenses/by-nc/4.0}. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \textsc{``as is'' basis, without warranties or conditions of any kind}, either express or implied. See the License for the specific language governing permissions and limitations under the License.}}\\ % License information, replace this with your own license (if any)
\noindent \textit{First Edition, April 2020} \noindent \textit{First Edition, April 2020}
......
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
{\addvspace{3pt}\sffamily\bfseries} % Spacing and font options for sections {\addvspace{3pt}\sffamily\bfseries} % Spacing and font options for sections
{\contentslabel[\thecontentslabel]{1.25cm}} % Formatting of numbered sections of this type {\contentslabel[\thecontentslabel]{1.25cm}} % Formatting of numbered sections of this type
{} % Formatting of numberless sections of this type {} % Formatting of numberless sections of this type
{ \titlerule*[.5pc]{.}\;\thecontentspage}% {\titlerule*[.5pc]{.}\;\thecontentspage}%
%{\hfill\color{black}\thecontentspage} % Formatting of the filler to the right of the heading and the page number %{\hfill\color{black}\thecontentspage} % Formatting of the filler to the right of the heading and the page number
% Subsection text styling % Subsection text styling
\titlecontents{subsection} \titlecontents{subsection}
...@@ -372,15 +372,15 @@ innerbottommargin=5pt]{cBox} ...@@ -372,15 +372,15 @@ innerbottommargin=5pt]{cBox}
\renewcommand{\section}{\@startsection{section}{1}{\z@} \renewcommand{\section}{\@startsection{section}{1}{\z@}
{-4ex \@plus -1ex \@minus -.4ex} {-4ex \@plus -1ex \@minus -.4ex}
{1ex \@plus.2ex } {1ex \@plus.2ex }
{\normalfont\large\sffamily\bfseries}} {\color{ublue}\normalfont\Large\sffamily\bfseries}}
\renewcommand{\subsection}{\@startsection {subsection}{2}{\z@} \renewcommand{\subsection}{\@startsection {subsection}{2}{\z@}
{-3ex \@plus -0.1ex \@minus -.4ex} {-3ex \@plus -0.1ex \@minus -.4ex}
{0.5ex \@plus.2ex } {0.5ex \@plus.2ex }
{\normalfont\sffamily\bfseries}} {\normalfont\large\sffamily\bfseries}}
\renewcommand{\subsubsection}{\@startsection {subsubsection}{3}{\z@} \renewcommand{\subsubsection}{\@startsection {subsubsection}{3}{\z@}
{-3ex \@plus -0.1ex \@minus -.4ex} {-3ex \@plus -0.1ex \@minus -.4ex}
{.4ex \@plus.2ex } {.4ex \@plus.2ex }
{\normalfont\small\sffamily\bfseries}} {\normalfont\normalsize\sffamily\bfseries}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@} \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}
{-2ex \@plus-.2ex \@minus .2ex} {-2ex \@plus-.2ex \@minus .2ex}
{.1ex} {.1ex}
...@@ -537,6 +537,13 @@ addtohook={% ...@@ -537,6 +537,13 @@ addtohook={%
\fi \fi
} }
} }
%----------------------------------------------------------------------------------------
% NEW PAGE FOR SUBSECTION
%----------------------------------------------------------------------------------------
%\newcommand{\sectionnewpage}{\newpage}
\newcommand{\sectionnewpage}{}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% Chapter 3 % Chapter 3
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论