【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization

本文在参考一些网上资料的基础上,对该论文的思想和重要步骤作出了总结,也加入了在与身边朋友讨论的过程中对文章更细致深入的理解的内容,同时包含了自己在阅读中发现需要了解的背景知识的简单介绍。

概述

这篇搜狗联合清华信息科学与技术国家实验室进行研究、入选ACL 2017的论文提出了将先验知识集成到NMT中并保持模型结构不变的一般框架。使用的主要方法是后验正则化,将先验知识表征为对数线性模型中的特征,用来指导NMT的过程。

论文希望解决的问题就是如何将多个重叠的、任意的先验知识集成到神经网络中。一方面,神经网络中用来表示翻译过程中涉及的语言结构的向量的值是连续的。虽然这些向量的表示确实隐含着翻译规则,但很难从语言学的角度来解释。作者对此提出了四种特征设计方式对语言学中的先验知识进行编码;
另一方面,在将先验知识编码成翻译规则时,一般都用离散的表达形式(比如词典),将这种离散形式转化为神经网络所要求的连续表示是一件困难的事情。因此作者采用了对数线性模型,代替原来的离散集合表示。

论文链接

背景知识

在了解论文主要工作之前,需要对文章涉及的一些基础概念有个大概的了解。

先验 后验 似然估计

先验分布:实验前通过已知信息知道的分布

后验分布:得到“结果”的信息后重新修正的概率。基于新的信息,修正原来的先验概率后所获得的更接近实际情况的概率估计。
P.S.后验的概念如何解释?从网上查资料发现,从不同的学科角度有不同的说法。根据论文中的意思,我认为将其解释为通过模型训练得到的翻译成某个词的概率,比较贴近。

似然估计:在已知结果的情况下,根据原因推测该原因导致结果发生的概率[4]

正则化

向模型加入某些规则,加入对模型的惩罚,减小求出错误解的可能性

KL散度

一种量化两种概率分布P和Q之间差异的方式,又叫相对熵。在概率学和统计学上,我们经常会使用一种更简单的、近似的分布来替代观察数据或太复杂的分布。KL散度帮助我们度量使用一个分布来近似另一个分布时所损失的信息。
通过下面的定义式可以看出,KL散度表示的是数据的原始分布p和近似分布q之间的对数差值的期望。[2]
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization

图1 KL散度(p为原始分布,q表示近似分布)

EM算法

期望最大化算法,适用于极大化模型的对数似然时,除了模型参数之外还有未知的隐含数据的情况。
主要步骤是:先猜想隐含数据(E步),再基于观察数据和猜测的隐含数据一起来极大化对数似然,求解模型参数(M步)。接着不断迭代直至收敛。[3]

log-linear model对数线性模型

评价各变量间关系和交互作用大小的多元统计方法,自变量的线性预测的函数是因变量的估计值。表现形式如下:

【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
常见的有逻辑回归、最大熵、条件随机场等。

Posterior Regularization后验正则化

(Ganchev et al., 2010)提出利用先验分布和模型后验分布之间的KL散度,对模型的对数似然实行惩罚机制,并用类似于EM的算法实现目标函数的最大化。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
目标函数中的前一项是模型中的对数似然,如下图所示。求和中的每一项表示训练集的源语言句子x(n)x^{(n)}翻译成目标语言句子y(n)y^{(n)}概率。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
目标函数中的后一项里涉及到的q(y)q(y)来自描述先验知识的约束特征集合QQ。在这里,特征都被描述为期望值。ϕ(x,y) 是特征函数,b是特征的期望的约束边界。

举例:特征函数ϕ(x,y) 表示“一个句子中的动词个数”,根据平时经验可知,句子中至少有一个动词,那么用以下公式表示这个规则即为“一个句子里面的动词个数的相反数小于等于-1”。

【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
为了使模型求出的后验分布 P(y|x) 和先验分布 q(y) 尽可能地接近,将二者的 KL 散度作为目标函数的正则项。λ1\lambda1λ2\lambda2是两个超参,用于平衡目标函数中的对数似然项和正则项。

模型

后验正则化为编码先验知识提供了一个很好的模板。但对于不同的先验知识,很难指定一个固定的 b 作为边界值。比如,使用覆盖度惩罚(coverage penalty)这一特征时,实际上不同的句子中,覆盖惩罚的值存在显著差异,因此很难对训练集中所有的句子选择同一个限定值。另外,EM算法的E步相对耗时。基于以上两方面的考虑,论文提出将公式 (6) 中的用约束集合表示的先验知识替换为对数线性模型表示的先验分布。
优点:可直接用SGD训练优化;特征函数可以有不同的定义,可将任意来源的知识作为特征,增大了模型的通用性和可扩展性。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
使用KL散度的含义是,通过原句子翻译出的目标句子满足先验知识的约束的概率,应该与通过模型算出的原句子翻译成某些目标句子的概率分布尽可能地相似。即鼓励模型选择满足先验规则程度最高的句子。

经过修改的模型中,先验知识用下图的对数线性模型表示。对于不同句对 (x, y),先求出其特征值ϕ(x,y) 并乘以权重参数 γ,再经过 softmax 得到先验分布 Q(y|x),该分布即为原方法中的 q(y)。[1] 这里将原方法中的限定值b蕴含在了ϕ(x,y) 中,在接下来的部分将会介绍。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization

特征设计

如何编码先验知识?文中介绍了四种实验中用到的特征:[1]
1. 双语词典特征(BD, bilingual dictionary):先验知识中包含的词和词的对应关系。例如,爱-love。如果词对<x,y>出现在翻译句对中,则记 1。鼓励按词典翻译。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
2. 短语表特征(PT, phrase table):词组和词组的对应关系。鼓励按短语表翻译。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
3. 覆盖度惩罚特征(CP, coverage penalty):先验知识认为原句中的词都会提供信息量,都应该参与翻译。为克服翻译过度和翻译不足的问题,结合attention机制,惩罚源语言中没有被充分翻译的词,提高注意力较小的源端词被翻译到的可能性。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
αi,j\alpha_{i,j}是第j个目标词对第i个源端词的注意力。

4. 长度比例特征(LR):例如,一般情况下英文句长度约为对应中文句的 1.2 倍。鼓励翻译长度落在合理的范围内。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
β\beta是一个超参,用来惩罚太长的翻译或是太短的翻译,即上述例子中的1.2。

训练

目标

找到合适的模型参数,最大化后验正则似然
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization

编码

下图展示了文中KL散度的计算公式。其中 y(x(n))\ y(x^{(n)})为源语句x(n)x^{(n)}的所有可能的候选翻译的集合,S(x(n))S(x^{(n)})是采样子空间。在训练过程中不可能穷尽所有可能的翻译,因此采用近似的方法,采样一部分可能的翻译进行 KL 散度的估计。[1]【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization
同时文章还使用锐度α(Sharpness),来调整概率分布的集中程度
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization

解码

研究表明,在解码时加入先验知识也能显著提高翻译性能。因此,作者采用了重排序的方式,先通过模型得到最佳的k 个候选翻译(k-best list),然后使用特征重新打分,选择得分最高的作为最终翻译结果。
【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization

图2 利用特征重新打分

结果

【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization

图3 中-英数据集上不同模型的BLEU值比较

第一种模型RNNSearch(Bahdanau et al., 2015)运用了attention机制,作为比较的baseline;
第二种模型CPR(Wu et al., 2016),在RNNSearch的基础上加入了覆盖度惩罚特征;
第三种模型PostREG(Ganchev et al., 2010),在RNNSearch的基础上加入使用约束集合的后验正则化。

从BLEU值表中可以看到,运用论文中提出的改进后的后验正则化方法,有效地增强了翻译效果。在后两种模型中,作者使用了不同的特征组合,其中双语词典(BD)带来的提升最大;结合的特征带来的提升却相对较小。作者解释可能的原因是词典和短语表这两个特征在同一词对上有重叠。

【论文阅读】Prior Knowledge Integration for Neural Machine Translation using Posterior Regularization

图4 是否重新打分的效果对比

上图中,w=with,即进行重新打分,w/o=without,即未进行重新打分,可以看出,用先验知识特征进行重新打分效果更好。

结论

这篇论文的创新点在于利用后验正则化思想,将离散的先验知识很好地融入 NMT 框架中,并能利用上不同的先验知识。同时改进了原先的后验正则化方法,使其可以直接基于导数优化。[1]
类似的想法也曾被提出,如He et al. (2016),把NMT模型当作对数线性模型的一个特征。而这篇论文中的工作是通过KL散度将两个模型连接起来,以保持模型架构的透明性,更容易应用于NLP中的其他神经模型。

参考资料

[1]论文解读
https://yq.aliyun.com/articles/175147
[2]如何理解K-L散度(相对熵)
https://www.jianshu.com/p/43318a3dc715?from=timeline&isappinstalled=0
[3]EM算法原理总结
https://www.cnblogs.com/pinard/p/6912636.html
[4]先验分布 后验分布 似然估计
https://blog.****.net/qq_40597317/article/details/82388164
http://f.dataguru.cn/thread-739241-1-1.html
[5]比较Coverage Model (Huawei)和Coverage Penalty (Google)
https://weibo.com/ttarticle/p/show?id=2309404039932313239964