Constructing Interpretable Features from Compositional Neuron Groups¶
会议: ACL 2026
arXiv: 2506.10920
代码: https://github.com/ordavid-s/snmf-mlp-decomposition
领域: 可解释性 / 机械可解释性 / LLM 内部表示
关键词: SNMF、MLP 分解、特征引导、稀疏自编码器、概念层级
一句话总结¶
作者用半非负矩阵分解(SNMF)直接把 MLP 激活拆成"稀疏神经元组 × 非负系数",得到既能映射回激活上下文又能跨层组合的可解释特征,在 Llama-3.1-8B / Gemma-2-2B / GPT-2 上的因果引导(concept steering)评估全面超过最新 SAE(Llamascope / Gemmascope)和强监督基线 DiffMeans。
研究背景与动机¶
领域现状:机械可解释性的核心问题是"用什么单元解释 LLM"。早期看单个神经元,但已知它们是多义的;近年共识转向"激活空间的方向",主流做法是稀疏自编码器(SAE)从残差流学一个"特征字典"。
现有痛点:SAE 在因果评估里频繁失效——直接干预 SAE 特征往往无法定向改变模型行为;而且 SAE 学到的方向不被强制约束在原模型的表示空间里,也不和具体的 MLP 计算挂钩,导致其"可解释性"很大程度上靠后验自然语言标注硬贴。
核心矛盾:从零学一组方向 vs 模型内部本来就存在的神经元组合——前者灵活但脱离机制,后者天然有机制锚点但需要无监督方法把它们挖出来。
本文目标:给出一种无监督方法,使得发现的"特征"满足:(1) 是 MLP 神经元的稀疏线性组合,(2) 自带从特征到激活上下文的反向映射,(3) 在因果干预下真能定向改变生成。
切入角度:MLP 输出本来就是 \(\sum_i a_i \mathbf{v}_i\)(神经元激活加权向量列),那相似输入应当激活相似神经元组——只要能从激活矩阵 \(A\) 把这种"共激活模式"分解出来,特征就天然带机制锚点。
核心 idea:用 SNMF 把 MLP 激活 \(A \approx Z Y\) 分解,\(Z\) 是允许正负的"特征矩阵"(神经元线性组合),\(Y\) 强制非负作为"系数矩阵"(哪些 token 触发了这个特征)——非负的 \(Y\) 鼓励 parts-based 加性表示,正负 \(Z\) 适配 MLP 激活的双向语义。
方法详解¶
整体框架¶
核心想法是:MLP 输出本来就是 \(\sum_i a_i \mathbf{v}_i\),即一组神经元按激活值加权叠加,那么相似输入应当触发相似的神经元组合,只要把这种共激活模式从激活矩阵里分解出来,特征就天然锚定在模型的真实计算上。具体地,对预训练 LLM 的某一层 MLP,先在大量文本上前向,收集每个 token 在该层的激活向量 \(\mathbf{a} \in \mathbb{R}^{d_a}\) 堆成矩阵 \(A \in \mathbb{R}^{d_a \times n}\);再用半非负矩阵分解解 \(A \approx Z Y\),得到 \(k\) 个 MLP 特征 \(\mathbf{z}_i\)(\(d_a\) 维的神经元加权方向)和非负系数矩阵 \(Y\)。每个特征乘 \(W_V\) 投影回残差流得到 \(\mathbf{f}_i = W_V \mathbf{z}_i\),从而能和 SAE / DiffMeans 在同一空间公平比较;而 \(Y\) 直接给出每个特征被哪些 token 强激活,自带 SAE 缺失的"激活上下文"标注。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["收集 MLP 激活<br/>每个 token 激活堆成矩阵 A"] --> B["SNMF 分解 + 神经元稀疏<br/>A≈ZY,对 Z 列做 WTA 只留 top 1% 神经元"]
B --> C["特征矩阵 Z(有符号神经元组合)"]
B --> D["系数矩阵 Y(非负,token→特征)"]
C --> E["投影回残差流<br/>f=W_V·z,与 SAE/DiffMeans 同空间比较"]
D --> F["基于 Y 的自动概念标注<br/>取 top-m token 喂 GPT-4o-mini 总结语义"]
C --> G["递归 SNMF<br/>逐级缩小 k 合并出概念层级"]
E --> H["因果引导评估(concept steering)"]
F --> H
G --> H
关键设计¶
1. SNMF 分解 + 神经元稀疏:让特征是少量神经元的有符号线性组合
SAE 用非负正则鼓励 parts-based 表示,但 MLP 激活本身有正有负、对应概念的促进与抑制,强行让特征非负会丢掉一半语义。SNMF 正好放松"特征非负"、只保留"系数非负":用 Ding 等的 Multiplicative Updates 交替更新 \(Z\)(闭式 \(Z \leftarrow A Y^\top (Y Y^\top + \lambda I)^{-1}\),允许正负)和 \(Y\)(带正负部分分解的乘法更新,保持非负),既留住激活的双向语义又保证系数侧的加性可解释。每次迭代后对 \(Z\) 的每列做硬 winner-take-all,只保留绝对值 top \(p\%=1\%\) 的神经元、其余清零——这是 Peharz & Pernkopf 2012 的 \(\ell_0\) 约束方案,强制每个特征只由极少数神经元构成;实验证明 1% 显著优于 5% / 10%。
2. 基于 \(Y\) 的自动概念标注:把 token-to-feature 归因变成方法的内置闭环
SAE 的特征描述得靠 Neuronpedia / autointerp 这类第三方流水线、按纯激活值排序硬贴标签,而 SNMF 的系数矩阵 \(Y\) 本身就编码了"哪些 token 触发了哪个特征"。对特征 \(\mathbf{z}_i\) 直接从 \(Y\) 第 \(i\) 行取 top-\(m\) token,把它们的上下文喂给 GPT-4o-mini 总结共同语义模式:浅层用"激活输入"描述、深层用 logits lens 风格的"输出 token"描述(Gur-Arieh 2025)。这一自带归因既让方法独立闭环,也解释了 SNMF 为何在 concept detection 上常领先——其特征的 log-ratio \(S_{CD} := \log \bar{a}_{\text{act}} / \bar{a}_{\text{neutral}}\) 均值更高,即激活在相关上下文上更集中。
3. 递归 SNMF:用越来越小的 \(k\) 暴露"具体 → 抽象"的概念层级
把学到的 MLP 特征再用更小的 \(k\) 反复分解,能自然长出层级树。做法是先以 \(k=[400,200,100,50]\) 跑多级 SNMF,再用梯度下降联合微调全部层级以最小化 \(\mathcal{L} = \frac{1}{2}\|A - Z_L Y_L \cdots Y_1 Y_0\|_F^2\),得到"周一/周二 → 工作日/周末 → 星期"的合并轨迹;同时对 \(Z\) 二值化算 \(M = \bar{Z}\bar{Z}^\top\) 可视化同义概念的神经元重叠。这恰是 SAE feature splitting 的反方向——SAE 放大字典时一个特征裂成多个,SNMF 缩小 \(k\) 时多个特征合成一个抽象概念。进一步对"工作日 base 神经元"与"Monday-only 独占神经元"分别做因果干预,证明模型确实以"核心 + 专属"的组合方式搭建概念。
损失函数 / 训练策略¶
SNMF 最小化 Frobenius 重建误差 \(\|A - ZY\|_F^2\),外加仅对 \(Y\) 的非负约束与对 \(Z\) 列的 WTA 稀疏。初始化方面,\(Y \sim \mathcal{U}(0,1)\)、\(Z \sim \mathcal{N}(0,1)\) 的随机初始化与 SVD / K-Means 性能相当,只是收敛更慢(3325 vs 1484 / 2474 迭代)。所有实验取 \(k \in \{100, 200, 300, 400\}\)、\(p=1\%\)(GPT-2 用 5\%)。
实验关键数据¶
主实验(因果引导:concept steering + fluency 谐波均值,越高越好)¶
| 模型 / 层 | SAE-out | SAE-act(同容量) | DiffMeans(监督) | SNMF(本文) |
|---|---|---|---|---|
| Llama-3.1-8B L23 | ≈0.35 | ≈0.37 | ≈0.40 | 0.45 |
| Llama-3.1-8B L31 | ≈0.20 | ≈0.25 | ≈0.27 | 0.31 |
| Gemma-2-2B L18 | 较低 | 中等 | 中等 | 最高 |
| GPT-2 Small | 类似趋势 | 类似趋势 | 类似趋势 | 领先 |
Concept Detection 上 SNMF 与 SAE-out 大致持平、显著超过同容量 SAE-act(>75% 的特征 \(S_{CD} > 0\)),但 SNMF 真正决定性优势在 Concept Steering。
消融实验(Llama-3.1-8B,SNMF \(k=100\))¶
| 配置 | Concept Detection(L0) | Concept Steering+Fluency(L23) | 说明 |
|---|---|---|---|
| Random init | 2.99 ± 1.55 | 0.45 ± 0.32 | 默认 |
| SVD init | 2.76 ± 1.79 | 0.41 ± 0.31 | 性能相当但收敛快 |
| K-Means init | 2.55 ± 1.51 | 0.47 ± 0.33 | 1484 迭代收敛 |
| WTA = 1% | 2.99 / 1.67 / 0.81 / 2.35 / 1.89 / 0.48 | 0.45 ± 0.32 | 论文默认,最佳 |
| WTA = 5% | 全面略低 | 0.41 ± 0.30 | 稀疏度下降 |
| WTA = 10% | 全面略低 | 0.34 ± 0.30 | 进一步退化 |
层级实验(GPT-2 Large 因果干预,Table 2 节选):
| 干预的神经元组 | Monday logit | Tuesday | Friday | Sunday |
|---|---|---|---|---|
| Monday-exclusive | +2.0 | -0.8 | -0.8 | -0.1 |
| Friday-exclusive | -2.9 | -2.8 | +1.3 | -2.6 |
| Sunday-exclusive | -0.4 | -1.7 | -0.8 | +2.6 |
| Core 工作日(base) | +5.8 | +5.7 | +6.0 | +4.7 |
关键发现¶
- SNMF 在因果引导上稳定超过 SAE-out 和 DiffMeans,证明"内嵌在 MLP 权重里的神经元组合"才是真正的可干预单元,而 SAE 学到的方向往往不能定向操控行为。
- 递归 SNMF 暴露的层级结构(个别工作日 → 周末/工作日 → 星期)和"工作日 base 神经元 + 每天 exclusive 神经元"的双层组合机制,给"SAE feature splitting"现象提供了机制级解释——splitting 不是 SAE 训练副产品,而是模型本身用神经元组合构造细化概念的反映。
- 1% WTA 稀疏度 + 随机初始化是最优 trade-off;性能对初始化策略相当鲁棒,K-Means 主要带来收敛加速。
- 浅层(layer 0/1)concept detection 分数最高的现象提示:未经过多注意力混合的激活更易解构出单义特征。
亮点与洞察¶
- SNMF 选择是"非负正则只放在系数上"的正解:MLP 激活本身有正有负、对应概念的促进 vs 抑制,强行让特征非负(如 NMF)会丢掉这一半信息。
- 系数矩阵 \(Y\) 自带 token-to-feature 反向映射,省去 Neuronpedia / autointerp 的第三方描述流水线,使方法可独立闭环。
- 把 SAE 的"feature splitting"重新解释成"模型自身的 feature merging 的反向投影"是一个范式级洞察——它把"找特征"和"理解模型如何用神经元搭概念"统一成同一件事。
- 双层"core base + exclusive 神经元"的因果证据(核心激活推所有相关 token,专属激活只推自己抑制兄弟)非常优雅,可以迁移到月份、季节、数字、语法属性等其他线性结构概念的研究。
局限与展望¶
- 实验 \(k < 500\),对超大字典(数千到百万 SAE 那样)尚未验证可扩展性;Multiplicative Updates 优化器不易加正则、未来可能需要换 projected gradient descent。
- 一些层(Gemma-2-2B layer 12)出现"\(k\) 增大反而下降"现象,提示该层有意义概念数比 \(k\) 少,需要自动选 \(k\) 的策略。
- 评估强依赖 GPT-4o-mini judge(人工 Spearman ρ=0.8 验证),仍可能对 prompt 敏感。
- 当前 fluency 在 layer 0 干预上掉得很厉害,浅层引导的"propagation 副作用"未被系统建模。
相关工作与启发¶
- vs SAE(Bricken et al. / Gemmascope / Llamascope):SAE 从残差流学方向、规模大但因果失效;SNMF 在 MLP 激活上直接分解、规模小但因果强。两者互补——SAE 给广度,SNMF 给机制锚点。
- vs DiffMeans(监督基线):DiffMeans 用 positive/negative 平均差直接拿到方向,受无关概念噪声影响大;SNMF 在浅层尤其明显优于它。
- vs Yun et al. 2021(残差流 NMF):他们在残差流做 NMF 主要用于语言学分析;本文在 MLP 激活做 SNMF 并把每个特征锚定到具体神经元组合 + 引入因果评估。
- vs Cao et al. 2025(NeurFlow):同样关心神经元组的功能聚类,本文把它放到 LLM MLP + 无监督因果场景下。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ SNMF + WTA + 递归层级 + token-to-feature 反映射的组合在 LLM 可解释性社区是新角度
- 实验充分度: ⭐⭐⭐⭐ 三模型 × 多层 × 多 \(k\) × 因果 + 检测双轴,但 \(k\) 较小、未与 RAVEL / MIB 等大型 benchmark 直接对比
- 写作质量: ⭐⭐⭐⭐⭐ 公式清晰、附录详尽(初始化、稀疏度、层级数据集)、提供完整工作日案例研究
- 价值: ⭐⭐⭐⭐⭐ 给 MI 社区提供了一条"MLP 内嵌特征"路线,且开源代码,对未来研究有直接 actionable 价值