⌈ 传知代码 ⌋ 以思维链为线索推理隐含情感

💛前情提要💛

本文是传知代码平台中的相关前沿知识与技术的分享~

接下来我们即将进入一个全新的空间,对技术有一个全新的视角~

本文所涉及所有资源均在传知代码平台可获取

以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦!!!

以下内容干货满满,跟上步伐吧~


📌导航小助手📌

  • 💡本章重点
  • 🍞一. 概述
  • 🍞二. 摘要
  • 🍞三. 引言
  • 🍞四. THOR
  • 🍞五. THOR核心代码
  • 🍞六.实验结果
  • 🫓总结


💡本章重点

  • 以思维链为线索推理隐含情感

🍞一. 概述

本文主要对 2023ACL 论文《Reasoning Implicit Sentiment with Chain-of-Thought Prompting》主要内容进行介绍。


🍞二. 摘要

虽然情绪分析任务中通常根据输入文本中的关键意见表达来确定给定目标的情绪极性,但在隐式情绪分析(ISA)中,意见线索通常是隐含或者模糊的。因此,检测隐含情绪需要常识和多跳推理能力来推断意见的潜在意图。在思想链(CoT)思想的启发,本文引入了一个三跳推理(THOR)CoT框架来模拟ISA的模拟人类推理的过程。THOR设计了一个三步提示原则,逐步诱导隐含的方面、观点,最后是情绪的极性。THOR+Flan-T5(11B)在监督微调下将数据集最优性能(SoTA)提高了6%以上。更引人注目的是,THOR+GPT3(175B)在零样本设置下将SoTA提高了50%以上。


🍞三. 引言

在这里插入图片描述
情感分析(SA)旨在基于输入文本检测对给定目标的情绪极性。SA可分为显性SA(ESA)和隐性SA(ISA),前者是当前的主流任务,他的情感表达会明确出现在文本中。

因此ISA更具挑战性,因为在ISA中,输入仅包含事实描述,没有直接给出明确的意见表达。例如,给定一个文本“Try the tandoori salmon!”,由于没有显著的提示词,几乎所有现有的情绪分类都预测“tandoori salmon”为中性极性。

人类很容易准确地确定情绪状态,因为我们总是掌握在文本后面隐含的真实意图或观点。因此,在没有真正理解情绪是如何被激发的情况下,传统的SA方法对ISA是无效的。


🍞四. THOR

近期大模型的崛起,让我们看到了机器对文本的理解有了新的高度。受到大模型中CoT的启发,文章提出了THOR( Three-hop Reasoning CoT framework),一个三段式的提问框架,能够通过循循善诱地方法,很好的让机器对隐形情感进行挖掘并预测,提升了ISA任务的性能。

在这里插入图片描述

如上图所示:

Traditional Prompting,表明传统的提示学习方法就是直接问模型,这句话中这个词的情感极性是什么。

Three-hop Reasoning with CoT Prompting,则是本文提出基于大模型思维链(CoT)的方法,提出的三段式提问框架。

  • 首先询问句子在讲述方面词的什么方面;
  • 其次,将回答整合后,将整合后的答案继续问方面词背后有什么隐含观点;
  • 最后,再次整合前面的回答,最后问方面词的情感极性是什么。

通过THOR我们可以看到,使用CoT的方法循循善诱模型得到的答案为positive是正确的,而传统的提问时neutral是不正确的。

THOR框架具体设置如下:

假设我们要预测的句子为:“The new mobile phone can be just put in my pocket.”

其中要预测的方面词为“The new mobile phone”

不妨设句子为 X,设方面词为 t

在这里插入图片描述
以上述设置为例:

第一步,模型的输入为 Given the sentence “X”, which specific aspect of t is possibly mentioned?

假设模型得到的结果为"The specific aspect of the new mobile phone mentioned in the sentence is the size or portability",记为 A

在这里插入图片描述
第二步,模型的输入为Given the sentence “X”, A(第一问结果). Based on the common sense, what is the implicit opinion towards the mentioned aspect of the new mobile phone, and why?

假设模型输出为"Based on the mentioned aspect of size and portability, the sentence implies that the phone is small enough to fit in the speaker’s pocket. According to common sense, the implicit opinion of speaker towards the portability is good, because the speaker is able to easily carry the phone with them by placing it in their pocket, and find the phone to be convenient and easy to use." 这个答案不妨记作 O。

在这里插入图片描述
第三步,模型的输入为Given the sentence “X”, A(第一问结果), O(第二问的结果). Based on such opinion, what is the sentiment polarity towards the new mobile phone?

此时假设模型的输出为 “The sentiment polarity towards the new mobile phone based on the given sentence is positive. The speaker finds the phone to be convenient and easy to use, implying having a favorable view of the phone.”

此时我们可以看到,模型得到了我们需要的预测结果为 positive。

在这里插入图片描述


🍞五. THOR核心代码

def prompt_for_aspect_inferring(context, target):new_context = f'Given the sentence "{context}", 'prompt = new_context + f'which specific aspect of {target} is possibly mentioned?'return new_context, promptdef prompt_for_opinion_inferring(context, target, aspect_expr):new_context = context + ' The mentioned aspect is about ' + aspect_expr + '.'prompt = new_context + f' Based on the common sense, what is the implicit opinion towards the mentioned aspect of {target}, and why?'return new_context, promptdef prompt_for_polarity_inferring(context, target, opinion_expr):new_context = context + f' The opinion towards the mentioned aspect of {target} is ' + opinion_expr + '.'prompt = new_context + f' Based on such opinion, what is the sentiment polarity towards {target}?'return new_context, prompt

🍞六.实验结果

文章实验主要是基于Flan-T5大模型做的(因为这是为数不多开源且效果不错的大模型)

在这里插入图片描述

这个结果是使用数据集进行监督微调训练后的结果,监督微调大模型确实能够使得模型有更好的表现,但是随着现在预训练大模型越来越大,我们微调的成本也越来越大了。

在这里插入图片描述

这个结果是使用zero-shot零样本得到的结果(不对大模型进行微调,直接通过THOR框架或者直接prompt询问结果,省去了微调大模型的时间和需要花费的资源,但是整体效果不如监督微调的结果)。

可以看得出使用THOR的方法比直接prompt效果好,并且当用GPT3作为大模型询问时,效果明显好很多,因为GPT3的参数量远大于Flan-T5而且也并不开源,使用起来可能需要花点钱。这说明目前大模型对自然语言的理解缺失已经有了质的飞跃了。

代码运行

  • 首先创建虚拟环境
conda create -n thor python=3.8
  • 按照自己电脑的cuda版本安装pytorch
nvidia-smi

然后去 pytorch 官网查看对应gpu版本的安装命令

# CUDA 10.2
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=10.2 -c pytorch# CUDA 11.3
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge# CUDA 11.7
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.7 -c pytorch -c nvidia
  • 最后安装一些必备的库
pip install -r requirements.txt
  • 打开 main.py 后可以看到参数的设置,直接运行是进行laptop数据集+THOR框架+零样本进行评估

  • 目前支持prompt和zero-shot两种,使用GPT3因为需要密钥,需要自己去获取。

if __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('-c', '--cuda_index', default=0)parser.add_argument('--reasoning', default='thor', choices=['prompt', 'thor'],help='with one-step prompt or multi-step thor reasoning')parser.add_argument('-z', '--zero_shot', action='store_true', default=True,help='running under zero-shot mode or fine-tune mode')parser.add_argument('-d', '--data_name', default='laptops', choices=['restaurants', 'laptops'],help='semeval data name')parser.add_argument('-f', '--config', default='./config/config.yaml', help='config file')args = parser.parse_args()template = Template(args)template.forward()

🫓总结

综上,我们基本了解了“一项全新的技术啦” 🍭 ~~

恭喜你的内功又双叒叕得到了提高!!!

感谢你们的阅读😆

后续还会继续更新💓,欢迎持续关注📌哟~

💫如果有错误❌,欢迎指正呀💫

✨如果觉得收获满满,可以点点赞👍支持一下哟~✨

【传知科技 – 了解更多新知识】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/851026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络命令——tcpdump

tcpdump是Linux下的一个网络数据采集分析工具,也就是常说的抓包工具 tcpdump 核心参数 tcpdump [option] [proto] [dir] [type] 例如:$ tcpdump -i eth0 -nn -s0 -v port 80 option 可选参数: -i : 选择要捕获的接口,通常是以太…

定时器中断计数

1.定时器中断配置步骤 (1)RCC开启时钟。 (2)选择时基单元的时钟源(内部时钟源)。 (3)配置时基单元:预分频器、自动重装器、计数模式等。 (4)配…

OpenGauss数据库-3.数据库管理

第1关:创建数据库 gsql -d postgres -U gaussdb -w passwd123123 create database accessdb with ownergaussdb templatetemplate0;第2关:修改数据库 gsql -d postgres -U gaussdb -w passwd123123 alter database accessdb rename to human_tpcds; 第…

OpenGauss数据库-6.表空间管理

第1关:创建表空间 gsql -d postgres -U gaussdb -W passwd123123 CREATE TABLESPACE fastspace OWNER omm relative location tablespace/tablespace_1; 第2关:修改表空间 gsql -d postgres -U gaussdb -W passwd123123 ALTER TABLESPACE fastspace R…

C++ 贪心算法——跳跃游戏、划分字母区间

一:跳跃游戏 55. 跳跃游戏 题目描述:给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true &#xff1…

《大道平渊》· 拾壹 —— 商业一定是个故事:讲好故事,员工奋发,顾客买单。

《大道平渊》 拾壹 "大家都在喝,你喝不喝?" 商业一定是个故事,人民群众需要故事。 比如可口可乐的各种故事。 可口可乐公司也只是被营销大师们, 作为一种故事载体,发挥他们的本领。 营销大师们开发故事…

基于51单片机俄罗斯方块小游戏

基于51单片机俄罗斯方块游戏 (仿真+程序) 功能介绍 具体功能: 1.用LCD12864显示游戏界面; 2.用四个按键控制游戏(左、右移、下移、翻转); 3.游戏规则和平时玩的俄罗斯方块一样&a…

点估计参数估计

点估计(Point Estimation)是一种统计推断的方法,用于通过样本统计量来估计总体参数。在概率论和数理统计中,点估计是将总体的未知参数估计为某个确定的值或在某个确定的点上,因此也被称为定值估计。 定义: …

AXI Quad SPI IP核中命令的使用

1 双通道SPI和混合内存模式下支持的常用命令 对于配置中Mode设置为Dual且Slave Device设置为Mixed的情况,IP核支持表3-1中列出的命令。这些命令在Winbond、Micron和Spansion内存设备上具有相同的命令、地址和数据行为。 某些命令,如fast read、dual I/…

从年金理论到杠杆效应,再到财务报表与投资评估指标

一、解释普通年金终值和普通年金现值的概念。 普通年金终值:以利率为1%,每期收款100元,5期为例,普通年金终值的折算过程如图: 普通年金现值:以利率为1%,每期收款100元,5期为例&am…

【RabbitMQ】RabbitMQ配置与交换机学习

【RabbitMQ】RabbitMQ配置与交换机学习 文章目录 【RabbitMQ】RabbitMQ配置与交换机学习简介安装和部署1. 安装RabbitMQ2.创建virtual-host3. 添加依赖4.修改配置文件 WorkQueues模型1.编写消息发送测试类2.编写消息接收(监听)类3. 实现能者多劳 交换机F…

C++类与对象(拷贝与类的内存管理)

感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 文章目录 前言一.对象的动态建立和释放二.多个对象的构造和析构三.深拷贝与浅拷贝四.C类的内存管理总结 前言 …

element-plus日历组件el-calendar自定义内容,每天绑定不同的值

效果 代码 <template><el-calendar v-model"calendarDate"><template #date-cell"{ data }"><p :class"data.isSelected ? is-selected : ">{{ data.day.split("-").slice(1).join("-") }}{{ d…

IDEA创建SpringBoot项目的时候,如何使用Java8,怎么办?

在创建springboot项目的时候,IDEA提示&#xff0c;最低Java版本要求17&#xff0c;但是实际上我们可能不需要这么高的版本&#xff0c;怎么使用Java8呢&#xff1f; 解决办法 修改Server URL地址即可&#xff1a;https://start.aliyun.com

天才程序员周弈帆 | Stable Diffusion 解读(二):论文精读

本文来源公众号“天才程序员周弈帆”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;Stable Diffusion 解读&#xff08;二&#xff09;&#xff1a;论文精读 【小小题外话】端午安康&#xff01; 在上一篇文章天才程序员周弈帆 …

【数据结构】排序(上)

个人主页~ 堆排序看这篇~ 还有这篇~ 排序 一、排序的概念及应用1、概念2、常见的排序算法 二、常见排序的实现1、直接插入排序&#xff08;1&#xff09;基本思想&#xff08;2&#xff09;代码实现&#xff08;3&#xff09;时间复杂度&#xff08;4&#xff09;空间复杂度 2…

【设计模式】创建型设计模式之 工厂模式

一、介绍 工厂模式可以分为 3 个小类 简单工厂模式工厂方法模式抽象工厂模式 工厂模式的工厂类&#xff0c;并不一定以 Factory 结尾&#xff0c;例如 DataFormat、Calender 他们都是工厂类&#xff0c;通过静态方法来创建实例。 除此之外&#xff0c;创建对象的方法名称一…

VBA即用型代码手册:删除重复行Delete Duplicate Rows

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xff0c;而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想&#xff0c;积木编程最重要的是积木如何搭建…

streamlit:如何快速构建一个应用,不会前端也能写出好看的界面

通过本文你可以了解到&#xff1a; 如何安装streamlit&#xff0c;运行起来第一个demo熟悉streamlit的基本语法&#xff0c;常用的一些组件使用streamlit库构建应用 大模型学习参考&#xff1a; 大模型学习资料整理&#xff1a;如何从0到1学习大模型&#xff0c;搭建个人或企业…

(二)深度学习基础练习题(54道选择题)

本文整理了深度学习基础知识相关的练习题&#xff0c;共54道&#xff0c;适用于想巩固深度学习基础的同学。来源&#xff1a;如荷学数据科学题库&#xff08;技术专项-深度学习&#xff09;。 1&#xff09; 2&#xff09; 3&#xff09; 4&#xff09; 5&#xff09; 6&#…