NLG(自然语言生成)评估指标介绍

2023-10-16 06:52

本文主要是介绍NLG(自然语言生成)评估指标介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

诸神缄默不语-个人CSDN博文目录

本文介绍自然语言生成任务中的各种评估指标。
因为我是之前做文本摘要才接触到这一部分内容的,所以本文也是文本摘要中心。

持续更新。

文章目录

  • 1. 常用术语
  • 2. ROUGE (Recall Oriented Understudy for Gisting Evaluation)
    • 1. 计算指标
    • 2. 对rouge指标的更深入研究和改进
  • 3. BLEU (Bilingual Evaluation Understudy)
  • 4. METEOR (Metric for Evaluation for Translation with Explicit Ordering)
  • 5. Perplexity
  • 6. Bertscore
  • 7. Faithfulness
  • 8. 人工评估指标
  • 9. InfoLM
  • 10. MOVERSCORE
  • 11. BEER
  • 12. BEND
  • 参考资料

1. 常用术语

模型生成的句子、预测结果——candidate
真实标签——reference、ground-truth

2. ROUGE (Recall Oriented Understudy for Gisting Evaluation)

ROUGE值是文本摘要任务重最常用的机器评估指标,衡量生成文本与真实标签之间的相似程度。

precision:candidate中匹配reference的内容占candidate比例
recall:candidate中匹配reference的内容占reference比例

示例:

Reference: I work on machine learning.Candidate A: I work.Candidate B: He works on machine learning.

在这个例子中,用unigram(可以理解为一个词或token)1衡量匹配:A就比B的precision更高(A的匹配内容I work占candidate 100%,B的on machine learning占60%),但B的recall更高(60% VS 40%)。

出处论文:(2004 WS) ROUGE: A Package for Automatic Evaluation of Summaries

感觉没有2004年之后的文本摘要论文不使用这个指标的,如果看到有的话我会专门来这里提一嘴的。

分类:ROUGE-N(常用其中的ROUGE-1和ROUGE-2), ROUGE-L,ROUGE-W,ROUGE-S(后两种不常用)
原版论文中ROUGE主要关注recall值,但事实上在用的时候可以用precision、recall和F值。(我看到很多论文都用的是F值)

1. 计算指标

每种rouge值原本都是计算recall的,主要区别在于这个匹配文本的单位的选择:

ROUGE-N:基于n-grams,如ROUGE-1计算基于匹配unigrams的recall,以此类推。
ROUGE-L:基于longest common subsequence (LCS)
ROUGE-W:基于weighted LCS
ROUGE-S:基于skip-bigram co-occurence statistics(skip-bigram指两个共同出现的单词,不管中间隔了多远。要计算任何bigram的出现可能 C n 2 C_n^2 Cn2

以ROUGE-L为例, A A A 是candidate,长度 m m m B B B 是reference,长度 n n n
P = L C S ( A , B ) m P=\frac{LCS(A,B)}{m} P=mLCS(A,B) R = L C S ( A , B ) n R=\frac{LCS(A,B)}{n} R=nLCS(A,B) F = ( 1 + b 2 ) R P R + b 2 P F=\frac{(1+b^2)RP}{R+b^2P} F=R+b2P(1+b2)RP

2. 对rouge指标的更深入研究和改进

(2018 EMNLP) A Graph-theoretic Summary Evaluation for ROUGE

批判文学:(2023 ACL) Rogue Scores:喷原包有bug。嘛我之前也喷过2,终于有顶会论文喷了我很欣慰

3. BLEU (Bilingual Evaluation Understudy)

常用于翻译领域。
出处论文:(2002 ACL) Bleu: a Method for Automatic Evaluation of Machine Translation

precision用modified n-gram precision估计,recall用best match length估计。

Modified n-gram precision:
n-gram precision是candidate中与reference匹配的n-grams占candidates的比例。但仅用这一指标会出现问题。
举例来说:

Reference: I work on machine learning.Candidate 1: He works on machine learning.Candidate 2: He works on on machine machine learning learning.

candidate 1的unigram precision有60%(3/5),candidate 2的有75%(6/8),但显然candidate 1比2更好。
为了解决这种问题,我们提出了“modified” n-gram precision,仅按照reference中匹配文本的出现次数来计算candidate中的出现次数。这样candidate中的onmachinelearning就各自只计算一次,candidate 2的unigram precision就变成了37.5%(3/8)。

对多个candidate的n-gram precision,求几何平均(因为precision随n呈几何增长,因此対数平均能更好地代表所有数值(这块其实我没看懂)):
P r e c i s i o n = exp ⁡ ( ∑ n = 1 N w n log ⁡ p n ) , where  w n = 1 / n Precision=\exp(\sum_{n=1}^Nw_n\log p_n),\ \text{where} \ w_n=1/n Precision=exp(n=1Nwnlogpn), where wn=1/n

Best match length:
recall的问题在于可能存在多个reference texts,故难以衡量candidate对整体reference的sensitivity(这块其实我也没看懂)。显然长的candidate会包含更多匹配文本,但我们也已经保证了candidate不会无限长,因为这样的precision可能很低。因此,我们可以从惩罚candidate的简洁性(文本短)入手来设计recall指标:
在modified n-gram precision中添加一个multiplicative factor B P BP BP
B P = { 1 , if  c > r exp ⁡ ( 1 − r c ) , otherwise \begin{aligned} BP=\begin{cases}1,& \text{if}\ c >r\\ \exp \left( 1-\dfrac{r}{c}\right) ,&\text{otherwise}\end{cases} \end{aligned} BP={1,exp(1cr),if c>rotherwise
其中 c c c 是candidates总长度, r r r 是reference有效长度(如reference长度平均值),随着candidate长度( c c c)下降, B P BP BP 也随之减少,起到了惩罚短句的作用。

4. METEOR (Metric for Evaluation for Translation with Explicit Ordering)

常用于翻译领域。

出处:(2005) METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments

BLEU的问题在于 B P BP BP 值所用的长度是平均值,因此单句得分不清晰。而METEOR调整了precision和recall的计算方式,用基于mapping unigrams的weighted F-score和penalty function for incorrect word order来代替。

Weighted F-score:
首先,我们要找到candidate和reference间最大的可以形成对齐(alignment)的映射(mappings)子集(subset)。在经过Porter stemming[^3]、用了WordNet同义词后,假设找到的对齐数是 m m m,则precision就是 m / c m/c m/c c c c 是candidate长度)、recall是 m / r m/r m/r r r r 是reference长度),F就是 F = P R α P + ( 1 − α ) R F=\frac{PR}{\alpha P+(1-\alpha)R} F=αP+(1α)RPR

Penalty function:
考虑candidate中的单词顺序:
P e n a l t y = γ ( c m ) β , where  0 ≤ γ ≤ 1 Penalty=\gamma(\frac{c}{m})^\beta,\ \text{where}\ 0\leq\gamma\leq1 Penalty=γ(mc)β, where 0γ1
其中 c c c 是matching chunks数, m m m 是matches总数。因此如果大多数matches是连续的, c c c 就会小,penalty就会低。这部分我的理解是:连续的matches组成一个chunk。但我不确定,可能我会去查阅更多资料。

最终METEOR得分的计算方式为:
( 1 − P e n a l t y ) F (1-Penalty)F (1Penalty)F

5. Perplexity

常用于语言模型训练。
待补。

6. Bertscore

使用该指标的论文:Rewards with Negative Examples for Reinforced Topic-Focused Abstractive Summarization
待补。

7. Faithfulness

  1. Entailment Ranking Generated Summaries by Correctness: An Interesting but Challenging Application for Natural Language Inference:用预训练的基于entailment的方法评估原文蕴含生成摘要的概率
  2. FactCC Evaluating the Factual Consistency of Abstractive Text Summarization:用基于规则的变换生成假摘要,训练基于Bert的模型,分类生成摘要是否faithful
  3. DAE Annotating and Modeling Fine-grained Factuality in Summarization:收集细粒度的词/依赖/句级别的faithfulness的标注,用这些标注训练factuality检测模型

8. 人工评估指标

文本的流畅程度、对原文的忠实程度、对原文重要内容的包含程度、语句的简洁程度等

9. InfoLM

出处论文:(2022 AAAI) InfoLM: A New Metric to Evaluate Summarization & Data2Text Generation
待补。

10. MOVERSCORE

待补

11. BEER

待补。

12. BEND

待补。

参考资料

  1. Metrics for NLG evaluation. Simple natural language processing… | by Desh Raj | Explorations in Language and Learning | Medium
  2. 我还没看,等我看完了补上:
    Revisiting Automatic Evaluation of Extractive Summarization Task: Can We Do Better than ROUGE?
    Benchmarking Answer Verification Methods for Question Answering-Based Summarization Evaluation Metrics
    SARI
    InfoLM: A New Metric to Evaluate Summarization & Data2Text Generation
    SPICE
    Play the Shannon Game With Language Models: A Human-Free Approach to Summary Evaluation
    Reference-free Summarization Evaluation via Semantic Correlation and Compression Ratio

  1. 参考unigram_百度百科
    父词条:n-gram
    unigram: 1个word
    bigram: 2个word
    trigram : 3个word
    (注意此处的word是英文的概念,在中文中可能会根据需要指代字或词)
    中文中如果用字作为基本单位,示例:
    西安交通大学:
    unigram 形式为:西/安/交/通/大/学
    bigram形式为: 西安/安交/交通/通大/大学
    trigram形式为:西安交/安交通/交通大/通大学 ↩︎

  2. pyrouge和rouge在Linux上的安装方法以及结果比较 ↩︎

这篇关于NLG(自然语言生成)评估指标介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/219807

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码