闭式TPR方程替换编码后,七个LLM行为几乎不变

The Emergent Symbolic Structure of Artificial Neural Networks

R. Thomas McCoy, Paul Soulos, Tal Linzen, Paul Smolensky

cs.CL, cs.AI

2026-08-30

DISCOVER用张量积表示逼近MLP到LLM的内部向量;把整段编码换成闭式方程后行为几乎不变,GPT-OSS上31类因果干预平均准确率0.903。

这篇在解决什么

符号系统用离散单元按结构组合:句子是树,公式是项。神经网络把信息塞进连续向量。向量看起来不像能区分「猫追狗」和「狗追猫」,可 LLM 在语言、算术、代码上照样能跑。线性表征假说把向量当成概念向量的加和,加和不管顺序,结构从哪来就成了问题。

Yale、Johns Hopkins、NYU 和 Microsoft Research 的四人组给出一个假说:标准神经网络虽然没被设计成符号系统,内部向量却隐式实现了符号结构。

方法

工具叫 DISCOVER。核心是 Tensor Product Representation(TPR,张量积表示):结构拆成 filler(元素)和 role(位置),每个 filler 向量和对应 role 向量做张量积,再求和,最后过一个仿射变换。句子 cats chase dogs 写成 subject:cats、verb:chase、object:dogs 三对。

流程分三步。先拿到目标网络的编码向量 E。再训练一个显式 TPR 网络,让它的编码贴近 E。最后把 TPR 编码塞进原网络的解码器:等于用一条闭式方程替换整段编码过程。解码器还能给出正确答案,就说明 TPR 在功能上等价于原编码。

角色方案要人先假设。字母序列试了从左到右、从右到左、双向、Wickelroles、词袋。LLM 实验额外试了句法角色和任务专用角色。

结果

字母序列的复制、反转、交错任务上,MLP、GRU、Transformer、瓶颈 Transformer 都能被双向 TPR 逼近。12 组设置里最差的是反转瓶颈 Transformer,平均近似准确率 0.973,其余都高于 0.99。词袋方案全面失败,说明网络确实在编码位置,不只是记出现过哪些字母。

七个开源 LLM(Gemma-3-27B 到 Llama-3.1-8B)的句号表征能读出前面的列表或句子。主谓宾句上解包模型准确率满分。复杂句上双向 TPR 的近似比原始句号向量更好:GPT-OSS 中间层,解包模型读原始编码准确率 0.71,读双向 TPR 近似是 0.96。作者的解读是,LLM 的符号结构是近似实现的,DISCOVER 把它修成了更干净的版本。

在 GPT-OSS 上做算术、三段论、代码执行、被动化、时态变换、疑问句生成,任务专用「每个 token 编码自己和前文」的角色方案最接近原模型。算术上 DISCOVER 和原模型准确率差距最大,也只有 2.36 个百分点。GPT-OSS 自身最差的是三段论(0.76),被动化 0.94,其余都在 0.96 以上。

更硬的测试是因果干预:从编码里减掉一对 role-filler,加上另一对。字母序列模型上接近满分。GPT-OSS 上 31 类干预平均准确率 0.903。改 filler 时只改目标 token 几乎够用;改 role(挪结构)时必须改很多 token,结构信息是散开的。

把训练时没见过的 role-filler 对拿来测,DISCOVER 仍明显高于「随机填空位」的强随机基线。网络不是把「cats-as-subject」当成原子概念死记,而是会系统地组合 role 和 filler。

设置指标结果
字母序列双向 TPR近似准确率最差 0.973,其余 >0.99
GPT-OSS 六项任务与原模型差距最大 2.36 个百分点(算术)
GPT-OSS 因果干预平均准确率0.903
复杂句句号解包原始编码 vs TPR0.71 vs 0.96

为什么重要

可解释性如果假设错了基本单元,后面的探针、稀疏自编码器、电路分析都会偏。这篇给出的单元是 filler 和 role 的乘性绑定。对做干预的人,它提供了一条闭式编辑路径:改位置、改填充项,模型行为跟着变。

对符号派和联结派的老争论,作者站在 limitivism:网络逼近符号系统,但通常不是精确实现。近似准确率很高但不是 1.0,正好符合这个位置。

这不是一份「LLM 内部真的在算张量积」的证明。作者写得很清楚:目标是表征长什么样,不是前向计算怎么长出这种结构。

局限与存疑

角色方案是监督的,实验者先猜结构。无监督版 DISCOVER 前人做过,这篇故意没用,为的是把「怎么表示」从「表示了什么」里拆出来。

任务几乎全是完全系统化的:有人能手写一个完美程序。自然语言里大量结构是模糊、统计的,这篇没有覆盖。算术任务上对新 role-filler 对的泛化也弱于其他任务。

网络可以有组合表征却不会组合泛化,Kim 和 Linzen 2020 的 hedgehog 例子还在。作者给的解释是:没见过的组合可能根本没被训练出对应表征,就像 word2vec 词表里没有 queen,加减类比就会塌。这条解释还没有在他们的目标模型上直接验证。

脑数据、训练动态、下游如何消费 TPR,都还没做。

术语

原文与代码

社区讨论

相关论文

全部论文解读