Tree-of-Counterfactual Prompting for Zero-Shot Stance Detection

论文地址:Tree-of-Counterfactual Prompting for Zero-Shot Stance Detection - ACL Anthologyicon-default.png?t=O83Ahttps://aclanthology.org/2024.acl-long.49/

1. 概述

        立场检测被定义为对文本中立场态度的自动推断。根据 Biber 和 Finegan (1988) 的定义,立场包含两个主要元素:

  • 立场主体(Subject):立场的表达者,如社交媒体用户、演讲者等。
  • 立场对象(Object):立场的针对目标,通常包括:
    • 话题(Topics):例如“堕胎”、“气候变化”等具有争议性的名词或短语。
    • 交流框架(Frames of Communication, FoCs):框架用于定义问题成因、道德判断和关注点(Entman, 1993)。        

        例如:

  • 话题示例: 一则关于“堕胎”的社交媒体帖子引用 Mother Teresa 的演讲: “爱意味着愿意付出,直到感到痛苦。” 该语境表达了“Reject” 立场,即反对堕胎。
  • 交流框架示例: 关于 COVID-19 疫苗接种的帖子配有讽刺性图像(引用电影《无耻混蛋》中的角色 Hans Landa),表面上与 FoC 矛盾,但结合上下文和图像的讽刺含义,最终表达了“Accept”立场。

挑战: 立场检测往往依赖于复杂的推理过程,包括:

  • 上下文理解:推断态度需要常识知识与语义分析。
  • 多模态融合:文本和图像的联合推理增加了任务难度,尤其是在讽刺、反讽等特殊语言现象中。 

目前的立场检测方法主要分为两类:

  • 基于监督学习的分类方法
    • 示例:SVM-ngrams、BERT 等基于特征和神经网络的分类模型。
    • 局限:
      • 泛化能力差:仅能在训练过的话题或框架上表现良好,无法适应新的立场对象。
      • 依赖标注数据:需要大量带标签的训练样本,成本高昂。
  • 零样本立场检测(ZSSD)
    • 解决了新话题的泛化问题,但仍然需要部分立场示例进行训练。
    • 示例:Allaway & McKeown (2020) 提出的跨话题 ZSSD。

        为进一步克服上述问题,本研究提出了Tabula Rasa 零样本立场检测(TR-ZSSD),在不需要任何标注示例的前提下进行立场推断。  

        本研究引入了一个新的立场检测框架,名为Tree-of-Counterfactual prompting(ToC),其核心思想基于反事实推理(Counterfactual Reasoning)。主要流程分为三步:

步骤 1:反事实树生成(Tree-of-Counterfactual)

        对于给定的社交媒体帖子(SMP)和立场对象,构建一个反事实树:

  • 假设立场值为“Accept”“Reject” 和 “No Stance”。
  • 为每种立场值生成一个反事实假设,形成推理树的分支。

        例如,给定一个关于“气候变化”的帖子,分别假设:

  • Accept 分支:帖子表达接受气候变化的观点。
  • Reject 分支:帖子表达拒绝气候变化的观点。
  • No Stance 分支:帖子未表达任何立场。

步骤 2:反事实解释(Chain-of-Explanation, CoE)

        使用大语言模型(LLMs)或多模态模型(LMMs)生成每个立场值的详细解释。例如:

  • Accept 立场的解释:如何支持气候变化的观点?
  • Reject 立场的解释:如何反驳气候变化的观点?

步骤 3:反事实验证(Chain-of-Contrastive Verification, CoCV)

        将所有生成的反事实解释进行对比验证,选择最合理的立场值。

  • 比较每个立场分支的优势和劣势。
  • 最终选择一个最合理的立场结论。  

2. 方法

        此 Chain-of-Explanation (CoE) 提示框架指导大型语言模型(LLM)提供逐步的解释: 

        来自社交媒体帖子的文本内容被插入到“{文本}”部分,立场对象的文本表示被插入到“{对象}”部分,反事实的立场值被插入到“{立场}”部分。

        阶段 C(如图 2(C) 所示)借鉴了 Chain-of-Verification (CoVe) 提示框架,该框架由 Dhuliawala 等人 (2023) 提出。CoVe 提示框架使 LLM 能够对其生成的回答进行反思,从而通过内省纠正错误。我们采用阶段 B 生成的反事实推理 作为验证的基准回应,并修改验证步骤,引入一种 对比验证 形式。

        通过这种方式,我们创建了反事实链式对比验证 (C-CoCV) 提示框架,对阶段 B 生成的反事实推理进行内省,并将这些推理的论点与帖子p_i和立场对象 o_j的内容进行对比,以验证不同立场值假设的合理性。

        可以看出,C-CoCV 提示的语义与 CoE 提示的语义相同,使得不同的立场对象能够被考虑,同时也可以使用社交媒体帖子(SMP)的文本与图像内容,或立场对象的文本内容。 此外,由 CoE 提示生成的反事实推理被插入到 “{accept_rationale}”、“{reject_rationale}” 和 “{no_stance_rationale}” 部分中。 ToC 提示的三个阶段利用了大规模语言模型(LLMs) 的能力,针对不同的立场假设生成和评估事后推理,促成了一种更具解释性的立场推断机制,在这种机制中,每个立场假设都会被严格审查其有效性。 

3.实验

3.1 实验设置

        在本实验中,作者设计了三个立场检测设置来评估 ToC-TR-ZSSD 方法。使用了三个不同的标注立场数据集:

  • SemEval-2016
    • 数据来源:Twitter 包含五个具有争议性的话题:Abortion(堕胎)、Atheism(无神论)、Climate Change(气候变化)、Feminism(女权主义)和 Hillary Clinton(希拉里·克林顿)。
    • 该数据集已被广泛用于自动立场检测的基准测试,特别是 SemEval-2016 的任务 A。
  • CoVaxFrames
    • 数据来源:关于 COVID-19 疫苗犹豫的社交媒体帖子。
    • 包括 113 个 交流框架(Frames of Communication, FoCs)。例如:
      • “The COVID vaccine renders pregnancies risky, and it is unsafe for unborn babies”
      • “Preference for getting COVID-19 and fighting it off than getting vaccinated.”
    • 数据集主要由文本组成。
  • MMVax-Stance
    • 数据来源:多模态数据集,包含文本、图像和视频。
    • 注释对象:与 CoVaxFrames 相同的 113 个 COVID-19 疫苗相关交流框架。
    • 数据集面临的挑战:需要对文本和多模态内容(如图像、视频)进行联合推理。        

3.2 结果分析 

SemEval-2016结果 :与多个微调系统进行了比较,包括 SVM-ngrams、MITRE 和 pkudblab 的系统。 结果:

  • GPT-3.5 和 GPT-4 在直接提示(Direct Prompting)下表现不佳,但使用 CoT 提示 时,GPT-4 取得了显著的性能提升,接近微调系统的表现。
  • 最高性能:TimeLMs 微调系统的宏平均 F1 分数为 72.9,GPT-4 使用 ToC 提示接近此结果。 

CoVaxFrames 结果:使用了多个现有的基准系统,包括 SBERT-NLI、DS-BERT、LES-GAT 和 LACRScore。 结果:

  • LACRScore 微调系统取得了 76.2 的宏平均 F1 分数,是表现最好的基准系统。 GPT-3.5 和 GPT-4 在直接提示下表现较差,但在使用 CoT 提示 后,性能显著提升。
  • GPT-4 + ToC 提示 的宏平均 F1 分数达到 79.1,超过了微调系统。        

MMVax-Stance 结果:使用了两种大型多模态模型:LLaVA-1.5 和 GPT-4V,并采用了 直接提示 和 CoT 提示 两种策略。 比较基准系统包括:DS-BERT、LES-GAT-MF 和 LACRScore,同时考虑了多模态基准,如 BLIP-2 和 CLIP-Joint。 结果:

  • LLaVA-1.5 和 GPT-4V 在直接提示下表现不佳,但使用 CoT 提示 后,性能显著提高。
  • GPT-4V + ToC 提示 达到 60.6 的宏平均 F1 分数,比 BridgeTower 系统高出近 8 分。 最终的最佳结果来自 BT +S_{Aug} ​ ,该系统通过生成大量合成数据(46,606 条示例)实现了 71.3 的宏平均 F1 分数,数据量比原始数据增加了约 600%。 

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

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

相关文章

轻松上手:使用 Vercel 部署 HTML 页面教程

😀 在学习前端的过程中,部署项目往往是一个令人头疼的问题。然而,Vercel 为我们提供了一个便捷且免费的解决方案。 Vercel 是一个强大的云平台,专门用于前端项目的部署和托管。它不仅支持多种前端框架和静态网站生成器&#xff0…

QT从入门到精通(二) ——信号与槽机制

Qt 的信号与槽机制(Signal and Slot)是 Qt 框架 中用于对象间通信的核心机制之一。它允许对象之间进行松耦合的事件驱动式通信,尤其适合 GUI 应用程序 中的事件处理。 1. 基本概念 信号 (Signal) 当对象的状态发生变化时,它会发…

数据结构:Win32 API详解

目录 一.Win32 API的介绍 二.控制台程序(Console)与COORD 1..控制台程序(Console): 2.控制台窗口坐标COORD: 3.GetStdHandle函数: (1)语法: (2)参数: 4.GetConsoleCursorInf…

kubeadm_k8s_v1.31高可用部署教程

kubeadm_k8s_v1.31高可用部署教程 实验环境部署拓扑图**部署署架构****Load Balance****Control plane node****Worker node****资源分配(8台虚拟机)**集群列表 前置准备关闭swap开启ipv4转发更多设置 1、Verify the MAC address and product_uuid are u…

鸿蒙元服务项目实战:备忘录UI页面开发

前言 之前写过一篇关于元服务项目的上架流程,为了更好的了解及开发元服务,准备从0到1简单开发一个小项目,也希望能够帮助到刚刚介入到鸿蒙开发的同学,具体项目呢,也是十分的简单,就是一个小巧的备忘录项目&…

Linux-ubuntu点LED灯C语言版

​ 一,C语言点灯 1.寄存器配置 设置为SVC模式,复用寄存器设置GPIO1-IO003,设置电气属性,设置为输出模式。 2.软件 汇编语言对模式设置,并且将堆栈指针指向主程序: .global _start_start: /*设置为svr模式 */mrs …

SLM510A系列——24V,15到150mA单通道可调电流线性恒流LED驱动芯片

SLM510A 系列产品是单通道、高精度、可调电流线性恒流源的 LED 驱动芯片,在各种 LED 照明产品中非常简单易用。其在宽电压输入范围内,能保证极高的输出电流精度,从而在大面积的光源照明中,都能让 LED 照明亮度保持均匀一致。 由于…

【JavaEE】网络(2)

一、网络编程套接字 1.1 基础概念 【网络编程】指网络上的主机,通过不同的进程,以编程的方式实现网络通信;当然,我们只要满足进程不同就行,所以即便是同一个主机,只要是不同进程,基于网络来传…

【Java数据类型学习——String】

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 打印字符串长度的两种方法字符串String的比较1.用于比较引用的对象是否指向同一个内存地址2.用equa…

基于Spring Boot的校园部门资料管理系统

一、系统背景与目的 随着信息技术的飞速发展,校园信息化建设成为必然趋势。学校各部门在日常工作中积累了大量的资料,包括教学资料、学生档案、科研成果、行政文件等。传统的纸质资料管理方式存在效率低、易丢失、难以检索等问题,无法满足现…

STL 剖析

STL 六大组件 「STL 六大组件的交互关系」 Container 通过 Allocator 取得数据储存空间Algorithm 通过 Iterator 存取 Container 内容Functor 可以协助 Algorithm 完成不同的策略变化Adapter 可以修饰或套接 Functor、Iterator 配置器(allocator) 配置器:负责空间…

企业网络构建:如何满足业务需求与提升效率

企业组网指通过网络将企业内部的各种设备(如电脑、打印机和服务器等)连接起来,实现资源共享、信息交流与协同办公的过程。要打造一个高效的企业网络,需要从安全性、可靠性、稳定性和性能等多个方面进行综合考虑。以下内容将详细解…

升级thinkphp8最新版本,升级后发现版本不变

升级thinkphp8.0.3最新版本8.1.1,升级后发现版本不变, 更新TP有两个方法 1 全部更新(所有插件都一起更新) composer update 2 只更新TP框架核心 composer update topthink/framework 造成可能有两个原因,一是缓存问题,二是更新…

Cesium进阶教程——自定义图形、外观、绘图基础、现有着色器移植至Cesium、ShadowMapping、视频GIS、模型压平、卷帘

基础必看 WEBGL基础(从渲染管线角度解读) 参考路线 http://www.xt3d.online/tutorial/further/article.html 自定义图形 https://blog.csdn.net/m0_55049655/article/details/138908327 https://blog.csdn.net/m0_55049655/article/details/140306837 …

理解数据结构 hashtable的简易理解思路

结构图 为了方便演示,下图中分区算法为下标取模 private int hashFun(int id) {//使用 hash并取模return id % size;}Hashtable的结构如图所示:是一个数组(元素为各个链表的表头) 多个链表组成,也就是说 hashtable 结…

【YashanDB知识库】kettle同步PG至崖山提示no encryption pg_hba.conf记录

【问题分类】数据导入导出 【关键字】数据同步,kettle,数据迁移,pg_hba.conf 【问题描述】使用kettle同步postgresql至崖山数据库时提示以下报错信息: 【问题原因分析】pg_hba.conf 文件中没有正确配置允许从 IP 地址 连接到数…

记录2024-leetcode-字符串DP

10. 正则表达式匹配 - 力扣(LeetCode)

UE5制作伤害浮动数字

效果演示: 首先创建一个控件UI 添加画布和文本 文本设置样式 添加伤害浮动动画,根据自己喜好调整,我设置了缩放和不透明度 添加绑定 转到事件图表,事件构造设置动画 创建actor蓝图类 添加widget 获取位置 设置位移 创建一个被击中…

【USB-HID】“自动化键盘“

这里写目录标题 【USB-HID】"自动化键盘"1. 前言2. 框架3. 实现3.1 模拟键盘按键输入 【USB-HID】“自动化键盘” 1. 前言 最近从朋友那了解了一种"自动化键盘",能够通过上位机录制按键脚本,然后执行脚本,实现物理键盘…

STM32F407ZGT6-UCOSIII笔记4:时间片轮转调度

本文学习与程序编写基于 正点原子的 STM32F1 UCOS开发手册 编写熟悉一下 UCOSIII系统的 时间片轮转调度 文章提供测试代码讲解、完整工程下载、测试效果图 目录 解决上文的卡系统问题: 使能时间片轮转调度: 任务初始化定义更改: 文件结构…