为辩论 Agent 设计 Harness 反驳检测与回合制控制

元数据

  • 标题:为辩论 Agent 设计 Harness 反驳检测与回合制控制:理论框架、架构实践与博弈优化
  • 关键词:辩论 Agent、反驳检测、回合制控制、论证挖掘、博弈论、大语言模型(LLM)对齐、Harness 系统
  • 摘要:辩论 Agent 是大语言模型(LLM)在复杂社交推理与对抗性交互领域的核心应用方向之一,其性能瓶颈集中在精准的论证反驳识别(区分“无关干扰”“逻辑质疑”“事实反驳”等不同反驳类型)与自适应的回合制交互控制(匹配人类辩论节奏、控制论证深度、避免重复冗余)。本文从第一性原理出发,将辩论系统拆解为“论证逻辑层”“对抗感知层”“决策调度层”三个核心模块,提出了层次化多模态反驳检测框架(整合符号逻辑、语义相似度、论证结构依存三重特征)与马尔可夫决策过程(MDP)驱动的回合制Harness调度器,通过真实世界辩论数据集的训练与强化学习(RL)对齐,实现了辩论Agent的“有理有据、攻防有度、节奏可控”。本文包含完整的数学模型、Mermaid架构图、算法流程图、Python核心实现代码、开源项目部署指南,以及最佳实践与未来趋势分析,是构建工业级辩论Agent的系统性技术指南。

1. 概念基础

1.1 领域背景化

核心概念

本节将建立辩论Agent、Harness系统、反驳检测、回合制控制的精确术语体系,避免因语义歧义导致的技术偏差。

问题背景

随着GPT-4o、Claude 3.5 Opus、Gemini Ultra等多模态大语言模型的涌现,LLM在单一任务(如文本生成、代码编写、知识问答)上的表现已接近或超过人类平均水平,但在多轮对抗性交互(如辩论赛、法庭辩护、商务谈判)这类需要深度逻辑推理、事实核查能力、共情理解能力、实时战略决策的复杂任务上仍存在明显缺陷:

  1. 反驳识别混乱:LLM常将用户的“补充说明”“调侃干扰”误判为“需要正面回应的有效反驳”,或对“关键前提的逻辑漏洞”“直接事实的矛盾证据”视而不见,导致辩论陷入“鸡同鸭讲”或“被动挨打”的状态;
  2. 回合制控制缺失:LLM要么在单轮中输出“超长但逻辑冗余的论证链条”(打断人类用户的辩论节奏,甚至违反辩论规则),要么在连续被反驳后输出“简短但无实质内容的话术”(如“这不是问题的关键”“你理解错了”),无法自适应地调整单轮论证的长度、深度、攻击/防守策略;
  3. 整体体验割裂:多数现有辩论Agent是“大语言模型+固定提示词模板”的简单组合,缺乏对辩论规则、论证目标、用户状态的感知与调度,难以构建持续、深入、有意义的对抗性交互。

为解决上述问题,本文提出为辩论Agent设计专门的Harness系统——Harness系统是一种连接大语言模型(核心推理引擎)与外部环境(辩论规则、用户状态、事实库)的“中间控制层”,其核心功能包括:

  • 环境感知:解析辩论规则、监听用户输入、评估当前论证状态;
  • 核心任务调度:调用反驳检测模块识别用户输入的类型与质量,调用MDP调度器决定下一轮的论证策略(攻击/防守/过渡/事实核查);
  • 输出约束:限制大语言模型的输出长度、风格、内容,确保符合辩论规则与用户期望;
  • 反馈优化:收集用户的反馈(如点赞/点踩、明确的反驳意见),用于更新反驳检测模型与MDP调度器的参数。

1.2 历史轨迹

辩论Agent的发展与论证挖掘(Argument Mining, AM)、自然语言处理(NLP)、大语言模型(LLM)的发展密切相关,其演变历程可分为以下三个阶段:

阶段 时间范围 核心技术 代表性研究/项目 主要特点 局限性
基于规则与模板的阶段 2000-2015 句法分析、规则匹配、模板生成 IBM Watson在《危险边缘》的辩论环节、MIT的Debater Prototype(早期版本) 仅能处理结构化的辩论场景,支持固定模板的攻击/防守 无法理解自然语言中的模糊论证、讽刺、比喻,反驳识别准确率极低(<30%),完全没有自适应的回合制控制
基于统计学习与论证挖掘的阶段 2015-2022 论证挖掘(论点/论据/反驳识别)、支持向量机(SVM)、循环神经网络(RNN)、长短时记忆网络(LSTM)、注意力机制(Attention) IBM Watson Debater(2018正式发布)、清华大学的ArgueGPT、斯坦福大学的DebateSum 能够从自然语言文本中识别论点、论据、反驳的基本结构,支持简单的逻辑推理(如三段论的匹配) 反驳类型识别准确率有限(<60%),无法处理多模态输入,回合制控制仍基于固定规则(如单轮输出不超过300字),缺乏对用户状态与论证目标的感知
基于大语言模型与强化学习的阶段 2022-至今 多模态大语言模型(GPT-4o、Claude 3.5 Opus)、强化学习(PPO、DPO)、博弈论(MDP、扩展式博弈) OpenAI的DebateBench(2023)、Anthropic的Constitutional AI在对抗性任务中的应用、Meta的LLaMA-based Debater、本文提出的Harness系统 能够理解自然语言中的模糊论证、讽刺、比喻,反驳类型识别准确率提升至>85%,支持简单的自适应回合制控制 反驳检测模型的可解释性差,难以应对恶意用户的“诡辩攻击”,回合制控制的博弈论模型仍较为简单(仅考虑单轮或少量历史轮次的状态),缺乏对辩论规则的深度融合与长期博弈目标的规划

1.3 问题空间定义

问题描述

我们将辩论场景建模为双人零和/非零和扩展式博弈,其中:

  • 玩家:辩论Agent(Player 1,记为P1P_1P1)与人类用户/另一个辩论Agent(Player 2,记为P2P_2P2);
  • 游戏阶段:从“开场立论”到“总结陈词”的多个固定/半固定辩论阶段;
  • 状态空间S={(t,R,A11,…,A1t,A21,…,A2t−1,u1,u2,θ)}S = \{(t, R, A_1^1, \dots, A_1^t, A_2^1, \dots, A_2^{t-1}, u_1, u_2, \theta)\}S={(t,R,A11,,A1t,A21,,A2t1,u1,u2,θ)},其中:
    • ttt:当前辩论轮次;
    • RRR:辩论规则集合(如时间限制、字数限制、攻击类型限制);
    • AikA_i^kAik:玩家iii在第kkk轮的论证内容与论证状态(如论点可信度、论据完整度、攻击强度、防守漏洞);
    • uiu_iui:玩家iii的短期(当前轮次)与长期(整个辩论)效用函数;
    • θ\thetaθ:玩家iii的心理状态/认知水平(仅在与人类用户交互时考虑);
  • 动作空间A={a1,a2,…,an}A = \{a_1, a_2, \dots, a_n\}A={a1,a2,,an},其中每个动作对应一种辩论策略,如:
    • a1a_1a1:开场立论(完整提出核心论点+3个关键论据);
    • a2a_2a2:逻辑反驳(攻击对手核心论点的前提/推理过程);
    • a3a_3a3:事实反驳(提供与对手论据矛盾的权威事实);
    • a4a_4a4:类比反驳(用生动的类比说明对手论点的荒谬性);
    • a5a_5a5:补充防守(补充己方核心论点的论据/漏洞修补);
    • a6a_6a6:过渡攻击(先承认对手的部分论点,再提出新的攻击点);
    • a7a_7a7:事实核查(暂停辩论,调用外部事实库验证对手的论据);
    • a8a_8a8:总结陈词(总结己方核心论点+攻击对手的主要漏洞);
  • 转移函数T(s,a,s′)=P(s′∣s,a)T(s, a, s') = P(s' | s, a)T(s,a,s)=P(ss,a),表示在状态sss下执行动作aaa后转移到状态s′s's的概率;
  • 效用函数Ui(s,a,s′)U_i(s, a, s')Ui(s,a,s),表示玩家iii在状态sss下执行动作aaa后转移到状态s′s's的即时效用与长期效用的加权和。

在此博弈模型下,我们的核心问题是:

  1. 反驳检测问题:给定玩家P2P_2P2在第ttt轮的输入A2tA_2^tA2t,判断其是否为有效反驳(即与P1P_1P1在第111ttt轮的核心论点/论据相关,并对P1P_1P1的论证状态造成负面影响的输入),如果是,进一步识别其反驳类型(逻辑反驳/事实反驳/类比反驳/人身攻击/其他)与反驳强度(弱/中/强);
  2. 回合制Harness控制问题:给定当前辩论状态sts_tst与玩家P2P_2P2的输入A2tA_2^tA2t的反驳检测结果,设计一个调度器,选择最优的动作at+1∈Aa_{t+1} \in Aat+1A,最大化玩家P1P_1P1的长期效用U1(st,at+1,st+1,…,sT)U_1(s_t, a_{t+1}, s_{t+1}, \dots, s_T)U1(st,at+1,st+1,,sT)TTT为辩论总轮次),同时满足辩论规则RRR的约束。

1.4 术语精确性

为了确保后续内容的技术精确度,本节将对一些容易混淆的术语进行明确的定义:

术语 本文定义 与其他术语的区别
论点(Claim) 辩论中提出的核心主张或判断,需要论据的支持 与“观点(Opinion)”的区别:论点需要可验证性或可论证性,而观点可以是主观的、无需支持的;与“结论(Conclusion)”的区别:结论是推理过程的最终结果,而论点是推理过程的起点或核心
论据(Evidence/Warrant) 用于支持论点的事实、数据、权威观点、逻辑推理规则等 与“理由(Reason)”的区别:理由是解释论点的原因,而论据是验证理由的依据;Toulmin论证模型将其分为“数据(Data)”“保证(Warrant)”“支持(Backing)”“限定词(Qualifier)”“反驳(Rebuttal)”五个子部分,本文将其统一称为“论据”,但在反驳检测模型中会考虑其内部结构
有效反驳(Valid Rebuttal) 与对手的核心论点/论据直接相关,并对其可信度/完整度造成可量化负面影响的输入 与“无效输入(Irrelevant Input)”的区别:无效输入与对手的核心论点/论据无关;与“弱干扰(Weak Disturbance)”的区别:弱干扰虽与对手的核心论点/论据相关,但不会对其可信度/完整度造成可量化负面影响
反驳类型(Rebuttal Type) 本文将有效反驳分为以下六类(基于Toulmin论证模型与辩论实践):
1. 前提反驳(Premise Rebuttal):攻击对手核心论点的前提假设
2. 推理反驳(Inference Rebuttal):攻击对手从前提到结论的推理过程(如循环论证、因果倒置、偷换概念)
3. 数据反驳(Data Rebuttal):提供与对手数据/事实矛盾的权威证据
4. 保证反驳(Warrant Rebuttal):攻击对手连接数据与论点的逻辑规则
5. 类比反驳(Analogy Rebuttal):用生动的类比说明对手论点的荒谬性
6. 人身攻击(Ad Hominem):攻击对手的人格/动机而非论点/论据(通常视为无效或低质量反驳,但在辩论规则允许的情况下也需要识别)
与其他分类体系的区别:本文的分类体系更注重Toulmin论证模型的内部结构,同时结合了辩论实践中的常见反驳类型,便于后续的调度器选择最优的回应策略
反驳强度(Rebuttal Strength) 有效反驳对对手论证状态造成的负面影响的程度,本文将其量化为0-1之间的实数(0表示无负面影响,1表示对手的核心论点完全被推翻) 与“反驳可信度(Rebuttal Credibility)”的区别:反驳可信度是指反驳本身的可信度(如是否有权威事实支持),而反驳强度是指反驳对对手论证状态的影响程度;可信度高的反驳不一定强度高(如攻击对手的一个次要论据),强度高的反驳也不一定可信度高(如恶意编造的事实)
Harness系统 连接大语言模型(核心推理引擎)与外部环境(辩论规则、用户状态、事实库)的“中间控制层”,其核心功能包括环境感知、核心任务调度、输出约束、反馈优化 与“提示词工程(Prompt Engineering)”的区别:提示词工程仅通过调整输入给LLM的提示词来控制其输出,而Harness系统是一个独立的软件系统,包含多个功能模块,能够对LLM的输入/输出进行全流程的控制与优化;与“LLM对齐框架(Alignment Framework)”的区别:LLM对齐框架主要关注如何使LLM的输出符合人类的价值观与伦理规范,而Harness系统主要关注如何使LLM的输出符合特定任务(如辩论)的规则与目标
回合制控制(Turn-based Control) 调度器根据当前辩论状态与反驳检测结果,决定下一轮辩论的内容(攻击/防守/过渡/事实核查)、长度(字数限制)、风格(正式/非正式)、时间(是否需要延长)等参数的过程 与“对话管理(Dialogue Management)”的区别:对话管理主要关注多轮对话中的意图识别与实体提取,而回合制控制主要关注多轮对抗性交互中的战略决策与规则约束;对话管理通常适用于合作性对话(如客服对话、知识问答对话),而回合制控制适用于对抗性对话(如辩论赛、法庭辩护、商务谈判)

2. 理论框架

2.1 第一性原理推导

反驳检测的第一性原理

反驳检测的核心本质是**“论证关系的识别与评估”——即识别输入文本与历史论证文本之间的“否定/质疑/矛盾”**关系,并评估这种关系对历史论证文本的可信度/完整度造成的影响程度。

从第一性原理出发,我们可以将反驳检测问题拆解为以下三个基本公理:

  1. 公理1(相关性公理):有效反驳必须与对手的核心论点/核心论据直接相关;
  2. 公理2(否定性公理):有效反驳必须包含否定/质疑/矛盾对手核心论点/核心论据的语义内容;
  3. 公理3(影响性公理):有效反驳必须对对手的论证状态造成可量化的负面影响。

这三个公理是反驳检测的必要条件,同时也是充分条件吗?我们可以通过以下思想实验来验证:

  • 思想实验1:仅满足相关性公理的输入:假设辩论主题是“是否应该禁止自动驾驶汽车上路”,P1P_1P1的核心论点是“自动驾驶汽车的安全性高于人类驾驶员”,核心论据是“据统计,2023年美国特斯拉Autopilot的事故率为0.18次/百万英里,而人类驾驶员的事故率为1.35次/百万英里”;P2P_2P2的输入是“自动驾驶汽车的价格比普通汽车贵很多”——这个输入与辩论主题相关,但与P1P_1P1的核心论点/核心论据无关(核心论点是安全性,不是价格),因此不是有效反驳;
  • 思想实验2:仅满足相关性+否定性公理的输入:假设P2P_2P2的输入是“特斯拉Autopilot的事故率统计是假的”——这个输入与P1P_1P1的核心论点/核心论据相关,也包含否定性语义内容,但没有提供任何可验证的证据,因此对P1P_1P1的论证状态造成的负面影响可以忽略不计(反驳强度≈0),因此不是有效反驳;
  • 思想实验3:同时满足三个公理的输入:假设P2P_2P2的输入是“特斯拉Autopilot的事故率统计仅包含高速公路上的行驶数据,而人类驾驶员的事故率统计包含所有道路类型的行驶数据(据美国高速公路安全管理局NHTSA 2024年报告,高速公路上的人类驾驶员事故率仅为0.22次/百万英里,与Autopilot的0.18次/百万英里接近),因此P1P_1P1的核心论据是无效的”——这个输入与P1P_1P1的核心论点/核心论据相关,包含否定性语义内容,并且提供了可验证的权威证据,对P1P_1P1的论证状态造成的负面影响非常大(反驳强度≈0.8),因此是有效反驳。

因此,这三个公理是反驳检测的充要条件——我们可以基于这三个公理构建层次化的反驳检测框架。

回合制Harness控制的第一性原理

回合制Harness控制的核心本质是**“双人扩展式博弈中的最优策略选择”**——即调度器根据当前辩论状态(博弈状态),选择最优的动作(辩论策略),最大化辩论Agent的长期效用(博弈收益),同时满足辩论规则的约束。

从第一性原理出发,我们可以将回合制Harness控制问题拆解为以下三个基本公理:

  1. 公理1(效用最大化公理):调度器的核心目标是最大化辩论Agent的长期效用;
  2. 公理2(规则约束公理):调度器选择的动作必须满足辩论规则的约束;
  3. 公理3(状态依赖公理):调度器选择的动作必须依赖于当前的辩论状态(包括历史轮次的论证内容、反驳检测结果、用户状态、辩论阶段等)。

这三个公理是回合制Harness控制的必要条件,同时也是构建最优调度器的基础。

2.2 数学形式化

2.2.1 层次化多模态反驳检测模型的数学形式化

基于第2.1.1节提出的三个公理,我们构建了层次化多模态反驳检测模型(Hierarchical Multimodal Rebuttal Detection Model, HMRDM),该模型由三个子模型组成:

  1. 相关性检测子模型(Relevance Detection Submodel, RDS):判断输入文本与历史论证文本中的核心论点/核心论据是否相关;
  2. 否定性检测子模型(Negativity Detection Submodel, NDS):判断输入文本是否包含否定/质疑/矛盾历史论证文本中的核心论点/核心论据的语义内容;
  3. 影响性评估子模型(Impact Evaluation Submodel, IES):评估输入文本对历史论证文本中的核心论点/核心论据的可信度/完整度造成的影响程度(即反驳强度)。

同时,为了支持多模态输入(如文本+图片+视频+语音),我们在每个子模型中加入了多模态特征融合层

(1)相关性检测子模型(RDS)

相关性检测子模型的输入是:

  • 多模态历史论证文本的特征表示:H=[h1,h2,…,ht]H = [h_1, h_2, \dots, h_t]H=[h1,h2,,ht],其中hk∈Rdhh_k \in \mathbb{R}^{d_h}hkRdhP1P_1P1在第kkk轮的多模态论证文本的特征表示(由多模态大语言模型的编码器生成,如GPT-4o的Vision-Text Encoder、Claude 3.5 Opus的Multimodal Encoder);
  • 当前轮次P2P_2P2的多模态输入的特征表示:x∈Rdxx \in \mathbb{R}^{d_x}xRdx
  • 历史论证文本中的核心论点/核心论据的特征表示:C=[c1,c2,…,cm]C = [c_1, c_2, \dots, c_m]C=[c1,c2,,cm],其中ci∈Rdcc_i \in \mathbb{R}^{d_c}ciRdc是第iii个核心论点/核心论据的特征表示(由专门的论点/论据识别模型生成,如IBM Watson Debater的Argument Mining Model、斯坦福大学的DebateSum Model)。

相关性检测子模型的输出是:

  • 输入文本与每个核心论点/核心论据的相关性得分:r=[r1,r2,…,rm]r = [r_1, r_2, \dots, r_m]r=[r1,r2,,rm],其中ri∈[0,1]r_i \in [0,1]ri[0,1]
  • 输入文本的整体相关性标签:yr∈{0,1}y_r \in \{0,1\}yr{0,1}(0表示无关,1表示相关)。

我们可以用多模态注意力机制的双向编码器来实现相关性检测子模型,其数学形式化如下:

首先,将历史论证文本的特征表示HHH、当前轮次输入的特征表示xxx、核心论点/核心论据的特征表示CCC拼接成一个序列:
KaTeX parse error: Expected 'EOF', got '_' at position 24: … = [\text{<[BOS_̲never_used_51bc…
其中KaTeX parse error: Expected 'EOF', got '_' at position 12: \text{<[BOS_̲never_used_51bc…是特殊的起始标记,KaTeX parse error: Expected 'EOF', got '_' at position 12: \text{<[BOS_̲never_used_51bc…是特殊的结束标记。

然后,将拼接后的序列输入到多模态双向Transformer编码器中,得到每个位置的特征表示:
Zrds=Multimodal-BiTransformer(Xrds;θrds) Z_{rds} = \text{Multimodal-BiTransformer}(X_{rds}; \theta_{rds}) Zrds=Multimodal-BiTransformer(Xrds;θrds)
其中θrds\theta_{rds}θrds是多模态双向Transformer编码器的参数,Zrds∈R(t+m+3)×dzZ_{rds} \in \mathbb{R}^{(t+m+3) \times d_z}ZrdsR(t+m+3)×dzttt是历史轮次,mmm是核心论点/核心论据的数量,dzd_zdz是编码器的输出维度)。

接下来,我们使用核心论点/核心论据的注意力头来计算输入文本与每个核心论点/核心论据的相关性得分:
ri=σ(Wr1⋅ReLU(Wr2⋅[zx,zci]+br2)+br1) r_i = \sigma\left(W_{r1} \cdot \text{ReLU}\left(W_{r2} \cdot [z_x, z_{c_i}] + b_{r2}\right) + b_{r1}\right) ri=σ(Wr1ReLU(Wr2[zx,zci]+br2)+br1)
其中zx∈Rdzz_x \in \mathbb{R}^{d_z}zxRdz是当前轮次输入的特征表示(对应XrdsX_{rds}Xrds中的xxx位置),zci∈Rdzz_{c_i} \in \mathbb{R}^{d_z}zciRdz是第iii个核心论点/核心论据的特征表示(对应XrdsX_{rds}Xrds中的cic_ici位置),Wr1∈R1×dr1W_{r1} \in \mathbb{R}^{1 \times d_{r1}}Wr1R1×dr1Wr2∈Rdr1×2dzW_{r2} \in \mathbb{R}^{d_{r1} \times 2d_z}Wr2Rdr1×2dzbr1∈R1b_{r1} \in \mathbb{R}^{1}br1R1br2∈Rdr1b_{r2} \in \mathbb{R}^{d_{r1}}br2Rdr1是可训练的参数,σ\sigmaσ是Sigmoid激活函数,ReLU\text{ReLU}ReLU是ReLU激活函数。

最后,我们使用起始标记<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>的注意力头来计算输入文本的整体相关性标签:
pr=σ(Wr3⋅ReLU(Wr4⋅z<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>+br4)+br3) p_r = \sigma\left(W_{r3} \cdot \text{ReLU}\left(W_{r4} \cdot z_{<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>} + b_{r4}\right) + b_{r3}\right) pr=σ(Wr3ReLU(Wr4z<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>+br4)+br3)
yr={1,if pr≥τr0,otherwise y_r = \begin{cases} 1, & \text{if } p_r \geq \tau_r \\ 0, & \text{otherwise} \end{cases} yr={1,0,if prτrotherwise
其中z<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>∈Rdzz_{<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>} \in \mathbb{R}^{d_z}z<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>Rdz是起始标记<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>的特征表示,Wr3∈R1×dr3W_{r3} \in \mathbb{R}^{1 \times d_{r3}}Wr3R1×dr3Wr4∈Rdr3×dzW_{r4} \in \mathbb{R}^{d_{r3} \times d_z}Wr4Rdr3×dzbr3∈R1b_{r3} \in \mathbb{R}^{1}br3R1br4∈Rdr3b_{r4} \in \mathbb{R}^{d_{r3}}br4Rdr3是可训练的参数,τr∈[0,1]\tau_r \in [0,1]τr[0,1]是相关性检测的阈值(可以通过验证集调整)。

(2)否定性检测子模型(NDS)

否定性检测子模型的输入是:

  • 相关性检测子模型的输出:yry_ryr(仅当yr=1y_r=1yr=1时才进行后续处理)、r=[r1,r2,…,rm]r = [r_1, r_2, \dots, r_m]r=[r1,r2,,rm]zxz_xzxC=[c1,c2,…,cm]C = [c_1, c_2, \dots, c_m]C=[c1,c2,,cm]
  • 当前轮次P2P_2P2的多模态输入的特征表示:xxx
  • 与输入文本最相关的前kkk个核心论点/核心论据的特征表示:Ctop−k=[ci1,ci2,…,cik]C_{top-k} = [c_{i_1}, c_{i_2}, \dots, c_{i_k}]Ctopk=[ci1,ci2,,cik](其中i1,i2,…,iki_1, i_2, \dots, i_ki1,i2,,ik是相关性得分rrr从高到低排序的前kkk个索引)。

否定性检测子模型的输出是:

  • 输入文本与每个最相关的核心论点/核心论据的否定性得分:n=[ni1,ni2,…,nik]n = [n_{i_1}, n_{i_2}, \dots, n_{i_k}]n=[ni1,ni2,,nik],其中nij∈[0,1]n_{i_j} \in [0,1]nij[0,1]
  • 输入文本的整体否定性标签:yn∈{0,1}y_n \in \{0,1\}yn{0,1}(0表示无否定性,1表示有否定性);
  • 输入文本的否定性类型标签:ynt∈{0,1,2,3}y_{nt} \in \{0,1,2,3\}ynt{0,1,2,3}(0表示无否定性,1表示否定,2表示质疑,3表示矛盾)。

我们可以用对比学习的多模态编码器来实现否定性检测子模型,其数学形式化如下:

首先,将当前轮次输入的特征表示zxz_xzx与每个最相关的核心论点/核心论据的特征表示cijc_{i_j}cij拼接成一个序列:
KaTeX parse error: Expected 'EOF', got '_' at position 26: … = [\text{<[BOS_̲never_used_51bc…
其中[SEP]\text{[SEP]}[SEP]是特殊的分隔标记。

然后,将拼接后的序列输入到预训练的多模态论证对比编码器(如在DebateBench、IBM Debater Corpus、ArgKP Corpus等论证数据集上预训练的编码器)中,得到起始标记<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>的特征表示:
znds,j,<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>=Multimodal-Argument-Contrastive-Encoder(Xnds,j;θnds) z_{nds,j,<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>} = \text{Multimodal-Argument-Contrastive-Encoder}(X_{nds,j}; \theta_{nds}) znds,j,<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>=Multimodal-Argument-Contrastive-Encoder(Xnds,j;θnds)
其中θnds\theta_{nds}θnds是预训练的多模态论证对比编码器的参数(可以冻结或微调),znds,j,<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>∈Rdndsz_{nds,j,<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>} \in \mathbb{R}^{d_{nds}}znds,j,<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>Rdnds

接下来,我们使用分类头来计算输入文本与第jjj个最相关的核心论点/核心论据的否定性得分、整体否定性标签、否定性类型标签:
pn,j=σ(Wn1,j⋅ReLU(Wn2,j⋅znds,j,<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>+bn2,j)+bn1,j) p_{n,j} = \sigma\left(W_{n1,j} \cdot \text{ReLU}\left(W_{n2,j} \cdot z_{nds,j,<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>} + b_{n2,j}\right) + b_{n1,j}\right) pn,j=σ(Wn1,jReLU(Wn2,jznds,j,<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>+bn2,j)+bn1,j)
nij=pn,j n_{i_j} = p_{n,j} nij=pn,j
pn=max⁡(pn,1,pn,2,…,pn,k) p_n = \max\left(p_{n,1}, p_{n,2}, \dots, p_{n,k}\right) pn=max(pn,1,pn,2,,pn,k)
yn={1,if pn≥τn0,otherwise y_n = \begin{cases} 1, & \text{if } p_n \geq \tau_n \\ 0, & \text{otherwise} \end{cases} yn={1,0,if pnτnotherwise
pnt=Softmax(Wnt1⋅ReLU(Wnt2⋅znds,j^,<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>+bnt2)+bnt1) p_{nt} = \text{Softmax}\left(W_{nt1} \cdot \text{ReLU}\left(W_{nt2} \cdot z_{nds,\hat{j},<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>} + b_{nt2}\right) + b_{nt1}\right) pnt=Softmax(Wnt1ReLU(Wnt2znds,j^,<[BOSneverused51bce0c785ca2f68081bfa7d91973934]>+bnt2)+bnt1)
ynt=arg⁡max⁡l∈{0,1,2,3}pnt,l y_{nt} = \arg\max_{l \in \{0,1,2,3\}} p_{nt,l} ynt=argl{0,1,2,3}maxpnt,l
其中j^\hat{j}j^pn,jp_{n,j}pn,j最大的索引,Wn1,j∈R1×dn1W_{n1,j} \in \mathbb{R}^{1 \times d_{n1}}Wn1,jR1×dn1Wn2,j∈Rdn1×dndsW_{n2,j} \in \mathbb{R}^{d_{n1} \times d_{nds}}Wn2,jRdn1×dndsbn1,j∈R1b_{n1,j} \in \mathbb{R}^{1}bn1,jR1bn2,j∈Rdn1b_{n2,j} \in \mathbb{R}^{d_{n1}}bn2,jRdn1Wnt1∈R4×dnt1W_{nt1} \in \mathbb{R}^{4 \times d_{nt1}}Wnt1R4×dnt1Wnt2∈Rdnt1×dndsW_{nt2} \in \mathbb{R}^{d_{nt1} \times d_{nds}}Wnt2Rdnt1×dndsbnt1∈R4b_{nt1} \in \mathbb{R}^{4}bnt1R4bnt2∈Rdnt1b_{nt2} \in \mathbb{R}^{d_{nt1}}bnt2Rdnt1是可训练的参数,τn∈[0,1]\tau_n \in [0,1]τn[0,1]是否定性检测的阈值(可以通过验证集调整),Softmax\text{Softmax}Softmax是Softmax激活函数。

(3)影响性评估子模型(IES)

影响性评估子模型的输入是:

  • 相关性检测子模型的输出:yry_ryr(仅当yr=1y_r=1yr=1时才进行后续处理)、r=[r1,r2,…,rm]r = [r_1, r_2, \dots, r_m]r=[r1,r2,,rm]
  • 否定性检测子模型的输出:yny_nyn(仅当yn=1y_n=1yn=1时才进行后续处理)、n=[ni1,ni2,…,nik]n = [n_{i_1}, n_{i_2}, \dots, n_{i_k}]n=[ni1,ni2,,nik]ynty_{nt}ynt
  • 与输入文本最相关的前kkk个核心论点/核心论据的特征表示:Ctop−k=[ci1,ci2,…,cik]C_{top-k} = [c_{i_1}, c_{i_2}, \dots, c_{i_k}]Ctopk=[ci1,ci2,,cik]
  • 与输入文本最相关的前kkk个核心论点/核心论据的初始可信度/完整度:V=[vi1,vi2,…,vik]V = [v_{i_1}, v_{i_2}, \dots, v_{i_k}]V=[vi1,vi2,,vik](由专门的论证质量评估模型生成,如IBM Watson Debater的Argument Quality Assessment Model、斯坦福大学的Persuasive Essay Scoring Model);
  • 当前轮次P2P_2P2的多模态输入的权威度:ax∈[0,1]a_x \in [0,1]ax[0,1](由专门的权威度评估模型生成,如基于域名、作者、引用来源的权威度评估模型)。

影响性评估子模型的输出是:

  • 输入文本对每个最相关的核心论点/核心论据的可信度/完整度的影响程度:Δv=[Δvi1,Δvi2,…,Δvik]\Delta v = [\Delta v_{i_1}, \Delta v_{i_2}, \dots, \Delta v_{i_k}]Δv=[Δvi1,Δvi2,,Δvik],其中Δvij∈[−vij,1−vij]\Delta v_{i_j} \in [-v_{i_j}, 1-v_{i_j}]Δvij[vij,1vij](负值表示降低可信度/完整度,正值表示提高可信度/完整度);
  • 输入文本的整体反驳强度:s∈[0,1]s \in [0,1]s[0,1]

我们可以用图神经网络(GNN)的论证结构依存模型来实现影响性评估子模型,因为论证文本中的核心论点/核心论据之间存在依存关系(如一个核心论点需要多个核心论据的支持,一个核心论据又依赖于另一个核心论点),图神经网络可以很好地建模这种依存关系。

首先,我们构建论证结构依存图(Argument Structure Dependency Graph, ASDG),其中:

  • 节点集:Vasdg={c1,c2,…,cm}V_{asdg} = \{c_1, c_2, \dots, c_m\}Vasdg={c1,c2,,cm}(对应所有核心论点/核心论据);
  • 边集:Easdg={(ci,cj,eij)}E_{asdg} = \{(c_i, c_j, e_{ij})\}Easdg={(ci,cj,eij)},其中eij∈{0,1,2}e_{ij} \in \{0,1,2\}eij{0,1,2}是边的类型:
    • eij=0e_{ij}=0eij=0:表示cic_icicjc_jcj之间没有依存关系;
    • eij=1e_{ij}=1eij=1:表示cic_ici支持cjc_jcj(即cic_icicjc_jcj的论据);
    • eij=2e_{ij}=2eij=2:表示cic_ici反驳cjc_jcj(仅当P2P_2P2在之前的轮次中提出过有效的反驳时存在);
  • 节点特征:Xasdg=[x1,x2,…,xm]X_{asdg} = [x_1, x_2, \dots, x_m]Xasdg=[x1,x2,,xm],其中xi=[ci,vi,ri,ni]x_i = [c_i, v_i, r_i, n_i]xi=[ci,vi,ri,ni]cic_ici是核心论点/核心论据的特征表示,viv_ivi是初始可信度/完整度,rir_iri是相关性得分,nin_ini是否定性得分,若cic_ici不在Ctop−kC_{top-k}Ctopk中,则ri=0r_i=0ri=0ni=0n_i=0ni=0);
  • 全局特征:g=[ynt,ax]g = [y_{nt}, a_x]g=[ynt,ax](否定性类型标签、输入文本的权威度)。

然后,将论证结构依存图输入到**图注意力网络(GAT)的变体——全局感知图注意力网络(Global-Aware Graph Attention Network, GAGAT)**中,得到每个节点的更新后的特征表示:
Zasdg(0)=Xasdg Z_{asdg}^{(0)} = X_{asdg} Zasdg(0)=Xasdg
Zasdg(l)=GAGATLayer(Zasdg(l−1),Easdg,g;θies,l)for l=1,2,…,L Z_{asdg}^{(l)} = \text{GAGATLayer}(Z_{asdg}^{(l-1)}, E_{asdg}, g; \theta_{ies,l}) \quad \text{for } l=1,2,\dots,L Zasdg(l)=GAGATLayer(Zasdg(l1),Easdg,g;θies,l)for l=1,2,,L
Zasdg=Zasdg(L) Z_{asdg} = Z_{asdg}^{(L)} Zasdg=Zasdg(L)
其中LLL是GAGAT的层数,θies,l\theta_{ies,l}θies,l是第lll层GAGAT的参数,Zasdg∈Rm×dasdgZ_{asdg} \in \mathbb{R}^{m \times d_{asdg}}ZasdgRm×dasdg

接下来,我们使用节点分类头来计算输入文本对每个核心论点/核心论据的可信度/完整度的影响程度:
Δvi=tanh⁡(Wv1⋅ReLU(Wv2⋅zasdg,i+bv2)+bv1)⋅vi \Delta v_i = \tanh\left(W_{v1} \cdot \text{ReLU}\left(W_{v2} \cdot z_{asdg,i} + b_{v2}\right) + b_{v1}\right) \cdot v_i Δvi=tanh(Wv1ReLU(Wv2zasdg,i+bv2)+bv1)vi
其中zasdg,i∈Rdasdgz_{asdg,i} \in \mathbb{R}^{d_{asdg}}zasdg,iRdasdg是第iii个节点的更新后的特征表示,Wv1∈R1×dv1W_{v1} \in \mathbb{R}^{1 \times d_{v1}}Wv1R1×dv1Wv2∈Rdv1×dasdgW_{v2} \in \mathbb{R}^{d_{v1} \times d_{asdg}}Wv2Rdv1×dasdgbv1∈R1b_{v1} \in \mathbb{R}^{1}bv1R1bv2∈Rdv1b_{v2} \in \mathbb{R}^{d_{v1}}bv2Rdv1是可训练的参数,tanh⁡\tanhtanh是Tanh激活函数(用于将影响程度限制在[−vi,vi][-v_i, v_i][vi,vi]之间,本文假设输入文本不会提高对手核心论点/核心论据的可信度/完整度,因此在实际应用中可以将Δvi\Delta v_iΔvi截断到[−vi,0][-v_i, 0][vi,0]之间)。

最后,我们使用全局聚合头来计算输入文本的整体反驳强度:
Δvtotal=∑i=1mmax⁡(0,−Δvi)⋅wi \Delta v_{total} = \sum_{i=1}^m \max(0, -\Delta v_i) \cdot w_i Δvtotal=i=1mmax(0,Δvi)wi
s=min⁡(1,ΔvtotalVtotal) s = \min\left(1, \frac{\Delta v_{total}}{V_{total}}\right) s=min(1,VtotalΔvtotal)
其中wiw_iwi是第iii个核心论点/核心论据的权重(由专门的权重分配模型生成,如基于核心论点/核心论据在整个论证链条中的位置的权重分配模型——位置越靠前,权重越大),Vtotal=∑i=1mvi⋅wiV_{total} = \sum_{i=1}^m v_i \cdot w_iVtotal=i=1mviwi是所有核心论点/核心论据的初始总可信度/完整度。

(4)反驳类型识别的补充模型

在第2.1.4节中,我们将有效反驳分为六类(前提反驳、推理反驳、数据反驳、保证反驳、类比反驳、人身攻击),否定性检测子模型的输出ynty_{nt}ynt仅能区分无否定性、否定、质疑、矛盾,因此我们需要一个补充的反驳类型识别模型(Rebuttal Type Identification Submodel, RTIS)

反驳类型识别模型的输入是:

  • 相关性检测子模型的输出:yry_ryr(仅当yr=1y_r=1yr=1时才进行后续处理);
  • 否定性检测子模型的输出:yny_nyn(仅当yn=1y_n=1yn=1时才进行后续处理);
  • 当前轮次P2P_2P2的多模态输入的原始文本/转录文本:txt_xtx
  • 与输入文本最相关的前kkk个核心论点/核心论据的原始文本:TCtop−k=[tci1,tci2,…,tcik]T_{C_{top-k}} = [t_{c_{i_1}}, t_{c_{i_2}}, \dots, t_{c_{i_k}}]TCtopk=[tci1,tci2,,tcik]
  • 与输入文本最相关的前kkk个核心论点/核心论据的Toulmin结构标注:ToulminCtop−k=[Toulminci1,Toulminci2,…,Toulmincik]Toulmin_{C_{top-k}} = [Toulmin_{c_{i_1}}, Toulmin_{c_{i_2}}, \dots, Toulmin_{c_{i_k}}]ToulminCtopk=[Toulminci1,Toulminci2,,Toulmincik](由专门的Toulmin结构标注模型生成)。

反驳类型识别模型的输出是:

  • 输入文本的反驳类型标签:yrt∈{0,1,2,3,4,5,6}y_{rt} \in \{0,1,2,3,4,5,6\}yrt{0,1,2,3,4,5,6}(0表示无效反驳,1表示前提反驳,2表示推理反驳,3表示数据反驳,4表示保证反驳,5表示类比反驳,6表示人身攻击)。

我们可以用微调后的多模态大语言模型(如GPT-4o Mini、Claude 3 Haiku、LLaMA 3 8B Instruct)来实现反驳类型识别模型,因为大语言模型具有强大的自然语言理解能力与逻辑推理能力,可以很好地识别Toulmin结构与反驳类型。

微调的提示词模板如下:

你是一个专业的辩论论证分析专家,你的任务是根据给定的辩论主题、辩论Agent的历史论证文本中的核心论点/核心论据及其Toulmin结构标注、人类用户的当前输入文本,判断当前输入文本的反驳类型。

辩论主题:{topic}
辩论Agent的历史论证文本中的核心论点/核心论据(按相关性从高到低排序)及其Toulmin结构标注:
{top_k_arguments_with_toulmin}
人类用户的当前输入文本:{current_input}

反驳类型的定义:
0. 无效反驳:与辩论Agent的核心论点/核心论据无关,或虽相关但无否定/质疑/矛盾的语义内容,或虽相关且有否定/质疑/矛盾的语义内容但对辩论Agent的论证状态造成的负面影响可忽略不计;
1. 前提反驳:攻击辩论Agent核心论点的前提假设(Toulmin结构中的“隐含前提”或“限定词的例外情况”);
2. 推理反驳:攻击辩论Agent从前提到结论的推理过程(如循环论证、因果倒置、偷换概念、以偏概全、诉诸无知);
3. 数据反驳:提供与辩论Agent核心论据中的“数据(Data)”矛盾的权威证据;
4. 保证反驳:攻击辩论Agent连接“数据(Data)”与“论点(Claim)”的“保证(Warrant)”或“支持(Backing)”;
5. 类比反驳:用生动的类比说明辩论Agent论点/论据的荒谬性;
6. 人身攻击:攻击辩论Agent的人格/动机而非论点/论据。

请仅输出反驳类型的数字标签,不要输出任何其他内容。
(5)层次化多模态反驳检测模型的整体流程

层次化多模态反驳检测模型的整体流程如下:

  1. 首先,调用论点/论据识别模型,从辩论Agent的历史论证文本中提取所有核心论点/核心论据,并构建论证结构依存图;
  2. 然后,调用相关性检测子模型,判断人类用户的当前输入文本是否与任何核心论点/核心论据相关;
  3. 如果输入文本无关,则输出“无效反驳”;
  4. 如果输入文本相关,则调用否定性检测子模型,判断输入文本是否包含否定/质疑/矛盾的语义内容;
  5. 如果输入文本无否定性,则输出“无效反驳”;
  6. 如果输入文本有否定性,则调用权威度评估模型,评估输入文本的权威度,调用论证质量评估模型,评估所有核心论点/核心论据的初始可信度/完整度,调用权重分配模型,分配所有核心论点/核心论据的权重;
  7. 然后,调用影响性评估子模型,评估输入文本的整体反驳强度;
  8. 如果反驳强度小于阈值τs\tau_sτs(可以通过验证集调整),则输出“无效反驳”;
  9. 如果反驳强度大于等于阈值τs\tau_sτs,则调用反驳类型识别模型,识别输入文本的反驳类型;
  10. 最后,输出“有效反驳”,并包含反驳类型、反驳强度、与输入文本最相关的前kkk个核心论点/核心论据的信息。
2.2.2 MDP驱动的回合制Harness调度器的数学形式化

基于第2.1.2节提出的三个公理,我们将回合制Harness控制问题建模为带约束的马尔可夫决策过程(Constrained Markov Decision Process, CMDP),因为辩论Agent的动作选择不仅要最大化长期效用,还要满足辩论规则的约束(如单轮输出的字数限制、时间限制、攻击类型限制)。

(1)带约束的马尔可夫决策过程(CMDP)的定义

一个带约束的马尔可夫决策过程是一个元组:
CMDP=(S,A,T,R,C,γ,τc) \text{CMDP} = (S, A, T, R, C, \gamma, \tau_c) CMDP=(S,A,T,R,C,γ,τc)
其中:

  • SSS:有限的状态空间(如第1.3节中定义的辩论状态空间);
  • AAA:有限的动作空间(如第1.3节中定义的辩论策略动作空间);
  • TTT:状态转移函数,T(s,a,s′)=P(s′∣s,a)T(s, a, s') = P(s' | s, a)T(s,a,s)=P(ss,a),表示在状态sss下执行动作aaa后转移到状态s′s's的概率;
  • RRR:即时奖励函数,R(s,a,s′)∈RR(s, a, s') \in \mathbb{R}R(s,a,s)R,表示在状态sss下执行动作aaa后转移到状态s′s's的即时奖励;
  • CCC:约束函数,C(s,a,s′)∈RdC(s, a, s') \in \mathbb{R}^dC(s,a,s)Rd,表示在状态sss下执行动作aaa后转移到状态s′s'sddd个约束条件的违反程度;
  • γ∈[0,1)\gamma \in [0,1)γ[0,1):折扣因子,表示未来奖励的重要性;
  • τc∈Rd\tau_c \in \mathbb{R}^dτcRd:约束阈值,表示ddd个约束条件的最大允许违反程度。
(2)辩论场景下的CMDP参数定义

接下来,我们将辩论场景下的CMDP参数进行具体的定义:

(a)状态空间SSS的简化

由于第1.3节中定义的辩论状态空间非常大(包含无限多的可能状态),我们需要对其进行简化与抽象,以便于后续的强化学习算法的训练与收敛。

我们将辩论状态空间简化为一个元组:
s=(t,p,d,v1,v2,hrecent) s = (t, p, d, v_1, v_2, h_{recent}) s=(t,p,d,v1,v2,hrecent)
其中:

  • t∈{1,2,…,T}t \in \{1,2,\dots,T\}t{1,2,,T}:当前辩论轮次(TTT为预设的辩论总轮次);
  • p∈{0,1,2,…,P}p \in \{0,1,2,\dots,P\}p{0,1,2,,P}:当前辩论阶段(PPP为预设的辩论阶段总数,如p=0p=0p=0表示开场立论前,p=1p=1p=1表示开场立论阶段,p=2p=2p=2表示自由辩论阶段,p=3p=3p=3表示总结陈词阶段);
  • d∈{0,1}d \in \{0,1\}d{0,1}:当前的辩论角色(d=0d=0d=0表示正方,d=1d=1d=1表示反方);
  • $v_1 \in [
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐