自然语言理解与行业知识图谱:概念、方法与工程落地
上QQ阅读APP看书,第一时间看更新

3.2.1 统计学习基础

统计学习通过假设总体数据具有一定的规律性,根据样本数据构建概率模型,通过对模型进行学习,完成预测分析。通过对这一概念的描述,我们需要了解一些统计学基本概念。结合概率论和信息论来深入思考,详细概念介绍见附录。

①总体:对于自然语言而言,就是面向某一任务的所有可能出现的语言文本实例集合。

②样本:由于总体数据无法穷尽,通过构建一个有限的数据集合来近似总体。每个数据的特征可用随机变量或联合随机变量进行描述,数据中的统计规律用随机变量的概率分布进行描述。

③采样方法:确定数据集合,在语言任务中,就是获取满足同一分布的样本集合。

④模型设计:根据具体任务确定模型假设空间,即模型集合。

⑤学习策略:如何进行模型学习?模型的选择需要满足能够对训练数据集进行足够好的预测,并同时在测试数据集中也具有最优的预测效果。在统计学习尤其是监督学习中,首先需要考虑输入空间、特征空间和输出空间。输入空间输入实例,由特征向量表示为特征空间,其中每一维度对应一个特征。监督学习分为学习和预测两个过程,学习过程就是使模型的输出变量与训练样本输出变量之间的“损失”尽可能小,利用相关指标进行评估。

⑥参数优化:选择模型评价策略,关键在于最优化算法的选择[7]。在输入空间到输出空间的映射集合(假设空间)中找到一个最优的模型,这个模型可以是概率模型或者非概率模型,用条件概率分布或决策函数表示,它描述了输入变量和输出变量之间的映射关系。最后预测过程是对给定测试样本输入,由模型按最大条件概率或决策函数给出相应输出。

综上,统计学习的关键在于模型设计、学习策略和参数最优化这三个要素,以及实际应用中的样本构建方法。最后通过语言模型来简要介绍开启统计语言学习的大门。

1.模型设计

统计学习模型是表示从输入空间到输出空间的映射,输入和输出构成了样本空间,不同任务的输出空间不同。通常,设计一个函数集合作为模型假设空间,然后从中学习选择一个理想的假设。常见的模型假设空间分为线性和非线性两种,对应模型分别是线性模型和非线性模型。模型生成一般取决于决策函数或条件概率分布,条件概率分布表示给定输入条件下输出概率模型,而决策函数则表示输入输出之间的非概率模型。

在模型学习过程中,可以分为生成方法和判别方法。生成方法表示给定输入产生输出的生成关系,在训练集数据中学习随机事件的联合概率分布P(X, Y),然后基于贝叶斯公式求出条件概率分布作为预测模型,常见模型比如朴素贝叶斯模型和隐马尔可夫模型。判别方法在给定输入X的情况下预测输出Y,由训练集数据直接学习决策函数或条件概率分布作为预测模型,即判别模型。优点是直接学习条件概率或决策函数,因此预测准确率较高。可以对数据进行各种抽象、特征定义,大大简化了学习问题。与生成方法相比,判别方法的缺点是不能还原联合概率分布P(X, Y),学习收敛速度相比较慢以及对存在隐变量的情况不适用。

2.学习策略

学习策略指从模型假设空间中选取最优模型,即构造模型。不同的策略对应着模型不同的比较标准和选择标准。计算学习理论是学习策略的理论基础,其中可能近似正确(Probably Approximately Correct, PAC)是我们选择学习算法的出发点。考虑到理想真实目标函数难以获得,因此学习获得一个近似正确的模型就可以。

在PAC原则下,可以引申出一些共识。首先天下没有免费的午餐,也就是没有哪种机器学习方法可以对任何任务“赢者通吃”。进行模型选择的时候,还有一个丑小鸭原理,也就是模型评价没有公认客观的标准,都带有一定的主观性,所以模型选择也就一定有局限性客观存在。另外,我们通常要再学习策略上设定先验的假设条件,也就是归纳偏置,所以都是带有约束的学习。后续我们将结合文本任务详细介绍。

(1)模型选择

模型选择是从所要学习事件的条件概率分布或决策函数集合构成的假设空间中进行选择,那么该如何进行“模型选择”?

模型的好坏通过期望风险来衡量。机器学习中期望错误和经验错误之间的差异称为泛化错误,大数定律证明训练集无穷大,则泛化错误趋近于0。但是,这种情况不可能存在,所以PAC学习理论提出降低学习算法的能力期望,以一定概率学习一个近似正确的假设。根据风险最小化原则,计算经验风险的学习策略就是经验风险最小化。然而实际情况下,样本数量有限或包含一定噪声数据,不能全面反映真实分布,经验风险最小化就会带来模型在未知数据上错误率高的问题,导致过拟合。这个时候,就要引入正则化项来限制模型复杂度,这种学习策略就是结构风险最小化[7]。通过“偏差-方差”分解,需要一个正则化系数在偏差和方差之间取得平衡。为了提高模型的泛化能力,需要正则化来限制模型复杂度,并根据Occam’s razor原则来寻找满足数据解释性强且尽可能简单的模型。通过在经验风险上加入正则化项或惩罚项,一般是模型复杂度的单调递增函数,选择经验风险和模型复杂度同时较小的模型。

此外,在实际训练过程中,需要进行模型交叉验证。由于无法直接获得泛化误差,在实际操作中通过实验测试来评估学习器的泛化误差,即使用“测试集”来测试学习器,然后以测试集上的“测试误差”作为泛化误差的近似。通常假设测试样本也是从样本真实分布中独立同分布(Independent and Identically Distributed,IID)采样得到的,测试集应该尽可能与训练集互斥。在研究对比不同算法的泛化能力时,我们用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。模型验证是机器学习建立模型和验证模型参数的常用办法。

下面列举几种常用的模型验证方法:

①留出法。在样本充足的情况下,一种较为简单的方法是随机将数据分为训练、验证和测试数据。验证集合用于模型选择,测试集合用于学习方法评估。在学习到的不同复杂度的模型中,应选择对验证集合具有最小预测误差的模型,由于验证集合有足够多的数据,这种方法对模型选择是有效的。训练、测试集划分尽可能数据分布一致。留出法直接将数据集D拆分成互斥的两个集合,其中一个作为训练集S,另一个作为测试集T。在S上训练模型,在T上进行测试,并得到测试误差来近似泛化误差。在使用留出法时一般采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。较为常见的是数据集约~的数据作为训练集,剩余的作为测试集。

②交叉验证方法。常用于实际数据不足的情况,其基本思路为重复使用数据,对给定数据进行切分,然后将切分数据集组合为训练集和测试集,再反复训练、测试和模型选择。交叉验证法将数据集D划分成k个大小相似的互斥子集{D1, D2, ..., Dk},每个子集Di都使用分层采样尽可能保持数据分布一致,具体做法是每次使用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就得到k组训练/测试集,进行k次模型的训练与测试,得到k个结果,最后将这k个结果的均值作为交叉验证的最终结果。显然,k的取值会显著影响交叉验证评估结果的稳定性与保真性,k的取值通常为10。由于将数据集D划分成k个子集的过程是随机的,为了保障结果的稳定性,交叉验证通常会将随机划分的过程重复p次,最终的评估结果是p次k-折交叉验证结果的均值,例如常见的有10次10折交叉验证。如果数据集D中有m个样本,当k=m时,则得到交叉验证的一个特例:留一法(Leave-One-Out,LOO)。由于m个样本划分为m个子集只有唯一的方式,留一法不受随机样本划分的干扰,训练集只比原始数据集D少了1个样本,因此使用留一法训练的模型与使用原始数据D训练得到的模型很相似,评估结果相对更准确,然而这种方法的缺点是当数据集较大时,训练m个模型的开销十分大,该方法也未必永远比其他方法更准确。

③自助法。我们希望数据集D的所有数据用于模型训练,但在留出法与交叉验证法中,由于保留了一部分数据用于模型测试,实际用于模型训练的数据集比D小,这必然会引起一些偏差,在数据集D较小的情况下偏差会更大。留一法虽然避免了上述问题,但计算复杂度太高。自助法的提出就是为了解决上述问题。最常用的一种自助法为Bootstrap自助法,也叫0.632自助法。假设原始数据集为D,对该数据集进行有放回地抽样m次,产生m个样本的训练集,这样原始数据集中的某些样本很可能在该样本集中出现多次。没有进入该训练集的样本组成测试集。每个样本被选中的概率是,未被选中的概率为,这样一个样本在训练集中没出现的概率就是m次都未被选中的概率,即,当m趋于无穷大时,这一概率就趋于0.368,所以留在训练集中的样本大概占原数据集的63.2%。自助法保证了训练集拥有与原数据集D相等的样本量m,也保证了数据集大约的样本没有出现在训练集中,可用于测试。自助法的测试结果称为“包外估计”。自助法在训练集较少,难以划分有效训练/测试数据集时非常有用,另外从原始数据集中产生多个不同的训练集,对集成学习等方法有很大好处。自助法产生的数据集改变了数据集的原始分布,会引起估计偏差。因此,数据集足够时,优先选用留出法与交叉验证法。

(2)损失函数

针对风险最小化问题,机器学习算法都有一个目标函数,算法的求解过程是目标函数的优化过程。目标函数中最重要的是损失函数(Loss Function),也被称为风险函数(Risk Function)或代价函数(Cost Function)。损失函数将经验风险损失和结构风险损失映射到一个函数中,即假设样本有m个样本点,样本点X={x1, x2,..., xm}的真实标签为Y={y1, y2,..., ym},样本点xi的模型输出值f(xii),i=1,2,...m,其中θ={θ12,...,θm}为模型参数。估计的模型参数为,

其中,L表示损失函数,L(yi, f(xi, θi))为经验风险函数,Φ(θ)为正则化项或惩罚项。

下面介绍几种常见的损失函数:

①0-1损失函数和绝对值损失函数。这种损失函数直接比较预测值与目标值是否相等。对于样本i,当标签与预测类别相等时,损失函数的值为0,否则为1。假设样本点X的真实标签值的分布为Y,样本点模型输出值f(X),0-1损失函数为

感知器方法使用的就是0-1损失函数,但是由于相等这个条件太过严格,在实际使用中常被放宽,即

其中T为一个大于等于0的数值。可以看出,0-1损失函数无法对参数进行求导,在依赖于反向传播的深度学习任务中无法被使用,因此0-1损失函数更多的作用是启发新的损失函数产生,比如绝对值损失函数L(Y, f(X))=|Y-f(X)|。

②平方损失函数(Square Loss),也被称为最小二乘法,是线性回归的一种,它将问题转化为凸优化问题。在线性回归中,假设样本和噪声都服从高斯分布(中心极限定理),通过极大似然估计推导出最小二乘法式子。最小二乘法的基本原则是,最优拟合直线是使各点到回归直线距离和最小的直线,即平方和最小。用公式表示为

在实际应用中,我们使用均方差(MSE)作为一项衡量指标其计算如下所示:

③指数损失函数。梯度提升分类方法中常用的损失函数为指数损失函数,模型的指数损失函数定义为

④对数损失函数,即对数似然损失(Log-likelihood Loss),也被称为逻辑回归损失(Logistic Loss)或交叉熵损失(Cross-entropy Loss),常用于逻辑回归和神经网络以及一些期望极大算法的变体,用于评估分类器的概率输出。

逻辑回归假设样本服从伯努利分布(0-1分布),其最优化求解过程是最大似然估计(详见附录),也就是最小化的负似然函数,从损失函数的角度来看,就成为sigmoid或softmax损失函数。其中,sigmoid损失函数可被用于二分类任务,softmax损失函数可被用于多分类任务。

对数损失通过惩罚错误的分类,实现对分类器准确度(Accuracy)的量化。最小化对数损失基本等价于最大化分类器的准确度。对数损失函数的计算公式为:

其中,n为可能的类别数,yij表示类别j是否是样本点xi的真实类别,pij为模型或分类器预测xi属于类别j的概率。对数损失函数表达的是样本x在标签为y的情况下,使概率P(y|x)达到最大值时的参数值,也就是观测到目前这组数据的概率最大时所对应的参数值。取对数是为了便于求极值时的求导运算。

在二分类任务中,假设有m个样本点,其取值为集合{0, 1}。样本点值为1的概率为hθ(x),即P(y=1|x; θ)=hθ(x),样本点值为0的概率为1-hθ(x),即P(y=0|x; θ)=1-hθ(x)。其中,θ为模型参数,hθ(x)=g(fθ(x))=。g(·)为sigmoid或softmax激活函数,也被称为归一化指数函数,其作用是将模型输出值转化为[0,1]之间,比如神经网络的输出通过激活函数“归一化”为概率分布的形式。那么,样本的概率分布为

根据附录中介绍的最大似然估计方法,得到关于θ的似然函数,

对数损失函数为

交叉熵描述了两个概率分布之间的差异程度(交叉熵的概念详见附录),由公式(3.16)可以看出,最小化对数损失函数与最大化似然函数以及最小化交叉熵是等价的。

⑤KL散度损失函数。KL(Kullback-Leibler Divergence)散度(参见附录),也被称为相对熵(Relative Entropy),用于估计两个分布之间的相似性,因此常被用来衡量选择的近似分布与数据原分布之间的差异程度。根据附录中相对熵和交叉熵的定义可知,KL散度与交叉熵只有一个常数的差异,两者是等价的。同时值得注意的是,KL散度并不是一个对称的损失函数,即DKL(p||q)≠DKL(q||p),这里假设p为已知分布,q为p的近似概率分布。KL散度常被用于生成式模型中。

⑥Hinge损失函数。Hinge损失函数也叫铰链损失,常被用来求解支撑向量机(support vector machine,SVM)中的间距最大化问题,其定义为

其中,ω为参数模型,m(ω)为SVM超平面,m(ω)yωTx。如果分类正确,损失函数等于0,如果分类错误,损失函数则为1-m(ω),所以Hinge函数是一个分段不光滑的曲线。假设样本点的取值为集合{-1, 1},二分类SVM模型的损失函数为

(3)评估指标

对于不同算法模型泛化能力的评估,需要建立模型泛化能力的评价标准,也就是性能度量。不同的性能度量往往会导致不同的评判结果,说明模型好坏不仅取决于算法和数据,还取决于面向任务的评价标准。下面介绍自然语言理解任务中常见的评估指标。

1)文本分类模型评估指标

错误率和正确率是两个最常用的性能度量指标。错误率是分类错误样本占样本总数比率,而正确率定义为分类正确的样本个数与所有样本个数的比值。这两个指标只能满足部分需求。对于文本分类(包括文本序列标注)任务,目前最常用的指标如下所示。

①准确率和召回率。

准确率、召回率是文本分类、文本标注、搜索等任务中常用的模型识别效果评价标准。将标注数据的真实类别与模型的预测类别组合,可得到混淆矩阵(Confusion Matrix),也被称为错误矩阵(Error Matrix)、交叉表,其中真正例(True Positive,TP)为正例被分类为正例的数量,假正例(False Positive,FP)为负例被分类为正例的数量,假反例(False Negative,FN)为正例被分类为负例的数量,真反例(True Negative,TN)为负例被分类为负例的数量,且满足TP+FP+TN+FN=样本总数,如表3-2所示。

表3-2 混淆矩阵

准确率(Precision Ratio,PR)也称为查准率,表示预测结果为正例的样本中真正例所占比例,公式为

召回率(Recall Ratio,RR)也称为查全率,在所有的正例样本中被正确预测的比例,公式为

②P-R图。

以准确率为纵轴,召回率为横轴,则得到P-R曲线。使用P-R曲线评估模型时,可依据如下三种方法进行衡量:

□若模型A的P-R曲线完全包住模型B的P-R曲线,则模型A的性能优于B。

□若比较的模型存在交叉的情况,使用平衡点(Break-Even Point, BEP)进行评估,即准确率等于召回率的点,模型的平衡点越高,性能越好。

□准确率与召回率为一组相互矛盾的度量指标,对同一模型,准确率高时召回率往往较低。F1度量可以同时兼顾P和R,是关于P和R的调和平均,即

F1值越大性能越好。在命名实体识别任务中,常常采用F1值作为关键评价指标。

不同应用对准确率和召回率的重视程度不同,使用F1度量的一般形式Fβ度量,Fβ为加权调和平均,公式表示为

其中,β>0,Fβ度量了P、R的相对重要性。β=1时退化为F1度量,β>1时,召回率更重要,β<1时准确率更重要。

③ROC与AUC曲线。

在不同的应用任务中,可根据任务需求采用不同的截断点。重视准确率的任务选择排序中靠前的位置进行截断,反之重视召回率的任务会选择靠后的位置进行截断。排序本身的质量好坏,体现了分类器在不同任务下泛化性能的好坏。ROC(Receiver Operating Characteristic)曲线,也被称为接收者操作特征曲线,是衡量模型泛化性能的度量工具,适和对产生实值或概率预测结果的分类器评估。ROC曲线纵轴为真正例率,横轴是假正例率。

真正例率(True Positive Rate,TPR)为预测真正例数与实际正例数的比值,反映了有多少真正的正例预测准确

假正例率(False Positive Rate,FPR)为预测假正例数与实际反例数的比值,反映了多少反例被预测为正例

ROC曲线是一个独立于阈值选择的模型性能评价指标,如图3-2所示。ROC曲线越靠近左上角,模型的性能越优。

和P-R曲线相似,若一个学习器的ROC曲线被另一个学习器的ROC曲线完全包住,则后者的模型性能优于前者。若两个学习器的ROC曲线发生交叉,如需进行比较的话,需计算ROC曲线下的面积,即AUC(Area Under ROC Curve)值,AUC值常用来作为模型排序好坏的指标,AUC值越大,分类器分类效果越好。

图3-2 ROC曲线

④宏平均/微平均/一致性指数。

上述指标满足对二分类模型性能的评价。在多分类(n分类)任务中则需要定义新的模型评价指标。这些指标是衡量文本多分类器的重要评价参数。宏平均(Macro-average)和微平均(Micro-average)常用于考察和评价n个二分类混淆矩阵,是衡量文本多分类器的重要指标。宏平均是先对每一个二分类计算指标值,然后求所有二分类指标值的算术平均值。简单理解就是将n分类拆成n个二分类,计算每个二分类混淆矩阵的PR值和RR值,然后求得平均PR值和平均RR值,再计算Fβ或F1值。微平均是对数据集中的每一个实例不分类别进行统计建立全局混淆矩阵,然后计算相应指标。简单理解就是,先根据所有二分类的平均TP、FP、TN和FN构建全局混淆矩阵,接着计算全局混淆矩阵的PR和RR值,进而求得Fβ或F1值。宏平均指标相对微平均指标受小类别的影响更大,微平均受大类别的影响比较大。因此,在测试数据集上,度量分类器对大类判别的有效性应该选择微平均,反之对小类判别的有效性则应该选择宏平均。

卡帕一致性指数(Kappa Index of Agreement,KIA)是一种能够测度名义变量变化的统计方法,它能够计算整体一致性和分类一致性,是一种衡量分类精度的指标。混淆矩阵可以很好地描述数据随时间的变化以及变化的方向,但不能从统计意义上描述变化的程度,KIA可以弥补这一缺点。KIA的计算公式为

其中,,r表示总类别数,N表示样本总数,*表示遍历所有类别。p0被称为观测一致性单元的比例,pc为偶然一致性单元的比例。KIA值的范围为[0, 1],通常可细分为5种不同级别:[0.0, 0.20)为极低一致性,[0.20, 0.40)为一般一致性,[0.40, 0.60)为中等一致性,[0.60, 0.80)为高度一致性,[0.80, 1]为几乎完全一致性。

2)文本匹配模型排序评估指标

①平均准确率均值。

平均准确率(Average Precision, AP)是对不同召回率点上的准确率进行平均。例如,某个查询共有6个相关结果,某系统排序返回了5个相关结果,其位置分别是第1、第2、第5、第10、第20位,则AP=(1/1+2/2+3/5+4/10+5/20+0)/6。平均准确率均值(Mean Average Precision, MAP)是所有查询的AP的宏平均。具体而言,单个主题的平均准确率是每篇相关文档检索后准确率的平均值,主集合的平均正确率是每个主题的平均准确率的平均值,反映系统在匹配全部相关文档上性能的单值指标。系统检索出来的答案的位置称为rank,相关文档越靠前,rank越高,mAP就可能越高,如果系统没有返回相关文档,则准确率默认为0。

②平均倒序值。

对于一些文本系统而言,如问答系统或主页发现系统,只关心第一个标准答案返回的位置,其位置越靠前越好。标准答案在评价系统给出结果中的排序的倒数称为倒序值(Reciprocal Rank, RR),用来衡量准确度,所有问题集合的平均即为平均倒序值(Mean Reciprocal Rank, mRR)。

③第N个位置的正确率(Precision@N)。

对于搜索引擎,考虑到大部分作者只关注前N页的结果,P@10、P@20对大规模搜索引擎非常有效。

④归一化折损累积增益。

每个文档不仅只有相关和不相关两种情况,还有相关度级别,比如0、1、2、3。假设返回结果中相关度级别高的结果越多越好,越靠前越好。归一化折损累积增益(Normalized Discounted Cumulative Gain,NDCG)被用来衡量相关度级别,其优点是图形直观,易解释,支持非二值相关度定义,比P-R曲线更精确,能反映用户的行为特征,如用户的持续性等。但缺点是相关度定义难以一致,需要对参数进行设定。

⑤面向用户的评价指标。

前面的指标都没有考虑用户因素,然而相关与否是由用户来判定的。假定用户已知的相关文档集合为U,检索结果集合A与U的交集为Ru,覆盖率定义为,表示系统找到用户已知相关文档所占的比例。假定检索结果返回用户未知的相关文档集合用Rk表示,那么新颖率(Novelty Ratio)定义为,表示系统返回的新相关文档的比例。覆盖率和新颖率如图3-3所示。

图3-3 覆盖率和新颖率图示

3)文本生成任务指标

常见的文本生成任务评价方法又可分为两类,一类通过人工评价,从有用性等对文本进行打分;另一类采用ROUGE-N和BLEU等自动化评价指标,评估生成文本和参考文本间的相似度来衡量生成质量,目前应用最为广泛。

①ROUGE-N指标。

文本中连续出现的n个语词被称为N元组(N-gram)。N元组模型是基于N-1阶马尔可夫链的一种概率语言模型,通过n个语词出现的概率来推断语句的结构。当n分别为1、2、3时,分别对应为一元组(Unigram)、二元组(Bigram)与三元组(Trigram)。

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一种基于召回率的相似性度量方法。ROUGE-N指标的定义为机器翻译文本和参考文本共有的N-gram短语计数与参考文本中N-gram短语计数之间的比率。通常只使用ROUGE-1和ROUGE-2指标,对于长度很长的翻译文本有时候也可使用ROUGE-3指标。随着N值增加,参考文本和机器翻译文本中完全匹配的单词/短语的N-gram的长度也相应增加了。例如,考虑两个语义相似的短语“apples bananas”和“bananas apples”,使用ROUGE-1则只考虑单词,这两个短语是相同的,使用ROUGE-2则使用双字短语,“apples bananas”与“bananas apples”是两个不同的单一实体,从而导致“未命中”和较低的评价分数。

②BLEU指标。

BLEU(Bilingual Evaluation Understudy)被称为双语互译质量辅助工具,是一种基于精确度的相似性度量方法,用来衡量机器翻译文本与参考文本中N元组共同出现的程度,广泛用于机器翻译的评估。BLEU取值范围为[0, 1],取值越接近1表示机器翻译结果越好。BLEU指标从提出以来经历了多次更新和升级。

最初BLEU指标是计算参考文本和机器翻译文本中共同出现的N-gram短语计数与机器翻译文本中N-gram短语计数的比例。早期BLEU指标并不完善,比如在有较多常见词的翻译文本中,翻译质量较差的译文也能得到较高的精度。为了解决这一问题,产生了改良型BLEU指标。假设机器翻译文本用Ci表示,参考文本用Sij={si1, si2, ..., sim}表示,j=1, 2, ..., m,m为参考文本的数量。令ωk表示第k组可能的N元组,hk(Ci)表示ωk在Ci中出现的次数,hk(Sij)表示ωk在Sij中出现的次数。那么,各阶N-gram的准确率Pn可按照公式(3.25)计算

其中,maxj∈mhk(Sij)表示N-gram在所有参考文本中出现最多的次数。

可以看出,一旦在机器翻译文本中识别出单词/短语,就应该将其视为耗尽。具体是,首先在参考文本中找到单词/短语在任何单个引用中出现的最大次数,此计数成为该单词/短语的最大引用计数。然后,通过最大引用计数剪切每个单词/短语的总计数,在机器翻译文本中添加每个单词/短语的剪切计数,并将总和除以机器翻译文本中的单词/短语总数。这种方式解决了机器翻译文本中重复或过度生成单词的问题。但是随着句子长度的变短精度值会变高,比如,当机器翻译文本中只有部分句子翻译得比较准确时,BLEU也会很高。为了避免评分的偏向性,引入BP(Brevity Penalty)惩罚因子,其计算公式为

其中,lc表示Ci的长度,ls表示Sij的有效长度(当存在多个参考文本时,选择与lc最接近的长度)。当机器翻译文本长度大于参考文本的长度时,惩罚系数为1,意味着不惩罚,只有机器翻译文本长度小于等于参考文本时才会计算惩罚因子。BP惩罚因子用来调节机器翻译文本对参考文本的完整性和充分性。

最终BLEU指标的计算公式为

其中,N可取1, 2, 3,最多只统计三元组的精度。Wn通常为均匀加权,即Wn=

可以看出,与ROUGE不同,BLEU直接考虑可变长度短语(如一元组,二元组,三元组等)的加权几何平均。随着N的升高,N-gram的BLEU呈指数衰减,避免了机器翻译文本包含重复词汇的问题。

3.参数优化

根据学习策略,从给定、有限训练数据集合出发,从假设空间中选择模型,对已知训练数据及测试数据在给定评价准则下进行最优预测获得最优模型,这个过程需要优化算法实现。优化包括超参数优化和参数优化。超参数优化是根据经验来设定参数,比如梯度下降步长、正则化项系数、神经网络层数等,进而通过试错来调整,这种方法难以通过优化算法自动学习。因此,这里我们仅讨论参数优化。面对复杂的优化问题,通常难以通过简单的求导获得最终结果,一般用迭代优化算法来实现,常用的方法包括梯度下降法、牛顿法和拟牛顿法。

①梯度下降法。

梯度下降法源自对最小二乘法的数值解计算。最小二乘法是计算最优化问题的解析解,适用于样本量不是很大且存在解析解的情况,计算速度很快。对于样本量很大的情况,此时最小二乘法需要求解一个超级大的逆矩阵,求解析解变得非常困难且会耗费巨大算力。和最小二乘法相比,梯度下降法通过选择步长进行迭代求解,这种情况下使用迭代的梯度下降法会更有优势,比如随机梯度下降法。

针对梯度下降的优化算法,除了添加正则化项外,还可以提前停止以防止过拟和,每次迭代时对新模型进行测试,计算错误率,当错误率达到阈值后就停止迭代。进一步还可以抽取小批量的训练样本进行并行计算,比如采用随机梯度下降,每次迭代优化只对单个样本进行梯度计算,更新模型权重,这种方法在非凸优化问题中更容易逃离局部最优点。

②牛顿法/拟牛顿法。

牛顿法/拟牛顿法和梯度下降法相比,两者都是迭代求解,区别在于梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。在实际应用中,为了提高算法收敛速度和节省内存,在迭代求解时往往采用牛顿法/拟牛顿法,因其收敛速度更快,但每次迭代的时间比梯度下降法会更长。

从本质上来看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。更通俗地讲,比如想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步;牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以牛顿法比梯度下降法看得更远一点,能更快地走到最底部。相对而言,梯度下降法只考虑了局部的最优,没有全局思想。牛顿法选择的下降路径会更符合真实的最优下降路径。

我们上述讨论的问题均为等式约束优化问题,但等式约束并不足以描述人们面临的问题,不等式约束更为常见,增加了约束条件之后便可以用拉格朗日乘数法来求解不等式约束的优化问题。