Commit 816a5471 by xiaotong

update chapter 3.4.1

parent 3d210521
......@@ -136,9 +136,9 @@
\vspace{0.5em}
\begin{itemize}
\item 训练。从双语平行数据中学习翻译模型,这个模型称为$\textrm{P}(t|s)$。其中$s$表示源语言,$t$表示目标语,它表示给定源语句的条件下,翻译为目标语句子的概率。简言之,这一步需要从大量的双语平行数据中学习到$\textrm{P}(t|s)$的计算方法。
\item \textbf{训练}从双语平行数据中学习翻译模型,这个模型称为$\textrm{P}(t|s)$。其中$s$表示源语言,$t$表示目标语,它表示给定源语句的条件下,翻译为目标语句子的概率。简言之,这一步需要从大量的双语平行数据中学习到$\textrm{P}(t|s)$的计算方法。
\vspace{0.5em}
\item 解码。当面对一个新的待翻译句子时,我们需要使用学习得到的模型进行推断。推断可以被视为一个搜索和计算的过程,换句话说,我们尽可能的搜索更多的翻译结果,然后对每个翻译结果进行打分,最后选择得分最高的翻译结果。
\item \textbf{解码}当面对一个新的待翻译句子时,我们需要使用学习得到的模型进行推断。推断可以被视为一个搜索和计算的过程,换句话说,我们尽可能的搜索更多的翻译结果,然后对每个翻译结果进行打分,最后选择得分最高的翻译结果。
\end{itemize}
\vspace{0.5em}
......@@ -274,6 +274,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{句子级翻译模型}\index{Chapter3.2.4}
\label{sec:sentence-level-translation}
\noindent\hspace{2em}在获得单词翻译概率的基础上,本节继续介绍如何获取句子级翻译概率。如图\ref{figureC3.10}所示,条件概率$\textrm{P}(t|s)$表示给出源语言句子$s$的情况下译文为$t$的概率。这也是整个句子级翻译模型的核心,它处于整个统计机器翻译流程的中心,一方面我们需要从数据中学习这个模型的参数,另一方面,对于新输入的句子,我们需要使用这个模型得到最佳的译文。下面介绍句子级翻译的建模方法。
%----------------------------------------------
......@@ -490,31 +491,35 @@ 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}可以分为三部分。第一部分是$\textrm{P}(s|t)$,也称为翻译模型。它表示给定目标语句$t$生成源语句$s$的概率,需要注意翻译的方向已经从$\textrm{P}(s|t)$转向了$\textrm{P}(t|s)$,但无须刻意的区分,可以简单地理解为翻译模型刻画了$s$$t$的翻译对应程度。第二部分是$\textrm{P}(t)$,也称为语言模型。它表示的是目标语句$t$的通顺程度。第三部分是$\textrm{P}(s)$,也是语言模型,但刻画的是源语句$s$的通顺程度,在后续的建模中这一项是可以被化简的。
\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.20}。其中因为$s$的变化不会影响对目标译文$t$的选择,所以可以省略$\textrm{P}(s)$。该式可以理解为:给定源语句子$s$,要寻找这样的目标语译文$t$,它使得翻译模型$\textrm{P}(s|t)$和语言模型$\textrm{P}(t)$乘积最大。
\begin{equation}
\begin{split}
{\widehat{t}}&={\argmax_t\textrm{P}(t|s)}\\
&={\argmax_t \frac{\textrm{P}(t|s)\textrm{P}(t)}{\textrm{P}(s)}=\argmax_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 \textrm{P}(s|t)\textrm{P}(t)
\label{eqC3.20}
\end{split}
\end{equation}
\noindent\hspace{2em}公式\ref{eqC3.20}是IBM模型最基础的建模方式,它把问题分解为两项:翻译模型和语言模型。这样的做法隐含着一个深刻的概念:如果没有语言模型,并且翻译模型不够强大的话,可能会生成局部翻译得当,但整体上不通顺的句子。见图\ref{figureC3.12}描述的例子。为了避免这个问题,从数学技巧上把$\textrm{P}$加了进来,但这并不是必要的过程。
\end{eqnarray}
\noindent\hspace{2em}上述就是IBM模型的建模思想。其中的过程就是为了引入$\textrm{P}(t)$,而非简单地为了使用贝叶斯变换。
\subsection{建模}\index{Chapter3.3.2}
\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}IBM模型把翻译问题描述为:给定源语句$s$,在所有可能的译文中找到使翻译模型$\textrm{P}(s|t)$和语言模型$\textrm{P}(t)$乘积最大的译文$\widehat{t}$,如公式\ref{eqC3.20}所示。在具体解决翻译问题时,需要面临三个基本问题,如下所示
实际上,在机器翻译中引入语言模型是一个很深刻的概念。在IBM模型之后相当长的时间里,语言模型一直是机器翻译各个部件中最重要的部分。即使现在机器翻译模型已经更新换代,对译文连贯性的建模也是所有系统中需要包含的内容(即使隐形体现)
\noindent\hspace{2em}1. 建模:如何描述计算$\textrm{P}(s|t)$$\textrm{P}(t)$的计算方式。换句话说,如何用可计算的方式把概率描述出来。这也是最核心的问题。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{建模}\index{Chapter3.3.2}
\noindent\hspace{2em}2. 训练:如何获得计算$\textrm{P}(s|t)$$\textrm{P}(t)$所需的参数。即如何从数据中得到得到模型的最优参数。
\noindent\hspace{2em}公式\ref{eqC3.20}给出了统计机器翻译问题的数学描述。为了实现这个过程,面临着三个基本问题:
\noindent\hspace{2em}3. 解码:如何完成搜索最优解的过程$argmax$
\begin{itemize}
\vspace{0.5em}
\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}
\item \textbf{解码}(decoding):如何完成搜索最优解的过程。即完成$\argmax$
\vspace{0.5em}
\end{itemize}
\noindent\hspace{2em}我们先不介绍上述三个问题该如何解决,而与\ref{chapter3.2.3}小节中的公式\ref{eqC3.13}做比较,即$g(s,t)$函数。如图\ref{figureC3.21}所示,我们看到$g(s,t)$函数可以与本节的建模方式相对应。即$g(s,t)$函数中红色部分求译文$t$的可能性大小,对应翻译模型$\textrm{P}(s|t)$;蓝色部分求译文的平滑或流畅程度,对应语言模型$\textrm{P}(t)$。尽管这种对应并不是严格的,但也间接地完成了翻译问题的建模
\noindent\hspace{2em}为了理解以上的问题,可以先回忆一下\ref{chapter3.2.3}小节中的公式\ref{eqC3.13},即$g(s,t)$函数的定义,它用于评估一个译文的好与坏。如图\ref{figureC3.21}所示,$g(s,t)$函数与公式\ref{eqC3.20}的建模方式非常一致,即$g(s,t)$函数中红色部分描述译文$t$的可能性大小,对应翻译模型$\textrm{P}(s|t)$;蓝色部分描述译文的平滑或流畅程度,对应语言模型$\textrm{P}(t)$。尽管这种对应并不十分严格的,但也可以看出在处理机器翻译问题上,很多想法的本质是一样的
%----------------------------------------------
% 图3.21
\begin{figure}[htp]
......@@ -525,206 +530,221 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\end{figure}
%---------------------------
\noindent\hspace{2em}$g(s,t)$函数对翻译问题的建模很粗糙。因此下面我们将介绍IBM模型中更严谨和科学的定义与建模。对于语言模型$\textrm{P}(t)$和解码过程(即$argmax$)在前面的内容中都有介绍,所以重点介绍如何求解$\textrm{P}(s|t)$。主要包括两个问题:第一、翻译模型建模,即$\textrm{P}(s|t)$的计算方法;第二、翻译模型参数估计,即计算$\textrm{P}(s|t)$所需的参数。本节主要回答第一个问题,第二个问题留在后面进行介绍。
\noindent\hspace{2em}$g(s,t)$函数的建模很粗糙,因此下面我们将介绍IBM模型中对问题更严谨的定义与建模。对于语言模型$\textrm{P}(t)$和解码过程在前面的内容中都有介绍,所以本章的后半部分会重点介绍如何定义$\textrm{P}(s|t)$模型以及如何训练模型参数。本节主要回答第一个问题,第二个问题留在后面进行介绍。
\noindent\textbf{词对齐}\index{Chapter3.3.2.1}
\vspace{0.5em}
\noindent\textbf{(一)词对齐}\index{Chapter3.3.2.1}
\vspace{0.5em}
\noindent\hspace{2em}IBM模型中有一个非常基础的假设—词对齐(或称单词对齐)。词对齐描述了句子和它的译文之间在单词级别的对应。具体地说,给定源语句$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_n$$n$个单词组成。IBM模型假设词对齐满足下述两个条件。
\noindent\hspace{2em}第一、一个源语言单词只能对应一个目标语单词。图\ref{figureC3.22}表示的例子中,(a)和\\(c)都满足该条件,尽管(c)中的“谢谢”和“你”都对应“thanks”,但并不违背该规则。而(b)不满足该条件,因为“谢谢”同时对应到了两个目标语单词上。因此这种词对齐称为非对称的词对齐。这样假设的目的也是为了减少建模的复杂度。在后来的方法中也提出了双向词对齐,用于建模一个源语言单词对应到多个目标语单词的情况。
\begin{itemize}
\vspace{0.5em}
\item 一个源语言单词只能对应一个目标语单词。在图\ref{figureC3.22}表示的例子中,(a)和\\(c)都满足该条件,尽管(c)中的“谢谢”和“你”都对应“thanks”,但并不违背条件。而(b)不满足条件,因为“谢谢”同时对应到了两个目标语单词上。这个约束条件也导致这里的词对齐变成一种\textbf{非对称的词对齐},因为它只对源语言做了约束,但是目标语言没有。使用这样的约束的目的是为了减少建模的复杂度。在后来的方法中也提出了双向词对齐,用于建模一个源语言单词对应到多个目标语单词的情况。
%----------------------------------------------
% 图3.21
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure322}
\caption{此处为图片的描述...}
\caption{不同次对齐对比}
\label{figureC3.22}
\end{figure}
%---------------------------
\noindent\hspace{2em}第二、源语言单词可以翻译为空,这时它对应到一个虚拟或伪造的目标语单词$t_0$。图\ref{figureC3.23}表示的例子中,“在”没有对应到“on the table”中的任意词,而是把它对应到$t_0$上。此时所有的源语言单词都能找到一个目标语单词对应,只不过有的单词对应到 上。这个条件或规则的提出主要建模对空翻译,即源语言单词对应第0个目标语单词$t_0$的情况。
\vspace{0.5em}
\item 源语言单词可以翻译为空,这时它对应到一个虚拟或伪造的目标语单词$t_0$。在图\ref{figureC3.23}表示的例子中,``在''没有对应到``on the table''中的任意一个词,而是把它对应到$t_0$上。这个条件保证了所有的源语言单词都能找到一个目标语单词对应。这个条件也很好的引入了\textbf{空对齐}的思想,即源语言单词不对应任何真实存在的单词的情况。而这种空对齐的情况在翻译中是频繁出现的,比如虚词的翻译。
%----------------------------------------------
% 图3.21
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure323}
\caption{此处为图片的描述...}
\caption{空翻译的对齐(``在''对应到$t_0$}
\label{figureC3.23}
\end{figure}
%---------------------------
\vspace{0.5em}
\end{itemize}
\noindent\hspace{2em}那如何描述词对齐呢?给定源语句子$s$、目标译文$t$和词对齐$a$。其中$a_1$是由$a_m$\\到 共$m$个项依次组成,即$a=a_1...a_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
\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{此处为图片的描述...}
\caption{词对齐实例}
\label{figureC3.24}
\end{figure}
%---------------------------
\noindent\textbf{建模翻译模型}\index{Chapter3.3.2.2}
\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模型提出的第一个建模思想:句子之间的对应可以由单词之间的对应进行表示。更具体的说,把句子之间对应的概率转换为所有可能的词对齐的生成概率,如公式\ref{eqC3.21}所示。
\begin{equation}
\textrm{P}(s|t)=\sum_a\textrm{P}(s,a|t)
\label{eqC3.21}
\end{equation}
\noindent\hspace{2em}换句话说,公式\ref{eqC3.21}在求解$t$$s$的翻译概率或者$s$$t$的互译概率时,枚举$s$$t$之间所有可能的单词对齐,并把对应的对齐概率进行求和,得到了$t$$s$的翻译概率
\noindent\hspace{2em}公式\ref{eqC3.21}使用了简单的全概率公式把$\textrm{P}(s|t)$进行展开。通过访问$s$$t$之间所有可能的词对齐$a$,并把对应的对齐概率进行求和,得到了$t$$s$的翻译概率。这里,可以把词对齐看作翻译的隐含变量,这样从$t$$s$的生成就变为从$t$同时生成$s$和隐含变量$a$的问题。引入隐含变量是生成式模型常用的手段,通过使用隐含变量,可以把较为困难的端到端学习问题转化为分步学习问题
\noindent\hspace{2em}举个例子说明公式\ref{eqC3.21}。如图\ref{figureC3.25}所示,表示把求“谢谢 你”到“thank you”的翻译概率分解为9种可能的词对齐对应的概率的加和。我们用$t$$s$分别表示“谢谢 你”和“thank you”。为什么是9种词对齐呢?$s$加上空标记共3个词,而$t$仅有2个词,并且都有可能对应到$s$中任意词,所以共有$3\times3=9$种可能
\noindent\hspace{2em}举个例子说明公式\ref{eqC3.21}的实际意义。如图\ref{figureC3.25}所示,可以把从``谢谢 你''到``thank you''的翻译分解为9种可能的词对齐。因为源语言句子$s$有2个词,目标语言句子$t$加上空标记$t_0$共3个词,因此每个源语言单词有3个可能对齐的位置,整个句子共有$3\times3=9$种可能的词对齐
%----------------------------------------------
% 图3.21
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure325}
\caption{此处为图片的描述...}
\caption{一个汉译英句对的所有词对齐可能}
\label{figureC3.25}
\end{figure}
%---------------------------
\noindent\hspace{2em}在求解词对齐对应的概率 时,我们也可以用公式\ref{eqC3.13}定义的$g(s,t)$函数,但IBM模型用生成模型更加深刻更加细致地定义了它的计算,如公式\ref{eqC3.22}所示。其中$s$$a$$t$分别代表源语句子、目标语译文和词对齐;$s_j$$a_j$分别表示第$j$个源语单词及其对齐;$s_1^{j-1}$$a_1^{j}$表示第$j-1$个源语单词和第$j$个源语单词的对齐;$m$表示源语句子的长度。
\noindent\hspace{2em}接下来的问题是如何定义$\textrm{P}(s,a|t)$ - 即定义词对齐的生成概率。但是,隐含变量$a$仍然很复杂,因此直接定义$\textrm{P}(s,a|t)$也很困难,在IBM模型中,为了化简问题,$\textrm{P}(s,a|t)$被进一步分解。使用链式法则,可以得到:
\begin{equation}
\textrm{P}(s,a|t)=\textrm{P}(m|t)\prod_{j=1}^{m}{\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)}
\label{eqC3.22}
\end{equation}
\noindent\hspace{2em}生成模型不像端到端的深度学习,而是把生成数据的过程分解成若干步,通过概率分布对每一步进行建模,然后把它们组合成联合概率。如图\ref{figureC3.26}所示,我们将公式\ref{eqC3.22}分解为四个部分,并用不同的序号和颜色进行表示。下面我们介绍下每一部分的含义。
\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\hspace{2em}1. 根据译文$t$选择源文$s$的长度$m$,即估计概率分布$\textrm{P}(m|t)$
\noindent\hspace{2em}2. 当确定源文长度$m$后,循环每个位置$j$逐次生成单词。
\noindent\hspace{2em}3. 根据译文$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)$表示。
\begin{itemize}
\vspace{0.5em}
\item 根据译文$t$选择源文$s$的长度$m$,用$\textrm{P}(m|t)$表示;
\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)$表示;
\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)$表示。
\vspace{0.5em}
\end{itemize}
\noindent\hspace{2em}4. 根据译文$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)$
%----------------------------------------------
% 图3.26
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure326}
\caption{此处为图片的描述...}
\caption{{\red 这个图应该和公式3.19合并,因为都是描述的一个事情}}
\label{figureC3.26}
\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}定义的模型并没有做任何化简和假设,也就是说公式的左右两端是严格相等的。在后面的内容中会看到,这种将一个整体进行拆分的方法可以有助于分步骤化简并处理问题。
\noindent\textbf{举例说明}\index{Chapter3.3.2.3}
\noindent\textbf{(三)基于词对齐的翻译实例}\index{Chapter3.3.2.3}
\noindent\hspace{2em}我们用一个简单的例子来说明公式\ref{eqC3.22}。如图3.25所示,源语句子$s$是“在 桌子 上”,目标语译文$t$是“on the table”,以及词对齐$a$等于${1-0,2-3,3-1}$。基于当前的假设,我们套用公式\ref{eqC3.22}$t$生成$s$$a$,即求概率$\textrm{P}(s,a|t)$。求解的过程如下所示。
%----------------------------------------------
% 图3.26
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure327}
\caption{此处为图片的描述...}
\caption{汉译英词对齐实例}
\label{figureC3.27}
\end{figure}
%---------------------------
\noindent\hspace{2em}1. 首先根据译文确定源文$s$的单词数量,可知有3个单词。我们用公式\ref{eqC3.23}表示。
\begin{equation}
\textrm{P}(m=3|'t_0\;on\;the\;table')
\label{eqC3.23}
\end{equation}
\noindent\hspace{2em}我们用一个简单的例子来对公式\ref{eqC3.22}进行进一步说明。如图\ref{figureC3.27}所示,源语言句子``在 桌子 上''目标语译文``on the table''之间的词对齐为$a=\{1-0,2-3,3-1\}$。基于当前的假设,我们套用公式\ref{eqC3.22}$t$生成$s$$a$,即求概率$\textrm{P}(s,a|t)$。求解的过程如下所示:
\noindent\hspace{2em}2. 再确定源语单词$s_1$由谁生成的且生成的是什么。由词对齐知道$s_1$由第0个目标语单词生成的,也就是$t_0$。当知道了$s_1$$t_0$生成的,就可以通过$t_0$生成源语第一个单词“在”。我们用公式\ref{eqC3.24}表示。
\begin{equation}
\begin{split}
&{\textrm{P}(a_1\;= 0\;\; |\phi,\phi,3,'t_0\;on\;the\;table')\quad \times}\\
&{\textrm{P}(s_1\;= \textrm{}\;|\{1-0\},\phi,3,'t_0\;on\;the\;table') }
\label{eqC3.24}
\end{split}
\end{equation}
\begin{itemize}
\noindent\hspace{2em}3. 类似于过程2,我们依次确定源语单词$s_2$$s_3$由谁生成且生成的是什么。如公式\ref{eqC3.25}\ref{eqC3.26}所示。
\begin{equation}
\begin{split}
&{\textrm{P}(a_2\;= 3\;\; |\{1-0\},'\textrm{}',3,'t_0\;on\;the\;table')\quad \times}\\
&{\textrm{P}(s_1\;= \textrm{桌子}\;|\{1-0,2-3\},'\textrm{}',3,'t_0\;on\;the\;table') }
\label{eqC3.25}
\end{split}
\end{equation}
\begin{equation}
\begin{split}
&{\textrm{P}(a_3\;= 1\;\; |\{1-0,2-3\},'\textrm{\;桌子}',3,'t_0\;on\;the\;table')\quad \times}\\
&{\textrm{P}(s_1\;= \textrm{}\;|\{1-0,2-3,3-1\},'\textrm{\;桌子}',3,'t_0\;on\;the\;table') }
\label{eqC3.26}
\end{split}
\end{equation}
\vspace{0.5em}
\item 首先根据译文确定源文$s$的单词数量($m=3$),即$\textrm{P}(m=3|\textrm{``}t_0\;\textrm{on\;the\;table''})$
\noindent\hspace{2em}4. 最后将公式\ref{eqC3.23}\ref{eqC3.24}\ref{eqC3.25}\ref{eqC3.26}乘到一起,就得到概率 ,如公式\ref{eqC3.27}所示。
\begin{equation}
\begin{split}
{\textrm{P}(s,a|t)}\; &=\;{\textrm{P}(m|t) \prod\limits_{j=1}^{m} \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)}\\
&={\textrm{P}(m=3 \mid \textrm{'$t_0$ on the table'}){\times}}\\
&\quad\;{\textrm{P}(a_1=0 \mid \phi,\phi,3,\textrm{'$t_0$ on the table'}){\times} }\\
&\quad\;{\textrm{P}(f_1=\textrm{} \mid \textrm{\{1-0\}},\phi,3,\textrm{'$t_0$ on the table'}){\times} } \\
&\quad\;{\textrm{P}(a_2=3 \mid \textrm{\{1-0\}},\textrm{'在'},3,\textrm{'$t_0$ on the table'}) {\times}}\\
&\quad\;{\textrm{P}(f_2=\textrm{桌子} \mid \textrm{\{1-0,2-3\}},\textrm{'在'},3,\textrm{'$t_0$ on the table'}) {\times}} \\
&\quad\;{\textrm{P}(a_3=1 \mid \textrm{\{1-0,2-3\}},\textrm{'在 桌子'},3,\textrm{'$t_0$ on the table'}) {\times}}\\
&\quad\;{\textrm{P}(f_3=\textrm{} \mid \textrm{\{1-0,2-3,3-1\}},\textrm{'在 桌子'},3,\textrm{'$t_0$ 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{''}) $
\vspace{0.5em}
\item 类似于生成$s_1$,我们依次确定源语单词$s_2$$s_3$由谁生成且生成的是什么;
\vspace{0.5em}
\end{itemize}
\noindent\hspace{2em}最后得到基于词对齐$a$的翻译概率为:
\begin{eqnarray}
\textrm{P}(s,a|t)\; &= & \textrm{P}(m|t) \prod\limits_{j=1}^{m} \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) \nonumber \\
&=&\textrm{P}(m=3 \mid \textrm{``$t_0$ on the table''}){\times} \nonumber \\
&&{\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''}) }
\label{eqC3.27}
\end{split}
\end{equation}
\end{eqnarray}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{IBM模型1-2}\index{Chapter3.4}
\noindent\hspace{2em}回顾公式\ref{eqC3.21}和公式\ref{eqC3.22},我们发现了两个严重的问题。问题一、对于公式(3.20),如何遍历所有的对齐$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)$。Peter E. Brown等人总共提出了5种解决方法。第一个问题可以通过一定的数学技巧进行高效的求解;对于第二个问题,可以通过一些假设进行化简,依据化简的层次和复杂度不同,可以分为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种解决方案,这也就是被后人所熟知的IBM翻译模型。第一个问题可以通过一定的数学或者工程技巧进行求解;第二个问题可以通过一些假设进行化简,依据化简的层次和复杂度不同,可以分为IBM模型1、IBM模型2、IBM模型3、IBM模型4以及IBM模型5。本节首先介绍较为简单的IBM模型1-2。
%从此处往下公式+2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{IBM模型1}\index{Chapter3.4.1}
\noindent\hspace{2em}在IBM模型1中通过一些假设,对公式\ref{eqC3.22}中的三个项进行了简化。
\noindent\hspace{2em}IBM模型1对公式\ref{eqC3.22}中的三项进行了简化。具体化简方法如下:
\noindent\hspace{2em}第一、假设$\textrm{P}(m|t)$为常数$\varepsilon$,即源语言的长度是等分布的。如公式\ref{eqC3.28}所示。
\begin{itemize}
\vspace{0.5em}
\item 假设$\textrm{P}(m|t)$为常数$\varepsilon$,即源语言的长度的生成概率服从均匀分布,如下:
\begin{equation}
\textrm{P}(m|t)\; \equiv \; \varepsilon
\label{eqC3.28}
\end{equation}
\noindent\hspace{2em}第二、对齐概率$\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)$仅依赖于译文长度$l=1$,即假设对齐概率也是均匀分布。换句话说,对于任何$j$到它对齐到目标语句子的任何位置都是等概率的。比如译文为“on the table”,再加上$t_0$共4个位置,相应的源语句子的单词对齐到这4个位置的概率是一样的。
\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个位置的概率是一样的。具体描述如下:
\begin{equation}
\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t) \equiv \frac{1}{l+1}
\label{eqC3.29}
\end{equation}
\noindent\hspace{2em}第三、源语单词$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”有关系,与其他单词没有关系。
\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''有关系,与其他单词没有关系。
\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}
\noindent\hspace{2em}我们用一个简单的例子说明公式\ref{eqC3.30}。如图\ref{figureC3.28}所示,其中“桌子”对齐“table”。可形象化的描述为$f(s_2 |t_(a_2 ))=f(桌子|table)$,表示给定“table”翻译为“桌子”的概率。
我们用一个简单的例子对公式\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}
%----------------------------------------------
% 图3.28
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure328}
\caption{此处为图片的描述...}
\caption{IBM模型1中词汇一级的对应}
\label{figureC3.28}
\end{figure}
%---------------------------
\noindent\hspace{2em}将上述三个假设和公式\ref{eqC3.22}代入公式\ref{eqC3.21}中,得到概率$\textrm{P}(s|t)$的表示式,如公式\ref{eqC3.31}所示。
\begin{equation}
\begin{split}
{\textrm{P}(s|t)}&=\;{\sum_a{\textrm{P}(s,a|t)}}\\
&=\;{\sum_a{\textrm{P}(m|t)}\prod_{j=1}^{m}{\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)\textrm{P}(s_j |a_1^j,m,t)}}\\
&=\;{\sum_a{\varepsilon}\prod_{j=1}^{m}{\frac{1}{l+1}f(s_j|t_{a_j})}}\\
&=\;{\sum_a{\frac{\varepsilon}{(l+1)^m}}\prod_{j=1}^{m}f(s_j|t_{a_j})}
\noindent\hspace{2em}将上述三个假设和公式\ref{eqC3.22}代入公式\ref{eqC3.21}中,得到概率$\textrm{P}(s|t)$的表达式:
\begin{eqnarray}
\textrm{P}(s|t) & = & \sum_a{\textrm{P}(s,a|t)} \nonumber \\
& = & \sum_a{\textrm{P}(m|t)}\prod_{j=1}^{m}{\textrm{P}(a_j|a_1^{j-1},s_1^{j-1},m,t)\textrm{P}(s_j |a_1^j,m,t)} \nonumber \\
& = & \sum_a{\varepsilon}\prod_{j=1}^{m}{\frac{1}{l+1}f(s_j|t_{a_j})} \nonumber \\
& = &\sum_a{\frac{\varepsilon}{(l+1)^m}}\prod_{j=1}^{m}f(s_j|t_{a_j})
\label{eqC3.31}
\end{split}
\end{equation}
\end{eqnarray}
\noindent\hspace{2em}在公式\ref{eqC3.31}需要遍历所有的对齐,即$\sum_a{\bullet}$。但这种表示不够直观,因此我们把这个过程重新表示为公式\ref{eqC3.32}
\noindent\hspace{2em}在公式\ref{eqC3.31},我们需要遍历所有的对齐,即$\sum_a{\cdot}$。但这种表示不够直观,因此可以把这个过程重新表示为如下形式:
\begin{equation}
\textrm{P}(s|t)={\sum_{a_1=0}^{l}\cdots}{\sum_{a_m=0}^{l}\frac{\varepsilon}{(l+1)^m}}{\prod_{j=1}^{m}f(s_j|t_{a_j})}
\label{eqC3.32}
\end{equation}
\noindent\hspace{2em}我们可以把公式\ref{eqC3.32}分为两个部分进行理解和计算。第一部分:遍历所有的对齐$a$。其中$a$$\{a_1,...,a_m\}$组成,每个$a_j\in \{a_1,...,a_m\}$从译文的开始位置$(0)$循环到截止位置$(l)$。如图\ref{figureC3.28}表示的例子,描述的是源语单词$s_3$从译文的开始$t_0$遍历到结尾$t_3$,即$a_3$。第二部分: 对于每个$a$计对齐概率$\textrm{P}(s,a|t)$
\noindent\hspace{2em}我们可以把公式\ref{eqC3.32}分为两个部分进行理解和计算。第一部分:遍历所有的对齐$a$。其中$a$$\{a_1,...,a_m\}$组成,每个$a_j\in \{a_1,...,a_m\}$从译文的开始位置$(0)$循环到截止位置$(l)$。如图\ref{figureC3.28}表示的例子,描述的是源语单词$s_3$从译文的开始$t_0$遍历到结尾$t_3$,即$a_3$。第二部分: 对于每个$a$加对齐概率$\textrm{P}(s,a|t)=\frac{\varepsilon}{(l+1)^m}{\prod_{j=1}^{m}f(s_j|t_{a_j})}$
%----------------------------------------------
% 图3.29
\begin{figure}[htp]
......@@ -735,7 +755,7 @@ g(s,t) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)} \times \textrm{P
\end{figure}
%---------------------------
\noindent\hspace{2em}这样就得到了模型1中翻译概率的计算式。它的形式相比原始的计算式要简单许多。可以看出模型1的假设把翻译模型化简成了非常简单的形式。对于给定的$s$$a$$t$,只要知道$\varepsilon$$t(s_j |t_(a_j ))$就可以计算出$\textrm{P}(s|t)$,进而求出$\textrm{P}(s|t)$
\noindent\hspace{2em}这样就得到了IBM模型1中句子翻译概率的计算式。它的形式相比原始的计算式要简单许多。可以看出IBM模型1的假设把翻译模型化简成了非常简单的形式。对于给定的$s$$a$$t$,只要知道$\varepsilon$$t(s_j |t_(a_j ))$就可以计算出$\textrm{P}(s|t)$,进而求出$\textrm{P}(s|t)$
\subsection{IBM模型2}\index{Chapter3.4.2}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论