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

基于LLM合成高质量情感数据,提升情感分类能力!!

摘要:大多数用于情感分析的数据集缺乏意见表达的上下文,而上下文对于理解情绪往往至关重要,并且这些数据集主要局限于几种情绪类别。像 GPT-4 这样的基础大型语言模型(Foundation Large Language Models,LLMs)存在过度预测情绪的问题,并且资源消耗过大。为此,我们设计了一个基于 LLM 的数据合成管道,并利用一个大型模型 Mistral-7b 来生成用于训练更易获取、轻量级的 BERT 类型编码器模型的训练样本。我们专注于扩大样本的语义多样性,并提出将生成过程锚定到一个叙事语料库中,以产生以故事角色为中心的独特上下文且不重复的表达,涵盖 28 种情绪类别。通过在 450 GPU 小时内运行 70 万次推理,我们贡献了一个包含 10 万有上下文的样本和 30 万无上下文的样本的数据集,以覆盖这两种情况。我们使用该数据集对预训练编码器进行微调,从而得到了多个情感支柱(Emo Pillars)emoπ模型。我们展示了当这些 emoπ模型针对特定任务(如 GoEmotions、ISEAR、IEMOCAP 和 EmoContext)进行调整时,能够高度适应新领域,并在前三项任务中达到了最先进的性能(State of the Art,SOTA)。我们还对数据集进行了验证,通过统计分析和人工评估确认了我们在表达多样化(尽管中性类别表现稍弱)和上下文个性化方面的措施取得了成功,同时指出需要改进管道中对超出分类体系标签的处理。

本文目录

一、背景动机

二、核心贡献

三、实现方法

3.1 数据合成pipline

1. 内容丰富的指令

2. 多示例生成

3. 软标签

4. 上下文生成与清理

5. 上下文重要性提升

3.2 模型训练与微调

1. 模型选择

2. 无上下文情感分类

3. 有上下文情感分类

四、实验结论

4.1 无上下文情感识别

1. Emo Pillars 合成测试集

2. GoEmotions 数据集

3. ISEAR 数据集

4.2 有上下文情感识别

1. Emo Pillars 合成测试集

2. EmoContext 数据集

五、总结


一、背景动机

文章题目:Emo Pillars emo π : Knowledge Distillation to Support Fine-Grained Context-Aware and Context-Less Emotion Classification

文章地址:https://arxiv.org/pdf/2504.16856

情感分析(sentiment analysis)是自然语言处理(NLP)中的一个重要任务,它旨在从文本中识别和提取情感信息。然而,大多数现有的情感分析数据集缺乏上下文信息,这对于理解情感表达至关重要。此外,现有的数据集通常只涵盖少数几种情感类别,限制了情感分类的细粒度程度。

因此,该文章提出了一个基于LLM的数据合成pipline,利用大型模型(如Mistral-7b)生成训练样本,以支持更轻量级的BERT类型编码器模型。

二、核心贡献

1、设计了一个基于LLM的数据合成pipline,用于生成情感分类数据集。该pipline通过将生成的样本锚定在叙事语料库中,产生具有独特上下文的非重复故事角色中心的表达,覆盖28种情感类别。

2、通过运行700K次推理,消耗450 GPU小时,生成了包含100K有上下文和300K无上下文的样本数据集,用于覆盖两种场景。

3、利用生成的数据集微调预训练编码器模型,开发出多个Emo Pillars emoπ模型。这些模型在多个情感分类任务(如GoEmotions、ISEAR、IEMOCAP和EmoContext)上表现出色,达到或接近SOTA(State-of-the-Art)性能。

4、通过上下文重写步骤,确保上下文在情感理解中的重要性,使得模型在训练阶段学习关注上下文信息。

三、实现方法

3.1 数据合成pipline

1. 内容丰富的指令

  • 目标:通过迭代叙事语料库(如故事梗概或新闻报道)中的文本和不同角色(actors),生成多样化的指令。

  • 实现方法

    • 使用LLM从叙事文本中提取角色(actors)。这些角色将被用于后续的情感表达生成。

    • 迭代语料库中的所有角色,以增加覆盖多种情感和不同立场的样本。

2. 多示例生成

  • 目标:请求模型在单次推理中生成多个表达(utterances),覆盖多种情感类别,减少重复性。

  • 实现方法

    • 请求模型为每个角色生成8个情感表达(utterances),涵盖8种不同的情感类别(非中性情感),并额外生成2个中性情感的表达。

    • 提供情感的定义,以减少相关标签(如悲伤和失望)之间的歧义。

    • 通过这种方式,模型更有可能生成对比鲜明的示例,其中主要情感表达得更强烈。

3. 软标签

  • 目标:为每个表达分配多个情感标签,并评估其表达强度,以减少短表达的情感歧义。

  • 实现方法

    • 从提示中移除故事梗概,使LLM仅关注当前角色的情感,减少情感幻觉(hallucination)。

    • 提供生成表达时的主要情感,允许模型为每个表达分配多个“软”标签(soft labels),并评估每个标签的表达强度(从0到1,步长为0.1)。

    • 选择表达强度高于0.3的标签用于后续步骤。

4. 上下文生成与清理

  • 目标:重构角色表达的背景情境,确保情境不包含情感信息。

  • 实现方法

    • 设计提示,使LLM生成的情境围绕角色展开,并在角色表达之前结束,避免透露情感信息。

    • 对生成的情境进行清理,移除情感相关的子句,并调整受影响的句子,确保情境中不包含明确的情感信息。

5. 上下文重要性提升

  • 目标:通过重写表达,降低情感表达的明确性,使上下文成为理解情感的关键。

  • 实现方法

    • 在提示中指定,重写表达时应减少情感的明确性,使上下文对情感理解至关重要。

    • 原始表达可能包含“害怕”和“安全”等情感标记,而重写后的表达会移除这些标记,使情感更隐晦。

3.2 模型训练与微调

生成的数据集被用于微调中等规模的编码器模型(如RoBERTa和BERT),以支持有上下文(context-aware)和无上下文(context-less)的情感分类任务。

1. 模型选择

  • 使用了多种预训练的编码器模型,包括BERT、RoBERTa和SentenceBERT。

  • 这些模型被训练用于多标签分类任务,每个情感类别使用sigmoid激活函数,并采用二元交叉熵损失函数(binary cross-entropy loss)。

2. 无上下文情感分类

  • 数据集:使用生成的无上下文数据集(300K样本)进行训练和评估。

  • 实验设置:训练了多个模型,包括BERT、RoBERTa和SentenceBERT,使用默认的AdamW优化器,初始学习率为2e-5,训练了10个epoch,最大序列长度为128,批量大小为64。

  • 评估结果:在Emo Pillars合成测试集上,模型在原始表达上表现出色,但在重写表达上性能下降。在GoEmotions数据集上,经过微调的emoπ模型达到了SOTA性能,F1分数为0.55。在ISEAR数据集上,微调后的模型也达到了SOTA性能,F1分数为0.75。

3. 有上下文情感分类

  • 数据集:使用生成的有上下文数据集(100K样本)进行训练和评估。

  • 实验设置:训练了RoBERTa模型,最大序列长度增加到512,批量大小减少到32。使用默认的AdamW优化器,初始学习率为2e-5,训练10 epoch。

  • 评估结果:在Emo Pillars合成测试集上,使用上下文的模型在重写表达上表现更好,表明上下文有助于情感分类。在EmoContext任务上,经过微调的上下文模型表现优于其他模型,F1分数为0.82。

四、实验结论

4.1 无上下文情感识别

1. Emo Pillars 合成测试集

  • 模型在原始表达(Original Utterances)上表现出色,F1分数达到0.80-0.81,表明生成的文本包含足够的情感信号,即使没有上下文,模型也能准确识别情感。

  • 对于重写表达(Rewritten Utterances),模型性能有所下降(F1分数为0.65-0.74),这验证了上下文在情感理解中的重要性。

  • 结论:生成的数据集能够支持无上下文情感分类任务,且重写步骤增加了情感分类的难度,凸显了上下文的重要性。

2. GoEmotions 数据集

  • 微调后的模型在GoEmotions数据集上达到了SOTA性能,F1分数为0.55(RoBERTa模型)。

  • 结论:生成的数据集能够有效支持模型在细粒度情感分类任务上的性能提升,尤其是在情感类别较多的情况下。

3. ISEAR 数据集

  • 微调后的模型在ISEAR数据集上也达到了SOTA性能,F1分数为0.76(RoBERTa模型)。

  • 结论:生成的数据集在不同情感分类任务上表现出良好的适应性,能够支持模型在多种情感类别上的高性能。

4.2 有上下文情感识别

1. Emo Pillars 合成测试集

  • 使用上下文的模型在重写表达(Rewritten Utterances)上表现更好,F1分数提升了2-3个百分点,表明上下文有助于情感分类。

  • 结论:生成的上下文信息能够显著提升模型在情感分类任务中的性能,尤其是在情感表达较为隐晦的情况下。

2. EmoContext 数据集

  • 在EmoContext任务上,经过微调的上下文模型表现优于其他模型,F1分数为0.82。

  • 结论:上下文信息对于情感分类具有显著的提升作用,尤其是在对话场景中,上下文能够帮助模型更好地理解情感。

五、总结

该文章提出了一种基于LLM的数据合成方法,用于生成细粒度情感分类数据集,并通过微调Bert的编码器模型,实现了在多个情感分类任务上的高性能。该方法不仅提高了情感分类的准确性,还通过上下文生成和清理步骤,增强了模型对上下文信息的利用能力。

相关文章:

基于LLM合成高质量情感数据,提升情感分类能力!!

摘要:大多数用于情感分析的数据集缺乏意见表达的上下文,而上下文对于理解情绪往往至关重要,并且这些数据集主要局限于几种情绪类别。像 GPT-4 这样的基础大型语言模型(Foundation Large Language Models,LLMs&#xff…...

网络检测工具InternetTest v8.9.1.2504 单文件版,支持一键查询IP/DNS、WIFI密码信息

—————【下 载 地 址】——————— 【​本章下载一】:https://drive.uc.cn/s/295e068b79314 【​本章下载二】:https://pan.xunlei.com/s/VOQDXguH0DYPxrql5y2zlkhTA1?pwdg2nx# 【百款黑科技】:https://ucnygalh6wle.feishu.cn/wiki/…...

SpringBoot中使用Flux实现流式返回的技术总结

背景 近期在使用deepseek/openai等网页和APP时,发现大模型在思考和回复时,内容是一点点的显示出来的,于是好奇他们的实现方式。经调研和使用开发者工具抓取请求,每次聊天会向后台发送一个http请求,而这个接口跟普通接…...

【网络编程】十、详解 UDP 协议

文章目录 Ⅰ. 传输层概述1、进程之间的通信2、再谈端口号端口号的引出五元组标识一个通信端口号范围划分常见的知名端口号查看知名端口号协议号 VS 端口号 3、两个问题一个端口号是否可以被多个进程绑定?一个进程是否可以绑定多个端口号? 4、部分常见指令…...

从零开始理解Jetty:轻量级Java服务器的入门指南

目录 一、Jetty是什么?先看一个生活比喻 二、5分钟快速入门:搭建你的第一个Jetty服务 步骤1:Maven依赖配置 步骤2:编写简易Servlet(厨房厨师) 步骤3:组装服务器(餐厅开业准备&am…...

python05——循环结构

1、while循环 n0 #初始条件 while n<5: #判断print(hello python) #要重复执行的代码print(n) #注意同级代码缩进相同n1 #计数器结果&#xff1a; hello python 0 hello python 1 hello python 2 hello python 3 hello python 4 hello python 5 #求阶乘和 sum0 n1 whil…...

windows触摸板快捷指南

以下是结构化整理后的触控手势说明&#xff0c;采用清晰的层级划分和标准化表述&#xff1a; **触控手势操作规范****1. 单指操作****2. 双指操作****3. 三指操作****4. 四指操作** **优化说明&#xff1a;** 触控手势操作规范 1. 单指操作 手势功能描述等效操作单击滑动选择…...

STM32 ADC 模数转换器详解:原理、配置与应用

STM32 ADC 模数转换器详解&#xff1a;原理、配置与应用 在嵌入式系统中&#xff0c;模数转换&#xff08;ADC&#xff09;是实现传感器信号采集、信号处理等任务的关键环节。STM32 微控制器作为一款功能强大的 32 位微控制器&#xff0c;其内置的 ADC 模块为开发者提供了高效…...

[目标检测] YOLO系列算法讲解

前言 目标检测就是做到给模型输入一张图片或者视频&#xff0c;模型可以迅速判断出视频和图片里面感兴趣的目标所有的位置和它 的类别&#xff0c;而当前最热门的目标检测的模型也就是YOLO系列了。 YOLO系列的模型的提出&#xff0c;是为了解决当时目标检测的模型帧率太低而提…...

React 中,闭包陷阱

文章目录 前言1. 经典闭包陷阱示例过期状态问题 2. 解决方案2.1 正确声明依赖数组2.2 使用 useRef 捕获最新值**2.3 使用函数式更新&#xff08;针对状态更新&#xff09;****2.4 使用 useCallback 冻结闭包** **3. 异步操作中的闭包陷阱****事件监听示例** **4. 自定义 Hooks …...

.NET NativeAOT 指南

目录 1. 引言 2. 什么是 .NET NativeAOT&#xff1f; 2.1 NativeAOT 的定义 2.2 NativeAOT 与传统 JIT 的对比 2.3 NativeAOT 的适用场景 3. NativeAOT 的核心优势 3.1 性能提升 3.2 简化部署 3.3 更小的应用体积 3.4 知识产权保护 4. NativeAOT 的基本用法 4.1 环境…...

uniapp-商城-57-后台 新增商品(弹窗属性数据添加父级)

后台增加商品&#xff0c;需要添加相关的数据信息&#xff0c;这里还要添加属性&#xff0c;前面已经对相关的界面布局继续了编写。这里还要对页面添加的数据&#xff0c;置入到云数据库&#xff0c;继续永久保存&#xff0c;便于后期的使用。这里主要是讲属性数据 父级信息的添…...

摩方 12 代 N200 迷你主机(Ubuntu 系统)WiFi 抓包环境配置教程

摩方12代N200迷你主机标配 Intel AX201无线网卡&#xff0c;支持 WiFi 6 协议&#xff08;802.11ax&#xff09;及蓝牙5.2。此网卡兼容主流抓包工具&#xff0c;但需注意&#xff1a; 驱动兼容性&#xff1a;Ubuntu 20.04及以上内核版本&#xff08;5.4&#xff09;默认支持AX2…...

matlab多智能体网络一致性研究

一个基于连续时间多智能体系统&#xff08;Multi-Agent Systems, MAS&#xff09;的一阶一致性协议的MATLAB仿真代码&#xff0c;包含网络拓扑建模、一致性协议设计和收敛性分析。代码支持固定拓扑和时变拓扑&#xff0c;适用于学术研究。 1. 基础模型与代码框架 (1) 网络拓扑…...

Unity(URP渲染管线)的后处理、动画制作、虚拟相机(Virtual Camera)

一、URP渲染管线 渲染管线是一系列渲染操作的集合&#xff0c;Unity提供了内置渲染管线&#xff08;Built-In&#xff09;和可编程渲染管线&#xff08;SRP&#xff09;两类渲染管线。内置渲染管线是Unity的默认渲染管线&#xff0c;其自定义选项有限。而可编程渲染管线可以通…...

C语言:在 Win 10 上,gcc 如何编译 gtk 应用程序

在 Windows 10 上使用 g&#xff08;或 gcc&#xff09;编译基于 GTK 的 C 语言程序是完全可行的&#xff0c;且相比 Tcc 更为推荐&#xff0c;因为 g&#xff08;GNU 编译器套件&#xff09;对 GTK 的支持更加完善&#xff0c;配置也更简单。以下是详细步骤和注意事项&#xf…...

阿里云CMH镜像迁移与SMC整机迁移对比及功能详解(同地域跨主体账号场景)

文章目录 一、核心功能对比​二、CMH镜像迁移操作流程​​1.资源调研​​​​​​2.镜像共享​​​​3.​​迁移验证​​​​4.限制​​&#xff1a; 三、SMC整机迁移操作流程​​1.​​迁移源导入​​​​2.​​任务配置​​​​3.​​增量同步​​​​4.​​应用验证​​​​…...

用vue和go实现登录加密

前端使用CryptoJS默认加密方法&#xff1a; var pass CryptoJS.AES.encrypt(formData.password, key.value).toString()使用 CryptoJS.AES.encrypt() 时不指定加密模式和参数时&#xff0c;CryptoJS 默认会执行以下操作 var encrypted CryptoJS.AES.encrypt("明文&quo…...

政府数据开放试点企业如何抢占特许经营协议黄金席位

首席数据官高鹏律师团队 《中共中央办公厅 国务院办公厅关于 加快公共数据资源开发利用的意见》的落地&#xff0c;标志着数据从“封闭管理的行政资源”正式转变为“可流通的市场要素”。但机遇与风险从来是一枚硬币的两面——特许经营协议的黄金席位背后&#xff0c;隐藏着…...

CSS 锚点滑动效果的技术

CSS 锚点滑动效果的技术 引言 介绍锚点滑动效果的概念及其在网页设计中的重要性。简要说明 基本锚点链接 如何使用HTML中的<a>标签创建基本的锚点链接。示例代码&#xff1a; <a href"#section1">跳转到第一部分</a> <div id"section…...

mac-M系列芯片安装软件报错:***已损坏,无法打开。推出磁盘问题

因为你安装的软件在Intel 或arm芯片的mac上没有签名导致。 首先打开任何来源操作 在系统设置中配置&#xff0c;如下图&#xff1a; 2. 然后打开终端&#xff0c;输入&#xff1a; sudo spctl --master-disable然后输入电脑锁屏密码 打开了任何来源&#xff0c;还遇到已损坏…...

Echart地图数据源获取

DataV.GeoAtlas地理小工具系列 选择需要的区域地图,选中后输出即可: 地图钻取代码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>map</title><style>html, body, #map{margin: 0;…...

GNSS数据自动化下载系统的设计与实现

摘要 本文详细介绍了三种不同设计的GNSS数据自动化下载系统&#xff0c;分别针对IGS观测数据、GRACE-FO Level-1B数据以及通过代理服务器获取数据的需求场景。系统采用Python实现&#xff0c;具备断点续传、完整性校验、异常处理和进度显示等核心功能。实验结果表明&#xff0…...

MySQL 中 JOIN 和子查询的区别与使用场景

目录 一、JOIN:表连接1.1 INNER JOIN:内连接1.2 LEFT JOIN:左连接1.3 RIGHT JOIN:右连接1.4 FULL JOIN:全连接二、子查询:嵌套查询2.1 WHERE 子句中的子查询2.2 FROM 子句中的子查询2.3 SELECT 子句中的子查询三、JOIN 和子查询的区别3.1 功能差异3.2 性能差异3.3 使用场…...

【深度学习-Day 12】从零认识神经网络:感知器原理、实现与局限性深度剖析

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

谈谈未来iOS越狱或巨魔是否会消失

2024年10月的预测&#xff0c;先说结论&#xff1a; 巨魔iOS17.1消失概率为99%。 因为巨魔强依赖的漏洞就是一个签名漏洞&#xff0c;攻击面有限又经过2轮修复&#xff0c;第3次出现漏洞的概率极低。而越狱的话由于系统组件和服务较多&#xff0c;所以出现漏洞概率高攻击面多&…...

Unity3D仿星露谷物语开发43之农作物生长

1、目标 把防风草种子种在地里&#xff0c;并展示植物种子&#xff0c;防风草种子将随着时间变化而生长成植株。 2、创建Crop.cs脚本 在Assets -> Scripts下创建新的目录命名为Crop&#xff0c;在其下创建新的脚本命名为Crop.cs。 代码如下&#xff1a; using System.C…...

从0到1上手Kafka:开启分布式消息处理之旅

目录 一、Kafka 是什么 二、Kafka 的基础概念 2.1 核心术语解读 2.2 工作模式剖析 三、Kafka 的应用场景 四、Kafka 与其他消息队列的比较 五、Kafka 的安装与配置 5.1 环境准备 5.2 安装步骤 5.3 常见问题及解决 六、Kafka 的基本操作 6.1 命令行工具使用 6.1.1 …...

GTS-400 系列运动控制器板卡介绍(三十四)---运动程序多线程累加求和

运动控制器函数库的使用 运动控制器驱动程序、dll 文件、例程、Demo 等相关文件请通过固高科技官网下载,网 址为:www.googoltech.com.cn/pro_view-3.html 1 Windows 系统下动态链接库的使用 在 Windows 系统下使用运动控制器,首先要安装驱动程序。在安装前需要提前下载运动…...

Python爬虫如何应对网站的反爬加密策略?

在当今的互联网环境中&#xff0c;网络爬虫已经成为数据采集的重要工具之一。然而&#xff0c;随着网站安全意识的不断提高&#xff0c;反爬虫技术也越来越复杂&#xff0c;尤其是数据加密策略的广泛应用&#xff0c;给爬虫开发者带来了巨大的挑战。本文将详细介绍Python爬虫如…...