NLP 学习笔记之Statistical Machine Translation:IBM Models 1 and 2

主要学习资料是cs224n的notes和Michael Collins的notes,和宗成庆的统计自然语言处理,这里并不是一个完整的翻译笔记,而是在阅读的过程中对其中不懂的东西的一些解释,以及避免遗忘做的一些笔记,当然初入NLP,难免对一些知识理解不透或者有所偏差。

Introduction

这部分讲机器翻译,尤其是在统计机器翻译(SMT)系统上,此部分关注IBM翻译模型。这里以翻译法语(源语言)为英语(目标语言)为例,用表示法语句子,即,其中为句子的长度;用表示英语句子,即,其中表示英语句子的长度。用表示第k个法语句子和英语句子。

The Noisy-Channel Approach

IBM模型是一个噪声通道模型的例子,给出两个参数,用表示任意一个句子在英语中的概率,用表示出现法语/英语对的概率,那么对于该模型,给定一个新的法语句子,其输出的结果是(即对应的英语句子):

这个前面的章节中有讲到为什么,这里就直接用了。此时的重点在于如何定义模型,以及如何从训练集中评估模型的参数?

The IBM Models

直接求解比较难,将其条件概率细化为,其中变量表示法语的第i个单词对应英语的某个单词,这样再回到原条件概率:

IBM Model 2
用一个有限集表示英语单词集,用表示法语集,用分别表示法语的最大长度和英语的最大长度,下面给出两个参数:

  • 一个是,表示从英语单词e生成法语单词f的条件概率,其中
  • 一个是,表示在法语句子和英语句子长度分别为m和l的条件下,对齐变量值为j的概率,其中

前面讲到的条件概率有如下等价:

此处定义NULL
上式为什么就等价呢,下面用随机变量来讲解:
定义为对应英语句子中单词的随机变量序列,L为英语句子长度的随机变量,为法语单词的随机变量序列,M为法语句子长度的随机变量,为对齐变量,这样建立模型为:

上式用条件概率展开如下:

上面两部分分别做如下两个假设:
1.

第一个等式是链式规则导出的,主要是第二个等式,假设随机变量仅仅与随机变量L和M有关(即和英语单词序列,其它对齐变量独立)。
2.

第二行假设随机变量仅仅依赖于
【【此处假设有点强,竟然和其它的法语变量没关系…有点不太懂???】】

Applying IBM Model 2

前面讲到了IBM Model 2 中的参数,即我们知道了分布,而我们需要知道对于任意的,得出如下分布:

最后,假定我们已经估计了语言模型,那么我们对任意一个法语句子f的翻译结果就是:

IBM模型并不是一个好的翻译系统,但是仍然是一个关键的算法 ,这里说道的两种原因:被用到各种翻译系统,现代的翻译模型都是建立在IBM模型上的。
继续接上面最后的公式,对于由英语句子和法语句子对组成的训练集中,我们可以分析出一组对齐变量,使得下面的概率最大,也就是最符合的对齐变量:

继而求解如下子问题:

Parameter Estimation

定义表示在训练集中单词e和单词l对齐的次数,表示e和任意一个法语单词对齐的次数,表示在看到长度为l的英语句子和长度为m的法语句子,且在看到单词i对应的是单词j的次数(就是的次数),表示长度为l的英语句子和长度为m的法语句子下标为i的个数。
上面的含义有点乱,而且下面给出的算法我也是看了好一会才理解什么意思,如下分别对全部语料库和部分语料库给出的算法,这里先分析对全部语料库的算法:
nlp0501
接上面定义的变量的含义,这里当时,有,否则为0;算法中每次都会一起加1,看着值一样,其实是有区别的,这里我举个例子:
训练集中的数据为,拿书中的一个句子为例:

1
2
3
4
l=6,m=7
e= And the programma has been implemented
f= Le programme a ete mis en application
a={2,3,4,5,6,6,6}

这里就没什么好说的,就是统计如的个数,就是统计如的个数,作如下解释,比如f中第一个单词Le对应e中第二个单词the,那么就将的值增加1,当然,对于都会增加1,也就是说如果还有这样一个样本l=6,m=7,同时f中的第一个单词对应着e中第二个单词,那么也会增加1,但是就不会增加了,这样就理解上面的算法了吧。接着看下面的算法:
nlp0502
观察两个算法的区别,主要在于计算不同,表示第k组平行预料(训练集中法文-英文句子)里的第i个法文词,第j个英文词。如果是上帝模式,那分别表示这两个词之间应当/不应当对齐,其问题在于我们不可能有全部语料库,也就是说等于1或者0,没有人能够知道,所以采用最大似然估计来估计(EM算法),于是就采用如下公式:

最开始的值是使用随机数,后面再不断更新。

More on the EM Algorithm: Maximum-likelihood Estimation

这部分好像没什么用额,功力不够,就不写了

Initialzation using IBM Model 1

EM算法对IBM模型2的初始化敏感,依赖初始值(随机数),这里使用IBM模型1,主要区别在于将模型2开始对的概率设为定值:

注意这里的分母表示的是j全部的取值个数,,这样做的意思就是说,在长度分别为l和m的英语句子和法语句子中,对应的关系是同概率的,没有什么相关性。
那么句子预测结果的概条件率公式可重写如下:

EM算法重写如下:

算法如下:
nlp0503

如果觉得有帮助,给我打赏吧!