Commit 796613e8 by 曹润柘

check and modify chapter3

parent 94515e8f
......@@ -13,7 +13,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{基于词的翻译模型}
\parinterval 使用统计方法对翻译问题进行建模是机器翻译发展中的重要里程碑。这种思想也影响了当今的统计机器翻译和神经机器翻译方法。虽然技术不断发展,传统的统计模型已经不再``新鲜'',但它对于今天机器翻译的研究仍然有着重要的启示作用。在了解前沿、展望未来的同时,我们更要冷静的思考前人给我们带来了什么。基于此,本章将介绍统计机器翻译的开山之作\ \ \ \ IBM模型,它提出了使用统计模型进行翻译的思想,并在建模中引入了单词对齐这一重要概念。IBM模型由Peter E. Brown等人于上世纪九十年代初提出\cite{brown1993mathematics}。客观的说,这项工作的视野和对问题的理解,已经超过当时很多人所能看到的东西,其衍生出来的一系列方法和新的问题还被后人花费将近10年的时间来进行研究与讨论。时至今日,IBM模型中的一些思想仍然影响着很多研究工作。
\parinterval 使用统计方法对翻译问题进行建模是机器翻译发展中的重要里程碑。这种思想也影响了当今的统计机器翻译和神经机器翻译方法。虽然技术不断发展,传统的统计模型已经不再``新鲜'',但它对于今天机器翻译的研究仍然有着重要的启示作用。在了解前沿、展望未来的同时,我们更要冷静的思考前人给我们带来了什么。基于此,本章将介绍统计机器翻译的开山之作\ \dash \ IBM模型,它提出了使用统计模型进行翻译的思想,并在建模中引入了单词对齐这一重要概念。IBM模型由Peter E. Brown等人于上世纪九十年代初提出\cite{brown1993mathematics}。客观的说,这项工作的视野和对问题的理解,已经超过当时很多人所能看到的东西,其衍生出来的一系列方法和新的问题还被后人花费将近10年的时间来进行研究与讨论。时至今日,IBM模型中的一些思想仍然影响着很多研究工作。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{什么是基于词的翻译模型}\index{Chapter3.1}%Index的作用,目前不清晰
......@@ -34,7 +34,7 @@
\end{figure}
%-------------------------------------------
\parinterval 上面的例子反映了人在做翻译时所使用的一些知识:首先,两种语言单词的顺序可能不一致,译文需要符合目标语的习惯,这也是我们常说翻译的\textbf{流畅度}问题(fluency);其次,源语言单词需要准确的被翻译出来\footnote{当然,对于一些意译的情况或者虚词并不需要翻译。},也是我们常说的翻译的\textbf{准确性}\textbf{充分性}问题(adequacy)。为了达到以上目的,传统观点认为翻译需要过程包含三个步骤(图 \ref{fig:3-2}
\parinterval 上面的例子反映了人在做翻译时所使用的一些知识:首先,两种语言单词的顺序可能不一致,译文需要符合目标语的习惯,这也是我们常说翻译的\textbf{流畅度}问题\textbf{(fluency)};其次,源语言单词需要准确的被翻译出来\footnote{当然,对于一些意译的情况或者虚词并不需要翻译。},也是我们常说的翻译的\textbf{准确性}\textbf{充分性}问题\textbf{(adequacy)}。为了达到以上目的,传统观点认为翻译需要过程包含三个步骤(图 \ref{fig:3-2}
\begin{itemize}
\item \textbf{分析:}将源语言句子切分或者表示为能够处理的最小单元。基于词的翻译模型中,最小处理单元就是单词,因此在这里也可以简单地将分析理解为分词\footnote{在后续章节中会看到,分析也包括对语言结构的深入分析,但是这里为了突出基于单词的概念,因此把问题简化为最简单的情况。}
......@@ -107,15 +107,15 @@
\begin{figure}[htp]
\centering
\input{./Chapter3/Figures/figure-process-of-machine-translation}
\caption{机器翻译的过程 - 把单词的译文进行拼装,并找到最优的拼装路径}
\caption{机器翻译的过程\ \dash \ 把单词的译文进行拼装,并找到最优的拼装路径}
\label{fig:3-4}
\end{figure}
%---------------------------
\parinterval 对于第二个问题,尽管机器能够找到很多这样的译文选择路径,但它并不知道哪些路径是好的。说的再直白一些,简单的枚举路径实际上就是一个体力活,没有什么智能。因此计算机还需要再聪明一些,运用它的能够``掌握''的知识判断翻译结果的好与坏。这一步是最具挑战的,当然也有很多思路。在统计机器翻译中,这个问题被定义为:设计一种统计模型,它可以给每个译文一个可能性,而这个可能性越高表明译文越接近人工翻译。如图\ref{fig:3-4}所示,每个单词翻译候选的右侧黑色框里的数字就是单词的翻译概率,使用这些单词的翻译概率,我们可以得到整句译文的概率(符号P表示)。这样,我们用概率化的模型描述了每个翻译候选的可能性。基于每个翻译候选的可能性,机器翻译系统可以对所有的翻译``路径''进行打分,比如,图\ref{fig:3-4}中第一条路径的分数为0.042,第二条是0.006,以此类推。最后,系统可以选择分数最高的路径作为源语言句子的最终译文。
\parinterval 对于第二个问题,尽管机器能够找到很多这样的译文选择路径,但它并不知道哪些路径是好的。说的再直白一些,简单的枚举路径实际上就是一个体力活,没有什么智能。因此计算机还需要再聪明一些,运用它的能够``掌握''的知识判断翻译结果的好与坏。这一步是最具挑战的,当然也有很多思路。在统计机器翻译中,这个问题被定义为:设计一种统计模型,它可以给每个译文一个可能性,而这个可能性越高表明译文越接近人工翻译。如图\ref{fig:3-4}所示,每个单词翻译候选的右侧黑色框里的数字就是单词的翻译概率,使用这些单词的翻译概率,我们可以得到整句译文的概率(符号P表示)。这样,我们用概率化的模型描述了每个翻译候选的可能性。基于每个翻译候选的可能性,机器翻译系统可以对所有的翻译``路径''进行打分,比如,图\ref{fig:3-4}中第一条路径的分数为0.042,第二条是0.006,以此类推。最后,系统可以选择分数最高的路径作为源语言句子的最终译文。
\vspace{-0.5em}
\subsubsection{(三)人工 vs. 机器}\index{Chapter3.2.1.3}
\parinterval 人在翻译时的决策是非常确定并且快速的,但计算机处理这个问题时却充满了概率化的思想。当然它们也有类似的地方。首先,计算机使用统计模型的目的是把翻译知识变得可计算,并把这些``知识''储存在相关的模型参数中,这个模型和我们大脑的作用是类似的\footnote{这里,并不是要把统计模型等同于生物学或者认知科学上的人脑,我们指的是他们处理翻译问题时发挥的作用类似。};其次,计算机对统计模型进行训练的过程相当于人类学习知识的过程,或者二者都可以称为学习;再有,计算机使用学习到的模型对新句子进行翻译的过程相当于人运用知识的过程。在统计机器翻译中,模型学习的过程被称为\textbf{训练},目的是从双语平行数据中自动学习翻译``知识'';而使用模型处理新句子的过程被称为\textbf{解码}\textbf{推断},目的是使用学习到的知识对新的句子进行翻译。这也反映了机器翻译的两个核心步骤:训练和解码。图\ref{fig:3-4}的右侧标注在翻译过程中训练和解码的位置。最终,统计机器翻译的核心由三部分构成 - 建模、训练和解码。本章后续内容会围绕这三个问题展开讨论。
\parinterval 人在翻译时的决策是非常确定并且快速的,但计算机处理这个问题时却充满了概率化的思想。当然它们也有类似的地方。首先,计算机使用统计模型的目的是把翻译知识变得可计算,并把这些``知识''储存在相关的模型参数中,这个模型和我们大脑的作用是类似的\footnote{这里,并不是要把统计模型等同于生物学或者认知科学上的人脑,我们指的是他们处理翻译问题时发挥的作用类似。};其次,计算机对统计模型进行训练的过程相当于人类学习知识的过程,或者二者都可以称为学习;再有,计算机使用学习到的模型对新句子进行翻译的过程相当于人运用知识的过程。在统计机器翻译中,模型学习的过程被称为\textbf{训练},目的是从双语平行数据中自动学习翻译``知识'';而使用模型处理新句子的过程被称为\textbf{解码}\textbf{推断},目的是使用学习到的知识对新的句子进行翻译。这也反映了机器翻译的两个核心步骤:训练和解码。图\ref{fig:3-4}的右侧标注在翻译过程中训练和解码的位置。最终,统计机器翻译的核心由三部分构成\ \dash \ 建模、训练和解码。本章后续内容会围绕这三个问题展开讨论。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{基本框架}\index{Chapter3.2.2}
......@@ -137,7 +137,7 @@
\label{fig:3-5}
\end{figure}
%---------------------------
\parinterval 接下来,我们将介绍模型训练和解码的方法。在模型学习中,我们分两小节进行描述 - 单词级翻译和句子级翻译。实现单词级翻译是实现句子级翻译的基础。换言之,句子级翻译的统计模型是建立在单词翻译之上的。在解码中,我们将介绍一个高效的搜索算法,其中也使用到了剪枝和启发式搜索的思想。
\parinterval 接下来,我们将介绍模型训练和解码的方法。在模型学习中,我们分两小节进行描述\ \dash \ 单词级翻译和句子级翻译。实现单词级翻译是实现句子级翻译的基础。换言之,句子级翻译的统计模型是建立在单词翻译之上的。在解码中,我们将介绍一个高效的搜索算法,其中也使用到了剪枝和启发式搜索的思想。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{单词翻译概率}\index{Chapter3.2.3}\label{chapter3.2.3}
......@@ -188,7 +188,7 @@
\label{example3-1}
\end{example}
\parinterval 看一个具体的例子,如例\ref{example3-1}所示,有一个汉英互译的句对$(\mathbf{s},\mathbf{t})$。假设,$x=\textrm{``翻译''}$$y=\textrm{``translation''}$,现在要计算$x$$y$共现的总次数。``翻译''和``translation''分别在$\mathbf{s}$$\mathbf{t}$中出现了2次,因此$c(\textrm{``翻译''},\textrm{``translation''};\mathbf{s},\mathbf{t})$ 等于4。而对于$\sum_{x',y'} c(x',y';\mathbf{s},$ $\mathbf{t})$,因为$x'$$y'$分别表示的是$\mathbf{s}$$\mathbf{t}$中的任意词,所以$\sum_{x',y'} c(x',y';\mathbf{s},\mathbf{t})$表示所有单词对的数量 -$\mathbf{s}$的词数乘以$\mathbf{t}$的词数。最后,``翻译''和``translation''的单词翻译概率为:
\parinterval 看一个具体的例子,如例\ref{example3-1}所示,有一个汉英互译的句对$(\mathbf{s},\mathbf{t})$。假设,$x=\textrm{``翻译''}$$y=\textrm{``translation''}$,现在要计算$x$$y$共现的总次数。``翻译''和``translation''分别在$\mathbf{s}$$\mathbf{t}$中出现了2次,因此$c(\textrm{``翻译''},\textrm{``translation''};\mathbf{s},\mathbf{t})$ 等于4。而对于$\sum_{x',y'} c(x',y';\mathbf{s},$ $\mathbf{t})$,因为$x'$$y'$分别表示的是$\mathbf{s}$$\mathbf{t}$中的任意词,所以$\sum_{x',y'} c(x',y';\mathbf{s},\mathbf{t})$表示所有单词对的数量\ \dash \ $\mathbf{s}$的词数乘以$\mathbf{t}$的词数。最后,``翻译''和``translation''的单词翻译概率为:
\begin{eqnarray}
\textrm{P}(\text{``翻译''},\text{``translation''}; \mathbf{s},\mathbf{t}) & = & \frac{c(\textrm{``翻译''},\textrm{``translation''};\mathbf{s},\mathbf{t})}{\sum_{x',y'} c(x',y';\mathbf{s},\mathbf{t})} \nonumber \\
& = & \frac{4}{|\mathbf{s}|\times |\mathbf{t}|} \nonumber \\
......@@ -224,7 +224,7 @@
\qquad\qquad\quad $\mathbf{s}^2$ = 那\quad 人工\quad {\color{red}翻译}\quad\quad ?
\qquad\qquad\quad $\mathbf{t}^2$ = so\; what\; is\; human\; {\color{red}translation}\;?
\qquad\qquad\quad $\mathbf{t}^2$ = so\; what\; is\; human\; {\color{red}translation}\; ?
\label{example3-2}
\end{example}
......@@ -279,7 +279,7 @@
\parinterval 回到设计$g(\mathbf{s},\mathbf{t})$的问题上。这里,我们采用``大题小作''的方法,这个技巧在第二章已经进行了充分的介绍。具体来说,直接建模句子之间的对应比较困难,但可以利用单词之间的对应来描述句子之间的对应关系。这就用到了上一小节所介绍的单词翻译概率。
\parinterval 我们首先引入一个非常重要的概念\ \ \textbf{词对齐},它是统计机器翻译中最核心的概念之一。词对齐描述了平行句对中单词之间的对应关系,它体现了一种观点:本质上句子之间的对应是由词之间的对应表示的。当然,这个观点在神经机器翻译或者其它模型中可能会有不同的理解,但是翻译句子的过程中我们考虑词级的对应关系是符合我们对语言的认知的。图\ref{fig:3-7}展示了一个句对$\mathbf{s}$$\mathbf{t}$,单词的右下标数字表示了该词在句中的位置,而虚线表示的是句子$\mathbf{s}$$\mathbf{t}$中的词对齐关系。比如,``满意''的右下标数字5表示在句子$\mathbf{s}$中处于第5个位置,``satisfied''的右下标数字3表示在句子$\mathbf{t}$中处于第3个位置,``满意''和``satisfied''之间的虚线表示两个单词之间是对齐的。为方便描述,我们用二元组$(j,i)$来描述词对齐,它表示源语言句子的第$j$个单词对应目标语言句子的第$i$个单词,即单词$s_j$$t_i$对应。通常,也会把$(j,i)$称作一条\textbf{词对齐连接}。图\ref{fig:3-7}中共有5条虚线,表示有5组单词之间的词对齐连接。我们把这些词对齐连接构成的集合作为词对齐的一种表示,记为$\mathbf{a}$,即$A={\{(1,1),(2,4),(3,5),(4,2)(5,3)}\}$
\parinterval 我们首先引入一个非常重要的概念\ \dash \ \textbf{词对齐},它是统计机器翻译中最核心的概念之一。词对齐描述了平行句对中单词之间的对应关系,它体现了一种观点:本质上句子之间的对应是由词之间的对应表示的。当然,这个观点在神经机器翻译或者其它模型中可能会有不同的理解,但是翻译句子的过程中我们考虑词级的对应关系是符合我们对语言的认知的。图\ref{fig:3-7}展示了一个句对$\mathbf{s}$$\mathbf{t}$,单词的右下标数字表示了该词在句中的位置,而虚线表示的是句子$\mathbf{s}$$\mathbf{t}$中的词对齐关系。比如,``满意''的右下标数字5表示在句子$\mathbf{s}$中处于第5个位置,``satisfied''的右下标数字3表示在句子$\mathbf{t}$中处于第3个位置,``满意''和``satisfied''之间的虚线表示两个单词之间是对齐的。为方便描述,我们用二元组$(j,i)$来描述词对齐,它表示源语言句子的第$j$个单词对应目标语言句子的第$i$个单词,即单词$s_j$$t_i$对应。通常,也会把$(j,i)$称作一条\textbf{词对齐连接}。图\ref{fig:3-7}中共有5条虚线,表示有5组单词之间的词对齐连接。我们把这些词对齐连接构成的集合作为词对齐的一种表示,记为$\mathbf{a}$,即$A={\{(1,1),(2,4),(3,5),(4,2)(5,3)}\}$
%----------------------------------------------
% 图3.11
\begin{figure}[htp]
......@@ -351,13 +351,13 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\subsection{解码}\index{Chapter3.2.5}
\label{sec:simple-decoding}
\parinterval \textbf{解码}是指在得到翻译模型后,对于新输入的句子生成最佳译文的过程。具体来说,当给定任意的源语言句子$\mathbf{s}$,解码系统要找到翻译概率最大的目标语译文$\hat{\mathbf{t}}$。这个过程可以被形式化描述为:
\parinterval \textbf{解码}是指在得到翻译模型后,对于新输入的句子生成最佳译文的过程。具体来说,当给定任意的源语言句子$\mathbf{s}$,解码系统要找到翻译概率最大的目标语译文$\hat{\mathbf{t}}$。这个过程可以被形式化描述为:
\begin{eqnarray}
\widehat{\mathbf{t}}=\argmax_{\mathbf{t}} \textrm{P}(\mathbf{t}|\mathbf{s})
\label{eqC3.12-new}
\end{eqnarray}
\noindent 其中$\argmax_{t} \textrm{P}(\mathbf{t}|\mathbf{s})$表示找到使$\textrm{P}(\mathbf{t}|\mathbf{s})$达到最大时的译文$\mathbf{t}$。结合上一小节中关于$\textrm{P}(\mathbf{t}|\mathbf{s})$\\的定义,把公式\ref{eqC3.7-new}带入公式\ref{eqC3.12-new}得到:
\noindent 其中$\argmax_{\mathbf{t}} \textrm{P}(\mathbf{t}|\mathbf{s})$表示找到使$\textrm{P}(\mathbf{t}|\mathbf{s})$达到最大时的译文$\mathbf{t}$。结合上一小节中关于$\textrm{P}(\mathbf{t}|\mathbf{s})$\\的定义,把公式\ref{eqC3.7-new}带入公式\ref{eqC3.12-new}得到:
\begin{eqnarray}
\widehat{\mathbf{t}}=\argmax_{\mathbf{t}}\frac{g(\mathbf{s},\mathbf{t})}{\sum_{\mathbf{t}^{'}g(\mathbf{s},\mathbf{t}^{'})}}
\label{eqC3.13-new}
......@@ -419,7 +419,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\vspace{5.5em}%调整布局用
\section{基于词的翻译建模}\index{Chapter3.3}
\parinterval\ref{sec:simple-mt-example}节中,我们实现了一个简单的基于词的统计机器翻译模型,内容涉及建模、训练和解码。但是,很多问题还没有进行深入讨论,比如,如何处理空翻译?如何对调序问题进行建模?如何用更严密的数学模型描述翻译过程?如何对更加复杂的统计模型进行训练?等等。针对以上问题,本节将系统的介绍IBM统计机器翻译模型。作为经典的器翻译模型,对IBM模型的学习将帮助我们建立对自然语言处理问题的系统化建模思想,特别是对问题的数学描述方法将会成为理解本书后续内容的基础工具。
\parinterval\ref{sec:simple-mt-example}节中,我们实现了一个简单的基于词的统计机器翻译模型,内容涉及建模、训练和解码。但是,还有很多问题还没有进行深入讨论,比如,如何处理空翻译?如何对调序问题进行建模?如何用更严密的数学模型描述翻译过程?如何对更加复杂的统计模型进行训练?等等。针对以上问题,本节将系统的介绍IBM统计机器翻译模型。作为经典的器翻译模型,对IBM模型的学习将帮助我们建立对自然语言处理问题的系统化建模思想,特别是对问题的数学描述方法将会成为理解本书后续内容的基础工具。
\subsection{噪声信道模型}\index{Chapter3.3.1}
......@@ -434,7 +434,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\end{figure}
%---------------------------
\parinterval IBM模型也是建立在如上统计模型之上。具体来说,IBM模型的基础是\textbf{噪声信道模型}(Noise Channel Model),它是由香农在上世纪40年代末提出来的\cite{shannon1949communication},并于上世纪80年代应用在语言识别领域,后来又被Brown等人用于统计机器翻译中\cite{brown1990statistical}
\parinterval IBM模型也是建立在如上统计模型之上。具体来说,IBM模型的基础是\textbf{噪声信道模型(Noise Channel Model)},它是由香农在上世纪40年代末提出来的\cite{shannon1949communication},并于上世纪80年代应用在语言识别领域,后来又被Brown等人用于统计机器翻译中\cite{brown1990statistical}
\parinterval 在噪声信道模型中,源语言句子$\mathbf{s}$(信宿)被看作是由目标语言句子$\mathbf{t}$(信源)经过一个有噪声的信道得到的。如果知道了$\mathbf{s}$和信道的性质,我们可以通过$\textrm{P}(\mathbf{t}|\mathbf{s})$得到信源的信息,这个过程如图\ref{fig:3-13}所示。
......@@ -448,7 +448,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\end{figure}
%---------------------------
\parinterval 举个例子。对于汉译英的翻译任务,汉语句子$\mathbf{s}$可以被看作是英语句子$\mathbf{t}$加入噪声通过信道后得到的结果。换句话说,英语句子经过噪声-信道传输时发生了变化,在信道的输出端呈现为汉语句子。于是我们需要根据观察到的汉语特征,通过概率$\textrm{P}(\mathbf{t}|\mathbf{s})$猜测最为可能的英语句子。这个找到最可能的目标语句(信源)的过程也被称为\textbf{解码}(decoding)。直到今天,解码这个概念也被广泛的使用在机器翻译及相关任务中。这个过程也可以表述为:给定输入$\mathbf{s}$,找到最可能的输出$\mathbf{t}$,使得$\textrm{P}(\mathbf{t}|\mathbf{s})$达到最大:
\parinterval 举个例子。对于汉译英的翻译任务,汉语句子$\mathbf{s}$可以被看作是英语句子$\mathbf{t}$加入噪声通过信道后得到的结果。换句话说,英语句子经过噪声-信道传输时发生了变化,在信道的输出端呈现为汉语句子。于是我们需要根据观察到的汉语特征,通过概率$\textrm{P}(\mathbf{t}|\mathbf{s})$猜测最为可能的英语句子。这个找到最可能的目标语句(信源)的过程也被称为\textbf{解码(decoding)}。直到今天,解码这个概念也被广泛的使用在机器翻译及相关任务中。这个过程也可以表述为:给定输入$\mathbf{s}$,找到最可能的输出$\mathbf{t}$,使得$\textrm{P}(\mathbf{t}|\mathbf{s})$达到最大:
\begin{eqnarray}
\widehat{\mathbf{t}}=\argmax_{\mathbf{t}}\textrm{P}(\mathbf{t}|\mathbf{s})
\label{eqC3.15-new}
......@@ -461,7 +461,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\label{eqC3.16-new}
\end{eqnarray}
\parinterval 公式\ref{eqC3.16-new}$\mathbf{s}$$\mathbf{t}$的翻译概率转化为$\frac{\textrm{P}(\mathbf{s}|\mathbf{t})\textrm{P(t)}}{\textrm{P}(\mathbf{s})}$,它包括三个部分:第一部分是由译文$\mathbf{t}$到源语言句子$\mathbf{s}$的翻译概率$\textrm{P}(\mathbf{s}|\mathbf{t})$,也被称为翻译模型。它表示给定目标语句$\mathbf{t}$生成源语句$\mathbf{s}$的概率,需要注意是翻译的方向已经从$\textrm{P}(\mathbf{s}|\mathbf{t})$转向了$\textrm{P}(\mathbf{t}|\mathbf{s})$,但无须刻意的区分,可以简单地理解为翻译模型刻画了$\mathbf{s}$$\mathbf{t}$的翻译对应程度;第二部分是$\textrm{P}(\mathbf{t})$,也被称为语言模型。它表示的是目标语言句子$\mathbf{t}$出现的可能性;第三部分是$\textrm{P}(\mathbf{s})$,表示源语言句子$\mathbf{s}$出现的可能性。因为$\mathbf{s}$是输入的不变量,而且$\textrm{P}(\mathbf{s}) \ge 0$,所以省略分母部分$\textrm{P}(\mathbf{s})$不会影响$\frac{\textrm{P}(\mathbf{s}|\mathbf{t})\textrm{P}(\mathbf{t})}{\textrm{P}(\mathbf{s})}$最大值的求解。于是,机器翻译的目标可以被重新定义为:给定源语言句子$\mathbf{s}$,寻找这样的目标语言译文$\mathbf{t}$,它使得翻译模型$\textrm{P}(\mathbf{s}|\mathbf{t})$和语言模型$\textrm{P}(\mathbf{t})$乘积最大:
\parinterval 公式\ref{eqC3.16-new}$\mathbf{s}$$\mathbf{t}$的翻译概率转化为$\frac{\textrm{P}(\mathbf{s}|\mathbf{t})\textrm{P(t)}}{\textrm{P}(\mathbf{s})}$,它包括三个部分:第一部分是由译文$\mathbf{t}$到源语言句子$\mathbf{s}$的翻译概率$\textrm{P}(\mathbf{s}|\mathbf{t})$,也被称为翻译模型。它表示给定目标语句$\mathbf{t}$生成源语句$\mathbf{s}$的概率,需要注意是翻译的方向已经从$\textrm{P}(\mathbf{t}|\mathbf{s})$转向了$\textrm{P}(\mathbf{s}|\mathbf{t})$,但无须刻意的区分,可以简单地理解为翻译模型刻画了$\mathbf{s}$$\mathbf{t}$的翻译对应程度;第二部分是$\textrm{P}(\mathbf{t})$,也被称为语言模型。它表示的是目标语言句子$\mathbf{t}$出现的可能性;第三部分是$\textrm{P}(\mathbf{s})$,表示源语言句子$\mathbf{s}$出现的可能性。因为$\mathbf{s}$是输入的不变量,而且$\textrm{P}(\mathbf{s}) \ge 0$,所以省略分母部分$\textrm{P}(\mathbf{s})$不会影响$\frac{\textrm{P}(\mathbf{s}|\mathbf{t})\textrm{P}(\mathbf{t})}{\textrm{P}(\mathbf{s})}$最大值的求解。于是,机器翻译的目标可以被重新定义为:给定源语言句子$\mathbf{s}$,寻找这样的目标语言译文$\mathbf{t}$,它使得翻译模型$\textrm{P}(\mathbf{s}|\mathbf{t})$和语言模型$\textrm{P}(\mathbf{t})$乘积最大:
\begin{eqnarray}
\widehat{\mathbf{t}} & = & \argmax_{\mathbf{t}} \textrm{P}(\mathbf{t}|\mathbf{s}) \nonumber \\
& = & \argmax_{\mathbf{t}} \frac{\textrm{P}(\mathbf{s}|\mathbf{t})\textrm{P}(\mathbf{t})}{\textrm{P}(\mathbf{s})} \nonumber \\
......@@ -479,11 +479,11 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\begin{itemize}
\vspace{0.5em}
\item \textbf{建模}(modeling):如何建立$\textrm{P}(\mathbf{s}|\mathbf{t})$$\textrm{P}(\mathbf{t})$的数学模型。换句话说,需要用可计算的方式对翻译问题和语言建模问题进行描述,这也是最核心的问题。
\item \textbf{建模(modeling)}:如何建立$\textrm{P}(\mathbf{s}|\mathbf{t})$$\textrm{P}(\mathbf{t})$的数学模型。换句话说,需要用可计算的方式对翻译问题和语言建模问题进行描述,这也是最核心的问题。
\vspace{0.5em}
\item \textbf{训练}(training):如何获得$\textrm{P}(\mathbf{s}|\mathbf{t})$$\textrm{P}(\mathbf{t})$所需的参数。即从数据中得到模型的最优参数。
\item \textbf{训练(training)}:如何获得$\textrm{P}(\mathbf{s}|\mathbf{t})$$\textrm{P}(\mathbf{t})$所需的参数。即从数据中得到模型的最优参数。
\vspace{0.5em}
\item \textbf{解码}(decoding):如何完成搜索最优解的过程。即完成$\argmax$
\item \textbf{解码(decoding)}:如何完成搜索最优解的过程。即完成$\argmax$
\vspace{0.5em}
\end{itemize}
......@@ -502,7 +502,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\subsubsection{词对齐}\index{Chapter3.3.2.1}
\parinterval IBM模型中有一个非常基础的假设是词对齐假设(或单词对齐假设)。\textbf{词对齐}(word alignment)描述了源语言句子和目标语句子之间单词级别的对应。具体地说,给定源语句子$\mathbf{s}$和目标语译文$\mathbf{t}$,其中$\mathbf{s}$$\mathbf{s}_1$$\mathbf{s}_m$$m$个单词组成,$\mathbf{t}$$\mathbf{t}_1$$\mathbf{t}_l$$l$个单词组成。IBM模型假设词对齐满足下述两个条件。
\parinterval IBM模型中有一个非常基础的假设是词对齐假设(或单词对齐假设)。\textbf{词对齐(word alignment)}描述了源语言句子和目标语句子之间单词级别的对应。具体地说,给定源语句子$\mathbf{s}$和目标语译文$\mathbf{t}$,其中$\mathbf{s}$$s_1$$s_m$$m$个单词组成,$\mathbf{t}$$t_1$$t_l$$l$个单词组成。IBM模型假设词对齐满足下述两个条件。
\begin{itemize}
\vspace{0.5em}
......@@ -529,7 +529,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
%---------------------------
\end{itemize}
\parinterval 通常,我们把词对齐记为$\mathbf{a}$,它由$a_1$$a_m$$m$个词对齐连接组成,即$a=a_1...a_m$,其中$m$表示源语言句子长度。$a_j$表示第$j$个源语单词$s_j$对应的目标语单词的位置。在图\ref{fig:3-16}的例子中,词对齐关系可以记为$a_1=0, a_2=3, a_3=1$。它表示第1个源语单词``在''对应到目标语译文的第0个位置,第2个源语单词``桌子''对应到目标语译文的第3个位置是,第3个源语单词``上''对应到目标语译文的第1个位置。 \\ \\
\parinterval 通常,我们把词对齐记为$\mathbf{a}$,它由$a_1$$a_m$$m$个词对齐连接组成,即$\mathbf{a}=a_1...a_m$,其中$m$表示源语言句子长度。$a_j$表示第$j$个源语单词$s_j$对应的目标语单词的位置。在图\ref{fig:3-16}的例子中,词对齐关系可以记为$a_1=0, a_2=3, a_3=1$。它表示第1个源语单词``在''对应到目标语译文的第0个位置,第2个源语单词``桌子''对应到目标语译文的第3个位置是,第3个源语单词``上''对应到目标语译文的第1个位置。 \\ \\
\subsubsection{基于词对齐的翻译模型}\index{Chapter3.3.2.2}
......@@ -552,7 +552,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\end{figure}
%---------------------------
\parinterval 接下来的问题是如何定义$\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$ - 即定义词对齐的生成概率。但是,隐含变量$\mathbf{a}$仍然很复杂,因此直接定义$\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$也很困难,在IBM模型中,为了化简问题,$\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$被进一步分解。使用链式法则,可以得到:
\parinterval 接下来的问题是如何定义$\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$\ \dash \ 即定义词对齐的生成概率。但是,隐含变量$\mathbf{a}$仍然很复杂,因此直接定义$\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$也很困难,在IBM模型中,为了化简问题,$\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$被进一步分解。使用链式法则,可以得到:
\begin{eqnarray}
\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})=\textrm{P}(m|\mathbf{t})\prod_{j=1}^{m}{\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})}
\label{eqC3.19-new}
......@@ -665,7 +665,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{IBM模型2}\index{Chapter3.4.2}
\parinterval IBM模型1很好的化简了问题,但是由于使用了很强的假设,导致模型和实际情况有较大差异。其中一个比较严重的问题是假设词对齐的生成概率服从均匀分布。图\ref{fig:3-20}展示了一个简单的实例。尽管译文$\mathbf{t}$$t'$的质量更好,但对于IBM模型1来说翻译概率相同。这是因为当词对齐服从均匀分布时,模型会忽略目标语言单词的位置信息。因此当单词翻译相同但顺序不同时,翻译概率一样。同时,不合理的对齐也会导致使用不合理的词汇翻译概率,因为源语言单词是由错误位置的目标语单词生成的。虽然这个问题可以通过引入目标语语言模型进行缓解,但是翻译模型仍然需要给出更合理的建模方式,以保证翻译译文的选择是正确的。
\parinterval IBM模型1很好的化简了问题,但是由于使用了很强的假设,导致模型和实际情况有较大差异。其中一个比较严重的问题是假设词对齐的生成概率服从均匀分布。图\ref{fig:3-20}展示了一个简单的实例。尽管译文$\mathbf{t}$$\mathbf{t}'$的质量更好,但对于IBM模型1来说翻译概率相同。这是因为当词对齐服从均匀分布时,模型会忽略目标语言单词的位置信息。因此当单词翻译相同但顺序不同时,翻译概率一样。同时,不合理的对齐也会导致使用不合理的词汇翻译概率,因为源语言单词是由错误位置的目标语单词生成的。虽然这个问题可以通过引入目标语语言模型进行缓解,但是翻译模型仍然需要给出更合理的建模方式,以保证翻译译文的选择是正确的。
%----------------------------------------------
% 图3.30
......@@ -683,16 +683,16 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\label{eqC3.26-new}
\end{eqnarray}
\parinterval 我们还用图\ref{fig:3-18}中的例子来进行说明公式。在模型1中,``桌子''对齐到译文四个位置上的单词的概率是一样的。但在模型2中,``桌子''对齐到``table''被形式化为$\mathbf{a}(a_j |j,m,l)=\mathbf{a}(3|2,3,3)$,意思是对于源文位置2($j=2$)的词,如果它的源文是和目标语译文都是3个词($l=3,m=3$),对齐到目标语译文位置3($a_j=3$)的概率是多少?因为$\mathbf{a}(a_j|j,m,l)$也是模型需要学习的参数,因此``桌子''对齐到不同位置上的目标语单词概率也是不一样的。理想的情况下,通过$\mathbf{a}(a_j|j,m,l)$,``桌子''对齐到``table''应该得到更高的概率。
\parinterval 我们还用图\ref{fig:3-18}中的例子来进行说明公式。在模型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''应该得到更高的概率。
\parinterval IBM模型2的其他假设均与模型1相同。把公式\ref{eqC3.21-new}\ref{eqC3.22-new}\ref{eqC3.26-new}重新带入公式\ref{eqC3.19-new}\ref{eqC3.18-new},可以得到IBM模型2的数学描述:
\begin{eqnarray}
\textrm{P}(\mathbf{s}| \mathbf{t}) & = & \sum_{\mathbf{a}}{\textrm{P}(\mathbf{s},\mathbf{a}| \mathbf{t})} \nonumber \\
\textrm{P}(\mathbf{s}| \mathbf{t}) & = & \sum_{a}{\textrm{P}(\mathbf{s},a| \mathbf{t})} \nonumber \\
& = & \sum_{a_1=0}^{l}{\cdots}\sum _{a_m=0}^{l}{\varepsilon}\prod_{j=1}^{m}{a(a_j|j,m,l)f(s_j|t_{a_j})}
\label{eqC3.27-new}
\end{eqnarray}
\parinterval 类似于模型1,模型2的表达式\ref{eqC3.27-new}也能被拆分为两部分进行理解。第一部分:遍历所有的$\mathbf{a}$;第二部分:对于每个$\mathbf{a}$累加对齐概率$\textrm{P}(\mathbf{s},\mathbf{a}| \mathbf{t})$,即计算对齐概率$\mathbf{a}(a_j|j,m,l)$和词汇翻译概率$f(s_j|t_{a_j})$对于所有源语言位置的乘积。
\parinterval 类似于模型1,模型2的表达式\ref{eqC3.27-new}也能被拆分为两部分进行理解。第一部分:遍历所有的$a$;第二部分:对于每个$a$累加对齐概率$\textrm{P}(\mathbf{s},a| \mathbf{t})$,即计算对齐概率$a(a_j|j,m,l)$和词汇翻译概率$f(s_j|t_{a_j})$对于所有源语言位置的乘积。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{解码及计算优化}\index{Chapter3.4.3}
......@@ -768,7 +768,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
%%%%%%%%%%%%%%%%%%%%%%
\subsubsection {(二)优化}\index{Chapter3.4.4.2}
\parinterval 我们已经把IBM模型的参数训练问题定义为带约束的目标函数优化问题。由于目标函数是可微分函数,解决这类问题的一种常用手法是把带约束的优化问题转化为不带约束的优化问题。这里用到了\textbf{拉格朗日乘数法}(The Lagrange Multiplier Method),它的基本思想是把含有$n$个变量和$m$个约束条件的优化问题转化为含有$n+m$个变量的无约束优化问题。
\parinterval 我们已经把IBM模型的参数训练问题定义为带约束的目标函数优化问题。由于目标函数是可微分函数,解决这类问题的一种常用手法是把带约束的优化问题转化为不带约束的优化问题。这里用到了\textbf{拉格朗日乘数法(The Lagrange Multiplier Method)},它的基本思想是把含有$n$个变量和$m$个约束条件的优化问题转化为含有$n+m$个变量的无约束优化问题。
\parinterval 这里,我们的目标是$\max(\textrm{P}_{\theta}(\mathbf{s}|\mathbf{t}))$,约束条件是对于任意的目标语单词$t_y$\\$\sum_{s_x}{\textrm{P}(s_x|t_y)}=1$。根据拉格朗日乘数法,可以把上述优化问题重新定义最大化如下拉格朗日函数:
\begin{eqnarray}
......@@ -838,7 +838,7 @@ f(s_u|t_v) = \lambda_{t_v}^{-1} \frac{\epsilon}{(l+1)^{m}} \prod\limits_{j=1}^{m
\label{eqC3.40-new}
\end{eqnarray}
\noindent \hspace{2em} 通过采用一个非常经典的期望最大化(Expectation Maximization)方法,简称EM方法(或算法),我们仍可以利用上式迭代地计算$f(s_u|t_v)$,使其最终收敛到最优值。该方法的思想是:用当前的参数,求一个似然函数的期望,之后最大化这个期望同时得到新的一组参数的值。对于IBM模型来说,其迭代过程就是反复使用公式1.39,具体如下图。
\noindent \hspace{2em} 通过采用一个非常经典的\textbf{期望最大化(Expectation Maximization)}方法,简称EM方法(或算法),我们仍可以利用上式迭代地计算$f(s_u|t_v)$,使其最终收敛到最优值。该方法的思想是:用当前的参数,求一个似然函数的期望,之后最大化这个期望同时得到新的一组参数的值。对于IBM模型来说,其迭代过程就是反复使用公式1.39,具体如下图。
%----------------------------------------------
% 图3.28
\begin{figure}[htp]
......@@ -961,7 +961,7 @@ a(i|j,m,l) &=\frac{\sum_{k=0}^{K}c_{\mathbb{E}}(i|j;\mathbf{s}^{[k]},\mathbf{t}^
\parinterval 从前面的介绍可知,IBM模型1和模型2都把不同的源文单词都看作相互独立的单元来进行词对齐和翻译。换句话说,即使源语中的某个短语中的两个单词都对齐到同一个目标语单词,它们之间也是相互独立的。这样模型1和模型2对于多个源语单词对齐到同一个目标语单词的情况并不能很好的描述。
\parinterval 这里将会给出另一个翻译模型,能在一定程度上解决上面提到的问题。我们把目标语言译文生成源文的过程分解为如下几个步骤:首先,确定每个目标语言单词生成源语言单词的个数,这里把它称为\textbf{产出率}\textbf{繁衍率}(fertility);其次,决定译文中每个单词生成的源语单词都是什么,即决定生成的第一个源语单词是什么,生成的第二个源语单词是什么,以此类推。这样每个目标语单词就对应了一个源语单词列表;最后把各组源语单词列表中的每个单词都放置到源语句子的某个位置上,完成目标语言译文到源语言句子的生成。
\parinterval 这里将会给出另一个翻译模型,能在一定程度上解决上面提到的问题。我们把目标语言译文生成源文的过程分解为如下几个步骤:首先,确定每个目标语言单词生成源语言单词的个数,这里把它称为\textbf{产出率}\textbf{繁衍率(fertility)};其次,决定译文中每个单词生成的源语单词都是什么,即决定生成的第一个源语单词是什么,生成的第二个源语单词是什么,以此类推。这样每个目标语单词就对应了一个源语单词列表;最后把各组源语单词列表中的每个单词都放置到源语句子的某个位置上,完成目标语言译文到源语言句子的生成。
%----------------------------------------------
% 图3.5.1
\begin{figure}[htp]
......@@ -1045,7 +1045,7 @@ a(i|j,m,l) &=\frac{\sum_{k=0}^{K}c_{\mathbb{E}}(i|j;\mathbf{s}^{[k]},\mathbf{t}^
\label{eqC3.57-new}
\end{eqnarray}
}
\noindent 其中,\ref{eqC3.57-new}$p_0+p_1=1$。到此为止,我们完成了公式\ref{eqC3.57-new}中第2和5部分的建模。最终根据这些假设可以得到$\textrm{P}(\mathbf{s}| \mathbf{t})$的形式:
\noindent 其中,\ref{eqC3.57-new}$p_0+p_1=1$。到此为止,我们完成了公式\ref{eqC3.57-new}中第2和5部分的建模。最终根据这些假设可以得到$\textrm{P}(\mathbf{s}| \mathbf{t})$的形式:
{
\begin{eqnarray}
{\textrm{P}(\mathbf{s}| \mathbf{t})}&= &{\sum_{a_1=0}^{l}{\cdots}\sum_{a_m=0}^{l}{(\begin{array}{c}
......@@ -1070,7 +1070,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\parinterval IBM模型3仍然存在问题,比如不能很好的处理一个目标语言单词生成多个源语言单词的情况。这个问题在模型1和模型2中也存在。如果一个目标语言单词对应多个源语言单词,往往这些源语言单词构成短语或搭配。但是模型1-3都把这些源语单词看成独立的单元,而实际上它们应该被看成一个翻译的整体。这就造成了在模型1-3中,这些源语言单词可能``分散''开。为了解决这个问题,模型4对模型3进行了进一步修改。
\parinterval 为了更清楚的阐述,这里引入新的术语\ \ 概念单元。词对齐又可以被看作概念(concept,简记为cept.)之间的对应。这里的概念是指具有独立语法或语义功能的一组单词。依照Brown等人的表示方法,我们把概念记为cept.。每个句子都可以被表示成一系列的cept.。这里要注意的是,源语言句子中的cept.数量不一定等于目标句子中的cept.数量。因为有些cept.可以为空,我们把那些空对的单词看作空cept.。比如,在图\ref{fig:3-32}的实例中,``了''就是(对应)一个空cept.。
\parinterval 为了更清楚的阐述,这里引入新的术语\dash 概念单元。词对齐又可以被看作概念(concept,简记为cept.)之间的对应。这里的概念是指具有独立语法或语义功能的一组单词。依照Brown等人的表示方法,我们把概念记为cept.。每个句子都可以被表示成一系列的cept.。这里要注意的是,源语言句子中的cept.数量不一定等于目标句子中的cept.数量。因为有些cept.可以为空,我们把那些空对的单词看作空cept.。比如,在图\ref{fig:3-32}的实例中,``了''就是(对应)一个空cept.。
%----------------------------------------------
% 图3.6.1
\begin{figure}[htp]
......@@ -1165,11 +1165,11 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\parinterval 一般来说,HMM包含下面三个问题\cite{manning1999foundations}
\begin{itemize}
\item 估计即给定模型(硬币种类和转移概率),根据可见状态链(抛硬币的结果),计算在该模型下得到这个结果的概率,这个问题的解决需要用到前后向算法。
\item 估计即给定模型(硬币种类和转移概率),根据可见状态链(抛硬币的结果),计算在该模型下得到这个结果的概率,这个问题的解决需要用到前后向算法。
\item 参数学习即给定硬币种类(隐含状态数量),根据多个可见状态链(抛硬币的结果),估计模型的参数(转移概率),同IBM模型的参数训练一样,这个问题的求解需要用到EM算法。
\item 参数学习即给定硬币种类(隐含状态数量),根据多个可见状态链(抛硬币的结果),估计模型的参数(转移概率),同IBM模型的参数训练一样,这个问题的求解需要用到EM算法。
\item 解码问题即给定模型(硬币种类和转移概率)和可见状态链(抛硬币的结果),计算在可见状态链的情况下,最可能出现的对应的状态序列,这个问题的求解需要用到基于动态规划方法,在HMM中被称作维特比算法(Viterbi Algorithm)。
\item 解码问题即给定模型(硬币种类和转移概率)和可见状态链(抛硬币的结果),计算在可见状态链的情况下,最可能出现的对应的状态序列,这个问题的求解需要用到基于动态规划方法,在HMM中被称作维特比算法(Viterbi Algorithm)。
\end{itemize}
\subsubsection{词对齐模型}
......@@ -1221,11 +1221,11 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{词对齐及对称化}\index{Chapter3.6.1}
\parinterval IBM的五个模型都是基于一个词对齐的假设\ \ \ \ 一个源语言单词最多只能对齐到一个目标语言单词。这个约束大大化简了IBM模型的建模。最初,Brown等人提出这个假设可能是因为在法英翻译中一对多的对齐情况并不多见,这个假设带来的问题也不是那么严重。但是,在像汉英翻译这样的任务中,一个汉语单词对应多个英语单词的翻译很常见。这时IBM模型的词对齐假设就表现出了明显的问题。比如在翻译``我 会 试一试 。''$\to$``I will have a try .''时,IBM模型根本不能把单词``试一试''对齐到三个单词``have a try'',因而可能无法得到正确的翻译结果。
\parinterval IBM的五个模型都是基于一个词对齐的假设\ \dash \ 一个源语言单词最多只能对齐到一个目标语言单词。这个约束大大化简了IBM模型的建模。最初,Brown等人提出这个假设可能是因为在法英翻译中一对多的对齐情况并不多见,这个假设带来的问题也不是那么严重。但是,在像汉英翻译这样的任务中,一个汉语单词对应多个英语单词的翻译很常见,这时IBM模型的词对齐假设就表现出了明显的问题。比如在翻译``我 会 试一试 。''$\to$``I will have a try .''时,IBM模型根本不能把单词``试一试''对齐到三个单词``have a try'',因而可能无法得到正确的翻译结果。
\parinterval 本质上说,IBM模型的词对齐的不``完整''问题是IBM模型本身的缺陷。解决这个问题有很多思路,第一种方法就是,反向训练后,合并源语言单词,然后再正向训练。这里用汉英翻译为例来解释这个方法。首先反向训练,就是把英语当作待翻译语言,而把汉语当作目标语言进行训练(参数估计)。这样可以得到一个词对齐结果(参数估计的中间结果)。在这个词对齐结果里面,一个汉语单词可对应多个英语单词。之后,扫描每个英语句子,如果有多个英语单词对应同一个汉语单词,就把这些英语单词合并成一个英语单词。处理完之后,再把汉语当作源语言言把英语当作目标语言进行训练。这样就可以把一个汉语词对应到合并的英语单词上。虽然从模型上看,还是一个汉语单词对应一个英语``单词'',但实质上已经把这个汉语单词对应到多个英语单词上了。训练完之后,再利用这些参数进行翻译(解码)时,就能把一个中文单词翻译成多个英文单词了。但是反向训练后再训练也存在一些问题。首先,合并英语单词会使数据变得更稀疏,使训练不充分。其次,由于IBM模型的词对齐结果并不是高精度的,利用它的词对齐结果来合并一些英文单词可能造成严重的错误,比如:把本来很独立的几个单词合在了一起。因此,此方法也并不完美。具体使用时还要考虑实际需要和问题的严重程度来决定是否使用这个方法。
\parinterval 本质上说,IBM模型的词对齐的``不完整''问题是IBM模型本身的缺陷。解决这个问题有很多思路,第一种方法就是,反向训练后,合并源语言单词,然后再正向训练。这里用汉英翻译为例来解释这个方法。首先反向训练,就是把英语当作待翻译语言,而把汉语当作目标语言进行训练(参数估计)。这样可以得到一个词对齐结果(参数估计的中间结果)。在这个词对齐结果里面,一个汉语单词可对应多个英语单词。之后,扫描每个英语句子,如果有多个英语单词对应同一个汉语单词,就把这些英语单词合并成一个英语单词。处理完之后,再把汉语当作源语言言把英语当作目标语言进行训练。这样就可以把一个汉语词对应到合并的英语单词上。虽然从模型上看,还是一个汉语单词对应一个英语``单词'',但实质上已经把这个汉语单词对应到多个英语单词上了。训练完之后,再利用这些参数进行翻译(解码)时,就能把一个中文单词翻译成多个英文单词了。但是反向训练后再训练也存在一些问题。首先,合并英语单词会使数据变得更稀疏,使训练不充分。其次,由于IBM模型的词对齐结果并不是高精度的,利用它的词对齐结果来合并一些英文单词可能造成严重的错误,比如:把本来很独立的几个单词合在了一起。因此,此方法也并不完美。具体使用时还要考虑实际需要和问题的严重程度来决定是否使用这个方法。
\parinterval 另一种方法是双向对齐之后进行词对齐\textbf{对称化}(Symmetrization)。这个方法可以帮助我们在IBM词对齐的基础上获得对称的词对齐结果。思路很简单,用正向(汉语为源语言,英语为目标语言)和反向(汉语为目标语言,英语为源语言)同时训练。这样可以得到两个词对齐结果。然后利用一些启发性方法用这两个词对齐生成对称的结果(比如,取``并集''、``交集''等),这样就可以得到包含1对多和多对多的词对齐结果。比如,在基于短语的统计机器翻译中已经很成功地使用了这种词对齐信息进行短语的获取。直到今天,对称化仍然是很多自然语言处理系统中的一个关键步骤。
\parinterval 另一种方法是双向对齐之后进行词对齐\textbf{对称化(Symmetrization)}。这个方法可以帮助我们在IBM词对齐的基础上获得对称的词对齐结果。思路很简单,用正向(汉语为源语言,英语为目标语言)和反向(汉语为目标语言,英语为源语言)同时训练。这样可以得到两个词对齐结果。然后利用一些启发性方法用这两个词对齐生成对称的结果(比如,取``并集''、``交集''等),这样就可以得到包含1对多和多对多的词对齐结果。比如,在基于短语的统计机器翻译中已经很成功地使用了这种词对齐信息进行短语的获取。直到今天,对称化仍然是很多自然语言处理系统中的一个关键步骤。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Deficiency}\index{Chapter3.6.2}
......@@ -1257,7 +1257,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\subsection{其它问题}\index{Chapter3.6.5}
\parinterval 模型5的意义?模型5的提出是为了消除了模型3和模型4的Deficiency问题。\\Deficiency问题的本质是,$\textrm{P}(\mathbf{s},\mathbf{a}| \mathbf{t})$在所有合理的对齐上概率和不为1。但是,在统计机器翻译中我们更关心是哪个对齐$\mathbf{a}$使$\textrm{P}(\mathbf{s},\mathbf{a}| \mathbf{t})$达到最大,即使$\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$不符合概率分布的定义,也并不影响我们寻找理想的对齐$\mathbf{a}$。从这个工程的角度说,$\textrm{P}(\mathbf{s},\mathbf{a}| \mathbf{t})$不归一并不是一个十分严重的问题。遗憾的是,实际上至今也太多对IBM模型3和模型4中的Deficiency问题进行过系统的实验和分析,这个问题到底有多严重并没有定论。当然用模型5是可以解决这个问题。但是如果用一个非常复杂的模型去解决了一个并不产生严重后果的问题,那这个模型也就没有太大意义了(从实践的角度)。
\parinterval 模型5的意义?模型5的提出是为了消除了模型3和模型4的Deficiency问题。Defic\\ -iency问题的本质是,$\textrm{P}(\mathbf{s},\mathbf{a}| \mathbf{t})$在所有合理的对齐上概率和不为1。但是,在统计机器翻译中我们更关心是哪个对齐$\mathbf{a}$使$\textrm{P}(\mathbf{s},\mathbf{a}| \mathbf{t})$达到最大,即使$\textrm{P}(\mathbf{s},\mathbf{a}|\mathbf{t})$不符合概率分布的定义,也并不影响我们寻找理想的对齐$\mathbf{a}$。从这个工程的角度说,$\textrm{P}(\mathbf{s},\mathbf{a}| \mathbf{t})$不归一并不是一个十分严重的问题。遗憾的是,实际上至今也太多对IBM模型3和模型4中的Deficiency问题进行过系统的实验和分析,这个问题到底有多严重并没有定论。当然用模型5是可以解决这个问题。但是如果用一个非常复杂的模型去解决了一个并不产生严重后果的问题,那这个模型也就没有太大意义了(从实践的角度)。
\parinterval 概念(Cept.)的意义?经过前面的分析可知,IBM模型的词对齐模型是使用了cept.这个概念。但是实质上,在IBM模型中使用的cept.最多只能对应一个目标语言单词(模型并没有用到源语言cept.的概念)。因此可以直接用单词代替cept.。这样,即使不引入cept.的概念,也并不影响IBM模型的建模。实际上,cept.的引入确实可以帮助我们从语法和语义的角度解释词对齐过程。不过,这个方法在IBM模型中的效果究竟如何也没有定论。
......@@ -1266,7 +1266,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\parinterval 本章对IBM系列模型进行了全面的介绍和讨论,从一个简单的基于单词的翻译模型开始,我们以建模、解码、训练多个维度对统计机器翻译进行了描述,期间也涉及了词对齐、优化等多个重要概念。IBM模型共分为5个模型,对翻译问题的建模依次由浅入深,同时模型复杂度也依次增加。IBM模型作为入门统计机器翻译的``必经之路'',其思想对今天的机器翻译仍然产生着影响。虽然单独使用IBM模型进行机器翻译现在已经不多见,甚至很多从事神经机器翻译等前沿研究的人对IBM模型已经逐渐淡忘,但是不能否认IBM模型标志着一个时代的开始。从某种意义上,当我们使用公式$\hat{\mathbf{t}} = \argmax_{\mathbf{t}} \textrm{P}(\mathbf{t}|\mathbf{s})$描述机器翻译问题的时候,或多或少都在与IBM模型使用相似的思想。
\parinterval 当然,本书也无法涵盖IBM模型的所有内涵,很多内容需要感兴趣的读者继续研究和挖掘。有两个方向可以考虑
\parinterval 当然,本书也无法涵盖IBM模型的所有内涵,很多内容需要感兴趣的读者继续研究和挖掘,有两个方向可以考虑:
\begin{itemize}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论