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

💛前情提要💛

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

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

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

以下的内容一定会让你对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, prompt


def 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, prompt

def 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()

🫓总结

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

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

感谢你们的阅读😆

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于改进YOLOv5的小目标检测 | 添加CBAM注意机制 + 更换Neck网络之BiFPN + 增加高分辨率检测头

前言:Hello大家好,我是小哥谈。本文针对图像中小目标难以检测的问题,提出了一种基于YOLOv5的改进模型。在主干网络中,加入CBAM注意力模块增强网络特征提取能力;在颈部网络部分,使用BiFPN结构替换PANet结构&…

Linux驱动应用编程(三)UART串口

本文目录 前述一、手册查看二、命令行调试串口1. 查看设备节点2. 使用stty命令设置串口3. 查看串口配置信息4. 调试串口 三、代码编写1. 常用API2. 例程●线程优化●poll优化●select优化(功能和poll一样) 前述 在开始实验前,请一定要检查测试…

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

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

【深度学习】—— 神经网络介绍

神经网络介绍 本系列主要是吴恩达深度学习系列视频的笔记,传送门:https://www.coursera.org/deeplearning-ai 目录 神经网络介绍神经网络的应用深度学习兴起的原因 神经网络,全称人工神经网络(Artificial Neural Network&#xf…

25.逢七必过

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/363 题目描述 逢七必过的游戏规则如下:对一…

Linux安装Docker | 使用国内镜像

环境 CentOS7 先确认能够上网 curl www.baidu.com返回该输出说明网络OK 步骤一:安装gcc 和 gcc-c yum -y install gccyum -y install gcc-c步骤二:安装Docker仓库 yum install -y yum-utils接下来配置yum的国内镜像 yum-config-manager --add-re…

激活乡村振兴新动能:推动农村产业融合发展,打造具有地方特色的美丽乡村,实现乡村全面振兴

目录 一、推动农村产业融合发展 1、农业产业链条的延伸 2、农业与旅游业的结合 二、挖掘地方特色,打造美丽乡村 1、保护和传承乡村文化 2、发展特色农业 三、加强基础设施建设,提升乡村品质 1、改善农村交通条件 2、提升农村水利设施 四、促进…

大数据湖一体化运营管理建设方案(49页PPT)

方案介绍: 本大数据湖一体化运营管理建设方案通过构建统一存储、高效处理、智能分析和安全管控的大数据湖平台,实现了企业数据的集中管理、快速处理和智能分析。该方案具有可扩展性、高性能、智能化、安全性和易用性等特点,能够为企业数字化…

水滴型锤片粉碎机:多功能粉碎利器

在现代工业生产中,粉碎机作为一种重要的机械设备,广泛应用于饲料、化工、木材等多个领域。其中,水滴型锤片粉碎机凭借其设计和粉碎能力,成为市场上的热门产品。 水滴型锤片粉碎机其设计灵感来源于水滴的形态。这种设计使得机器在…

vmware-17虚拟机安装教程,安装linux centos系统

下载VMware 1.进入VMware官网:https://www.vmware.com/sg/products/workstation-pro.html 2.向下翻找到,如下界面并点击“现在安装” 因官网更新页面出现误差,现提供vmware17安装包网盘链接如下: 链接:https://pan.b…

【SpringBoot + Vue 尚庭公寓实战】基本属性接口实现(七)

【SpringBoot Vue 尚庭公寓实战】基本属性接口实现(七) 文章目录 【SpringBoot Vue 尚庭公寓实战】基本属性接口实现(七)1、保存或更新属性名称2、保存或更新属性值3、查询全部属性名称和属性值列表4、根据ID删除属性名称5、根据…

freertos内核拓展DAY2(消息队列)

这节内容是信号量的基础,因为创建以及发送/等待信号量所调用的底层函数,就是创建/发送/接受消息队列时所用到的通用创建函数,这里先补充一下数据结构中关于队列的知识。 目录 1. 队列原理 1.1 顺序队列操作 1.2 循环队列操作 2.消息队列原…

N32G45XVL-STB之移植LVGL(lvgl-8.2.0)

目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 ST7796-LCD 1.3 MCU IO与LCD PIN对应关系 2 认识LVGL 2.1 LVGL官网 2.2 LVGL库文件下载 3 移植LVGL 3.1 准备移植文件 3.2 添加lvgl库文件到项目 3.2.1 src下的文件 3.2.2 examples下的文件 3.2.3 配置文件路径 3.2…

python-数字黑洞

[题目描述] 给定一个三位数,要求各位不能相同。例如,352是符合要求的,112是不符合要求的。将这个三位数的三个数字重新排列,得到的最大的数,减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重…

【Web世界探险家】3. CSS美学(二)文本样式

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…

Web学习_SQL注入_布尔盲注

盲注就是在SQL注入过程中,SQL语句执行后,查询到的数据不能 回显到前端页面。此时,我们需要利用一些方法进行判断或者尝 试,这个过程称之为盲注。而布尔盲注就是SQL语句执行后,页面 不返回具体数据,数据库只…

32、matlab:基于模板匹配的车牌识别

1、准备工作 1)准备材料 车牌字符模板和测试的实验车牌 2)车牌字符模板 数字、字母和省份缩写 3)测试车牌 四张测试车牌 2、车牌识别实现(已将其嵌入matlab) 1)打开APP 找到APP 找到我的APP双击点开 2)界面介绍 包括&am…

神经网络 torch.nn---Non-Linear Activations (ReLU)

ReLU — PyTorch 2.3 documentation torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) 非线性变换的目的 非线性变换的目的是为神经网络引入一些非线性特征,使其训练出一些符合各种曲线或各种特征的模型。 换句话来说,如果模型都是直线特征的…

【数据结构】排序(上)

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

eNSP学习——RIP的路由引入

目录 主要命令 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建公司B的RIP网络 3、优化公司B的 RIP网络 4、连接公司A与公司B的网络 需要eNSP各种配置命令的点击链接自取:华为eNSP各种设备配置命令大全PDF版_ensp…