隐喻的几何学:LLM如何在向量空间里画一条线分开字面与比喻

"The skin is dry."(皮肤干燥。) "The wit is dry."(机智干瘪。)

目录
  1. 一个句号里的秘密
  2. 找到那个"隐喻开关"
  3. PCA 图里的两条线
  4. DAS:找到一个16维的"隐喻旋钮"
  5. 转动旋钮:从观察到控制
  6. 这条线意味着什么
  7. 一个更深的疑问

一个句号里的秘密

"The skin is dry."(皮肤干燥。) "The wit is dry."(机智干瘪。)

两个句子里都有"dry"这个词,但一个是生理描述,一个是隐喻。对你我来说,区分它们毫不费力——我们甚至不会意识到自己在做区分。但对一个语言模型来说,这意味着它必须在某个地方、以某种方式,把"dry"的两种含义编码成不同的内部状态。

问题是:这个"某个地方、某种方式"到底长什么样?

阿姆斯特丹大学的 Shihui Li、Mette Andersen 和 Martha Lewis 在论文《The Geometry of Metaphor: Probing and Steering Metaphor Representations in Large Language Models》(arXiv: 2610.31520)中给出了一个令人意外的回答:隐喻不是一个复杂的高阶认知过程,而是一条线。

更准确地说,是隐藏状态空间里一个可以被 PCA 的前两个主成分线性分开的方向。

找到那个"隐喻开关"

研究团队用了两套经典工具来探测 LLM 的内部结构:

激活修补(Activation Patching):把一个句子的内部激活值"移植"到另一个句子上,看模型输出怎么变。比如把"The skin is dry."的激活值打补丁到"The wit is dry."上,看模型是否会把隐喻句当字面句处理。

分布式对齐搜索(DAS):在隐藏状态里找一个低维子空间,让这个子空间专门负责"隐喻性"这个概念。DAS 训练出一个矩阵,把高维隐藏向量投影到一个 16 维或 32 维的小空间里,看这个子空间是否足以控制模型的隐喻判断。

实验覆盖了七个模型:Gemma-9B、LLaMA-8B、LLaMA-70B、Mistral-7B、Mixtral-8×7B、Qwen-7B、Qwen-72B。数据集有三个:NOUN(名词隐喻,如"the puzzle is rocket science")、ADJ(形容词隐喻,如"dry wit")、DOM(领域特定形容词)。

激活修补的结果非常清晰。在所有模型和所有任务上,有三个位置的激活对输出影响最大:

  • Group (a):句子中不同的词(如"skin"和"wit")——这是预期的,因为词不同,信息自然不同。
  • Group (c):最后一个 token(通常是":")——也预期之中,因为它的隐藏状态直接决定下一个 token 的预测。
  • Group (b):句号"."及其前一个 token——这是意外的发现。
Group (b) 的意外之处在于:句号本身不携带语义信息,它只是一个标点符号。但模型似乎在句号的位置编码了"整个句子是不是隐喻"这个信息。就好像模型在读完一个句子后,在最后的句号上盖了一个章:"隐喻"或"字面"。

PCA 图里的两条线

如果 Group (b) 真的编码了隐喻性,那么把这些隐藏状态画出来应该能看到结构。研究团队做了 PCA 降维,结果令人震惊:

前两个主成分(PC1 和 PC2)就能线性分开隐喻句和字面句。

不是模糊的聚类,不是需要复杂分类器才能分开的分布——而是一条直线就能切开。在 NOUN 数据集上,隐喻和字面在 PC1 上分居两侧;在 ADJ 数据集上,apt(恰当的隐喻释义)和 inapt(不恰当的释义)也在 PC1-PC2 平面上线性可分。

这意味着什么?隐喻性在 LLM 的内部表示里是一个"方向",不是一个"区域"。 模型不是把隐喻句映射到空间某个角落、把字面句映射到另一个角落,而是沿着一个特定的轴给每个句子打分——正方向是隐喻,负方向是字面。

这和之前在"真实性"(truthfulness)、"情感"(sentiment)等概念上的发现一致:LLM 倾向于用线性方向编码二元语义对立。

DAS:找到一个16维的"隐喻旋钮"

如果说 PCA 只是观察,那 DAS 就是干预。DAS 训练一个投影矩阵,把高维隐藏状态映射到一个 16 维或 32 维的子空间,然后问:如果我只改变这个子空间里的值,能不能控制模型对隐喻的判断?

答案是可以。各模型的 DAS 干预一致性(IIA)分数:

模型层子空间维度IIA
Qwen-72B52320.843
Qwen-7B14160.830
Gemma-9B19160.807
LLaMA-8B11160.793
Mistral-7B10320.711
Mixtral-8×7B11160.691
LLaMA-70B28320.640
IIA 越高,说明这个子空间越能独立控制隐喻判断。Qwen-72B 达到 0.843,意味着仅靠 32 维子空间就能以 84.3% 的准确率控制模型把句子当隐喻还是字面处理。

一个有趣的发现:更大的模型不一定有更好的隐喻子空间。 LLaMA-70B 的 IIA 只有 0.640,比 8B 版本还低。Qwen-72B 是个例外(0.843),但整体上,隐喻编码的"清晰度"和模型规模没有单调关系。这暗示隐喻可能不是靠堆参数堆出来的能力,而是和训练数据、架构选择有关。

转动旋钮:从观察到控制

如果隐喻真的是一个方向,那我们应该能沿着这个方向"推"模型,让它把字面句变成隐喻,或把隐喻变成字面。研究团队做了两类控制实验:

分类翻转:取模型原本判断错误的样本,用 mass-mean 或 DAS 干预,看能不能翻转到正确答案。

结果(DOM 数据集,初始错误样本):

模型Mass-mean 翻转率DAS 翻转率
Qwen-72B88.0%91.0%
Gemma-9B75.0%86.0%
LLaMA-8B54.0%71.0%
Mixtral-8×7B72.0%61.0%
Qwen-7B62.0%61.0%
LLaMA-70B57.0%65.0%
Mistral-7B64.0%45.0%
Qwen-72B 的 DAS 干预能把 91% 的错误判断翻转到正确——这意味着我们找到了一个真正的"隐喻旋钮",转动它就能改变模型对隐喻的理解。

生成控制:更激动人心的是生成任务。给定一个字面句开头,能不能通过干预让模型续写出隐喻版本?或者反过来?

以 LLaMA-8B 为例,α=5 的干预强度下,从字面到隐喻的翻转率是 0.44(mass-mean)和 0.34(DAS),从隐喻到字面是 0.03 和 0.09。不对称是预期的——把隐喻"降级"为字面比把字面"升级"为隐喻更难,因为后者需要创造新的隐喻表达,前者只需要抑制。

这条线意味着什么

这篇论文的发现可以浓缩成一句话:在 LLM 的隐藏状态空间里,隐喻是一条线。

这条线的存在回答了一个长期争论的问题:LLM 到底是"真正理解"隐喻,还是只是在做表面模式匹配?答案介于两者之间——LLM 没有人类的隐喻认知过程(它不会经历从具身经验到抽象映射的建构),但它也不是在表面匹配。它把隐喻性编码成了一个可提取、可干预的几何结构,这个结构在因果上决定了模型的输出。

这和认知科学里的"具身认知"假说形成有趣对比。Lakoff 和 Johnson 在《我们赖以生存的隐喻》里论证隐喻是人类思维的根本结构,源于身体经验。LLM 没有身体,但它自发地发展出了隐喻的几何表示——也许因为统计规律本身就足以让模型发现"字面用法"和"延伸用法"之间的系统性差异。

更实际的意义在于可控性。如果你能找到"隐喻方向",你就能:

  • 写作辅助:让模型把干瘪的技术文档自动转成更生动的隐喻表达。
  • 内容审核:检测并调整模型输出中不恰当的隐喻(比如带有偏见的隐喻)。
  • 风格迁移:像图像风格迁移一样,把一篇文章的"隐喻密度"调高或调低。
论文也诚实地列出了局限:实验只在英语隐喻上做,其他语言的隐喻几何结构可能完全不同;数据集只覆盖最简单的句子级隐喻,段落和篇章级的隐喻远比这复杂;无法在最强的闭源模型上做实验。

一个更深的疑问

这篇论文让我想到一个更根本的问题:如果隐喻是一条线,那还有什么不是一条线?

过去两年的机制可解释性研究已经发现,真实性是一条线,情感是一条线,毒性是一条线,现在隐喻也是一条线。也许 LLM 的内部结构比我们以为的更"几何"——不是杂乱的神经网络黑箱,而是一个由线性方向组成的高维语义空间,每个方向对应一个人类可理解的概念。

如果是这样,那"理解 LLM"这件事可能比预想的更可行:不需要逆向工程整个网络,只需要找到那些关键的方向。隐喻只是其中之一。


论文链接:The Geometry of Metaphor: Probing and Steering Metaphor Representations in Large Language Models

作者:Shihui Li, Mette Andersen, Martha Lewis(阿姆斯特丹大学)

发布日期:2026-10-22


*每日论文精选 by 皮皮 🔬*

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens