Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
Toy-MT-Introduction
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
Toy-MT-Introduction
Commits
9c62231a
Commit
9c62231a
authored
Apr 14, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updates of section 3
parent
b16230a3
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
61 行增加
和
62 行删除
+61
-62
Book/Chapter3/Chapter3.tex
+16
-16
Book/mt-book-xelatex.ptc
+45
-46
没有找到文件。
Book/Chapter3/Chapter3.tex
查看文件 @
9c62231a
...
@@ -634,7 +634,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
...
@@ -634,7 +634,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\label
{
eqC3.23-new
}
\label
{
eqC3.23-new
}
\end{eqnarray}
\end{eqnarray}
我们用一个简单的例子对公式
\ref
{
eqC3.23-new
}
进行说明。比如,在图
\ref
{
fig:3-18
}
中,``桌子''对齐到``table'',可被描述为
$
f
(
s
_
2
|t
_{
a
_
2
}
)=
f
(
\textrm
{
``桌子''
}
|
\textrm
{
``table''
}
)
$
,表示给定``table''翻译为``桌子''的概率。通常,
$
f
(
s
_
2
|t
_{
a
_
2
}
)
$
被认为是一种概率词典,它反应了两种语言词汇一级的对应
程度
。
我们用一个简单的例子对公式
\ref
{
eqC3.23-new
}
进行说明。比如,在图
\ref
{
fig:3-18
}
中,``桌子''对齐到``table'',可被描述为
$
f
(
s
_
2
|t
_{
a
_
2
}
)=
f
(
\textrm
{
``桌子''
}
|
\textrm
{
``table''
}
)
$
,表示给定``table''翻译为``桌子''的概率。通常,
$
f
(
s
_
2
|t
_{
a
_
2
}
)
$
被认为是一种概率词典,它反应了两种语言词汇一级的对应
关系
。
\end{itemize}
\end{itemize}
\vspace
{
3.0em
}
\vspace
{
3.0em
}
%----------------------------------------------
%----------------------------------------------
...
@@ -649,13 +649,13 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
...
@@ -649,13 +649,13 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\parinterval
将上述三个假设和公式
\ref
{
eqC3.19-new
}
代入公式
\ref
{
eqC3.18-new
}
中,得到
$
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
$
的表达式:
\parinterval
将上述三个假设和公式
\ref
{
eqC3.19-new
}
代入公式
\ref
{
eqC3.18-new
}
中,得到
$
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
$
的表达式:
\begin{eqnarray}
\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
_{
\mathbf
{
a
}}{
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
|
\mathbf
{
t
}
)
}
\nonumber
\\
&
=
&
\sum
_{
\mathbf
{
a
}}{
\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,m,
\mathbf
{
t
}
)
}
\nonumber
\\
&
=
&
\sum
_{
\mathbf
{
a
}}{
\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
}
)
}
\nonumber
\\
&
=
&
\sum
_{
\mathbf
{
a
}}{
\varepsilon
}
\prod
_{
j=1
}^{
m
}{
\frac
{
1
}{
l+1
}
f(s
_
j|t
_{
a
_
j
}
)
}
\nonumber
\\
&
=
&
\sum
_{
\mathbf
{
a
}}{
\varepsilon
}
\prod
_{
j=1
}^{
m
}{
\frac
{
1
}{
l+1
}
f(s
_
j|t
_{
a
_
j
}
)
}
\nonumber
\\
&
=
&
\sum
_{
\mathbf
{
a
}}{
\frac
{
\varepsilon
}{
(l+1)
^
m
}}
\prod
_{
j=1
}^{
m
}
f(s
_
j|t
_{
a
_
j
}
)
&
=
&
\sum
_{
\mathbf
{
a
}}{
\frac
{
\varepsilon
}{
(l+1)
^
m
}}
\prod
_{
j=1
}^{
m
}
f(s
_
j|t
_{
a
_
j
}
)
\label
{
eqC3.24-new
}
\label
{
eqC3.24-new
}
\end{eqnarray}
\end{eqnarray}
\parinterval
在公式
\ref
{
eqC3.24-new
}
中,我们需要遍历所有的词对齐,即
$
\sum
_{
\mathbf
{
a
}}{
\cdot
}$
。但这种表示不够直观,因此可以把这个过程重新表示为
如
下形式:
\parinterval
在公式
\ref
{
eqC3.24-new
}
中,我们需要遍历所有的词对齐,即
$
\sum
_{
\mathbf
{
a
}}{
\cdot
}$
。但这种表示不够直观,因此可以把这个过程重新表示为下形式:
\begin{eqnarray}
\begin{eqnarray}
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
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
}
)
}
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
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.25-new
}
\label
{
eqC3.25-new
}
...
@@ -677,7 +677,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
...
@@ -677,7 +677,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
}
\subsection
{
IBM模型2
}
\index
{
Chapter3.4.2
}
\parinterval
IBM模型1很好的化简了问题,但是由于使用了很强的假设,导致模型和实际情况有较大差异。其中一个比较严重的问题是假设词对齐的生成概率服从均匀分布。图
\ref
{
fig:3-20
}
展示了一个简单的实例。尽管译文
$
\mathbf
{
t
}$
比
$
\mathbf
{
t
}
'
$
的质量更好,但对于IBM模型1来说它们对应的翻译概率相同。这是因为当词对齐服从均匀分布时,模型会忽略目标语言单词的位置信息。因此当单词翻译相同但顺序不同时,翻译概率一样。同时,
不合理的对齐也会导致使用不合理的词汇翻译概率,因为源语言单词是由错误位置的目标语单词生成的
。
\parinterval
IBM模型1很好的化简了问题,但是由于使用了很强的假设,导致模型和实际情况有较大差异。其中一个比较严重的问题是假设词对齐的生成概率服从均匀分布。图
\ref
{
fig:3-20
}
展示了一个简单的实例。尽管译文
$
\mathbf
{
t
}$
比
$
\mathbf
{
t
}
'
$
的质量更好,但对于IBM模型1来说它们对应的翻译概率相同。这是因为当词对齐服从均匀分布时,模型会忽略目标语言单词的位置信息。因此当单词翻译相同但顺序不同时,翻译概率一样。同时,
由于源语言单词是由错误位置的目标语单词生成的,不合理的对齐也会导致不合理的词汇翻译概率
。
%----------------------------------------------
%----------------------------------------------
% 图3.30
% 图3.30
...
@@ -689,32 +689,32 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
...
@@ -689,32 +689,32 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\end{figure}
\end{figure}
%---------------------------
%---------------------------
\parinterval
因此,IBM模型2抛弃了对
对齐概率
$
\textrm
{
P
}
(
a
_
j|a
_
1
^{
j
-
1
}
,s
_
1
^{
j
-
1
}
,m,
\mathbf
{
t
}
)
$
服从均匀分布的假设。在IBM模型2中,我们认为词对齐是有倾向性的,它要与源语单词的位置和目标语单词的位置有关。具体来说,对齐位置
$
a
_
j
$
的生成概率与位置
$
j
$
、源语句子长度
$
m
$
和译文长度
$
l
$
有关,形式化表述为:
\parinterval
因此,IBM模型2抛弃了对
$
\textrm
{
P
}
(
a
_
j|a
_
1
^{
j
-
1
}
,s
_
1
^{
j
-
1
}
,m,
\mathbf
{
t
}
)
$
服从均匀分布的假设。在IBM模型2中,我们认为词对齐是有倾向性的,它要与源语单词的位置和目标语单词的位置有关。具体来说,对齐位置
$
a
_
j
$
的生成概率与位置
$
j
$
、源语句子长度
$
m
$
和译文长度
$
l
$
有关,形式化表述为:
\begin{eqnarray}
\begin{eqnarray}
\textrm
{
P
}
(a
_
j|a
_
1
^{
j-1
}
,s
_
1
^{
j-1
}
,m,
\mathbf
{
t
}
)
\equiv
a(a
_
j|j,m,l)
\textrm
{
P
}
(a
_
j|a
_
1
^{
j-1
}
,s
_
1
^{
j-1
}
,m,
\mathbf
{
t
}
)
\equiv
a(a
_
j|j,m,l)
\label
{
eqC3.26-new
}
\label
{
eqC3.26-new
}
\end{eqnarray}
\end{eqnarray}
\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
我们还用图
\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的数学描述:
\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}
\begin{eqnarray}
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
&
=
&
\sum
_{
a
}{
\textrm
{
P
}
(
\mathbf
{
s
}
,a
|
\mathbf
{
t
}
)
}
\nonumber
\\
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
&
=
&
\sum
_{
\mathbf
{
a
}}{
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
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
}
)
}
&
=
&
\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
}
\label
{
eqC3.27-new
}
\end{eqnarray}
\end{eqnarray}
\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
}
)
$
对于所有源语言位置的乘积。
\parinterval
类似于模型1,模型2的表达式
\ref
{
eqC3.27-new
}
也能被拆分为两部分进行理解。第一部分:遍历所有的
$
\mathbf
{
a
}$
;第二部分:对于每个
$
\mathbf
{
a
}$
累加对齐概率
$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
|
\mathbf
{
t
}
)
$
,即计算对齐概率
$
a
(
a
_
j|j,m,l
)
$
和词汇翻译概率
$
f
(
s
_
j|t
_{
a
_
j
}
)
$
对于所有源语言位置的乘积。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
解码及计算优化
}
\index
{
Chapter3.4.3
}
\subsection
{
解码及计算优化
}
\index
{
Chapter3.4.3
}
\parinterval
如果模型参数给定,我们可以使用IBM模型1-2对新的句子进行翻译。比如,可以使用
\ref
{
sec:simple-decoding
}
节描述的解码方法搜索最优译文
,或者使用自左向右解码 + 剪枝的方法
。在搜索过程中,只需要通过公式
\ref
{
eqC3.25-new
}
和
\ref
{
eqC3.27-new
}
计算每个译文候选的IBM模型翻译概率。但是,公式
\ref
{
eqC3.25-new
}
和
\ref
{
eqC3.27-new
}
的高计算复杂度导致这些模型很难直接使用。以IBM模型1为例,这里把公式
\ref
{
eqC3.25-new
}
重写为:
\parinterval
如果模型参数给定,我们可以使用IBM模型1-2对新的句子进行翻译。比如,可以使用
\ref
{
sec:simple-decoding
}
节描述的解码方法搜索最优译文。在搜索过程中,只需要通过公式
\ref
{
eqC3.25-new
}
和
\ref
{
eqC3.27-new
}
计算每个译文候选的IBM模型翻译概率。但是,公式
\ref
{
eqC3.25-new
}
和
\ref
{
eqC3.27-new
}
的高计算复杂度导致这些模型很难直接使用。以IBM模型1为例,这里把公式
\ref
{
eqC3.25-new
}
重写为:
\begin{eqnarray}
\begin{eqnarray}
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
) =
\frac
{
\varepsilon
}{
(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
{
次循环
}}
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
) =
\frac
{
\varepsilon
}{
(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
{
次循环
}}
\label
{
eqC3.28-new
}
\label
{
eqC3.28-new
}
\end{eqnarray}
\end{eqnarray}
\noindent
可以看到,遍历所有的词对齐需要
$
(
l
+
1
)
^
m
$
次循环,遍历所有源语言位置累计
$
f
(
s
_
j|t
_{
a
_
j
}
)
$
需要
$
m
$
次循环,因此这个模型的计算复杂度为
$
O
((
l
+
1
)
^
m m
)
$
。当
$
m
$
较大时,计算这样的模型几乎是不可能的。不过,经过仔细观察,可以发现
还有更加有效的方法进行计算
,如下:
\noindent
可以看到,遍历所有的词对齐需要
$
(
l
+
1
)
^
m
$
次循环,遍历所有源语言位置累计
$
f
(
s
_
j|t
_{
a
_
j
}
)
$
需要
$
m
$
次循环,因此这个模型的计算复杂度为
$
O
((
l
+
1
)
^
m m
)
$
。当
$
m
$
较大时,计算这样的模型几乎是不可能的。不过,经过仔细观察,可以发现
公式右端的部分有另外一种计算方法
,如下:
\begin{eqnarray}
\begin{eqnarray}
\sum\limits
_{
a
_
1=0
}^{
l
}
...
\sum\limits
_{
a
_
m=0
}^{
l
}
\prod\limits
_{
j=1
}^{
m
}
f(s
_
j|t
_{
a
_
j
}
) =
\prod\limits
_{
j=1
}^{
m
}
\sum\limits
_{
i=0
}^{
l
}
f(s
_
j|t
_
i)
\sum\limits
_{
a
_
1=0
}^{
l
}
...
\sum\limits
_{
a
_
m=0
}^{
l
}
\prod\limits
_{
j=1
}^{
m
}
f(s
_
j|t
_{
a
_
j
}
) =
\prod\limits
_{
j=1
}^{
m
}
\sum\limits
_{
i=0
}^{
l
}
f(s
_
j|t
_
i)
\label
{
eqC3.29-new
}
\label
{
eqC3.29-new
}
...
@@ -746,7 +746,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
...
@@ -746,7 +746,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\parinterval
在完成了建模和解码的基础上,剩下的问题是如何得到模型的参数。这也是整个统计机器翻译里最重要的内容。下面我们将会对IBM模型1-2的参数估计方法进行介绍。
\parinterval
在完成了建模和解码的基础上,剩下的问题是如何得到模型的参数。这也是整个统计机器翻译里最重要的内容。下面我们将会对IBM模型1-2的参数估计方法进行介绍。
\subsubsection
{
(一)
目标函数
}
\index
{
Chapter3.4.4.1
}
\subsubsection
{
目标函数
}
\index
{
Chapter3.4.4.1
}
\parinterval
统计机器翻译模型的训练是一个典型的优化问题。简单来说,训练是指在给定数据集(训练集)上调整参数使得目标函数的值达到最大(或最小),此时得到的参数被称为是该模型在该目标函数下的最优解(图
\ref
{
fig:3-22
}
)。
\parinterval
统计机器翻译模型的训练是一个典型的优化问题。简单来说,训练是指在给定数据集(训练集)上调整参数使得目标函数的值达到最大(或最小),此时得到的参数被称为是该模型在该目标函数下的最优解(图
\ref
{
fig:3-22
}
)。
...
@@ -768,7 +768,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
...
@@ -768,7 +768,7 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
\noindent
其中,
$
\argmax
_{
\theta
}$
表示求最优参数的过程(或优化过程)。
\noindent
其中,
$
\argmax
_{
\theta
}$
表示求最优参数的过程(或优化过程)。
\parinterval
公式
\ref
{
eqC3.32-new
}
实际上也是一种基于极大似然的模型训练方法。这里,可以把
$
\textrm
{
P
}_{
\theta
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
$
看作是模型对数据描述的一个似然函数,记做
$
L
(
\mathbf
{
s
}
,
\mathbf
{
t
}
;
\theta
)
$
。也就是,我们的优化目标
实际上是对似然函数的优化:
$
\widehat
{
\theta
}
=
\argmax
_{
\theta
\in
\Theta
}
L
(
\mathbf
{
s
}
,
\mathbf
{
t
}
;
\theta
)
$
,其中
\{
$
\widehat
{
\theta
}$
\}
表示可能有多个结果,
$
\Theta
$
表示参数空间。
\parinterval
公式
\ref
{
eqC3.32-new
}
实际上也是一种基于极大似然的模型训练方法。这里,可以把
$
\textrm
{
P
}_{
\theta
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
$
看作是模型对数据描述的一个似然函数,记做
$
L
(
\mathbf
{
s
}
,
\mathbf
{
t
}
;
\theta
)
$
。也就是,我们的优化目标
是对似然函数的优化:
$
\{\widehat
{
\theta
}
\}
=
\{\argmax
_{
\theta
\in
\Theta
}
L
(
\mathbf
{
s
}
,
\mathbf
{
t
}
;
\theta
)
\}
$
,其中
\{
$
\widehat
{
\theta
}$
\}
表示可能有多个结果,
$
\Theta
$
表示参数空间。
\parinterval
回到IBM模型的优化问题上。以IBM模型1为例,我们优化的目标是最大化翻译概率
$
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
$
。使用公式
\ref
{
eq:final-model1
}
,可以把这个目标表述为:
\parinterval
回到IBM模型的优化问题上。以IBM模型1为例,我们优化的目标是最大化翻译概率
$
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
$
。使用公式
\ref
{
eq:final-model1
}
,可以把这个目标表述为:
\begin{eqnarray}
\begin{eqnarray}
...
@@ -776,19 +776,19 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
...
@@ -776,19 +776,19 @@ g(\mathbf{s},\mathbf{t}) \equiv \prod_{j,i \in \widehat{A}}{\textrm{P}(s_j,t_i)}
&
\textrm
{
s.t.
}
&
\textrm
{
任意单词
}
t
_{
y
}
:
\;\sum
_{
s
_
x
}{
f(s
_
x|t
_
y)
}
=1
\nonumber
&
\textrm
{
s.t.
}
&
\textrm
{
任意单词
}
t
_{
y
}
:
\;\sum
_{
s
_
x
}{
f(s
_
x|t
_
y)
}
=1
\nonumber
\label
{
eqC3-IBM1
}
\label
{
eqC3-IBM1
}
\end{eqnarray}
\end{eqnarray}
\noindent
其中,
$
\textrm
{
max
}
(
\cdot
)
$
表示最大化,
$
\frac
{
\varepsilon
}{
(
l
+
1
)
^
m
}
\prod
_{
j
=
1
}^{
m
}
\sum
_{
i
=
0
}^{
l
}{
f
(
{
s
_
j|t
_
i
}
)
}$
是目标函数,
$
f
(
{
s
_
j|t
_
i
}
)
$
是模型的参数,
$
\sum
_{
s
_
x
}{
f
(
s
_
x|t
_
y
)
}
=
1
$
是优化的约束条件,保证翻译概率满足归一化的要求。需要注意的是
$
\{
f
(
s
_
x |t
_
y
)
\}
$
对应了很多参数,每个源语言单词和每个目标语单词的组合都对应一个参数
$
f
(
s
_
x |t
_
y
)
$
。
\noindent
其中,
$
\textrm
{
max
}
(
\cdot
)
$
表示最大化,
$
\frac
{
\varepsilon
}{
(
l
+
1
)
^
m
}
\prod
_{
j
=
1
}^{
m
}
\sum
_{
i
=
0
}^{
l
}{
f
(
{
s
_
j|t
_
i
}
)
}$
是目标函数,
$
f
(
{
s
_
j|t
_
i
}
)
$
是模型的参数,
$
\sum
_{
s
_
x
}{
f
(
s
_
x|t
_
y
)
}
=
1
$
是优化的约束条件,
以
保证翻译概率满足归一化的要求。需要注意的是
$
\{
f
(
s
_
x |t
_
y
)
\}
$
对应了很多参数,每个源语言单词和每个目标语单词的组合都对应一个参数
$
f
(
s
_
x |t
_
y
)
$
。
%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%
\subsubsection
{
(二)
优化
}
\index
{
Chapter3.4.4.2
}
\subsubsection
{
优化
}
\index
{
Chapter3.4.4.2
}
\parinterval
我们已经把IBM模型的参数训练问题定义为带约束的目标函数优化问题。由于目标函数是可微分函数,解决这类问题的一种常用手法是把带约束的优化问题转化为不带约束的优化问题。这里用到了
{
\small\sffamily\bfseries
{
拉格朗日乘数法
}}
(The Lagrange Multiplier Method),它的基本思想是把含有
$
n
$
个变量和
$
m
$
个约束条件的优化问题转化为含有
$
n
+
m
$
个变量的无约束优化问题。
\parinterval
我们已经把IBM模型的参数训练问题定义为带约束的目标函数优化问题。由于目标函数是可微分函数,解决这类问题的一种常用手法是把带约束的优化问题转化为不带约束的优化问题。这里用到了
{
\small\sffamily\bfseries
{
拉格朗日乘数法
}}
(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
$
。根据拉格朗日乘数法,可以把上述优化问题重新定义最大化如下拉格朗日函数:
\parinterval
这里,我们的目标是
$
\max
(
\textrm
{
P
}_{
\theta
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
))
$
,约束条件是对于任意的目标语单词
$
t
_
y
$
有
\\
$
\sum
_{
s
_
x
}{
\textrm
{
P
}
(
s
_
x|t
_
y
)
}
=
1
$
。根据拉格朗日乘数法,可以把上述优化问题重新定义最大化如下拉格朗日函数:
\begin{eqnarray}
\begin{eqnarray}
L(f,
\lambda
)=
\frac
{
\varepsilon
}{
(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)
}
L(f,
\lambda
)=
\frac
{
\varepsilon
}{
(l+1)
^
m
}
\prod
_{
j=1
}^{
m
}
\sum
_{
i=0
}^{
l
}
{
f(s
_
j|t
_
i)
}
-
\sum
_{
t
_
y
}{
\lambda
_{
t
_
y
}
(
\sum
_{
s
_
x
}{
f(s
_
x|t
_
y)
}
-1)
}
\label
{
eqC3.33-new
}
\label
{
eqC3.33-new
}
\end{eqnarray}
\end{eqnarray}
\parinterval
$
L
(
f,
\lambda
)
$
包含两部分,
$
\frac
{
\varepsilon
}{
(
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
)
}$
是原始的约束条件乘以拉格朗日乘数
$
\lambda
_{
t
_
y
}$
,拉格朗日乘数的数量和约束条件的数量相同。图
\ref
{
fig:3-23
}
通过图例说明了
$
L
(
f,
\lambda
)
$
各部分的意义。
\parinterval
$
L
(
f,
\lambda
)
$
包含两部分,
$
\frac
{
\varepsilon
}{
(
l
+
1
)
^
m
}
\prod
_{
j
=
1
}^{
m
}
\sum
_{
i
=
0
}^{
l
}
{
f
(
s
_
j|t
_
i
)
}$
是原始的目标函数,
\\
$
\sum
_{
t
_
y
}{
\lambda
_{
t
_
y
}
(
\sum
_{
s
_
x
}{
f
(
s
_
x|t
_
y
)
}
-
1
)
}$
是原始的约束条件乘以拉格朗日乘数
$
\lambda
_{
t
_
y
}$
,拉格朗日乘数的数量和约束条件的数量相同。图
\ref
{
fig:3-23
}
通过图例说明了
$
L
(
f,
\lambda
)
$
各部分的意义。
\vspace
{
6.0em
}
\vspace
{
6.0em
}
%----------------------------------------------
%----------------------------------------------
% 图3.23
% 图3.23
...
...
Book/mt-book-xelatex.ptc
查看文件 @
9c62231a
\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax
\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax
\babel@toc {english}{}
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\select@language {english}
\contentsline {part}{\@mypartnumtocformat {I}{统计机器翻译}}{7}{part.1}%
\defcounter {refsection}{0}\relax
\contentsline {part}{\@mypartnumtocformat {I}{统计机器翻译}}{7}{part.1}
\ttl@starttoc {default@1}
\ttl@starttoc {default@1}
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {1}基于词的机器翻译模型}{9}{chapter.1}
\contentsline {chapter}{\numberline {1}基于词的机器翻译模型}{9}{chapter.1}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.1}什么是基于词的翻译模型}{9}{section.1.1}
\contentsline {section}{\numberline {1.1}什么是基于词的翻译模型}{9}{section.1.1}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.2}构建一个简单的机器翻译系统}{11}{section.1.2}
\contentsline {section}{\numberline {1.2}构建一个简单的机器翻译系统}{11}{section.1.2}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.1}如何进行翻译?}{11}{subsection.1.2.1}
\contentsline {subsection}{\numberline {1.2.1}如何进行翻译?}{11}{subsection.1.2.1}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{机器翻译流程}{12}{section*.6}
\contentsline {subsubsection}{机器翻译流程}{12}{section*.6}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{人工翻译 vs. 机器翻译}{13}{section*.8}
\contentsline {subsubsection}{人工翻译 vs. 机器翻译}{13}{section*.8}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.2}基本框架}{13}{subsection.1.2.2}
\contentsline {subsection}{\numberline {1.2.2}基本框架}{13}{subsection.1.2.2}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.3}单词翻译概率}{14}{subsection.1.2.3}
\contentsline {subsection}{\numberline {1.2.3}单词翻译概率}{14}{subsection.1.2.3}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{什么是单词翻译概率?}{14}{section*.10}
\contentsline {subsubsection}{什么是单词翻译概率?}{14}{section*.10}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{如何从一个双语平行数据中学习?}{15}{section*.12}
\contentsline {subsubsection}{如何从一个双语平行数据中学习?}{15}{section*.12}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{如何从大量的双语平行数据中学习?}{16}{section*.13}
\contentsline {subsubsection}{如何从大量的双语平行数据中学习?}{16}{section*.13}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.4}句子级翻译模型}{17}{subsection.1.2.4}
\contentsline {subsection}{\numberline {1.2.4}句子级翻译模型}{17}{subsection.1.2.4}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基础模型}{17}{section*.15}
\contentsline {subsubsection}{基础模型}{17}{section*.15}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{生成流畅的译文}{19}{section*.17}
\contentsline {subsubsection}{生成流畅的译文}{19}{section*.17}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.5}解码}{21}{subsection.1.2.5}
\contentsline {subsection}{\numberline {1.2.5}解码}{21}{subsection.1.2.5}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.3}基于词的翻译建模}{24}{section.1.3}
\contentsline {section}{\numberline {1.3}基于词的翻译建模}{24}{section.1.3}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.3.1}噪声信道模型}{24}{subsection.1.3.1}
\contentsline {subsection}{\numberline {1.3.1}噪声信道模型}{24}{subsection.1.3.1}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.3.2}统计机器翻译的三个基本问题}{26}{subsection.1.3.2}
\contentsline {subsection}{\numberline {1.3.2}统计机器翻译的三个基本问题}{26}{subsection.1.3.2}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{词对齐}{27}{section*.26}
\contentsline {subsubsection}{词对齐}{27}{section*.26}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于词对齐的翻译模型}{28}{section*.29}
\contentsline {subsubsection}{基于词对齐的翻译模型}{28}{section*.29}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于词对齐的翻译实例}{29}{section*.31}
\contentsline {subsubsection}{基于词对齐的翻译实例}{29}{section*.31}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.4}IBM模型1-2}{30}{section.1.4}
\contentsline {section}{\numberline {1.4}IBM模型1-2}{30}{section.1.4}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.1}IBM模型1}{30}{subsection.1.4.1}
\contentsline {subsection}{\numberline {1.4.1}IBM模型1}{30}{subsection.1.4.1}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.2}IBM模型2}{32}{subsection.1.4.2}
\contentsline {subsection}{\numberline {1.4.2}IBM模型2}{32}{subsection.1.4.2}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.3}解码及计算优化}{33}{subsection.1.4.3}
\contentsline {subsection}{\numberline {1.4.3}解码及计算优化}{33}{subsection.1.4.3}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.4}训练}{34}{subsection.1.4.4}
\contentsline {subsection}{\numberline {1.4.4}训练}{34}{subsection.1.4.4}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{
(一)目标函数}{34}{section*.36}
\contentsline {subsubsection}{
目标函数}{34}{section*.36}%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{
(二)优化}{35}{section*.38}
\contentsline {subsubsection}{
优化}{35}{section*.38}%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.5}IBM模型3-5及隐马尔可夫模型}{41}{section.1.5}
\contentsline {section}{\numberline {1.5}IBM模型3-5及隐马尔可夫模型}{41}{section.1.5}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.1}基于产出率的翻译模型}{41}{subsection.1.5.1}
\contentsline {subsection}{\numberline {1.5.1}基于产出率的翻译模型}{41}{subsection.1.5.1}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.2}IBM 模型3}{44}{subsection.1.5.2}
\contentsline {subsection}{\numberline {1.5.2}IBM 模型3}{44}{subsection.1.5.2}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.3}IBM 模型4}{45}{subsection.1.5.3}
\contentsline {subsection}{\numberline {1.5.3}IBM 模型4}{45}{subsection.1.5.3}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.4} IBM 模型5}{47}{subsection.1.5.4}
\contentsline {subsection}{\numberline {1.5.4} IBM 模型5}{47}{subsection.1.5.4}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.5}隐马尔可夫模型}{48}{subsection.1.5.5}
\contentsline {subsection}{\numberline {1.5.5}隐马尔可夫模型}{48}{subsection.1.5.5}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{隐马尔可夫模型}{49}{section*.50}
\contentsline {subsubsection}{隐马尔可夫模型}{49}{section*.50}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{词对齐模型}{50}{section*.52}
\contentsline {subsubsection}{词对齐模型}{50}{section*.52}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.6}解码和训练}{51}{subsection.1.5.6}
\contentsline {subsection}{\numberline {1.5.6}解码和训练}{51}{subsection.1.5.6}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.6}问题分析}{51}{section.1.6}
\contentsline {section}{\numberline {1.6}问题分析}{51}{section.1.6}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.6.1}词对齐及对称化}{51}{subsection.1.6.1}
\contentsline {subsection}{\numberline {1.6.1}词对齐及对称化}{51}{subsection.1.6.1}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.6.2}Deficiency}{52}{subsection.1.6.2}
\contentsline {subsection}{\numberline {1.6.2}Deficiency}{52}{subsection.1.6.2}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.6.3}句子长度}{53}{subsection.1.6.3}
\contentsline {subsection}{\numberline {1.6.3}句子长度}{53}{subsection.1.6.3}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.6.4}其他问题}{54}{subsection.1.6.4}
\contentsline {subsection}{\numberline {1.6.4}其他问题}{54}{subsection.1.6.4}
%
\defcounter {refsection}{0}\relax
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.7}小结及深入阅读}{54}{section.1.7}
\contentsline {section}{\numberline {1.7}小结及深入阅读}{54}{section.1.7}
%
\contentsfinish
\contentsfinish
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论