CAPruner: Conceptual-Adjacent Scene Graph Pruner for Enhancing 3D Spatial Reasoning of Large Language Models¶
会议: ACL 2026
arXiv: 2606.07529
代码: https://github.com/fz-zsl/CAPruner
领域: 3D 视觉语言 / LLM 空间推理 / 场景图剪枝
关键词: 场景图剪枝, 3D-VL, 空间推理, 模糊语义匹配, 节点级监督
一句话总结¶
本文针对"把完整 3D 场景图喂给 LLM 会爆 token、而现有基于距离的 KNN 剪枝又常常剪掉任务关键关系"的矛盾,提出 CAPruner——把"查询语义相关性"和"空间邻近性"融进一个仅 1219 参数的小 MLP 来给场景图的每条边打重要性分,并用只标注了目标物体的数据通过"边权聚合成节点权"的方式做弱监督训练,从而在固定边预算下保留对具体 3D-VL 任务真正有用的关系,显著提升下游 LLM 的空间推理准确率。
研究背景与动机¶
领域现状:用预训练 LLM 辅助 3D 视觉语言(3D-VL)任务(如根据"在桌子旁边的椅子"这类描述定位目标物体)已成新范式。为了让 LLM 感知物体间相对位置,主流做法是构建场景图:节点是物体、边是物体间的相对位置关系,再把关系描述转成 token 序列输入 LLM。
现有痛点:\(n\) 个物体会产生 \(\binom{n}{2}\) 条两两关系,关系数随物体数平方级增长。把所有关系描述直接发给 LLM 会导致 token 量爆炸——以 InteriorGS 数据集为例,单场景平均超过 554 个物体,全编码会让输入 token 达到百万级、超出多数 LLM 的长度上限,既拖慢推理又淹没有用信息。为此 3DGraphLLM 采用基于邻近度的 KNN 剪枝:每个物体只保留与最近两个邻居的关系。
核心矛盾:邻近度并不等于"对解某个具体任务的重要性"。KNN 有两个硬伤:(1) 语义与结构缺口——只看距离会让书架和书之间建一堆冗余连接,却漏掉"书架-墙"这类查询真正需要的远距离关系;(2) 不保证连通性——作者统计 ScanNet 的 707 个场景,KNN 剪枝后仅 232 个(不到 33%)仍连通,超过 67% 的场景图断成多个连通分量,无法表达全局布局。LLM 高度依赖被保留的关系,这两点都会直接导致空间推理出错。
本文目标:在有限边预算下回答"该保留场景图里的哪些关系",并保证剪枝结果既贴合具体任务查询、又不轻易剪掉关键关系。
切入角度:作者观察到 3D-VL 的文本查询里通常会用物体类别名 + 空间关系词来指代锚点(如"定位桌子旁边的椅子")。因此一条关系的重要性可以由其两端物体的属性、以及它们的位置相关性共同度量。又因为 LLM 对"缺关键关系"敏感、对"多一点冗余关系"相对鲁棒,剪枝的目标应是在预算内最小化误剪风险。
核心 idea:用"模糊语义匹配(按类别给相关物体加权)+ 空间邻近(按距离加权)"两路信号给每条边算重要性分,并用一个轻量 MLP 学这个打分函数;训练上则用"边权聚合成节点权、只监督节点"的弱监督绕过昂贵的关系级标注。
方法详解¶
整体框架¶
CAPruner 是一个插在"场景图构建"和"LLM 推理"之间的轻量剪枝器。输入是一个场景的物体集合(带类别、3D 坐标)和一段自然语言任务描述,输出是一个被剪到固定预算(每节点保留 2 条边)的任务专属场景图,再按 3DGraphLLM 的序列模式拼成 token 喂给下游 LLM。其骨干先算每个物体的语义相关性分,再把两端物体的语义分和距离喂给一个 MLP 得到边权;训练分支把边权按 p-范数聚合成节点权、用加权 MSE 做节点级监督;推理分支则直接按边权对每个节点保留 top 边。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["物体集合 + 任务描述"] --> B["模糊语义匹配<br/>类别相关性 s_i"]
B --> C["边权计算<br/>MLP(s_i, s_j, 距离)"]
C -->|训练| D["节点级监督<br/>p-范数聚合 + 加权MSE"]
C -->|推理| E["按边权剪枝<br/>每节点保留 top-2 边"]
E --> F["任务专属场景图 → LLM 推理"]
关键设计¶
1. 模糊语义匹配:按类别而非细节属性给相关物体加权
针对"按物体细节属性(颜色/形状)过滤极易误剪"的问题——当前 3D 点云特征与文本对齐能力有限,若严格按"红色圆桌"去匹配,一旦颜色或形状判错就会把真正的目标物体误判为不重要、触发错误剪枝。作者改为只按类别做语义匹配:当查询提到"table"时,场景里所有桌子以及"desk"等语义相近物体都按相似度获得额外权重,而不去核验每张桌子的真实颜色。形式化地,设 \(\mathcal{T}\) 为任务描述的 token 集合、\(c_i\) 为物体 \(i\) 的类别,其语义相关性分为类别与任务 token 的最大相似度:
实现上把物体归入 NYUv2 的通用类别,只有当描述里出现同类别物体时该物体才拿到相似度 1。这条设计用"宁可多留同类、不可错剪referent"的保守策略换取下游推理的稳健。
2. 距离加权融合:用 Maxim of Relation 处理视角依赖的关系
针对"front/back/left/right 这类关系强烈依赖视角、紧凑的剪枝模型难以准确判定关系类型"的问题,作者不去显式判定关系类别,而是依据语用学中的 Maxim of Relation(相关准则)——给空间上更接近的物体对赋更高权重。最终一条边的权重由两端物体的语义相关性分和欧氏距离共同决定,用一个 MLP \(f(\cdot)\) 聚合:
其中 \(P_i, P_j\) 是两物体的 3D 坐标。这个 MLP 仅 3 层、1219 个参数,计算开销极低。语义路负责"任务相关",距离路负责"空间合理性",二者相乘式融合让剪枝同时兼顾"查询要什么"和"几何上谁挨着谁"。
3. 节点级弱监督:用只标了目标物体的数据反传到边权
针对"现有 3D-VL 数据集只标注目标物体、而关系级标注随物体数平方级增长、人工标注不现实"的问题,CAPruner 不直接监督边权,而是把边权聚合成节点权、只监督节点。具体用类 GNN 的 p-范数聚合把节点 \(i\) 所有关联边的权重汇成节点权:
\(p\) 是控制聚合的超参(实验取 \(p=3\))。由于目标物体远少于非目标物体,用加权 MSE(WMSE)平衡两者贡献:
其中 \(\mathcal{O}\) 为目标物体集、\(\widetilde{\mathcal{O}}\) 为非目标集;第一项把目标节点权推向 1、第二项把非目标节点权压向 0。因 sigmoid 把 \(v_i\) 限制在 \((0,1)\),监督信号经 p-范数聚合反传回边权,使目标物体周围的边获得更高权重。这样仅凭目标物体标注,就间接学到了"哪些关系该留",并让模型在语义相关性与邻近性之间自动找平衡。
损失函数 / 训练策略¶
两段式训练:先单独训 CAPruner 剪枝器(50 epoch,batch 16,学习率 \(10^{-3}\),p-范数 \(p=3\)),再用 LoRA(\(r=16\))微调下游 LLM(3 epoch,batch 8,学习率 \(2\times10^{-5}\))。语义相似为 1 时才算同类匹配,每节点固定保留权重最高的 2 条边,以便与 3DGraphLLM 的 KNN(每节点 2 邻居)公平对比。1B 模型用 Llama-3.2-1B、8B 模型用 Llama-3-8B。
实验关键数据¶
主实验¶
在 ScanRefer、ScanQA、SQA3D 上同 backbone 对比 3DGraphLLM(A. / M. 为 overall / multi 划分的准确率,@0.25/@0.5 为 IoU 阈值):
| 模型 | ScanRefer [email protected] | [email protected] | [email protected] | [email protected] | ScanQA BLEU-4 | SQA3D EM@1 |
|---|---|---|---|---|---|---|
| 3DGraphLLM-1B | 52.5 | 47.5 | 45.0 | 40.5 | 12.2 | 52.6 |
| CAPruner + Llama-3.2-1B | 55.0 | 49.6 | 48.0 | 42.8 | 13.0 | 52.8 |
| 3DGraphLLM-8B | 60.2 | 54.6 | 54.7 | 49.4 | 12.5 | 55.2 |
| CAPruner + Llama-3-8B | 61.7 | 56.0 | 55.3 | 49.9 | 13.2 | 56.3 |
同 backbone 下 CAPruner 全面优于 3DGraphLLM:1B 上 ScanRefer [email protected] 提升 2.5 个点,8B 上达到 61.7/56.0,并在多个指标上达到或逼近 SOTA。
剪枝策略消融¶
在固定预算下替换剪枝策略,对比基于邻近度的 KNN(数据来自原文 Table 2,CAPruner(MST) 为保证连通性的变体):
| 剪枝方法 | ScanRefer [email protected] | [email protected] | [email protected] | ScanQA BLEU-4 | SQA3D EM@1 |
|---|---|---|---|---|---|
| Proximity-based KNN | 52.5 | 47.5 | 45.0 | 12.2 | 52.6 |
| CAPruner (MST 变体) | 54.4 | 49.0 | 47.1 | 11.7 | 52.4 |
| Gain | +1.9 | +1.5 | +2.1 | -0.5 | -0.2 |
剪枝策略本身(不换 backbone)就能在 ScanRefer 定位类指标上带来约 1.5–2.1 个点的稳定增益,印证了"保留任务相关关系比保留最近邻关系更重要"。
关键发现¶
- LLM 高度依赖被保留的关系:原文 Findings 部分用扰动实验证明,把场景图里的任务关键关系换成无关关系会持续拉低下游准确率——这正是剪枝必须"留对关系"而非"留近关系"的根因。
- KNN 会破坏连通性:超过 67% 的 ScanNet 场景在 KNN 剪枝后断裂,无法表达跨连通分量的相对位置;CAPruner 由于只需保留"解任务所需关系"而非"完整描述全场景",绕开了"全局连通 vs 查询相关"的两难。
- 剪枝器极轻量:核心 MLP 仅 1219 参数,几乎不增加推理开销,却能持续提升定位精度,性价比突出。
亮点与洞察¶
- 把剪枝目标从"描述全场景"重定义为"解当前任务":这是全文最关键的视角转换——一旦接受"剪枝结果只需服务具体查询、不必保全局连通",连通性两难就自然消解,也解释了为什么轻量打分就够用。
- 模糊语义匹配是个务实的工程智慧:承认 3D 点云-文本对齐还不可靠,于是退一步只按类别匹配、宁可多留同类,用"保守换稳健",这个思路可迁移到任何"细粒度匹配不可靠时如何避免硬剪"的场景。
- 节点级弱监督巧妙绕过平方级标注:把无法标注的边权问题转化为可标注的节点(目标物体)问题,再用 p-范数聚合 + WMSE 把监督信号反传回边——这套"聚合-监督-反传"范式对其他缺边标注的图学习任务有参考价值。
局限与展望¶
- 语义匹配依赖 NYUv2 的固定类别体系,遇到开放词表或细粒度类别(同为"桌子"但功能不同)时区分力有限。
- 每节点固定保留 2 条边是为对齐 KNN 的预算,未充分探索"自适应预算"(不同查询/场景该留多少关系可能差异很大)。
- 剪枝有意忽略关系类型(left/right 等),只用距离近似,在强依赖方向词的查询上可能仍有瓶颈。
- 弱监督只用目标物体标注,对"锚点物体"的关系重要性是间接学到的,监督信号相对稀疏。
相关工作与启发¶
- vs 3DGraphLLM(KNN 剪枝):同样要压缩场景图 token,但 KNN 只看距离、忽视任务语义且常断图;CAPruner 融合语义相关性与邻近性、按查询动态剪枝,定位精度更高。
- vs 3D-LLM / LEO / Chat-Scene:这些方法或把全场景编码成整体特征(丢细节)、或按物体编码但难抽取关系;CAPruner 显式保留任务相关的物体间关系,更利于对象级空间推理。
- vs OVSG / 3DGraphQA / FFL-3DOG:它们用场景图做检索/问答/对齐,但未针对 LLM 的需求做任务上下文相关的剪枝,易漏关键空间关系;CAPruner 专门为 LLM 推理裁剪场景图。
评分¶
- 新颖性: ⭐⭐⭐⭐ 把"任务相关剪枝"引入 3D 场景图 + 节点级弱监督,视角清晰。
- 实验充分度: ⭐⭐⭐⭐ 覆盖三大基准、两种规模 backbone 与剪枝消融,但自适应预算等未探。
- 写作质量: ⭐⭐⭐⭐ Findings 用实证铺垫动机,方法与公式交代清楚。
- 价值: ⭐⭐⭐⭐ 轻量即插即用、稳定提点,对 LLM 驱动的 3D-VL 有实用意义。