系统融合系列论文之 improved wordlevel system combination

博客的目的

最近在学习关于机器翻译系统融合的一些知识,看了一些论文,希望为每一个看过的论文都写一篇文章,总结,总结,要不然全部都忘了,说的有可能不对,如果有不对的,希望大家说出来。

读的第一篇论文的名称是Improved word-level system combination for machine translation 。感觉这篇论文并没有说到极为详细的系统融合方法,对整个系统融合的方法进行了描述,算是一种综述。

首先描述了system combination的由来,当然MT的system combination 借鉴了语音识别的方法,即构建一个confusion network ,然后对这个confusion network进行解码,实现一个综合几个系统的优点,形成更好的输出!

但是MT和语音识别的不同点在于,不同语音识别系统的输出没有词序的差别,但是机器翻译就不一样,同样的一个句子可以有好几个词序不同但是表达的意思相同的翻译。因此机器翻译系统融合的一个问题就是要解决不同翻译假设(hypothesis)间的对齐。首先遇到的一个问题就是词序的问题,然后也有很多问题,但都不怎么重要,比如要确保(doing,do,did)三个词都得对齐到一起,这是词形的问题。为了解决对齐的问题,也有n多人提出了各种解决办法(可惜有些我没有看懂),看懂的就是一个将这些翻译假设当做双语语料,使用giza++来获得对齐信息。还有一个方法就是使用TER(translation edit rate),但是不知道原理。

良好的对齐只解决了问题的一方面,构造confusion network的另一个主要问题是确定词序,词序和对齐这两个问题的顺序反了,首先是选择词序,然后再将所有hypothesis的词对齐到这个词序上。词序的选择可以有多种方法,可以不顾所有这些hypothiesis的词序,重新选择,当然也可以在所有的hypothesis中按照某一种标准选择某个hypothesis作为skeleton,然后所有的hypothesis对齐到这个skeleton。

假设使用第二种方法来确定词序,可以使用最小贝叶斯风险法来确定相应的hypothesis,这篇论文中选用了TER来对hypothesis进行评价,计算每个hypothesis与其余hypothesis之间的TER,将所有这些TER加起来,那个是的TER之和最小的hypothesis,就被选被skeleton。利用公式表述如下:

GW[VN1V76`0J60]1`(@3RKT

选用的损失函数不止TER这一种,BLEU,MTR都是可以的。

确定了词序,完成了hypothesis的对齐,下面就是对这个confusion network进行解码,解码就是要从这个confusion network中找到一个最好的翻译结果。假设要对“cat sat the mat”,“cat sitting on the mat”,“hat on a mat”三个hypothesis建立confusion network,然后进行解码。假设选择“cat sat the mat”作为skeleton,那么对齐过后如下:

646~{2EBHTM8_B_DOP]5@ID

图形化得表示如下:

Y7~}K11%YMVI%Y)6)$6S]MX

解码就是从这个图中找出一条值最大的路径,比如“cat sat on the mat”, “cat on the mat” 和 “cat sitting on the mat”的得分都为10。

目前讨论的所有的选择skeleton,对齐hypothesis,然后decode,都是假设只选用了每个参与的系统最好的一个翻译,即1-best。假如选取每个系统的N-best list呢?据说可以提高系统的质量(直接从论文抄的)。

如果参与形成最终翻译结果的是每个系统的n-best list,解码的方法就要改变,因为每个系统的可信度不同,同一个系统产生的排名不同的翻译假设可信度也不同,都需要给予相应的权值。对每一个hypothesis赋予一个权值:1/(k+1),假如一个词来源于这个hypothesis,那么这个词所具有的权值就是这个翻译假设的权值,1/(k+1)。则对于源语句F,某个翻译假设的E的计算如下:

2IAHH}%T5Z7HPP3F@HZXQEQ

i是confusion network的节点的排序号,Ns为系统的个数。Nnull就是这个hypothesis中的NULL的个数。

这种解码算法选出来的hypothesis有很多的问题,比如由于对齐错误而产生的错误输出,由于word-level的解码而导致的不符合语法的现象,这就是因为这种解法使得原来的短语被打断了。而且产生的一个数值没有什么概率意义,无法和语言模型相集成。使用新的解码算法如下:

KZ%{B@M7I5TW_$Y`Z2)U6FM

这个全新的公式考虑了相当多的因素,语言模型,控制词的个数,控制空词的个数。E(j,n)就是一个翻译假设,Ns为系统的个数,p(w|l,i),概率是w出现在系统l中介于词序i和i+1之间的概率。

上面的这种方法只考虑从选择一种skeleton形成confusion network。还可以使用另一种方法来将每个系统的hypothesis分别作为skeleton,构成一个多混淆网络,相应的每个网络都有一个先验概率,具体的图形表示如下:

BS_`I1(U28Y8LTG[X%[)7PA

这大概就是论文的全部内容了。

总结这篇论文呢,主要的内容就在于confusion network的解码,给出了不同的方法,其余的好像没什么~

原文地址:https://www.cnblogs.com/lacozhang/p/2207973.html