《基于n-gram相似度的开发集选择》由会员分享,可在线阅读,更多相关《基于n-gram相似度的开发集选择(9页珍藏版)》请在金锄头文库上搜索。
1、基于 n-gram 相似度的开发集选择郑达奇 涂兆鹏 姜文斌 米海涛 刘洋 刘群 中国科学院计算技术研究所 智能信息重点实验室 北京 100190E-mail:zhengdaqi, tuzhaopeng, jiangwenbin, htmi, yliu, 摘 要:在 Och 最小错误率训练和对数线性模型的机器翻译框架下,本文提出了一种选择开发集的方法,通过分析开发集句子与测试集在 n-gram 上的相似度,选出和测试集相似度较高的一部分句子组成新的开发集。相较于原开发集,在此新 选出的开 发集上进行调参,能提高 测试集的 BLEU 值。关键字:自然语言处理、机器翻 译、开发集选择Develop
2、ment Set Selection Method Based On N-Gram SimilarityDaqi Zheng, Zhaopeng Tu, Wenbin Jiang, Haitao Mi, Yang Liu, Qun LiuKey Laboratory of Intelligent Information Processing, Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190, ChinaE-mail:zhengdaqi, tuzhaopeng, jiangwenbin,
3、 htmi, yliu, Abstract: Based on Ochs MERT (Minimal Error Rate Training) and Log-Linear Model, we proposed a novel development set selection method. According to analyzing the similarity of n-gram between sentences in development set and test set, we choose the sentences of closer similarity as a new
4、 development set. Compared to the original development set, we can get better results on test set by tuning the weights on the new one.Keywords: natural language processing, machine translation, development set selection1 引言在最小错误率训练和对数线性模型的机器翻译基本框架下Och et al, 2002, 2003,我们假设,开发集和测试集是都是从整个句子集合这个总体抽出来
5、的样本,这个总体服从某种分布。因此开发集和测试集是独立同分布的。于是在开发集上调参得到的结果可以直接用于解码测试集,并且应该能得到最好结果。但是在实际中,我们发现,在开发集上取得最好结果的参数,并不一定能在测试集上取得最好结果。我们猜想,这可能是因为开发集句子数量占句子总体的比例很小,所以把开发集调出来的最好参数当成测试集的最好参数,偏差发生的可能性较大。由此我们想到,是不是能选出开发集中和测试集比较相似的一部分作为新开发集,这样使得新开发集在统计意义上靠近测试集,这样也许能得到更适合解码测试集的参数。在上述想法指导下,本文提出了一种基于 n-gram 相似度的开发集选择方法。通过计算开发集中
6、句子和测试集的在 n-gram 意义下的相似度,从开发集中选出和测试集相似度较高的一部分句子组成新的开发集。用在新开发集上训练得到的最优参数来解码测试集。从而提高了测试集上的解码结果。本文余下部分安排如下:第 2 部分介绍其他人的相关工作,第 3 部分介绍我们实现的基于 n-gram 相似度的开发集选择方法。第 4 部分给出了实验所用数据,以及结果和分析。最后给出了结论。2 相关工作相关工作按照领域可以分为机器翻译和机器学习两大类。因为之前没有人在机器翻译领域发表过开发集选择的相关工作,所以下面主要提到的是训练集选择的一些工作。机器翻译领域之前的语料赋权的工作,又可以被分为 3 类:数据选择,
7、数据赋权,和翻译模型自适应。前两者有可能提高对齐准确度,并防止领域无关的短语对被抽取出来。而翻译模型自适应则提高那些领域相关短语对的权重或者是引入那些源语言端没有出现的对应翻译Spyros Matsoukas et al, 2009。微软研究院在 2006 年 NIST 评测中所使用的方法是:先做在平行语料上做 GIZA+对齐,找出测试集中所有基于字的 n-gram;在对齐语料中每次取一个对齐双语句对,如果有测试集中出现过得 n-gram,就提取此句对;如果测试集中每个 n-gram 都在对齐语料的不少于 k 个句对中出现,则停止。用提取出来的这部分句对做规则抽取。这种方法减小了训练数据规模,
8、从而加快了整个流程。而且他们希望这样选出来的数据与测试集更相关。该方法提高了约 0.5 个 BLEU 值Xiaodong He et al, 2006。 李志飞等在 Joshua 上使用了和微软工作基本相同的方法,只是确定了 n-gram 是从 1 到 10, k 取 20。他在报告没有提及用该方法提升的 BLEU 值Zhifei Li et al. 2009。黄瑾等人提出了一种基于信息检索模型的训练数据选择与优化方法,通过选择现有训练数据资源中与待翻译文本相似的句子组成训练子集,可在不增加计算资源的情况下获得与使用全部数据相当甚至更优的机器翻译结果。通过将选择出的数据子集加入原始训练数据中优
9、化训练数据的分布可进一步提高机器翻译的质量黄瑾等, 2008。Yasuda 等采用的方法舍弃了平行语料中那些虽然翻译正确但是对提高测试领域翻译效果没有帮助的句对Yasuda et al. 2008。Mandal 等使用主动学习选择那些适合人来翻译的数据Mandal et al. 2008。Hildebrand 等用了一些信息检索方面的方法来选择类似的平行语料Hildebrand et al. 2005。吕雅娟等使用的方法是在用 GIZA+做对齐时提高相关部分语料的权重,这也可以通过重复这部分语料来达到相似的效果。她们还用插值的方式使得原来在全部语料上训练出来的模型向领域相关的方向偏移Lu et
10、 al. 2007。Koehn 等为了解决特定领域相关语料总是较领域无关语料小很多的问题,在领域相关和领域无关上分别训练翻译模型,再用 Och 的最小错误率训练在一个指定的开发集上调参把翻译出来的短语分数融合在一起Koehn et al. 2007Och, 2003。Matsoukas 等用判别式方法在一个指定的开发集上调参,从而给平行语料中的句子赋不同权重。和前面一些方法不同点就在,不舍弃那些无关的语料,只是赋以较低的权重Matsoukas et al. 2009。在介绍机器学习领域的相关工作之前,值得说明的是:该领域中提及的训练集,更像机器翻译领域的开发集而不是训练集。因为机器翻译中的训练
11、集是用来获取翻译能力,开发集则用来调整模型参数的,机器学习中训练集则同时具有两者的功能。下列机器学习领域中的方法和上面提到的方法在思路上很相似,都是通过选择训练样本中认为有效的一部分来做训练集。这样最显著的好处是可以减小训练过程中所需的样本数,从而缩短训练时间。MacKay 等认为,如果在学习过程中选择那些特征突出的数据点来做训练,将会更有效,因为这些点含有更多的信息。但这种做法的前提是假设空间是正确的。MacKay et al, 1992Zhang 等认为在遗传算法运行过程中选择训练集中合适的部分数据,而不是反复使用全部的训练数据,可以显著缩短进化所需时间而不减低泛化精度。BT Zhang,
12、 DY Cho, 1998Hasenjger 等认为虽然数据选择问题在成功的机器学习过程中不如其它一些因素重要,但是,一般情况下随机的选择数据并不是一种有效的做法,因为没有利用到已有的信息。在主动学习中,如果学习机可以根据已知的信息来选择那些其认为含有最多信息量的训练数据,然后在所选择的数据上训练,虽然选择数据的计算代价很高,但是可以有效的减少必须的训练样本。M Hasenjger et al. 2000本文中所用的开发集选择方法借鉴了机器学习领域数据选择的思想,通过选择开发集而不是训练集,能够比上述机器翻译领域中的方法更直接处理翻译模型领域倾向问题。而且有效的避免了在制定的开发集上调参可能导
13、致的模型过拟合问题,尤其当句子特征到权重的映射非常复杂并基于大量参数时,或者是开发集和测试集差异较大时。3 基于 n-gram 相似度的开发集选择方法3.1 基本思想在对数线性模型和最小错误率训练的机器翻译框架下Och et al, 2002, 2003,用开发集 dev 调节模型参数 ,并将得到的 dev 上的最优参数 dev=mert(dev)(在 dev 上取得最好结果 BLEU 值最高的一组参数)用于解码测试集 tst。其基本假设是所有源语言句子 f 的集合 S 这个总体服从某种分布 D(f, ),dev 和 tst 都是从 S 的样本,并且都服从该分布 D。或者说:dev 和 tst
14、 是独立同分布的。这个做法的本质类似解决参数估计中的点估计问题中的矩估计法,而且只用到了类似一阶矩估计法(暂时没有二阶矩计算方法) ,只不过这里的估计量是 =mert(X),用 dev 得到的估计值是 dev。此方法用 dev 来估计 S 上的最优参数 S,而且认为 S 就是 tst 的最优参数 tst。因为现在一般是单句解码,没有用到上下文信息,实际上,可以进一步得到:对所有的句子,可能性最大的解码的最优参数 best 应该都是相同的。但是在实际中,我们发现,在 dev 上取得最好结果的参数 dev,并不一定能在 tst 上取得最好结果。我们猜想,这可能是因为开发集句子数量占句子总体的比例很
15、小,并不能准确描述该语言的分布规律,所以用 dev 上的估计值来估计 S 的参数偏差发生的可能性较大。因为已有的开发集相对测试集来说较大,所以在机器翻译评测中,有一种方法是将已有的开发集 dev 按年代划分成几个子开发集 dev1devn 和一个临时测试集 dev_tst,然后选择能在 dev_tst 上取得最好结果的参数 dev_tst 用于正式的测试集解码,认为用该组参数解码的模型具有较强的泛化能力。也就是说,认为对应的 devx 比其他子开发集更接近总体句子分布。另一种方法是用交叉测试来检验参数的一般化程度,具体做法大同小异。上述两种做法虽然假设开发集和总体的分布有偏差,但是仍然假设测试
16、集和总体有相同的分布。所以它们只是考量 dev 对 S 的逼近程度。如果假设测试集和总体的分布也有偏差,上述做法便有些不合适了。我们猜想,能否构造一个和测试集分布偏差较小的开发集,即:使得 dev 和 tst 的偏差尽可能缩小。简而言之,就是开发集和测试集都可能偏离总体分布,不如使开发集直接逼近测试集分布。3.3 具体实现在本节中,我们提出了一种很粗糙的度量句子和句子集合相似度的方法,并将其用于开发集选择。图 1 描述了加入了开发集选择的整个翻译流程,首先用测试集做标准进行开发集选择,待用新开发集进行最小错误率训练调参得到最优参数后,用该组参数解码测试集得到翻译结果。 开 发 集开 发 集 选 择新 开 发 集最 小 错 误 率训 练 调 参 最 优 参 数测 试 集解 码 翻 译 结 果图 1. 开发集选择翻译流程图3.3.1 测试集预处理提取测试集上的