Neural Message-Passing on Attention Graphs for Hallucination Detection¶
会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=4twbqwV4br
代码: https://github.com/Noired/charm
领域: 幻觉检测 / 图神经网络 / LLM 可解释性
关键词: hallucination detection, attention graph, GNN, message passing, computational traces
一句话总结¶
把 LLM 内部的注意力矩阵和激活看作一张「带属性的有向图」(token 是节点、注意力流是边),用 GNN 做消息传递来检测幻觉,并从理论上证明该框架能涵盖此前的注意力启发式方法,实验上全面超越它们。
研究背景与动机¶
- 领域现状:LLM 幻觉检测(HD)主要有两条路线,一是多次采样/自我评判(慢且贵,不适合实时),二是利用解码时产生的「计算轨迹」(computational traces)——主要是对残差流激活做线性探针,或基于注意力图做启发式判断。
- 现有痛点:基于注意力的方法(Lookback Lens、LLM-Check 等)依赖手工启发式或浅层分类器(如对注意力 Laplacian 跑逻辑回归),表达能力受限;更关键的是,所有方法都把激活、注意力等不同轨迹孤立处理,忽视了它们互补的信息。
- 核心矛盾:注意力本质上是 token 之间的成对关系,天然带有图结构,但现有方法要么把它压成手工标量特征丢掉了结构,要么只看单一信号,缺少一个能统一异质信号、又能利用结构的现代深度学习框架。
- 本文目标:构建一个统一框架,把计算轨迹表示为带属性图,让幻觉检测变成一个图学习任务,既能在 token 级又能在 response 级检测,还能融合多种轨迹信号。
- 核心 idea:【图学习视角】 token 为节点、注意力诱导的有向边连接它们,节点带激活与自注意力特征、边带成对注意力特征,然后直接用 GNN 在这张图上学习,理论上可证明它能逼近已有的注意力启发式。
方法详解¶
整体框架¶
CHARM(Catching HAllucinated Responses via learnable Message-passing)分三步:先从 LLM 一次前向中抽取注意力矩阵和激活,构造一张带属性有向图;再用消息传递 GNN(fmp)更新每个 token 的表示;最后视粒度需要,token 级直接预测、response 级则先池化(fpool)再过预测头(fpred)。整条流水线是 \(f = f_{\text{pred}} \circ f_{\text{pool}} \circ f_{\text{mp}}\)。
graph LR
A[LLM 单次前向] --> B[抽注意力矩阵 + 激活]
B --> C[构造带属性有向图<br/>节点=token 边=注意力流]
C --> D[稀疏化阈值 τ]
D --> E[fmp: 多层消息传递 GNN]
E --> F{粒度?}
F -->|token级| G[fpred 直接输出 token 幻觉分]
F -->|response级| H[fpool 池化 → fpred 输出整句分]
关键设计¶
1. 计算轨迹图:把内部信号统一成带属性图,点题在于「结构 + 异质特征」一次性打包。注意力分数 \(\alpha_{i,j}^{l,h}\) 本身就是 token 之间的成对(非对称)关系,因此对任意 token 序列 \(\vec{s} = \vec{p} \mid \vec{r}\) 自然诱导一张有向图 \(G=(V,E)\):节点是全部 token,边 \((T_i, T_j)\)(\(i>j\))表示 \(T_i\) 在某些层某些头上对 \(T_j\) 有非零注意力。关键在于「带属性」:边特征取跨层跨头的注意力向量 \(x_{E,(i,j)} = \alpha_{i,j}\);节点特征取 token 对自己的注意力(self-score)\(\alpha_{i,i}\),并可拼上该层残差流激活 \(a_i^l\),即 \(x_{V,i} = (\alpha_{i,i} \mid a_i^l)\)。这样一张图就同时编码了 token 间交互和 token 自身的计算状态,且能继续扩展容纳 logits 等其他轨迹——这正是它「统一异质信号」的来源。
2. 注意力稀疏化:用阈值 τ 砍掉弱边,在效率和信息之间换挡。很小的注意力分数贡献噪声大、对更新 token 表示几乎无用,于是对低于阈值 \(\tau\) 的分数置零并丢弃没有任何层/头支撑的边:
实验显示在 NQ 上把 \(\tau\) 从 0.001 提到 0.5,边数从约 20 万降到约 1100、显存从 1177MB 降到 23MB,而 AUPR 几乎不掉(默认 \(\tau=0.05\) 在性能与开销间取得最佳折中),说明结构里真正有用的是少数强交互边。
3. 消息传递层:在注意力图上做局部聚合,并用 prompt/response 标记区分边类型。第 \(t\) 层把 token \(i\) 的表示更新为
其中 \(\bigoplus\) 是 sum/avg/max 等置换不变聚合,\(\text{up}_t, \text{msg}_t\) 都是 MLP,\(h_i^{(0)} = x_{V,i}\);\(p_{i,j}\) 是 one-hot 标记,指示这条边是「prompt→response」还是「response→response」,让模型能把对 prompt 和对历史 response 的注意力分别路由到不同子空间。正是这个机制让 CHARM 能区分性地累积两类注意力。
4. 可表达性证明:CHARM 可证明涵盖已有启发式,体现「不是抛弃而是泛化」。论文证明了单层 fmp 的 CHARM 能任意精度逼近两个代表性方法:一是 token 级的 Lookback Lens(其特征 \(\ell_i^{l,h} = P_i^{l,h}/(P_i^{l,h}+R_i^{l,h})\) 是对 prompt 与对 response 注意力的比值,恰好能用消息传递分别累积 prompt/response 注意力再由 up-MLP 做归一化与比值实现);二是 response 级的 LLM-Check(其得分 \(c_l = \frac{1}{H}\sum_h \sum_i \log(\alpha_{i,i}^{l,h})\) 是 token 自注意力的 log 之和,恰好是节点特征经 up-MLP 取 log、再由 fpool 与 fpred 跨 token/头聚合实现)。这从理论上保证 CHARM 在最坏情况下也能退化为这些手工启发式,因此「严格不弱于」它们。
实验关键数据¶
主实验表格¶
Token 级(contextual 幻觉,LLaMa-2-7B-chat)
| Method | NQ AUROC | NQ AUPR | CNN AUROC | CNN AUPR |
|---|---|---|---|---|
| Probas | 49.8 | 16.2 | 54.4 | 8.2 |
| Act-24 | 73.0 | 36.2 | 71.3 | 20.3 |
| Lookback Lens † | 71.9 | 34.3 | 74.4 | 19.7 |
| CHARM (att) | 74.8 | 40.3 | 75.4 | 22.7 |
Response 级(多类型幻觉,Mistral-7B-instruct)
| Method | Movies AUROC | Winobias AUROC | Math AUROC |
|---|---|---|---|
| Act-24 | 77.0 | 76.6 | 77.7 |
| LapEig | 72.9 | 74.1 | 73.6 |
| CHARM (att) | 80.3 | 70.4 | 76.5 |
| CHARM (att+act-24) | 79.7 | 77.8 | 80.8 |
消融实验表格¶
图结构消融(去掉消息传递,退化为对节点特征堆 dense 层)
| Method | CNN AUROC | CNN AUPR | Math AUROC | Math AUPR |
|---|---|---|---|---|
| CHARM (no g.) | 70.8 | 19.2 | 80.6 | 82.7 |
| CHARM | 75.4 | 22.7 | 81.7 | 83.8 |
稀疏化阈值 τ(NQ):τ=0.5 时边数 1119、显存 23MB、AUPR 38.4;τ=0.05(默认)边数 14884、显存 104MB、AUPR 40.3;τ=0.001 时边数约 20 万、显存 1177MB、AUPR 40.1。
关键发现¶
- 注意力本身就很强:在 contextual 数据集(NQ/CNN)上,纯注意力的 CHARM(att) 反而比加了激活的版本更好,作者推测注意力已携带主要信号,强模型再加激活反而容易拟合伪相关。
- 激活与注意力在某些任务上协同:在 Winobias、Math 上加入 act-24 后大幅提升(Winobias AUROC 70.4→77.8),说明不同幻觉类型适合的轨迹组合不同。
- 结构是核心:去掉图结构后 CNN 上 AUPR 从 22.7 掉到 19.2,验证消息传递的拓扑确实在起作用。
- 零样本迁移有竞争力:NQ↔CNN 跨数据集 zero-shot 中 CHARM 在 CNN→NQ 排第一、NQ→CNN 排第二,整体优于激活探针。
- 推理极快:约 \(10^{-3}\) 秒/样本,远低于依赖多次采样的方法。
亮点与洞察¶
- 视角切换有说服力:把「注意力图分析」(此前多停留在描述性研究,如表征坍缩、oversquashing)转成「在注意力图上直接学习做下游任务」,是一次自然但被忽视的范式迁移。
- 理论 + 实验双闭环:不仅实验赢,还形式化证明新框架能涵盖被它超越的启发式,回答了「为什么应该用更复杂的模型」这一质疑。
- 统一粒度:同一框架通过
fpool是否为 identity 就能在 token 级和 response 级切换,避免了为不同粒度设计不同方法。 - 工程友好:稀疏化让显存可在两个数量级间调节而性能几乎不变,给出清晰的精度-效率权衡曲线。
局限与展望¶
- 仅用单层激活:节点特征只拼了某一层激活(如 layer-24),多层激活、logits 等更丰富轨迹留作未来工作,可能进一步提升。
- 零样本迁移仍是开放问题:没有任何方法在跨数据集上一致领先,CHARM 也只是「有竞争力」,泛化机制尚不清楚。
- 依赖白盒访问:需要抽取内部注意力和激活,对闭源 API 模型不适用。
- 激活的"双刃剑":在 contextual 数据集上加激活反而掉点,何时该融合哪种轨迹仍缺乏自动判据,目前靠经验/验证集选择。
相关工作与启发¶
- 注意力启发式 HD:Lookback Lens(prompt/response 注意力比值)、LLM-Check(注意力矩阵 log-determinant)、Binkowski 的谱方法(graph Laplacian + 逻辑回归)——CHARM 把它们统一为自己框架的特例。
- LLM 计算的图视角:Barbero 等对注意力图上信号传播的分析(表征坍缩、oversquashing),但停留在结构性描述;本文把它推进到「在图上学习」。
- 激活探针:对残差流做线性分类的一系列工作,是 CHARM 节点特征的来源之一。
- 启发:任何「LLM 内部留下成对/结构化痕迹」的任务(如越狱检测、推理路径分析)都可能套用这种「计算轨迹图 + GNN」范式,值得迁移尝试。
评分¶
- 新颖性: ⭐⭐⭐⭐ 把幻觉检测重构为注意力图上的图学习任务,视角统一且新颖;虽然「注意力图」与「GNN」都不是新概念,但二者结合并配可表达性证明用于 HD 是清晰的贡献。
- 实验充分度: ⭐⭐⭐⭐ 覆盖 token/response 两种粒度、5 个数据集、多类型幻觉,含图结构/稀疏化/零样本/激活协同等系统消融,回答了 Q1–Q6。
- 写作质量: ⭐⭐⭐⭐ 动机层层递进,理论命题与证明思路交代清楚,图示直观。
- 价值: ⭐⭐⭐⭐ 提供了一个可扩展、白盒、推理快的统一 HD 框架,并开源代码,对幻觉检测与 LLM 内部信号利用都有方法论启发。