Commit 8a6a72e0 by xiaotong

recheck chapters 3.3-3.4

parent 3ac43971
......@@ -446,11 +446,11 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{基于词的翻译建模}\index{Chapter3.3}
\noindent\hspace{2em}\ref{sec:simple-mt-example}节中,我们实现了一个简单的基于词的统计机器翻译模型,内容涉及建模、训练和解码。但是,很多问题还没有进行深入讨论,比如,如何处理空翻译?如何对调序问题进行建模?如何用更严密的数学模型描述翻译过程?如何对更加复杂的统计模型进行训练?等等。针对以上问题,本节将系统的介绍IBM统计机器翻译模型。作为经典的统计器翻译模型,对IBM模型的学习将帮助我们建立对自然语言处理问题的系统化建模思想,特别是对问题的数学描述方法将会成为理解本书后续内容的基础工具。
\noindent\hspace{2em}\ref{sec:simple-mt-example}节中,我们实现了一个简单的基于词的统计机器翻译模型,内容涉及建模、训练和解码。但是,很多问题还没有进行深入讨论,比如,如何处理空翻译?如何对调序问题进行建模?如何用更严密的数学模型描述翻译过程?如何对更加复杂的统计模型进行训练?等等。针对以上问题,本节将系统的介绍IBM统计机器翻译模型。作为经典的器翻译模型,对IBM模型的学习将帮助我们建立对自然语言处理问题的系统化建模思想,特别是对问题的数学描述方法将会成为理解本书后续内容的基础工具。
\subsection{噪声信道模型}\index{Chapter3.3.1}
\noindent\hspace{2em}首先,重新思考一下人类进行翻译的过程。对于给定的源语句$s$,人不会像计算机一样尝试很多的可能,而是快速准确的翻译出一个或者少数几个正确的译文。因此在人看来除了正确的译文外,其他的翻译都是不正确的,或者说除了少数的译文人甚至都不会考虑太多其它的可能性。但是,在统计机器翻译的世界里,没有译文是不可能的。换句话说,对于源语句$s$,所有可能的目标语词串$t$都是可能的译文,只是可能性大小不同。即每对$(s,t)$都有一个概率值$\textrm{P}(t|s)$来描述$s$翻译为$t$的好与坏(图\ref{figureC3.19})。
\noindent\hspace{2em}首先,重新思考一下人类进行翻译的过程。对于给定的源语句$s$,人不会像计算机一样尝试很多的可能,而是快速准确的翻译出一个或者少数几个正确的译文。因此在人看来除了正确的译文外,其它的翻译都是不正确的,或者说除了少数的译文人甚至都不会考虑太多其它的可能性。但是,在统计机器翻译的世界里,没有译文是不可能的。换句话说,对于源语言句子$s$,所有可能的目标语词串$t$都是可能的译文,只是可能性大小不同。即每对$(s,t)$都有一个概率值$\textrm{P}(t|s)$来描述$s$翻译为$t$的好与坏(图\ref{figureC3.19})。
%----------------------------------------------
% 图3.19
\begin{figure}[htp]
......@@ -461,9 +461,9 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\end{figure}
%---------------------------
\noindent\hspace{2em}IBM模型也是建立在如上统计模型之上。具体来说,IBM模型的基础是\textbf{噪声信道模型}(Noise Channel Model),它是由香农在上世纪40年代末提出来的({\red 参考文献?}),并于上世纪80年代应用在语言识别领域,后来又被Brown等人用于统计机器翻译中({\red 参考文献?2篇 Brown等人还有一篇})
\noindent\hspace{2em}IBM模型也是建立在如上统计模型之上。具体来说,IBM模型的基础是\textbf{噪声信道模型}(The Noise Channel Model),它是由香农在上世纪40年代末提出来的({\red 参考文献?}),并于上世纪80年代应用在语言识别领域,后来又被Brown等人用于统计机器翻译中({\red 参考文献?2篇 Brown等人还有一篇})
\noindent\hspace{2em}在噪声信道模型中,源语言句子$s$(信宿)被看作是由目标语言句子$t$(信源)经过一个有噪声的信道得到的。如果知道了$s$和信道的性质,我们可以通过$\textrm{P}(t|s)$得到信源的信息,这个过程如图\ref{figureC3.20}所示。
\noindent\hspace{2em}在噪声信道模型中,源语言句子$s$(信宿)被看作是由目标语言句子$t$(信源)经过一个有噪声的信道得到的。如果知道了$s$和信道的性质,我们可以通过$\textrm{P}(t|s)$得到信源的信息,这个过程如图\ref{figureC3.20}所示。
%----------------------------------------------
% 图3.20
......@@ -490,16 +490,16 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\label{eqC3.19}
\end{eqnarray}
\noindent\hspace{2em}公式\ref{eqC3.19}$s$$t$的翻译概率转化为$\frac{\textrm{P}(s|t)\textrm{P(t)}}{\textrm{P}(s)}$,包括三个部分:第一部分是由译文$t$到源语言句子$s$的翻译概率$\textrm{P}(s|t)$,也被称为翻译模型。它表示给定目标语句$t$生成源语句$s$的概率,需要注意是翻译的方向已经从$\textrm{P}(s|t)$转向了$\textrm{P}(t|s)$,但无须刻意的区分,可以简单地理解为翻译模型刻画了$s$$t$的翻译对应程度;第二部分是$\textrm{P}(t)$,也被称为语言模型。它表示的是目标语言句子$t$的流畅度;第三部分是$\textrm{P}(s)$,表示源语言句子$s$出现的可能性。因为$s$输入的不变量,而且$\textrm{P}(s) \ge 0$,所以省略分母部分$\textrm{P}(s)$不会影响$\frac{\textrm{P}(s|t)\textrm{P(t)}}{\textrm{P}(s)}$最大值的求解。于是,机器翻译的目标可以被重新定义为:给定源语句子$s$,寻找这样的目标语译文$t$,它使得翻译模型$\textrm{P}(s|t)$和语言模型$\textrm{P}(t)$乘积最大:
\noindent\hspace{2em}公式\ref{eqC3.19}$s$$t$的翻译概率转化为$\frac{\textrm{P}(s|t)\textrm{P(t)}}{\textrm{P}(s)}$,包括三个部分:第一部分是由译文$t$到源语言句子$s$的翻译概率$\textrm{P}(s|t)$,也被称为翻译模型。它表示给定目标语句$t$生成源语句$s$的概率,需要注意是翻译的方向已经从$\textrm{P}(s|t)$转向了$\textrm{P}(t|s)$,但无须刻意的区分,可以简单地理解为翻译模型刻画了$s$$t$的翻译对应程度;第二部分是$\textrm{P}(t)$,也被称为语言模型。它表示的是目标语言句子$t$出现的可能性;第三部分是$\textrm{P}(s)$,表示源语言句子$s$出现的可能性。因为$s$是输入的不变量,而且$\textrm{P}(s) \ge 0$,所以省略分母部分$\textrm{P}(s)$不会影响$\frac{\textrm{P}(s|t)\textrm{P(t)}}{\textrm{P}(s)}$最大值的求解。于是,机器翻译的目标可以被重新定义为:给定源语言句子$s$,寻找这样的目标语言译文$t$,它使得翻译模型$\textrm{P}(s|t)$和语言模型$\textrm{P}(t)$乘积最大:
\begin{eqnarray}
\hat{t} & = & \argmax_t \textrm{P}(t|s) \nonumber \\
& = & \argmax_t \frac{\textrm{P}(s|t)\textrm{P(t)}}{\textrm{P}(s)} \nonumber \\
& = & \argmax_t \frac{\textrm{P}(s|t)\textrm{P}(t)}{\textrm{P}(s)} \nonumber \\
& = & \argmax_t \textrm{P}(s|t)\textrm{P}(t)
\label{eqC3.20}
\end{eqnarray}
\noindent\hspace{2em}公式\ref{eqC3.20}展示了IBM模型最基础的建模方式,它把模型分解为两项:(反向)翻译模型$\textrm{P}(s|t)$和语言模型$\textrm{P}(t)$。一个很自然的问题是:直接用$\textrm{P}(t|s)$定义翻译问题不就可以了吗,干嘛用$\textrm{P}(s|t)$$\textrm{P}(t)$的联合模型?从理论上来说,正向翻译模型$\textrm{P}(t|s)$和反向翻译模型$\textrm{P}(s|t)$的数学建模可以是一样的,因为我们只需要在建模的过程中把两个语言调换即可。使用$\textrm{P}(s|t)$$\textrm{P}(t)$的联合模型的意义在于引入了语言模型,它可以很好的对译文的流畅度进行评价,确保结果是通顺的目标语言句子。可以回忆一下\ref{sec:sentence-level-translation}节中讨论的问题,如果只使用翻译模型可能会造成一个局面,就是译文的单词都和源语言单词对应的很好,但是由于语序的问题,读起来却不像人说的话。从这个角度说,引入语言模型是十分必要的。这个问题在Brown等人的论文中也有讨论({\red 参考文献?}),他们提到单纯使用$\textrm{P}(t|s)$会把概率分配给一些翻译对应比较好但是不合法的目标语句子,而且这部分概率可能会很大,影响模型的决策。这也正体现了IBM模型的创新之处,作者用数学技巧把$\textrm{P(t)}$引入进来,保证了系统的输出是通顺译文。语言模型也被广泛使用在语音识别等领域以保证结果的流畅性,甚至应用的历史比机器翻译要长得多,这里的方法也有借鉴相关工作的味道。
\noindent\hspace{2em}公式\ref{eqC3.20}展示了IBM模型最基础的建模方式,它把模型分解为两项:(反向)翻译模型$\textrm{P}(s|t)$和语言模型$\textrm{P}(t)$。一个很自然的问题是:直接用$\textrm{P}(t|s)$定义翻译问题不就可以了吗,干嘛用$\textrm{P}(s|t)$$\textrm{P}(t)$的联合模型?从理论上来说,正向翻译模型$\textrm{P}(t|s)$和反向翻译模型$\textrm{P}(s|t)$的数学建模可以是一样的,因为我们只需要在建模的过程中把两个语言调换即可。使用$\textrm{P}(s|t)$$\textrm{P}(t)$的联合模型的意义在于引入了语言模型,它可以很好的对译文的流畅度进行评价,确保结果是通顺的目标语言句子。可以回忆一下\ref{sec:sentence-level-translation}节中讨论的问题,如果只使用翻译模型可能会造成一个局面:译文的单词都和源语言单词对应的很好,但是由于语序的问题,读起来却不像人说的话。从这个角度说,引入语言模型是十分必要的。这个问题在Brown等人的论文中也有讨论({\red 参考文献?}),他们提到单纯使用$\textrm{P}(t|s)$会把概率分配给一些翻译对应比较好但是不合法的目标语句子,而且这部分概率可能会很大,影响模型的决策。这也正体现了IBM模型的创新之处,作者用数学技巧把$\textrm{P}(t)$引入进来,保证了系统的输出是通顺的译文。语言模型也被广泛使用在语音识别等领域以保证结果的流畅性,甚至应用的历史比机器翻译要长得多,这里的方法也有借鉴相关工作的味道。
实际上,在机器翻译中引入语言模型是一个很深刻的概念。在IBM模型之后相当长的时间里,语言模型一直是机器翻译各个部件中最重要的部分。即使现在机器翻译模型已经更新换代,对译文连贯性的建模也是所有系统中需要包含的内容(即使隐形体现)。
......@@ -510,7 +510,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\begin{itemize}
\vspace{0.5em}
\item \textbf{建模}(modeling):如何建立$\textrm{P}(s|t)$$\textrm{P}(t)$的数学模型。换句话说,需要用可计算的方式把翻译问题进行描述,这也是最核心的问题。
\item \textbf{建模}(modeling):如何建立$\textrm{P}(s|t)$$\textrm{P}(t)$的数学模型。换句话说,需要用可计算的方式对翻译问题和语言建模问题进行描述,这也是最核心的问题。
\vspace{0.5em}
\item \textbf{训练}(training):如何获得$\textrm{P}(s|t)$$\textrm{P}(t)$所需的参数。即从数据中得到得到模型的最优参数。
\vspace{0.5em}
......@@ -524,18 +524,18 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure321}
\caption{此处为图片的描述...}
\caption{IBM模型与公式\ref{eqC3.13}的对应关系}
\label{figureC3.21}
\end{figure}
%---------------------------
\noindent\hspace{2em}$g(s,t)$函数的建模很粗糙,因此下面我们将介绍IBM模型中对问题更严谨的定义与建模。对于语言模型$\textrm{P}(t)$和解码过程在前面的内容中都有介绍,所以本章的后半部分会重点介绍如何定义$\textrm{P}(s|t)$模型以及如何训练模型参数。本节主要回答第一个问题,第二个问题留在后面进行介绍。
\noindent\hspace{2em}$g(s,t)$函数的建模很粗糙,因此下面我们将介绍IBM模型对问题更严谨的定义与建模。对于语言模型$\textrm{P}(t)$和解码过程在前面的内容中都有介绍,所以本章的后半部分会重点介绍如何定义翻译模型$\textrm{P}(s|t)$以及如何训练模型参数。本节主要回答第一个问题,第二个问题留在后面进行介绍。
\vspace{0.5em}
\noindent\textbf{(一)词对齐}\index{Chapter3.3.2.1}
\vspace{0.5em}
\noindent\hspace{2em}IBM模型中有一个非常基础的假设是词对齐假设(或称单词对齐假设)。\textbf{词对齐}(word alignment)描述了源语言句子和目标语句子之间单词级别的对应。具体地说,给定源语句子$s$和目标语译文$t$,其中$s$$s_1$$s_m$$m$个单词组成,$t$$t_1$$t_n$$n$个单词组成。IBM模型假设词对齐满足下述两个条件。
\noindent\hspace{2em}IBM模型中有一个非常基础的假设是词对齐假设(或单词对齐假设)。\textbf{词对齐}(word alignment)描述了源语言句子和目标语句子之间单词级别的对应。具体地说,给定源语句子$s$和目标语译文$t$,其中$s$$s_1$$s_m$$m$个单词组成,$t$$t_1$$t_l$$l$个单词组成。IBM模型假设词对齐满足下述两个条件。
\begin{itemize}
\vspace{0.5em}
......@@ -545,41 +545,32 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure322}
\caption{不同对齐对比}
\caption{不同对齐对比}
\label{figureC3.22}
\end{figure}
%---------------------------
\vspace{0.5em}
\item 源语言单词可以翻译为空,这时它对应到一个虚拟或伪造的目标语单词$t_0$。在图\ref{figureC3.23}示的例子中,``在''没有对应到``on the table''中的任意一个词,而是把它对应到$t_0$上。这个条件保证了所有的源语言单词都能找到一个目标语单词对应。这个条件也很好的引入了\textbf{空对齐}的思想,即源语言单词不对应任何真实存在的单词的情况。而这种空对齐的情况在翻译中是频繁出现的,比如虚词的翻译。
\item 源语言单词可以翻译为空,这时它对应到一个虚拟或伪造的目标语单词$t_0$。在图\ref{figureC3.23}示的例子中,``在''没有对应到``on the table''中的任意一个词,而是把它对应到$t_0$上。这个条件保证了所有的源语言单词都能找到一个目标语单词对应。这个条件也很好的引入了\textbf{空对齐}的思想,即源语言单词不对应任何真实存在的单词的情况。而这种空对齐的情况在翻译中是频繁出现的,比如虚词的翻译。
%----------------------------------------------
% 图3.21
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure323}
\caption{空翻译的对齐(``在''对应到$t_0$}
\input{./Chapter3/Figures/figure324}
\caption{词对齐实例(``在''对应到$t_0$}
\label{figureC3.23}
\end{figure}
%---------------------------
\vspace{0.5em}
\end{itemize}
\noindent\hspace{2em}通常,我们把词对齐记为$a$,它由$a_1$$a_m$$m$个词对齐连接组成,即$a=a_1...a_m$,其中$m$表示源语言句子长度。$a_j$表示第$j$个源语单词$s_j$对应的目标语单词的位置。如图\ref{figureC3.24}所示,实线表示的是``在 桌子 上''和``on the table''之间的词对齐。具体词对齐关系可以记为$a_1=0, a_2=3, a_3=1$。它表示第1个源语单词``在''对应到目标语译文的第0个位置,第2个源语单词``桌子''对应到目标语译文的第3个位置是,第3个源语单词``上''对应到目标语译文的第1个位置。
%----------------------------------------------
% 图3.21
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure324}
\caption{词对齐实例}
\label{figureC3.24}
\end{figure}
%---------------------------
\noindent\hspace{2em}通常,我们把词对齐记为$a$,它由$a_1$$a_m$$m$个词对齐连接组成,即$a=a_1...a_m$,其中$m$表示源语言句子长度。$a_j$表示第$j$个源语单词$s_j$对应的目标语单词的位置。在图\ref{figureC3.23}的例子中,词对齐关系可以记为$a_1=0, a_2=3, a_3=1$。它表示第1个源语单词``在''对应到目标语译文的第0个位置,第2个源语单词``桌子''对应到目标语译文的第3个位置是,第3个源语单词``上''对应到目标语译文的第1个位置。
\vspace{0.5em}
\noindent\textbf{(二)基于词对齐的翻译模型}\index{Chapter3.3.2.2}
\vspace{0.5em}
\noindent\hspace{2em}直接估计$\textrm{P}(s|t)$很难,因为大部分句子即使在大规模的语料中也只出现过一次甚至没有出现过。为了解决这个问题,IBM模型的建模思想是:句子之间的对应可以由单词之间的对应进行表示。更具体的说,把句子之间对应的概率转换为所有可能的词对齐的生成概率,如下:
\noindent\hspace{2em}直接估计$\textrm{P}(s|t)$很难,因为大部分句子即使在大规模的语料中也只出现过一次甚至没有出现过。为了解决这个问题,IBM模型假设:句子之间的对应可以由单词之间的对应进行表示。更具体的说,把句子之间对应的概率转换为所有可能的词对齐的生成概率,如下:
\begin{equation}
\textrm{P}(s|t)=\sum_a\textrm{P}(s,a|t)
......@@ -606,7 +597,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\label{eqC3.22}
\end{equation}
\noindent 其中$s_j$$a_j$分别表示第$j$个源语单词及第$j$源语言单词对应到目标位置,$s_1^{j-1}$$a_1^{j}$表示第$j-1$个源语单词和第$j$个源语单词的对齐,$m$表示源语句子的长度。公式\ref{eqC3.22}可以被分解为四个部分(图\ref{figureC3.26}),具体含义如下:
\noindent 其中$s_j$$a_j$分别表示第$j$个源语言单词及第$j$源语言单词对应到目标位置,$s_1^{j-1}$$a_1^{j}$表示第$j-1$个源语言单词和第$j$个源语言单词的对齐,$m$表示源语句子的长度。公式\ref{eqC3.22}可以被分解为四个部分(图\ref{figureC3.26}),具体含义如下:
\begin{itemize}
\vspace{0.5em}
......@@ -614,9 +605,9 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\vspace{0.5em}
\item 当确定源文长度$m$后,循环每个位置$j$逐次生成每个源语言单词$s_j$,也就是$\prod_{j=1}^m$计算的内容;
\vspace{0.5em}
\item 根据译文$t$、源文长度$m$、已经生成的源语单词$s_1^{j-1}$和对齐$a_1^{j-1}$,生成第$j$个位置的对齐结果$a_j$,用$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$表示;
\item 根据译文$t$、源文长度$m$、已经生成的源语单词$s_1^{j-1}$和对齐$a_1^{j-1}$,生成第$j$个位置的对齐结果$a_j$,用$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$表示;
\vspace{0.5em}
\item 根据译文$t$、源文长度$m$、已经生成的源语单词$s_1^{j-1}$和对齐$a_1^j$,生成第$j$个位置的源语言单词$s_j$,用$\textrm{P}(s_j|a_1^{j},s_1^{j-1},m,t)$表示。
\item 根据译文$t$、源文长度$m$、已经生成的源语单词$s_1^{j-1}$和对齐$a_1^j$,生成第$j$个位置的源语言单词$s_j$,用$\textrm{P}(s_j|a_1^{j},s_1^{j-1},m,t)$表示。
\vspace{0.5em}
\end{itemize}
......@@ -630,13 +621,15 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\end{figure}
%---------------------------
\noindent\hspace{2em}换句话说,当我们求概率分布$\textrm{P}(s,a|t)$时,首先根据译文$t$确定源语言句子$s$的长度$m$;当知道源有多少个单词后,循环$m$次,依次生成第1个到第$m$个源语言单词;当生成第$j$个源语言单词时,要先确定它是由哪个目标语译文单词生成的,即确定生成的源语言单词对应的译文单词的位置;当知道了目标语译文单词的位置,就能确定第$j$个位置的源语言单词。
\noindent\hspace{2em}换句话说,当我们求概率分布$\textrm{P}(s,a|t)$时,首先根据译文$t$确定源语言句子$s$的长度$m$;当知道源语言句子有多少个单词后,循环$m$次,依次生成第1个到第$m$个源语言单词;当生成第$j$个源语言单词时,要先确定它是由哪个目标语译文单词生成的,即确定生成的源语言单词对应的译文单词的位置;当知道了目标语译文单词的位置,就能确定第$j$个位置的源语言单词。
\noindent\hspace{2em}需要注意的是公式\ref{eqC3.22}定义的模型并没有做任何化简和假设,也就是说公式的左右两端是严格相等的。在后面的内容中会看到,这种将一个整体进行拆分的方法可以有助于分步骤化简并处理问题。
\vspace{0.5em}
\noindent\textbf{(三)基于词对齐的翻译实例}\index{Chapter3.3.2.3}
\vspace{0.5em}
\noindent\hspace{2em}我们用前面图\ref{figureC3.24}中例子来对公式\ref{eqC3.22}进行说明。例子中,源语言句子``在 桌子 上''目标语译文``on the table''之间的词对齐为$a=\{1-0,2-3,3-1\}$。基于当前的假设,我们套用公式\ref{eqC3.22}$t$生成$s$$a$,即求概率$\textrm{P}(s,a|t)$。求解的过程如下所示
\noindent\hspace{2em}我们用前面图\ref{figureC3.23}中例子来对公式\ref{eqC3.22}进行说明。例子中,源语言句子``在 桌子 上''目标语译文``on the table''之间的词对齐为$a=\{\textrm{1-0, 2-3, 3-1}\}$。公式\ref{eqC3.22}的计算过程如下
\begin{itemize}
......@@ -644,10 +637,10 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\item 首先根据译文确定源文$s$的单词数量($m=3$),即$\textrm{P}(m=3|\textrm{``}t_0\;\textrm{on\;the\;table''})$
\vspace{0.5em}
\item 再确定源语单词$s_1$由谁生成的且生成的是什么。可以看到$s_1$由第0个目标语单词生成的,也就是$t_0$,表示为$\textrm{P}(a_1\;= 0\;\; |\phi,\phi,3,\textrm{``}t_0\;\textrm{on\;the\;table''})$,其中$\phi$表示空。当知道了$s_1$是由$t_0$生成的,就可以通过$t_0$生成源语第一个单词``在'',即$\textrm{P}(s_1\;= \textrm{}\;|\{1-0\},\phi,3,\textrm{``}t_0\;on\;the\;table\textrm{''}) $
\item 再确定源语言单词$s_1$由谁生成的且生成的是什么。可以看到$s_1$由第0个目标语单词生成的,也就是$t_0$,表示为$\textrm{P}(a_1\;= 0\;\; |\phi,\phi,3,\textrm{``}t_0\;\textrm{on\;the\;table''})$,其中$\phi$表示空。当知道了$s_1$是由$t_0$生成的,就可以通过$t_0$生成源语言第一个单词``在'',即$\textrm{P}(s_1\;= \textrm{``在''}\;|\{1-0\},\phi,3,\textrm{``$t_0$\;on\;the\;table''}) $
\vspace{0.5em}
\item 类似于生成$s_1$,我们依次确定源语单词$s_2$$s_3$由谁生成且生成的是什么;
\item 类似于生成$s_1$,我们依次确定源语单词$s_2$$s_3$由谁生成且生成的是什么;
\vspace{0.5em}
\end{itemize}
......@@ -660,9 +653,9 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
&&{\textrm{P}(a_1=0 \mid \phi,\phi,3,\textrm{``$t_0$ on the table''}){\times} } \nonumber \\
&&{\textrm{P}(f_1=\textrm{``在''} \mid \textrm{\{1-0\}},\phi,3,\textrm{``$t_0$ on the table''}){\times} } \nonumber \\
&&{\textrm{P}(a_2=3 \mid \textrm{\{1-0\}},\textrm{``在''},3,\textrm{``$t_0$ on the table''}) {\times}} \nonumber \\
&&{\textrm{P}(f_2=\textrm{``桌子''} \mid \textrm{\{1-0,2-3\}},\textrm{``在''},3,\textrm{``$t_0$ on the table''}) {\times}} \nonumber \\
&&{\textrm{P}(a_3=1 \mid \textrm{\{1-0,2-3\}},\textrm{``在 桌子''},3,\textrm{``$t_0$ on the table''}) {\times}} \nonumber \\
&&{\textrm{P}(f_3=\textrm{``上''} \mid \textrm{\{1-0,2-3,3-1\}},\textrm{``在 桌子''},3,\textrm{``$t_0$ on the table''}) }
&&{\textrm{P}(f_2=\textrm{``桌子''} \mid \textrm{\{1-0, 2-3\}},\textrm{``在''},3,\textrm{``$t_0$ on the table''}) {\times}} \nonumber \\
&&{\textrm{P}(a_3=1 \mid \textrm{\{1-0, 2-3\}},\textrm{``在 桌子''},3,\textrm{``$t_0$ on the table''}) {\times}} \nonumber \\
&&{\textrm{P}(f_3=\textrm{``上''} \mid \textrm{\{1-0, 2-3, 3-1\}},\textrm{``在 桌子''},3,\textrm{``$t_0$ on the table''}) }
\label{eqC3.27}
\end{eqnarray}
......@@ -670,7 +663,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{IBM模型1-2}\index{Chapter3.4}
\noindent\hspace{2em}公式\ref{eqC3.21}和公式\ref{eqC3.22}把翻译问题定义为对词对齐和句子同时进行生成的问题。其中有两个问题:首先,公式\ref{eqC3.21}的右端($\sum_a\textrm{P}(s,a|t)$)要求对所有的词对齐概率进行求和,但是词对齐的数量随着句子长度是呈指数增长的,如何遍历所有的对齐$a$?其次,公式\ref{eqC3.22}虽然对词对齐的问题进行了描述,但是模型中的很多参数仍然很复杂,如何计算$\textrm{P}(m|t)$$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$$\textrm{P}(s_j|a_1^{j},s_1^{j-1},m,t)$?针对这些问题,Brown等人总共提出了5种解决方案,这也就是被后人所熟知的IBM翻译模型。第一个问题可以通过一定的数学或者工程技巧进行求解;第二个问题可以通过一些假设进行化简,依据化简的层次和复杂度不同,可以分为IBM模型1、IBM模型2、IBM模型3、IBM模型4以及IBM模型5。本节首先介绍较为简单的IBM模型1-2。
\noindent\hspace{2em}公式\ref{eqC3.21}和公式\ref{eqC3.22}把翻译问题定义为对译文和词对齐同时进行生成的问题。其中有两个问题:首先,公式\ref{eqC3.21}的右端($\sum_a\textrm{P}(s,a|t)$)要求对所有的词对齐概率进行求和,但是词对齐的数量随着句子长度是呈指数增长的,如何遍历所有的对齐$a$?其次,公式\ref{eqC3.22}虽然对词对齐的问题进行了描述,但是模型中的很多参数仍然很复杂,如何计算$\textrm{P}(m|t)$$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$$\textrm{P}(s_j|a_1^{j},s_1^{j-1},m,t)$?针对这些问题,Brown等人总共提出了5种解决方案,这也就是被后人所熟知的5个IBM翻译模型。第一个问题可以通过一定的数学或者工程技巧进行求解;第二个问题可以通过一些假设进行化简,依据化简的层次和复杂度不同,可以分为IBM模型1、IBM模型2、IBM模型3、IBM模型4以及IBM模型5。本节首先介绍较为简单的IBM模型1-2。
%从此处往下公式+2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......@@ -687,7 +680,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\end{equation}
\vspace{0.5em}
\item 对齐概率$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$仅依赖于译文长度$l$,即每个词对齐连接的概率也服从均匀分布。换句话说,对于任何$j$到它对齐到目标语句子的任何位置都是等概率的。比如译文为``on the table'',再加上$t_0$共4个位置,相应的任意源语单词对齐到这4个位置的概率是一样的。具体描述如下:
\item 对齐概率$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$仅依赖于译文长度$l$,即每个词对齐连接的概率也服从均匀分布。换句话说,对于任何源语言单词的位置$j$到它对齐到目标语句子的任何位置都是等概率的。比如译文为``on the table'',再加上$t_0$共4个位置,相应的任意源语单词对齐到这4个位置的概率是一样的。具体描述如下:
\begin{equation}
\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t) \equiv \frac{1}{l+1}
......@@ -695,14 +688,14 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\end{equation}
\vspace{0.5em}
\item 源语单词$s_j$生成概率$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$仅依懒与其对齐的译文单词$t_{a_i}$,即词汇翻译概率$f(s_j|t_{a_i})$。此时词汇翻译概率满足$\sum_{s_j}{f(s_j|t_{a_i})}=1$。比如在图\ref{figureC3.27}表示的例子中,源语单词``上''出现的概率只和与它对齐的单词``on''有关系,与其它单词没有关系。
\item 源语单词$s_j$的生成概率$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$仅依懒与其对齐的译文单词$t_{a_i}$,即词汇翻译概率$f(s_j|t_{a_i})$。此时词汇翻译概率满足$\sum_{s_j}{f(s_j|t_{a_i})}=1$。比如在图\ref{figureC3.30}表示的例子中,源语单词``上''出现的概率只和与它对齐的单词``on''有关系,与其它单词没有关系。
\begin{equation}
\textrm{P}(s_j|a_1^{j},s_1^{j-1},m,t) \equiv f(s_j|t_{a_i})
\label{eqC3.30}
\end{equation}
我们用一个简单的例子对公式\ref{eqC3.30}进行说明。比如,在图\ref{figureC3.28}所示的实例中,``桌子''对齐到``table'',可被描述为$f(s_2 |t_{a_2})=f(\textrm{``桌子''}|\textrm{``table''})$,表示给定``table''翻译为``桌子''的概率。通常,$f(s_2 |t_{a_2})$被认为是一种概率词典,它反应了两种语言词汇一级的对应程度。
我们用一个简单的例子对公式\ref{eqC3.30}进行说明。比如,在图\ref{figureC3.28}中,``桌子''对齐到``table'',可被描述为$f(s_2 |t_{a_2})=f(\textrm{``桌子''}|\textrm{``table''})$,表示给定``table''翻译为``桌子''的概率。通常,$f(s_2 |t_{a_2})$被认为是一种概率词典,它反应了两种语言词汇一级的对应程度。
\vspace{0.5em}
\end{itemize}
......@@ -749,7 +742,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{IBM模型2}\index{Chapter3.4.2}
\noindent\hspace{2em}IBM模型1很好的化简了问题,但是由于使用了很强的假设,导致模型和实际情况有较大差异。其中一个比较严重的问题是假设词对齐的生成概率服从均匀分布。图\ref{figureC3.28}展示了一个简单的实例。尽管译文$t$$t'$的质量更好,但对于IBM模型1来说翻译概率相同。这是因为当词对齐服从均匀分布时,模型会忽略目标语言单词的位置信息。因此当单词翻译相同但顺序不同时,翻译概率一样。同时,不合理的对齐也会导致使用不合理的词汇翻译概率,因为源语言单词是由错误位置的目标语单词生成的。虽然这个问题可以通过引入目标语语言模型进行缓解,但是翻译模型仍然需要给出更合理的建模方式,以保证翻译译文的选择是正确的。
\noindent\hspace{2em}IBM模型1很好的化简了问题,但是由于使用了很强的假设,导致模型和实际情况有较大差异。其中一个比较严重的问题是假设词对齐的生成概率服从均匀分布。图\ref{figureC3.30}展示了一个简单的实例。尽管译文$t$$t'$的质量更好,但对于IBM模型1来说翻译概率相同。这是因为当词对齐服从均匀分布时,模型会忽略目标语言单词的位置信息。因此当单词翻译相同但顺序不同时,翻译概率一样。同时,不合理的对齐也会导致使用不合理的词汇翻译概率,因为源语言单词是由错误位置的目标语单词生成的。虽然这个问题可以通过引入目标语语言模型进行缓解,但是翻译模型仍然需要给出更合理的建模方式,以保证翻译译文的选择是正确的。
%----------------------------------------------
% 图3.30
......@@ -768,7 +761,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\label{eqC3.33}
\end{equation}
\noindent\hspace{2em}我们还用图\ref{figureC3.28}中的例子来进行说明公式。如果在模型1中,``桌子''对齐到译文四个位置上的单词的概率是一样的。但在模型2中,``桌子''对齐到``table''被形式化为$a(a_j |j,m,l)=a(3|2,3,3)$,意思是对于源文位置2($j=2$)的词,如果它的源文是和目标语译文都是3个词($l=m=3$),对齐到目标语译文位置3($a_j=3$)的概率是多少?因为$a(a_j|j,m,l)$也是模型需要学习的参数,因此``桌子''对齐到不同位置上的目标语单词概率也是不一样的。理想的情况下,通过$a(a_j|j,m,l)$,``桌子''对齐到``table''应该得到更高的概率。
\noindent\hspace{2em}我们还用图\ref{figureC3.28}中的例子来进行说明公式。在模型1中,``桌子''对齐到译文四个位置上的单词的概率是一样的。但在模型2中,``桌子''对齐到``table''被形式化为$a(a_j |j,m,l)=a(3|2,3,3)$,意思是对于源文位置2($j=2$)的词,如果它的源文是和目标语译文都是3个词($l=3,m=3$),对齐到目标语译文位置3($a_j=3$)的概率是多少?因为$a(a_j|j,m,l)$也是模型需要学习的参数,因此``桌子''对齐到不同位置上的目标语单词概率也是不一样的。理想的情况下,通过$a(a_j|j,m,l)$,``桌子''对齐到``table''应该得到更高的概率。
\noindent\hspace{2em}IBM模型2的其他假设均与模型1相同。把公式\ref{eqC3.28}\ref{eqC3.29}\ref{eqC3.33}重新带入公式\ref{eqC3.22}\ref{eqC3.21},可以得到IBM模型2的数学描述:
......@@ -783,7 +776,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{解码及计算优化}\index{Chapter3.4.3}
\noindent\hspace{2em}如果模型参数给定,我们可以使用IBM模型1-2对新的句子进行翻译。比如,我们可以使用\ref{sec:simple-decoding}节描述的解码方法搜索最优译文,或者使用自左向右解码 + 剪枝的方法。在搜索过程中,只需要通过公式\ref{eqC3.32}\ref{eqC3.34}计算每个译文候选的IBM模型翻译概率。但是,公式\ref{eqC3.32}\ref{eqC3.34}的高计算复杂度导致这些模型很难直接使用。以IBM模型1为例,这里把公式\ref{eqC3.32}重写为:
\noindent\hspace{2em}如果模型参数给定,我们可以使用IBM模型1-2对新的句子进行翻译。比如,可以使用\ref{sec:simple-decoding}节描述的解码方法搜索最优译文,或者使用自左向右解码 + 剪枝的方法。在搜索过程中,只需要通过公式\ref{eqC3.32}\ref{eqC3.34}计算每个译文候选的IBM模型翻译概率。但是,公式\ref{eqC3.32}\ref{eqC3.34}的高计算复杂度导致这些模型很难直接使用。以IBM模型1为例,这里把公式\ref{eqC3.32}重写为:
\begin{equation}
\textrm{P}(s|t) = \frac{\epsilon}{(l+1)^{m}} \underbrace{\sum\limits_{a_1=0}^{l} ... \sum\limits_{a_m=0}^{l}}_{(l+1)^m\textrm{次循环}} \underbrace{\prod\limits_{j=1}^{m} f(s_j|t_{a_j})}_{m\textrm{次循环}}
......@@ -797,7 +790,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\label{eqC3.35new}
\end{equation}
\noindent 公式\ref{eqC3.35new}的技巧在于把若干个乘积的加法(等式左手端)转化为若干加法结果的乘积(等式右手端),这样省去了多次循环,把$O((l+1)^m m)$的计算复杂度降为$(l+1)m$\ref{figureC3.32-new}对这个过程进行了进一步解释。
\noindent 公式\ref{eqC3.35new}的技巧在于把若干个乘积的加法(等式左手端)转化为若干加法结果的乘积(等式右手端),这样省去了多次循环,把$O((l+1)^m m)$的计算复杂度降为$(l+1)m$\footnote{公式\ref{eqC3.35new}相比公式\ref{eqC3.35}的另一个优点在于,公式\ref{eqC3.35new}中乘法的数量更少,因为现代计算机中乘法运算的强度要高于加法,因此公式\ref{eqC3.35new}的计算机实现效率更高。} \ref{figureC3.32-new}对这个过程进行了进一步解释。
%----------------------------------------------
% 图3.32-new
......@@ -827,14 +820,14 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\noindent\textbf{(一)目标函数}\index{Chapter3.4.4.1}
\vspace{0.5em}
\noindent\hspace{2em}统计机器翻译模型的训练是一个典型的优化问题。简单来说,训练是在给定数据集(训练集)上调整参数使得目标函数的值达到最大(或最小),此时得到的参数被称为是该模型在该目标函数下的最优解(图\ref{figureC3.33})。
\noindent\hspace{2em}统计机器翻译模型的训练是一个典型的优化问题。简单来说,训练是在给定数据集(训练集)上调整参数使得目标函数的值达到最大(或最小),此时得到的参数被称为是该模型在该目标函数下的最优解(图\ref{figureC3.33})。
%----------------------------------------------
% 图3.32
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure333}
\caption{一个目标函数的优化结果示例}
\caption{一个目标函数的最优解}
\label{figureC3.33}
\end{figure}
%---------------------------
......@@ -848,7 +841,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\noindent其中,$\argmax_{\theta}$表示求最优参数的过程(或优化过程)。
\noindent\hspace{2em}公式\ref{eqC3.36}实际上也是一种基于极大似然的模型训练方法。这里,可以把$\textrm{P}_{\theta}(s|t)$看作是模型对数据描述的一个似然函数,可以记做$\textrm{L}(s,t;\theta)$。也就是,我们的优化目标实际上是对似然函数的优化:$\widehat{\theta}=\argmax_{\theta \in \Theta}\textrm{L}(s,t;\theta)$,其中\{$\widehat{\theta}$\}表示可能有多个组的结果,$\Theta$表示参数空间。
\noindent\hspace{2em}公式\ref{eqC3.36}实际上也是一种基于极大似然的模型训练方法。这里,可以把$\textrm{P}_{\theta}(s|t)$看作是模型对数据描述的一个似然函数,记做$L(s,t;\theta)$。也就是,我们的优化目标实际上是对似然函数的优化:$\widehat{\theta}=\argmax_{\theta \in \Theta}L(s,t;\theta)$,其中\{$\widehat{\theta}$\}表示可能有多个结果,$\Theta$表示参数空间。
\noindent\hspace{2em}回到IBM模型的优化问题上。以IBM模型1为例,我们优化的目标是最大化翻译概率$\textrm{P}(s|t)$。使用公式\ref{eq:final-model1} ,可以把这个目标表述为:
......@@ -864,9 +857,9 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\noindent\textbf{(二)优化}\index{Chapter3.4.4.4}
\vspace{0.5em}
\noindent\hspace{2em}我们已经把IBM模型的参数训练问题定义为带约束的目标函数优化问题。由于目标函数是可微分函数,解决这类问题的一种常用手法是把带约束的优化问题转化为不带约束的优化问题。这里用到了拉格朗日乘数法(The Lagrange Multiplier Method),它的基本思想是把含有$n$个变量和$m$个约束条件的优化问题转化为含有$n+m$个变量的无约束优化问题。
\noindent\hspace{2em}我们已经把IBM模型的参数训练问题定义为带约束的目标函数优化问题。由于目标函数是可微分函数,解决这类问题的一种常用手法是把带约束的优化问题转化为不带约束的优化问题。这里用到了\textbf{拉格朗日乘数法}(The Lagrange Multiplier Method),它的基本思想是把含有$n$个变量和$m$个约束条件的优化问题转化为含有$n+m$个变量的无约束优化问题。
\noindent\hspace{2em}这里,我们的目标是$\max(\textrm{P}_{\theta}(s|t))$,约束条件是对于任意的目标语单词$\forall{t_y}$\\$\sum_{s_x}{\textrm{P}(s_x|t_y)}=1$。根据拉格朗日乘数法,可以把上述优化问题重新定义最大化如下拉格朗日函数:
\noindent\hspace{2em}这里,我们的目标是$\max(\textrm{P}_{\theta}(s|t))$,约束条件是对于任意的目标语单词$t_y$\\$\sum_{s_x}{\textrm{P}(s_x|t_y)}=1$。根据拉格朗日乘数法,可以把上述优化问题重新定义最大化如下拉格朗日函数:
\begin{equation}
L(f,\lambda)=\frac{\epsilon}{(l+1)^m}\prod_{j=1}^{m}\sum_{i=0}^{l}\prod_{j=1}^{m}{f(s_j|t_i)}-\sum_{u}{\lambda_{t_y}(\sum_{s_x}{f(s_x|t_y)}-1)}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论