自然语言处理 机器翻译常用的评价度量:
人工阅读,流畅度,相关度. 助盲度(评价生成语句对一个实力缺陷的人去理解其意思有多大的帮助)
详细请参考机器翻译评价指标-BLEU 和 机器翻译自动评估-BLEU算法详解 和 机器翻译评价指标之BLEU详细计算过程
当然很多人对BLEU持保留意见 请参考: NLP 中评价文本输出都有哪些方法?为什么要小心使用 BLEU?
BLEU(Bilingual Evaluation understudy) 是一种流行的机器翻译评价指标,一种基于精度的相似度量方法, 用于分析候选译文和参考译文中n元组共同出现的程度. 由IBM于2002年提出.
对于一个待翻译句子, 候选译文可以表示为Ci 而对应的一组参考译文可以表示为Si={s_i1, s_i2,.}, n-gram表示n个单词长度的词组集合,令Wk表示第k组可能的n-grams, hk(ci)表示Wk在候选译文Ci中出现的额次数, hk(sij)表示Wk在参考译文sij中出现的次数,BLEU则按下式计算对应语句语料库层面上的重合精度:
C P n ( C , S ) = ∑ i ∑ k m i n ( h k ( c i ) , m a x j h k ( s i j ) ) / ∑ i ∑ k h k ( c i ) CP_n(C,S) = \sum_i\sum_k min(h_k(c_i), max_j h_k(s_{ij})) / \sum_i\sum_k h_k(c_i) CPn(C,S)=i∑k∑min(hk(ci),maxjhk(sij))/i∑k∑hk(ci)
其中k表示了可能存在的n-gram序号,容易看出CPn(C,S)是一个精确度度量, 但因为普通的CPn值计算并不能评价翻译的完整性,但是这个属性对于评价翻译的质量不可或缺,因此研究者们在最后的BLEU_N值之前加入BP惩罚因子.
BP惩罚因子(Brevity Penalty),如下,其中l_c 表示候选译文Ci的长度,l_s表示参考译文Sij的有效长度(当存在多个参考译文时, 选取和l_c最接近的长度),
b ( C , S ) = { 1 , l c > l s e 1 − l s / l c , l c < = l s b(C,S)=\begin{cases} 1, & l_c > l_s\\ e^{1-l_s/l_c}, & l_c <= l_s \end{cases} b(C,S)={1,e1−ls/lc,lc>lslc<=ls
本质上,BLEU是一个n-gram精度的加权几何平均,按照下式计算:
B L E U N ( C , S ) = b ( C , S ) e x p ( ∑ n = 1 N w n l o g ( C P n ( C , S ) ) ) BLEU_N(C, S) = b(C,S) exp(\sum_{n=1}^{N} w_n log(CP_n(C,S))) BLEUN(C,S)=b(C,S)exp(n=1∑Nwnlog(CPn(C,S)))
其中, N可取1,2,3,4, 而w_n 一般对所有n取常值, 即1/n.
需要说明的是BLEU采用clipping策略, 即在参考译文中被匹配过的单元(ngram)应该被剪切掉,而不应该再被匹配. BLEU在语料库层级上具有很好匹配的语句上表现很好,但是随着n的增加, 在聚在层级上的匹配越来越差,因此BLEU在个别语句上可能表现不佳.
ROUGE(Recall-Oriented Understudy for Gisting Evaluation) 一种基于召回率的相似度量方法,和BLEU类似, 无Fmeans 评价功能,主要考察翻译的充分性和忠实性, 无法评价参考译文的流畅度, 其计算的时N元组(Ngram)在参考译文和待测评译文的共现概率. ROUGE包含以下四种:
ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S, 具体区别如下:
ROUGE-N: 基于Ngram共现性统计
ROGUE-L: 基于最长共有子句共现性精确度和召回率Fmeasure统计
ROGUE-W: 带权重的最长公有子句共现性精确度和召回率Fmeasure统计
ROUGE-S: 不连续二元组共现性精确度和召回率Fmeasure统计
ROUGE-N公式如下:
$ R O U G E − N = ∑ s , r e f e r e n c e S u m m a r i e s ∑ g r a m n C o u n t m a t c h ( g r a m n ) / ∑ s , r e f e r e n c e S u m m a r i e s ∑ g r a m n C o u n t ( g r a m n ) ROUGE-N = \sum_{s, referenceSummaries}\sum_{gram_n}Count_{match}(gram_n)/ \sum_{s, referenceSummaries}\sum_{gram_n}Count(gram_n) ROUGE−N=∑s,referenceSummaries∑gramnCountmatch(gramn)/∑s,referenceSummaries∑gramnCount(gramn)
n 代表n 元组, Count_match(gram_n)是待测评句子中出现的最大匹配n-gram的个数, 从分子中可以看出 ROUGE-N 是一个基于Recall的度量指标.
ROUGE-L: 最长公共子句longest common subsequence(LCS)的定义: 假设存在序列X=[x1,x2,…]和Y= [y1, y2,…],如果存在严格递增序列[i1, i2…]是X的索引, 对于每个j=1,2,…总有Xij=Yj 则Y是X的子序列; 序列X与Y的最大长度的公共子序列成为LCS.使用基于LCS的Fmeasure 来评价两个句子X和Y的相似性,假设X是参考译文, Y是待评测译文, 则F_lcs:
R l c s = L C S ( X , Y ) / m , P l c s = L C S ( X , Y ) / n , F l c s = ( 1 + β 2 ) R l c s P l c s / ( R l c s + β 2 P l c s ) R_{lcs} = LCS(X,Y)/m, \\ P_{lcs} = LCS(X,Y)/n, \\ F_{lcs} = (1+\beta^2)R_{lcs}P_{lcs}/(R_{lcs} + \beta^2P_{lcs}) Rlcs=LCS(X,Y)/m,Plcs=LCS(X,Y)/n,Flcs=(1+β2)RlcsPlcs/(Rlcs+β2Plcs)
其中m, n分别是X和Y的序列长度, \beta = P_{cls}/R_{cls} 如果\beta过大,则只需要考虑R_{lcs}, 最后我们把F_{lcs}称为ROUGE-L, 关于另外两种ROUGE这里不做详述.
总体来说ROUGE有如下优势:
参考译文越多, 则证明待评测译文的ROUGE与人类评测越相关, 同理待评测译文越多, 相关性也越高, 单文件任务比多文件任务的关联性更大.
研究表明,基于召回率的标准相比于那些单纯基于精度的标准(BLEU), 其结果和人工判断的结果有较高相关性, METEOR测量基于单精度的加权调和平均数和单字召回率, 其目的时解决一些BLEU标准 中固有的缺陷, METEOR也包括其他指标没有发现一些其他功能, 如同义词匹配, 计算METEOR需要预先给定一组校准(alignment )m. 而这一校准基于wordnet 的同义词库, 通过最小化对应语句中连续有序的块(chunks)ch来得出, 则METEOR 计算为对应最佳候选译文和参考译文之间的准确率和召回率的调和平均:
P e n = γ ( c h / m ) x , F m e a n = P m ∗ R n / ( a ∗ P m + ( 1 − a ) R m ) Pen = \gamma(ch/m)^{x},\ F_{mean} = P_m*R_n/(a*P_m + (1-a)R_m) Pen=γ(ch/m)x, Fmean=Pm∗Rn/(a∗Pm+(1−a)Rm)
其中: P m = ∣ m ∣ / ∑ k h k ( c i ) , R m = ∣ m ∣ / ∑ k h k ( s i j ) , M E T E O R = ( 1 − P e n ) F m e a n P_m = |m|/\sum_{k} h_k(c_i), \ R_m = |m|/\sum_{k}h_k(s_{ij}), \ METEOR=(1-Pen)F_{mean} Pm=∣m∣/k∑hk(ci), Rm=∣m∣/k∑hk(sij), METEOR=(1−Pen)Fmean
a, \gramma. x 均为用于评价默认参数,因此, METEOR的最终评价基于块(chunk)的分解匹配和表征分解匹配质量的一个调和平均, 并包含一个惩罚系数Pen 和BLEU不同, MEREOR同时考虑了基于整个语料库上的准确率和召回率,而最终得到测度.
CIDEr(consensus-based Image Description Evaluation) 不同于上述的评价指标都来自 自然语言处理中的机器翻译任务, 该标准是在计算机视觉与模式识别大会上提出的针对图片摘要问题的度量指标. 研究者认为过去的多种评价方法和人类评价具有较强的相关性, 但是无法统一到一个度量标准下来评价其与人的相似性,为了解决这个问题 ,从而评价计算机自动生成的句子到底有多像人工书写的,Vedantam等人提出了基于共识的评价标准, 其基本工作原理就是通过度量待测评语句与其他大部分人工描述句之间的相似性来评价相似性 .研究者证明CIDEr在与人工共识的匹配度上要好于前面叙述的其他评价指标.
CIDEr 首先将n-grams在参考句中的出现频率编码进来, n-grams在数据集所有图片中经常出现的头的权重应该减少, 因为其包含的信息量更少,该权重研究者通过TFIDF计算每个n-gram的权重, 将句子用n-grams表示成向量形式,每个参考句和待测评句之间通过计算TFIDF向量的余弦距离来度量其相似性.
假设Ci 是待测评句子, 参考句子集合为Si={si1, si2,…},
C I D E r n ( c i , S i ) = 1 / m ∑ j g n ( c i ) ∗ g n ( s i j ) / ∣ ∣ g n ( c i ) ∣ ∣ ∣ ∣ g n ( s i j ) ∣ ∣ CIDEr_{n}(c_i, S_i) = 1/m\sum_j g^n(c_i) * g^n(s_{ij})/||g^n(c_i)||||g^n(s_{ij})|| CIDErn(ci,Si)=1/mj∑gn(ci)∗gn(sij)/∣∣gn(ci)∣∣∣∣gn(sij)∣∣
其中g^n(c_ij) 和 g ^(n)(s_ij) 的TFIDF向量, 与BLEU类似, 当使用 多种长度的ngrams时,
C I D E r ( c i , S i ) = 1 / N ∑ n = 1 C I D E r n ( c i , S i ) CIDEr(c_i, S_i)=1/N \sum_{n=1}CIDEr_n(c_i, S_i) CIDEr(ci,Si)=1/Nn=1∑CIDErn(ci,Si)
令Wk 表示第k组可能的n-gram, hk(ci)表示Wk在候选译文Ci中出现的次数, hk(sij)表示Wk在参考因为sij中出现的次数, 则对Wk 计算权重TFIDF 向量gk(sij).
g k ( s i j ) = h k ( s i j ) / ∑ w l ∈ ω h l ( s i j ) l o g ( ∣ I ∣ / ∑ I p ∈ I m i n ( 1 , ∑ q h k ( s p q ) ) ) g_k(s_{ij}) = h_k(s_{ij})/\sum_{wl \in \omega} h_l(s_{ij}) log(|I|/\sum_{I_p\in I} min(1, \sum_q h_k(s_{pq}))) gk(sij)=hk(sij)/wl∈ω∑hl(sij)log(∣I∣/Ip∈I∑min(1,q∑hk(spq)))
\omega 是ngrams的字表, I是所有图片集合, 上式中第一项是TF项, 度量了每个n-gram, Wk的词频, 第二项是IDF项,利用IDF度量wk的稀缺性, TF与IDF作用是相互制约的,如果TF较高, 则IDF会减少wk的权重, 也就是说IDF会减少常见信息的权重, 而加大敏感信息的权重,最后作者还总结了 CIDEr提高了现有度量办法在度量共识反面的准确性.
参考博文:
BLEU,ROUGE,METEOR,ROUGE-浅述自然语言处理机器翻译常用评价度量