| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Image captioning评价方法之BLEU (bilingual evaluation understudy) -> 正文阅读 |
|
[人工智能]Image captioning评价方法之BLEU (bilingual evaluation understudy) |
文章地址:BLEU: a Method for Automatic Evaluation of Machine Translation 代码地址(非官方):https://github.com/tylin/coco-caption 该评价方法是IBM发表于ACL2002上。从文章命名可以看出,文章提出的是一种双语评价替补,"双语评价(bilingual evaluation)"说明文章初衷提出该评价指标是用于机器翻译好坏的评价指标,"替补(understudy)"说明文章想提出一种有效的评价指标进而帮助人类来快速评价翻译结果的好坏。 翻译结果的好坏,指的是翻译的结果与人类翻译的结果是否尽可能的相似。 下面来看看该评价指标是如何来做到的。在说明该评价计算方法之前先说明两个概念,一个是生成的翻译内容下文称为candidate translation,一个是人工标注或者说是人工翻译内容称为reference translation。 为了更好的说明,先定义一些字符,对于一条输入i,candidate translation为 c i c_i ci?, reference translation有多个为一个集合 R i = { r i 1 , r i 2 , . . . , r i j , . . . r i m } R_i=\{r_{i1},r_{i2},...,r_{ij},...r_{im}\} Ri?={ri1?,ri2?,...,rij?,...rim?}, 一个n元组n-gram为由n个有顺序的单词组成的序列, c o u n t k count_k countk?为计算k元组(k-gram)在candidate translation/ reference translation中的出现次数。 一、 Modified n-gram precision1.1 modified unigram precision的引入本文提出的评价方法的基石是precision measure。 准确率的计算如下:
在准确率基础上,文章改进了一版,称为modified unigram precision。 modified unigram precision的计算如下(写法与原文有点不太一样,但是更好理解):
上述解释看起来比较绕,举个例子来说明 (下面例子统计单词数时都是忽略大小写的): Example 1:
如果这种情况用precision来计算,candidate translation只有一种字就是the,而不管是reference1还是reference2只要一个中包含the,那么the就是预测正确的字,预测正确的字的个数为7,candidate translation总的字数为7,所有precision就为7/7。 如果采用modified unigram precision来计算
同理,再举一个例子: Example 2:
下面只计算modified unigram precision: 对于Candidate 1来说
同理对于Candidate2来说也可以计算出 m o d i f i e d ? u n i g r a m ? p r e c i s i o n = ∑ i ∈ C C o u n t c l i p i l e n ( C ) = 8 / 14 modified\ unigram\ precision=\frac{\sum_{i\in C}Count_{clip_i}}{len(C)}=8/14 modified?unigram?precision=len(C)∑i∈C?Countclipi???=8/14 1.2 modified n-gram precision的引入上述是 unigram的情况,更为通用的是采用n-gram的情况来计算,用公式表示为 p n = ∑ C ∈ { C a n d i d a t e s } ∑ n ? g r a m ∈ C C o u n t c l i p ( n ? g r a m ) ∑ C ′ ∈ { C a n d i d a t e s } ∑ n ? g r a m ′ ∈ C ′ C o u n t ( n ? g r a m ′ ) p_n=\frac{\sum_{C\in\{Candidates\}}\sum_{n-gram\in C}Count_{clip}(n-gram)}{\sum_{C'\in\{Candidates\}}\sum_{n-gram'\in C'}Count(n-gram')} pn?=∑C′∈{Candidates}?∑n?gram′∈C′?Count(n?gram′)∑C∈{Candidates}?∑n?gram∈C?Countclip?(n?gram)? 这个式子只是上面unigram的拓展,因为对于一次翻译系统的测试来说,输入可能是多个待翻译的句子,输出也是多个,所以评价这个测试系统是从整个数据集来的,所以存在 ∑ C ∈ { C a n d i d a t e s } \sum_{C\in\{Candidates\}} ∑C∈{Candidates}?。而后面的 ∑ n ? g r a m ∈ C \sum_{n-gram\in C} ∑n?gram∈C?也是上面 ∑ i ∈ C \sum_{i\in C} ∑i∈C?的扩展,因为n-gram表示所有元组为n的个数。上述是分子的构成,同理分母也是 l e n ( C ) len(C) len(C)的扩展,相对于分子要求每个元组的 C o u n t c l i p i = m i n ( C o u n t i , R e f _ C o u n t i ) Count_{clip_i}=min(Count_i, Ref\_Count_{i}) Countclipi??=min(Counti?,Ref_Counti?)(这里i表示一个元组),分母只需要求所有元组的总数即可。 1.3 modified n-gram precision的合并方式文章采用五个翻译系统-两个人三个翻译机器,翻译的结果采用n-gram来计算,如下图所示 上图展示了modified n-gram precision随着n的增加,呈指数衰减,为了方面不同n取值时的n元组(n取1,2,3,4时)评测结果能够进行合并,得到平均的结果,在合并前将各个评测结果采用log来计算。 二、 翻译输出的长度对于评测指标的影响生成的翻译既不能太长也不能太短,实际上modified n-gram precisions已经考虑了这种情况,例如n-gram precision会惩罚生成虚假词(reference translations没有出现的词),并且也会惩罚一个词出现的次数比reference translations中最大的出现次数还多的情况。但是还没有对很好的考虑合适的翻译长度,如下面例子: Example 3:
因为candidate translation很短,对于modifified unigram precision=2/2,对于modifified bigram precision(2-gram)=1/1。从上面结果来看,只考虑准确率,那么这个翻译结果在评测指标上可以取得很好的结果。所以还需要考虑recall的情况。 2.1 recall的计算困难在例子3中,可以看出,考虑召回很重要。但是不同于其他任务,翻译任务的reference translation有多个,recall不太好计算。举下面例子来说明。 Example 4:
可以看出从翻译好坏来讲,candidate 1明显不如candidate 2,但是由于存在多个reference translation的情况,candidate1召回单词数比candidate2要多。所以recall在这种情况下不是很好计算。 2.2 Sentence brevity penalty例子4的情况,在算modified n-gram precisions时,由于句子太长,会受到相应的惩罚,所以这里不需要去考虑长句子的评价问题。所以文章引入一个名叫brevity penalty的乘法因子,用于惩罚例子3这种过短句子的情况。 当candidate长度与任何一个reference长度一样时则不对precision进行惩罚,即brevity penalty为1.0。如candidate的长度为12,reference长度有12,15,17,那么brevity penalty为1.0。这里我们定义与candidate长度最接近的reference长度称为**“best match length”**。 考虑到reference有多个的情况,brevity penalty计算如下,计算测试集所有有效reference translation长度的和记为r(有效长度指的是为各个candidate对应的"best match length")。brevity penalty的指数衰减参数为r/c,c为整个数据集所有candidate translation长度的和。 三、 BLEUBLEU的计算公式如下: B L E U = B P ? e x p ( ∑ n = 1 N w n l o g p n ) BLEU=BP\cdot exp(\sum^N_{n=1}w_nlogp_n) BLEU=BP?exp(∑n=1N?wn?logpn?) B P = { 1 , i f c > r e ( 1 ? r / c ) , i f c ≤ r BP = \left \{ \begin{aligned} 1, \quad if \quad c>r \\ e^{(1-r/c)}, \quad if \quad c \leq r \end{aligned} \right. BP={1,ifc>re(1?r/c),ifc≤r? 式中, w n w_n wn?为 1 / N 1/N 1/N |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 8:22:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |