Commit 15f8cf40 by xiaotong

update chapters 3.1.1

parent d994f5fb
\def\CTeXPreproc{Created by ctex v0.2.13, don't edit!}
\documentclass[cjk,t,compress,12pt]{standalone}
%\documentclass{article}
%\usepackage{beamerarticle}
\usepackage{pstricks}
\usepackage{etex}
\usepackage{eso-pic,graphicx}
\usepackage{fancybox}
\usepackage{amsmath,amssymb}
\usepackage{setspace}
\usepackage{xcolor}
\usepackage{CJK}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{hyperref}
\usetikzlibrary{arrows,decorations.pathreplacing}
\usetikzlibrary{shadows} % LATEX and plain TEX when using Tik Z
\usepgflibrary{arrows} % LATEX and plain TEX and pure pgf
\usetikzlibrary{arrows} % LATEX and plain TEX when using Tik Z
\usetikzlibrary{decorations}
\usetikzlibrary{arrows,shapes}
\usetikzlibrary{decorations.text}
\usetikzlibrary{positioning,fit,calc}
\usetikzlibrary{mindmap,backgrounds} % mind map
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}
\definecolor{ublue}{rgb}{0.152,0.250,0.545}
\definecolor{ugreen}{rgb}{0,0.5,0}
\begin{document}
\begin{CJK}{UTF8}{you}
%%% outline
%-------------------------------------------------------------------------
......@@ -148,7 +111,6 @@
\end{tikzpicture}
%---------------------------------------------------------------------
\end{CJK}
\end{document}
......@@ -239,7 +239,7 @@
% 图1.12
\begin{figure}[htp]
\centering
\includegraphics[scale=1]{./Chapter1/Figures/figure-Example-NMT.pdf}
\input{./Chapter1/Figures/figure-Example-NMT}
\caption{神经机器翻译的示例图\\1.左侧是编码器-解码器网络2.右侧是编码器示例网络}
\label{figureC1.12}
\end{figure}
......
......@@ -8,14 +8,19 @@
\definecolor{ugreen}{rgb}{0,0.5,0}
\chapterimage{chapter_head_1} % Chapter heading image
%公式1.7之后往后串一个
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{基于词的翻译模型}
\hspace{2em}统计机器翻译和神经机器翻译在当前具有统治性意义。这两种方法各有优缺点,并没有哪种方法具有绝对的优势。但从研究的角度来看,神经机器翻译整体上更具有前沿性。本章主要介绍了统计机器翻译的开山之作—IBM模型,它主要讲了怎么使用词汇对机器翻译进行建模。IBM模型由Peter E. Brown等人在1993年提出,并详细阐述于论文—《The Mathematics of Statistical Machine Translation: Parameter Estimation》。这篇文章的视野和对问题的定义远超当时人所能看到的东西,其衍生出来的一系列方法和新的问题还被后人花费将近10年的时间来进行研究与讨论。
\hspace{2em}使用统计方法对翻译进行建模是机器翻译发展中的重要里程碑。这种思想也影响了随后的统计机器翻译和神经机器翻译。虽然技术不断发展,传统的统计模型已经不再``新鲜'',但是对于今天机器翻译的研究仍然有启示作用。想要了解前沿、展望未来,我们更要冷静的思考前任给我们带来了什么。基于此,本章将主要介绍统计机器翻译的开山之作\ \ \ \ IBM模型,它主要提出了使用统计模型进行翻译的思想,并使用基于单词对齐的方式完成了机器翻译的统计建模。IBM模型由Peter E. Brown等人在1993年提出({\red 参考文献!!!})\ \ \ \ 《The Mathematics of Statistical Machine Translation: Parameter Estimation》。客观的说,这篇文章的视野和对问题的理解,已经超过当时绝大多数人所能看到的东西,其衍生出来的一系列方法和新的问题还被后人花费将近10年的时间来进行研究与讨论。时至今日,IBM模型中的一些思想仍然影响着很多研究工作。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{什么是基于词的翻译模型}\index{Chapter3.1}%Index的作用,目前不清晰
\hspace{2em}在机器翻译中,我们希望得到一个源语句到目标语译文的翻译。但机器并不知道如何翻译。因此在做机器翻译的过程中,最初面临的一个问题是:如何对翻译进行建模?从计算机的角度看,建模的目的就是把抽象的问题转换为可计算的问题。所以机器翻译的一个核心问题是:如何将翻译转换为一个可计算的模型或过程。
\noindent\hspace{2em}基于单词的统计机器翻译模型又是如何描述翻译的呢?IBM模型提出了一个观点:在翻译源语句时,通常是把每个源语句的单词翻译成对应的目标语单词,然后调整这些单词的顺序,最后得到翻译结果。尽管在人看来基于单词的对应进行翻译是很自然的事,但是机器并不一定。
\hspace{2em}在机器翻译中,我们希望得到一个源语言到目标语言的翻译。虽然对于人类来说这个问题很简单。但是,让计算机做这样的工作却困难很多,因为我们需要把翻译``描述''成计算机可以计算的形式。因此这里面临的第一个问题是:如何对翻译进行建模?从这个角度计算机的角度来说,需要把抽象的翻译问题转换为可计算的问题,这样问题又可以被重新描述为:如何将翻译转换为一个可计算的模型或过程?
\noindent\hspace{2em}那么,基于单词的统计机器翻译模型又是如何描述翻译问题的呢?Peter E. Brown等人提出了一个观点({\red 参考文献!!!}):在翻译源语句时,通常是把每个源语句的单词翻译成对应的目标语单词,然后调整这些单词的顺序,最后得到翻译结果,而这个过程可以用统计模型描述。尽管在人看来使用两个语言单词之间的对应进行翻译是很自然的事,但是对于计算机来说是迈出了一大步。
\noindent\hspace{2em}举个例子说明如何基于单词的对应进行翻译。如图 \ref{figureC3.1}所示,表示的是汉译英的例子。其中源语句是“我 对 你 感到 满意”。首先我们把源语句的单词“我”、“对”、\\“你”、“感到”和“满意”分别翻译为“I”、“with”、“you”、“am”和“satisfied”,然后调整单词的顺序,比如“am”放在译文的第2个位置,“you”应该放在最后的位置等,最后得到译文“I am satisfied with you”
\noindent\hspace{2em}先来看一个例子。图 \ref{fig:figure-zh-en-translation-example}展示了一个汉语翻译到英语的例子。首先我们把源语句的单词``我''、``对''、``你''、``感到''和``满意''分别翻译为``I''、``with''、``you''、``am''\ 和``satisfied'',然后调整单词的顺序,比如``am''放在译文的第2个位置,``you''应该放在最后的位置等,最后得到译文``I am satisfied with you''
%空一行用来段落换行,noindent取消首行缩进,hspace{}指定缩进距离,1em等于两个英文字符|一个汉字
%----------------------------------------------
% 图3.1
......@@ -23,88 +28,105 @@
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure31}
\caption{此处为图片的描述...例:基于词对应进行翻译.}
\label{figureC3.1}
\caption{汉语到英语翻译实例及单词之间的对应关系}
\label{fig:figure-zh-en-translation-example}
\end{figure}
%-------------------------------------------
\noindent\hspace{2em}传统观点认为基于词的翻译过程包含如下三个步骤。如图 \ref{figureC3.2}所示。
\noindent\hspace{2em}上面的例子反映了翻译中的一些要求:首先,两种语言直接单词的顺序可能不一致,译文需要符合目标语的习惯,这也是我们常说翻译的\textbf{流畅度}问题(fluency);其次,源语言单词需要准确的翻译出来\footnote{当然,对于一些意译的情况或者虚词并不需要翻译。},也是我们常说的翻译的\textbf{准确性}\textbf{充分性}问题(adequacy)。为了达到以上目标,传统观点认为翻译过程包含三个步骤(图 \ref{fig:translation-pipeline}
\noindent\hspace{2em}第一、分析。将源语句或目标语句切分或者表示为能够处理的最小单元的过程。在基于词的翻译模型的最小处理单元就是单词。在这里也可以简单地将分析理解为分词。
\begin{itemize}
\item 分析。将源语句切分或者表示为能够处理的最小单元的过程。在基于词的翻译模型的最小处理单元就是单词,因此在这里也可以简单地将分析理解为分词。
\noindent\hspace{2em}第二、转换。把源语句中的每个单词都翻译成目标语单词。
\noindent\hspace{2em}第三、生成。基于转换的结果,将目标语译文变成通顺且合乎语法的句子。
\item 转换。把源语句中的每个单词都翻译成目标语单词。
\item 生成。基于转换的结果,将目标语译文变成通顺且合乎语法的句子。
\end{itemize}
%----------------------------------------------
% 图3.2
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure32}
\caption{此处为图片的描述...例:基于词的翻译过程.}
\label{figureC3.2}
\caption{翻译过程中的分析、转换和生成}
\label{fig:translation-pipeline}
\end{figure}
%---------------------------
\noindent\hspace{2em}从现在的角度看,分析、转换和生成依然是非常深刻的一个观点。该过程蕴含于很多的任务,比如句法分析。即使对于神经机器翻译,从大的框架来说,依然在做分析、转换和生成,只不过有些过程隐含在神经网络的设计中
\section{构建一个简易机器翻译系统}\index{Chapter3.2}%Index的作用,目前不清晰
\noindent\hspace{2em}即使从现在来看,``分析、转换和生成''依然是一个非常深刻的观点。包括机器翻译在内的很多自然语言处理任务都可以用这个过程来解释。比如,对于现在比较前沿的神经机器翻译,从大的框架来说,依然在做分析(编码器)、转换(编码-解码注意力)和生成(解码器),只不这些过程隐含在神经网络的设计中。当然,这里并不会展开过多的讨论,随着后面技术内容的深入,这个观念会有进一步体现
\noindent\hspace{2em}本节首先对比人工翻译流程和机器翻译流程的异同点,从中我们可以归纳出构建机器翻译系统的两个主要流程:训练和解码。其次从单词翻译概率、句子级翻译模型和解码三个方面描述如何构建一个简易机器翻译系统。其中单词翻译概率和句子级翻译模型属于训练流程。
\subsection{机器翻译的思路}\index{Chapter3.2.1}
\textbf{人工翻译流程}\index{Chapter3.2.1.1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{构建一个简单的机器翻译系统}\index{Chapter3.2}%Index的作用,目前不清晰
\noindent\hspace{2em}当我们翻译一个句子时,首先会快速地分析出句子中词的构成,然后基于以往的知识,得到每个词的候选翻译,最后利用对单词的理解拼出来一个译文。这描述了人在翻译时的基本过程。尽管并不是严格的从心理学或者脑科学得出来的观点,但至少可以帮助我们理解人的翻译。
\noindent\hspace{2em}本节首先对比人工翻译流程和机器翻译流程的异同点,从中我们归纳出构建机器翻译系统的两个主要流程:训练和解码。其次从单词翻译模型学习、句子级翻译模型学习和解码三个方面描述如何构建一个简单的机器翻译系统。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{如何进行翻译?}\index{Chapter3.2.1}
\vspace{0.5em}
\noindent\hspace{2em} \textbf{(一)人工翻译流程}\index{Chapter3.2.1.1}
\noindent\hspace{2em}当我们翻译一个句子时,首先会快速地分析出句子的构成,然后根据以往的知识,得到每个词的候选翻译,最后利用对目标语的理解拼出来一个译文。尽管这个过程并不是严格来自心理学或者脑科学相关结论,但至少可以帮助我们理解人在翻译时的思考方式。
%----------------------------------------------
% 图3.3
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure33}
\caption{此处为图片的描述...例:人工翻译的过程}
\caption{人工翻译的过程}
\label{figureC3.3}
\end{figure}
%---------------------------
\noindent\hspace{2em}如图\ref{figureC3.3}所示,表示的是人工翻译的过程。其中待翻译的句子是“我 对 你表示 满意”,它的一个可能译文是“I’m satisfied with you”。我们可以把上述过程总结为如下两个过程
\noindent\hspace{2em}\ref{figureC3.3}展示了翻译“我 对 你表示 满意”时我们思考的内容。具体来说,有如下两方面内容
\noindent\hspace{2em}第一、学习单词的翻译。即获取待翻译句子的每个单词的候选翻译。比如“对”的可能译文有“to”、“with”和“for”等。对于人来说,可以通过阅读、背诵、做题或者老师教等途径获得,并在大脑中形成知识。这些知识就包含了源语词与目标语词对应关系。我们也把这个过程称之为学习过程。
\begin{itemize}
\item 翻译知识的学习。对于输入的源语言句子,我们首先需要知道每个单词可能的翻译,称为候选翻译。比如``对''可能的译文有``to''、``with''和``for''等。对于人来说,可以通过阅读、背诵、做题或者老师教等途径获得翻译知识,这些知识就包含了源语与目标语单词之间的对应关系。我们也把这个过程称之为学习过程。
\noindent\hspace{2em}第二、运用知识生成译文。当翻译一个课本上没有见过的句子时,我们可能会想到词之间的翻译关系、一些常见的单词搭配、主谓宾等语法知识等,比如“satisfied”后面常使用介词“with”来表示对人的满意等,并基于这些知识快速地对译文进行生成。
\item 运用知识生成译文。当翻译一个从未见过的句子时,我们可以运用学习到的翻译知识,得到新的句子中每个单词的译文,并处理常见的单词搭配、主谓一致等问题,比如,我们知道``satisfied''后面常使用介词``with''构成搭配,基于这些知识可以快速生成译文。
\end{itemize}
\noindent\textbf{机器翻译流程}\index{Chapter3.2.1.2}
当然,每个人进行翻译时所使用的方法和技巧都不相同,所谓人工翻译也没有固定的流程。但是,可以确定的是,人进行翻译也需要通过``学习''和``运用''翻译知识。对翻译知识``学习''和``运用''的好与坏,直接决定了人工翻译结果的质量。
\noindent\hspace{2em}那么机器是如何完成翻译的呢?机器翻译可能没有人那么智能。因为一方面没有老师教给它一些非常好用的规则,使它能够快速得到译文。另一方面机器很笨,尽管它能知道每个单词的译文,但是不知道这些译文怎么拼装成句,甚至不知道哪些译文是对的。为了更加直观地理解机器在翻译时的困境,我们将其中需要解决的问题归纳如下。
\vspace{0.5em}
\textbf{(二)机器翻译流程}\index{Chapter3.2.1.2}
\noindent\hspace{2em}问题一、如何将单词的译文拼装成句?
\noindent\hspace{2em}人进行翻译的过程比较容易理解,那计算机是如何完成翻译的呢?虽然``人工智能''这个感念显得很神奇,但是计算机远没有人那么智能,甚至说还很笨。一方面,他没有能力像人一样,在教室里和老师一起学习语言知识;另一方面,即使能列举出每个单词的候选译文,但是还是不知道这些译文怎么拼装成句,甚至不知道哪些译文是对的。为了更加直观地理解机器在翻译时要解决的挑战,我们将其中需要解决的问题归纳如下。
\noindent\hspace{2em}问题二、如果可以将译文成句,那如何判断结果的好坏?
\vspace{0.5em}
\begin{itemize}
\item 如何让计算机得到单词的译文并将它们拼装成句?
\item 如果可以形成译文,如何让计算机知道不同译文的好坏?
\end{itemize}
\vspace{0.5em}
\noindent\hspace{2em}对于问题一。机器最擅长的就是计算,它可以类似于走一条路径,尝试把译文拼装成句。如图\ref{figureC3.4}中蓝色和红色的线,表示的就是两条译文选择路径,区别在于“满意”和“对”的翻译候选是不一样的,蓝色线选择的是“satisfy”和“to”,而红色线是“satisfied”和“with”。换句话说,翻译就是一条译文选择路径,不同的译文对应不同的路径,并且词序也可以不同。机器可以利用它的计算能力找到很多这样的路径。
\noindent\hspace{2em}对于第一个问题,我们可以给计算机一个翻译词典,这样计算机可以发挥计算方面的优势,简单粗暴的把尽可能多的翻译结果拼装出来。比如,可以把每个翻译结果看作是对单词翻译的拼装,表示成贯穿多个单词的一条路径,计算机所做的就是尽可能多的生成这样的路径。图\ref{figureC3.4}中蓝色和红色的线就分别表示了两条不同的译文选择路径,区别在于“满意”和“对”的翻译候选是不一样的,蓝色线选择的是``satisfy''和``to'',而红色线是``satisfied''和``with''。换句话说,不同的译文对应不同的路径,即使词序不同也会对应不同的路径。
%----------------------------------------------
% 图3.4
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure34}
\caption{此处为图片的描述...例:机器翻译的流程(1)}
\caption{机器翻译的过程 - 把单词的译文进行拼装,并找到最优的拼装路径}
\label{figureC3.4}
\end{figure}
%---------------------------
\noindent\hspace{2em}对于问题二。尽管机器能够找到很多这样的译文选择路径,但它并不知道那些路径是好的。因此机器还需要运用它的知识判断哪个结果是好的。机器没有人脑这样复杂的神经元结构,那它知识又该怎么表示呢?如图\ref{figureC3.4}所示,其中的数字表示的是概率,它们就是机器对每个局部翻译或翻译路径的描述。换句话说,机器用概率化的模型描述了每个翻译候选的可能性。基于每个候选翻译的可能性,机器可以对所有的译文选择路径进行打分,图\ref{figureC3.4}中第一条翻译路径的分数为0.042,第二条是0.006,...,以此类推。最后机器可以选择分数最高的路径作为源语句的最终译文。
\textbf{人工 vs. 机器}\index{Chapter3.2.1.3}
\noindent\hspace{2em}对于第二个问题,尽管机器能够找到很多这样的译文选择路径,但它并不知道那些路径是好的。说的再直白一些,简单的枚举路径实际上就是一个体力活,没有什么智能。因此计算机还需要再聪明一些,运用它的能够``掌握''的知识判断哪个结果是好的。这一步是最具挑战的,当然也有很多思路。在统计机器翻译中,这个问题被定义为:设计一种统计模型,它可以给每个译文一个概率值,这个概率值越高表示译文质量越好。如图\ref{figureC3.4}所示,每个单词翻译候选的右侧黑色框里的数字就是单词的翻译概率。使用这些单词的翻译概率,我们可以得到整句译文的概率(符号P表示)。这样,我们用概率化的模型描述了每个翻译候选的可能性。基于每个翻译候选的可能性,机器翻译系统可以对所有的译文选择路径进行打分,图\ref{figureC3.4}中第一条翻译路径的分数为0.042,第二条是0.006,以此类推。最后,系统可以选择分数最高的路径作为源语句的最终译文。
\vspace{0.5em}
\textbf{(三)人工 vs. 机器}\index{Chapter3.2.1.3}
\noindent\hspace{2em}人在翻译时的决策和推断是非常确定并且快速的,但机器却充满了不确定性和概率化的思想。当然它们也有类似的地方。机器学习概率的过程相当于人学习知识的过程,而寻找路径以及给它们打分相当于人应用知识的过程。在统计机器翻译中,我们称前者是训练,目的是从双语平行数据中自动学习翻译知识。后者是解码或推断,目的是使用学习的知识对未知的句子进行翻译。这就是当前机器实现翻译的两个角度:训练和解码
\noindent\hspace{2em}人在翻译时的决策和推断是非常确定并且快速的,但机器翻译处理这个问题却充满了不确定性和概率化的思想。当然它们也有类似的地方。首先,计算机使用统计模型目的是建立处理翻译问题的基本模式,并储存相关的模型参数,这个和我们大脑的作用是类似的\footnote{这里,并不是要把统计模型类比为生物学或者认知科学上的人脑,我们指的是他们处理问题时发挥的作用类似。};其次,计算机对统计模型进行训练的过程相当于人学习知识的过程,或者二者都可以称为学习;再有,计算机使用学习到的模型对新的句子进行翻译的过程相当于人运用知识进行翻译的过程。在统计机器翻译中,模型学习的过程称为\textbf{训练},目的是从双语平行数据中自动学习翻译知识;我们把应用模型的过程称为\textbf{解码}\textbf{推断},目的是使用学习的知识对新的句子进行翻译。这就是当前机器实现翻译的两个核心步骤:训练和解码。图\ref{figureC3.4}右侧标注了在机器翻译过程中这两个部分的体现。这样,统计机器翻译的核心由三部分构成 - 建模、训练和解码。本章后续内容会围绕这三个问题展开
\noindent\hspace{2em}实际上,上述机器翻译的过程可以总结为三个方面。第一、建模,基于词的思想去构建翻译模型。第二、训练,有了这个思想如何学习这个模型。第三、解码,应用训练好的模型对新的句子进行翻译。
%----------------------------------------------
% 图3.5
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure35}
\caption{此处为图片的描述...例:机器翻译的流程(2)}
\caption{这个图和前面的图合并!!!把左侧括号的内容放到上一个图的右侧!!!}
\label{figureC3.5}
\end{figure}
%---------------------------
\subsection{简单的建模}\index{Chapter3.2.2}
\subsection{基本框架}\index{Chapter3.2.2}
\noindent\hspace{2em}下面我们将介绍如何构建一个简易的基于词的机器翻译系统。本小节首先进行简单的建模。如图\ref{figureC3.6}所示,表示的是基于数据驱动的方法的框架,它主要包括两个步骤。
......@@ -903,7 +925,7 @@ f(s_u|t_v) = \frac{\lambda_{t_v}^{-1} \epsilon}{(l+1)^{m}} \cdot \frac{\sum\limi
\end{equation}
\noindent\hspace{2em}(二)求$f(s_u |t_v)$的最优解
\section{IBM模型及隐马尔可夫模型}\index{Chapter3.5}
\section{IBM模型3-5及隐马尔可夫模型}\index{Chapter3.5}
\subsection{基本翻译模型}\index{Chapter3.5.1}
\noindent\hspace{2em}从前面的介绍可知,IBM模型1和模型2都把不同的源文单词都看作相互独立的单元来进行词对齐和翻译。换句话说,即使源语中的某个短语中的两个单词都对齐到同一个目标语单词,它们之间也是相互独立的。这样模型1和模型2对于多个源语单词对齐到同一个目标语单词的情况并不能进行很好的描述。
......
......@@ -99,9 +99,9 @@
%----------------------------------------------------------------------------------------
% CHAPTERS
%----------------------------------------------------------------------------------------
\include{Chapter1/chapter1}
%\include{Chapter1/chapter1}
%\include{Chapter2/chapter2}
%\include{Chapter3/chapter3}
\include{Chapter3/chapter3}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论