当前位置: 首页 > news >正文

生成式语言模型的文本生成评价指标(从传统的基于统计到现在的基于语义)

文本生成评价指标

  1. 以 BLEU 为代表的基于统计的文本评价指标
  2. 基于 BERT 等预训练模型的文本评价指标

1.以 BLEU 为代表的基于统计的文本评价指标

1.BLEU(Bilingual Evaluation Understudy, 双语评估辅助工具)

所有评价指标的鼻祖,核心思想是比较 候选译文 和 参考译文 里的 n-gram 的重合程度,重合程度越高就认为译文质量越高。

unigram 用于衡量单词翻译的准确性,高阶 n-gram 用于衡量句子翻译的流畅性。

  • 一般取 N = 1 ~ 4,然后加权平均

    B L E U = B P × e x p ( ∑ n = 1 N W n × P n ) B P = { 1 e x p ( 1 − l r / l c ) l c = 机器翻译候选译文的长度 l r = 最短的参考译文长度 BLEU=BP \times exp(\sum_{n=1}^N W_n \times P_n)\\ \begin{aligned} BP= \begin{cases} 1 \\ exp(1-lr/lc) \end{cases} \end{aligned}\\ lc=机器翻译候选译文的长度\\ lr=最短的参考译文长度 BLEU=BP×exp(n=1NWn×Pn)BP={1exp(1lr/lc)lc=机器翻译候选译文的长度lr=最短的参考译文长度

    • W n W_n Wn 指的是 n-gram 权重,默认是均匀权重
    • BP 是惩罚因子,如果译文的长度小于最短参考译文,则 BP 小于 1
    • BLEU 的 1-gram 精确度表示译文忠于原文的程度,其他的 n-gram 表示翻译的流畅度
  • 优点

    • 易于计算,速度快。
    • 应用范围广泛
  • 缺点

    • 不考虑语义、句子结构
    • 不能很好的处理形态丰富的句子(所以论文中建议配备 4 条参考译文)
    • BLEU 偏向于较短的翻译结果

2.ROUGE(Recall-Oriented Understudy for Gisting Evaluation)

ROUGE 是 BLEU 的改进版,从名字上可以看出,他专注于召回率而非精确率。

即,他会查看有多少个参考译文中的 n 元词组出现在输出中。

  • ROUGE 大致分为四种(前两种常用)
    • ROUGE-N(将 BLEU 的精确率优化为召回率)
    • ROUGE-L(将 BLEU 的 n-gram 优化为公共子序列)
    • ROUGE-W(将 ROUGE-L 的连续匹配给予更高的奖励)
    • ROUGE-S(允许 n-gram 出现跳词(skip))
  • 初衷
    • 在 SMT(统计机器翻译) 时代,机器翻译效果很差,需要同时评价翻译的准确度和流畅度。
    • 在 NMT(神经网络机器翻译) 时代,神经网络能力很强,翻译的结果大多都是通顺的,但是可能会一本正经的胡说八道
    • ROUGE 的出现是为了解决 NMT 的漏翻问题(低召回率)。所以 ROUGE 只适合评价 NMT,不适用于 SMT,因为他不评价译文的流畅与否。
  1. ROUGE-N
    • N 指 N-gram,计算方式与 BLEU 类似,但是基于召回率

    • ROUGE-N 主要统计 N-gram 上的召回率,对于 N-gram ,可以计算得到 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 ∈ S ∑ g r a m N ∈ S 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 ∈ S ∑ g r a m N ∈ S C o u n t ( g r a m n ) ROUGE-N=\frac{\sum_{S\in \{ReferenceSummaries\}gram_N\in S}\sum_{gram_N\in S} Count_{match}(gram_N)} {\sum_{S\in \{ReferenceSummaries\}gram_N \in S}\sum_{gram_N \in S} Count(gram_n)} ROUGEN=S{ReferenceSummaries}gramNSgramNSCount(gramn)S{ReferenceSummaries}gramNSgramNSCountmatch(gramN)

      • 分母是统计参考译文中的 N-gram 的个数;分子是统计参考译文与机器译文共有的 N-gram 个数
  2. ROUGE-L
    • ROUGE-L 中的 L 指最长公共子序列(Longest Common Subsequence, LCS),ROUGE-L 计算的时候使用了 机器译文 C 和 参考译文 S 的最长公共子序列。

      R L C S = L C S ( C , S ) l e n ( S ) P L C S = L C S ( C , S ) l e n ( C ) 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}=\frac{LCS(C,S)}{len(S)}\\ P_{LCS}=\frac{LCS(C,S)}{len(C)}\\ F_{LCS}=\frac{(1+\beta^2)R_{LCS}P_{LCS}}{R_{LCS}+\beta^2P_{LCS}} RLCS=len(S)LCS(C,S)PLCS=len(C)LCS(C,S)FLCS=RLCS+β2PLCS(1+β2)RLCSPLCS

      • R L C S R_{LCS} RLCS 表示 召回率, P L C S P_{LCS} PLCS 表示精确率, F L C S F_{LCS} FLCS 就是 ROUGE-L
      • 一般 β \beta β 会设置一个很大的数,因此 F L C S F_{LCS} FLCS 几乎只考虑 R L C S R_{LCS} RLCS(召回率)
  3. ROUGE-W
  4. ROUGE-S

2.基于语言模型的方法

1.PPL(困惑度)

它也可以用来比较两个语言模型在预测样本上的优劣。

低困惑度的概率分布模型或概率模型能更好地预测样本。

P P L ( W ) = P ( w 1 w 2 . . . w N ) − 1 N PPL(W)=P(w_1w_2...w_N)^{-\frac1N} PPL(W)=P(w1w2...wN)N1

  • 在对模型进行损失计算的时候,直接对损失去个指数就是 PPL 了

2.基于 BERT 的评分指标 → B E R T S C O R E BERT_{SCORE} BERTSCORE

  • 核心思想:对两个 生成句 和 参考句(WordPiece 进行 tokenize) 分别用 BERT 提取特征,然后对两个句子的每个词分别计算内积,得到一个相似性矩阵。基于这个矩阵,可以分别对参考句和生成句做一个最大相似性得分的累加然后归一化,得到 B E R T s c o r e BERT_{score} BERTscore 的 precision 、 recall 和 F1

    R B E R T = 1 ∣ x ∣ ∑ x i ∈ x max ⁡ x ^ j ∈ x ^ x i T x ^ j P B E R T = 1 ∣ x ^ ∣ ∑ x ^ j ∈ x ^ max ⁡ x i ∈ x x i T x ^ j F B E R T = 2 P B E R T ⋅ R B E R T P B E R T + R B E R T R_{BERT}=\frac1{|x|}\sum_{x_i \in x} \max_{\hat{x}_j \in \hat{x}}x_i^T\hat{x}_j\\ P_{BERT}=\frac1{|\hat x|}\sum_{\hat x_j \in \hat x} \max_{x_i \in x}x_i^T \hat x_j\\ F_{BERT}=2\frac{P_{BERT}·R_{BERT}}{P_{BERT}+R_{BERT}} RBERT=x1xixx^jx^maxxiTx^jPBERT=x^1x^jx^xixmaxxiTx^jFBERT=2PBERT+RBERTPBERTRBERT

3.总结

  • BLEU
    • 优点:计算速度,适合评估机器翻译等文本生成任务的准确性。依赖于 n-gram 匹配,所以对短文本评价友好
    • 缺点:无法衡量语义,容易惩罚语义合理的表示;对自由度较高的生成任务表现不佳
    • 使用场景:机器翻译、文本摘要,尤其是目标文本相对固定的情形
  • ROUGE
    • 优点:对文本摘要任务适用,尤其是 ROUGE-L 可识别长的匹配序列,适合评估摘要生成中较长的语义片段
    • 缺点:依赖表层匹配,缺乏对语义的深层次理解
    • 使用场景:在摘要生成任务中表现良好
  • PPL
    • 优点:可量化生成文本的流畅度,适合语言模型的评估
    • 缺点:与人类理解不直接相关;低的 PPL 不保证高质量文本。
    • 使用场景:适用于评估语言模型在训练数据上的拟合程度,对生成模型的流畅度 衡量有效
  • B E R T s c o r e BERT_{score} BERTscore
    • 优点:基于 BERT 等预训练模型,能捕获词汇和语义的相似度,弥补了传统表层指标的不足;对重组、同义表达的容忍度更高
    • 缺点:计算较慢,依赖模型的复杂度;性能依赖于使用的预训练模型
    • 使用场景:适合需要语义理解的生辰任务,如开放式问答和文本生成任务,在多样化表达中优异。
  • 总结
    • B L E U BLEU BLEU R O U G E ROUGE ROUGE 更适合传统的,较为结构化的生成任务
    • PPL 适合流畅度的评估
    • B E R T s c o r e BERT_{score} BERTscore 适合更深层次的语义对齐场景

相关文章:

生成式语言模型的文本生成评价指标(从传统的基于统计到现在的基于语义)

文本生成评价指标 以 BLEU 为代表的基于统计的文本评价指标基于 BERT 等预训练模型的文本评价指标 1.以 BLEU 为代表的基于统计的文本评价指标 1.BLEU(Bilingual Evaluation Understudy, 双语评估辅助工具) 所有评价指标的鼻祖,核心思想是比较 候选译文 和 参考…...

【网安案例学习】暴力破解攻击(Brute Force Attack)

### 案例与影响 暴力破解攻击在历史上曾导致多次重大安全事件,特别是在用户数据泄露和账户被盗的案例中。随着计算能力的提升和密码管理技术的进步,暴力破解的威胁虽然有所减弱,但仍需警惕,特别是在面对高价值目标时。 【故事一…...

时间序列预测(十八)——实现配置管理和扩展命令行参数解析器

如图,这是一个main,py文件,在此代码中,最开始定义了许多模型参数,为了使项目更加灵活和可扩展,便于根据不同的需求调整参数和配置,可以根据实际需要扩展参数和配置项。 下面是如何实现配置管理和扩展命令行…...

Vue问题汇总解决

作者:fyupeng 技术专栏:☞ https://github.com/fyupeng 项目地址:☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 我们经常在使用Vue开发遇到一些棘手的问题,解决后通常要进行总结,避免下次重复…...

Spark学习

Spark简介 1.Spark是什么 首先spark是一个计算引擎,而不是存储工具,计算引擎有很多: 第一代:MapReduce廉价机器实现分布式大数据处理 第二代:Tez基于MR优化了DAG,性能比MR快一些 第三代:Spark…...

一些小细节代码笔记汇总

Python cv2抓取摄像头图片保存到本地 import cv2 import datetime, ossavePath "E:/Image/"if not os.path.exists(savePath):os.makedirs(savePath)cap cv2.VideoCapture(0) capture Falseif not cap.isOpened():print("无法打开摄像头")exit()while…...

L4.【LeetCode笔记】链表题的VS平台调试代码

不用调用87.【C语言】数据结构之链表的头插和尾插文章提到的头插函数 记下这个模板代码,可用于在Visual Studio上调试出问题的测试用例 如创建链表[1,2,3,4,5] #include <stdilb.h> // Definition for singly-linked list.struct ListNode {int val;struct ListNode *…...

JavaCV 之高斯滤波:图像降噪与细节保留的魔法

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…...

VsCode显示空格

ctrl shift p选择Preferences: Open User Settings (JSON) 加上"editor.renderWhitespace": "all" {"cmake.configureOnOpen": true,"files.encoding": "gb2312","editor.fontVariations": false,"edito…...

.Net C# 基于EFCore的DBFirst和CodeFirst

DBFirst和CodeFirst 1 概念介绍 1.1 DBFirst&#xff08;数据库优先&#xff09; 含义&#xff1a;这种模式是先创建数据库架构&#xff0c;包括表、视图、存储过程等数据库对象。然后通过实体框架&#xff08;Entity Framework&#xff09;等工具&#xff0c;根据已有的数据…...

w012基于springboot的社区团购系统设计

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…...

笔记本降频超鬼锁屏0.39电脑卡到不行解决办法实操记录

1、最开始没发现cpu问题&#xff0c;我发现我电脑突然异常的卡顿&#xff0c;最开始我怀疑是不是微软win用久了或者自动更新导致的问题&#xff0c;于是自己重装了操作系统 发现问题依然存在 2、我怀疑难道我的 cpu 内存 固态硬盘 其中一个有点问题&#xff1f;心想要是硬盘的…...

优选算法第四讲:前缀和模块

优选算法第四讲&#xff1a;前缀和模块 1.[模板]前缀和2.【模板】二维前缀和3.寻找数组的中心下标4.除自身以外数组的乘积5.和为k的子数组6.和可被k整除的子数组7.连续数组8.矩阵区域和 1.[模板]前缀和 链接: link #include <iostream> #include <vector> using…...

ubuntu20.04 加固方案-设置限制su命令用户组

一、编辑/etc/pam.d/su配置文件 打开终端。 使用文本编辑器&#xff08;如vim&#xff09;编辑/etc/pam.d/su文件。 vim /etc/pam.d/su 二、添加配置参数 在打开的配置文件的中&#xff0c;添加以下参数&#xff1a; auth required pam_wheel.so 创建 wheel 组 并添加用户 …...

TDengine数据备份与恢复

TDengine数据备份与恢复 一、数据备份和恢复介绍二、基于 taosdump 进行数据备份恢复三、基于 taosExplorer 进行数据备份恢复3.1 taosExplorer 的安装与配置3.2 使用taosExplorer 进行数据备份 一、数据备份和恢复介绍 官网地址&#xff1a;TDengine - 数据备份和恢复 为了防止…...

2024最新的开源博客系统:vue3.x+SpringBoot 3.x 前后端分离

本文转载自&#xff1a;https://fangcaicoding.cn/article/54 大家好&#xff01;我是方才&#xff0c;目前是8人后端研发团队的负责人&#xff0c;拥有6年后端经验&3年团队管理经验&#xff0c;截止目前面试过近200位候选人&#xff0c;主导过单表上10亿、累计上100亿数据…...

研究中的“异质性”、“异质性结果”是指?

“异质性”这个词在统计学和研究中指的是数据、现象或群体之间的差异&#xff0c;即不同个体、组别、区域或时间点的表现或特征并不相同。相对的概念是“同质性”&#xff0c;即所有个体或组别在某一方面表现相同或接近。 异质性&#xff08;Heterogeneity&#xff09;的含义 …...

Springboot整合AOP和redis

aop pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 开启自动代理 注意&#xff1a;在完成了引入AOP依赖包后&#xff0c;一般来说并不需要去做其他…...

freetype学习总结

freetype学习总结 目录 freetype学习总结1. LCD显示字符问题引入2. freetype概念2.1 嵌入式设备使用FreeType的方法步骤2.2 嵌入式设备使用FreeType的注意事项 3. freetype官方C示例3.1 example1.c源码 4. 嵌入式设备上使用FreeType的简单示例4.1 简单示例代码4.2 代码分析 5. …...

上海亚商投顾:沪指缩量调整 华为概念股午后爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天震荡调整&#xff0c;沪指、深成指午后跌超1%&#xff0c;创业板指一度跌逾2%&#xff0c;尾盘跌幅有…...

操作系统与进程【单身狗定制版】

大家好呀 我是浪前 今天给大家讲解的是操作系统与进程 祝愿所有点赞关注的人&#xff0c;身体健康&#xff0c;一夜暴富&#xff0c;升职加薪迎娶白富美!!! 点我领取迎娶白富美大礼包 前言&#xff1a; 我们今天我们来学习操作系统 当然啦&#xff0c;操作系统是一个很庞大的…...

监听el-table中 自定义封装的某个组件的值发现改变调用函数

监听el-table中 自定义封装的某个组件的值发现改变调用函数 当你在一个 el-table 中使用封装的自定义组件作为单元格内容时&#xff0c;监听这个组件的值变化并调用函数&#xff0c;可以通过以下步骤实现&#xff1a; 创建自定义组件&#xff1a;首先创建一个自定义的 Vue 组…...

frida安装

开始安装 frida https://github.com/frida/frida/releases 下载安装的时候查看自己手机是多少位的 adb shell getprop ro.product.cpu.abi # 按照自己的机型下载进行解压里面有个文件放入到手机中开始进入手机 然后按照下面的图执行命令 其中log 我只是看了下 不需要执行因为刚…...

链表详解(三)

目录 链表功能实现链表的查找SLNode* SLFind(SLNode* phead, SLNDataType x)代码 链表任意位置前插入void SLInsert(SLNode**pphead&#xff0c;SLNode* pos, SLNDataType x)代码 链表任意位置前删除void SLErase(SLNode**pphead&#xff0c;SLNode* pos)代码 链表任意位置后插…...

【RESP问题】RESP.app GUI for Redis 连接不上redis服务器

问题描述&#xff1a; 在使用RESP的时候出现地址和密码正确但是连接不上Redis服务器的情况&#xff0c;但是由于在之前我是修改过Redis的配置文件的&#xff0c;所以现在怀疑是防火墙的问题。 问题解决&#xff1a; 在[rootlocalhost ~]下输入以下命令打开防火墙 #放通6379/…...

【github 有趣项目】AMULE

官方网站github ‘All-platform’ P2P client based on eMule电骡社区文档 下载&安装 去官方网站下载&#xff08;社区版一般版本较新&#xff09;&#xff0c;解压版解压打开即可。 点击“下一页”&#xff0c;输入名称&#xff0c;后边全都下一步即可 通过upnp设置端…...

【WRF数据准备】土地利用类型分类标准:USGS+MODIS IGBP 21

【WRF数据准备】土地利用类型分类标准&#xff1a;USGSMODIS IGBP 21 WRF常用土地类型分类MODIS IGBP 21USGSNLCD Landuse 选择土地利用分类标准替换城市土地类型后更改土地利用分类参考 WRF常用土地类型分类 WRF中土地利用类型最高分辨率是30s&#xff0c;且主要分为MODIS和U…...

KVM虚拟机迁移:无缝迁徙,重塑云上未来

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…...

CSS常见适配布局方式

在网页设计中&#xff0c;布局是确保内容按预期显示的关键部分。CSS 提供了多种布局方式&#xff0c;每种方式都有其特定的用途和优势。以下是您提到的五种布局方式的详细解释&#xff1a; 1. 流式布局&#xff08;百分比布局&#xff09; 概述&#xff1a; 流式布局&#xf…...

ArkUI常用布局:构建响应式和高效的用户界面

在HarmonyOS应用开发中&#xff0c;ArkUI作为用户界面开发框架&#xff0c;提供了多种布局方式来帮助开发者构建响应式和高效的用户界面。本文将详细介绍ArkUI中的常用布局方式&#xff0c;包括线性布局、层叠布局、弹性布局、相对布局、栅格布局、列表和轮播布局&#xff0c;并…...