人类的概念空间到底长什么样?这个问题我从研究生阶段就开始纠结。传统认知心理学普遍假设,概念和概念之间的相似性可以放在一个欧几里得空间里,用坐标和直线距离来描述——苹果和香蕉的距离,就是它们在“水果特征”坐标轴上的差异。这个思路很直观,写论文、做模型都方便,可真到处理行为数据的时候,问题就冒出来了:相似度判断经常不对称,距离有时候不满足三角不等式,换一个实验语境,整个空间的形状就像被揉过一样。后来我读到一系列认知建模研究,标题大意是《人类概念空间的几何革命:黎曼流形的行为证据》,一下子觉得之前的困惑有解了。这套工作提出,人类的概念空间不是平的欧氏空间,而是一个黎曼流形——局部看是平坦的,整体看是弯曲的,而且每个局部有自己的一套度量规则。这篇文章我就想把这个“几何革命”背后的逻辑掰开揉碎,从理论动机、行为实验到数据分析,完整过一遍,给对认知建模、几何心理学和AI表示学习感兴趣的朋友一些能直接用的东西。
1. 从欧氏空间到黎曼流形:概念空间建模的思路切换
1.1 “概念空间”究竟是什么
概念空间(conceptual space)这个说法由认知科学家Peter Gärdenfors在一系列著作中系统提出,核心思想是:人类可以用几何结构来表征概念。一个概念不是一堆符号的拼凑,而是多维特征空间里的一个点、一个区域,或者一团带密度的概率分布。比如“红”可能是一个圆形区域,“深红”就是区域边缘的一块,“苹果红”可能又会偏向另一个小簇。属性维度则构成了空间的坐标轴,比如颜色空间里的色调、饱和度、亮度,语义空间里的“大小”“快慢”“好坏”等等。
这套几何化框架在当时非常有吸引力,因为它能用连续数值来预测相似性、范畴化和归纳推理。只要给两个概念分配好坐标,它们之间的相似度就可以用某种距离函数计算。最常见的假设是欧氏距离,也就是我们在中学里学的那个直线距离。不少经典模型,比如语义空间中的潜在语义分析(LSA)、词向量,核心思维都是这种欧氏假设:把词嵌入到高维向量空间,用余弦相似度或者欧氏距离来反映语义关联。
但概念空间并不是一个物理空间,它是一种建模约定。既然是约定,那就要接受行为数据的检验。问题在于,欧氏距离的约束非常强,它要求空间中的距离必须是全局一致的、对称的,并且满足三角不等式。这些约束在几何上是漂亮的,在人类认知里却未必成立。很多研究者早就发现了各种“反常”现象,只是过去大家倾向于把这些现象当成噪声或者实验误差,强行用欧氏模型去拟合,拟合不了就加维度。实际上,这些反常也许并不是噪声,而是在告诉我们:底层几何结构用错了。
1.2 欧氏空间假设的三个“隐蔽坑”
我在自己的行为实验里真正体会到欧氏假设有多脆弱,是在分析相似性评分矩阵的时候。第一坑是距离对称性。按欧氏几何,A到B的距离和B到A的距离一定相等,但人类被试对“狼到狗的距离”和“狗到狼的距离”判断往往有系统性差异。这背后有典型的典型性效应:人们更倾向于以某个“原型”为锚点,判断其他概念相对原型的距离,方向就变得重要。用欧氏距离模型去刻画这种不对称,只能靠额外加权重参数硬拗。
第二坑是三角不等式。理论上,如果A和B很像,B和C也很像,那么A和C不可能太不像,因为距离要满足“绕路不会比直达更短”。但行为实验里经常出现反例,比如蝙蝠和鸟,鸟和蝴蝶,蝴蝶和蝙蝠,两两相似性都不高,但鸟类与蝴蝶之间、蝴蝶与蝙蝠之间的判断会受到知识背景的强烈调节。知识一激活,距离结构就会变形,全局三角不等式就崩了。
第三坑是度量的“语境漂移”。同一个概念对,在不同任务、不同参考对象、不同情绪状态下测出来的相似度可能完全不同。欧氏空间里的距离是固定的,一个点的坐标一旦确定,它到所有其他点的距离就锁死了。可人的判断是高度依赖上下文的。比如“苹果”和“梨”在水果分类任务里很近,但在“科技产品”语境里可能被拉到很远。这种局部度量不断变化的特性,需要的恰恰不是一张“平直地图”,而是一张会随地板起伏的路网——这正是流形的思路。
1.3 黎曼流形:局部平坦、整体弯曲的概念空间
黎曼流形并不难理解。想想地球:我们踩在地面上觉得地面是平的,拿一张城市地图可以按平面几何导航,但如果把全球航线直接画在一张平面地图上,距离就完全扭曲了。地球本身是一个球面,每个局部都有切平面,切平面之间的连接方式由度量张量决定。黎曼流形就是把这种“局部平、整体弯”的结构抽象化。
在概念空间里使用黎曼几何,意味着我们不再要求一个统一的全局坐标,而是允许每个局部区域有自己的度量。两个概念之间的距离,不是简单求一条直线那么长,而是要沿着空间中的“测地线”去积分,相当于在弯弯曲曲的地形上走一条最短路径,而这条路径的每一点都可能有不同的“走一步等于多远”。
这正好能解释欧氏模型难以处理的那些现象。方向不对称是因为局部度量本身可能是方向相关的;语境漂移是因为在不同的激活状态下,度量张量场发生了变化;三角不等式违例则是当我们把全局测地距离误当成局部欧氏距离来使用时,自然会看到的假象。所以那个“革命性”的假设其实是:人类概念空间本质是一个黎曼流形,我们观察到的所有怪异,不是数据脏了,而是几何模型不够灵活。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 行为实验如何“抓”到弯曲空间的证据
2.1 为什么必须用行为实验来验证几何
几何结构听起来很抽象,它不能直接通过脑成像或者问卷问出来。你要想验证“概念空间是黎曼流形”,就必须找到行为层面的可观测推论。这就是为什么这项工作被叫做“行为证据”——它不是去扫描大脑,也不是去跑一个纯粹的数学仿真,而是设计精巧的行为任务,让被试的每一次按键、每一个评分,都变成对空间几何性质的测量。
核心逻辑是:如果概念空间真的是黎曼流形,那么任何两个概念之间的心理距离,应该等于从这个概念到那个概念的测地线长度。测地线长度可以分解成许多微小片段的积分,而每一小段长度都受局部度量影响。行为实验能够抓住的,就是这个“局部度量随位置变化”的指纹。比如,你可以让被试在同一个物理差异下判断相似程度,如果相同物理差异在不同概念区域产生的知觉差异不同,说明局部缩放不一致,这是欧氏模型解释不了的。
当然,行为数据本身有噪音,要做的是把几何模型的预测和欧氏模型的预测放在同一个框架下PK,看谁更能解释被试的反应模式。这不是假设检验空对空,而是真的可以用模型拟合优度来打分。
2.2 典型范式一:相似性判断 + 局部度量估计
一套比较实用的做法是测量“辨别阈值”在不同概念区域上的变化。心理物理学里有个经典概念叫韦伯分数:一个刺激要产生“刚刚能觉察到的差异”,需要改变的量与初始刺激大小成比例。用在概念空间里,你可以设计一系列配对比较,固定某个标准刺激,逐渐增大比较刺激在特征空间里的“物理距离”,让被试判断两者是否相同。每个区域阈值不同,就能估算出局部度量张量的对角元素。
这个方法的优势在于,它不要求被试给出绝对值,而是用二选一/三选一的强迫选择任务,比较稳健。如果在一个二维概念空间(比如颜色平面)里,你在不同位置测得的局部缩放系数完全不同,形成一张“度量热力图”,那就说明这个空间不是均匀的欧氏平面,而是带有局部结构的流形。我之前复现过类似的颜色相似性实验,测出来在颜色空间的某些区域里,饱和度方向的缩放系数比色调方向大好几倍,这种各向异性放到欧氏模型里就得靠额外维度去凑,非常不自然。
2.3 典型范式二:三元组判断与三角不等式违例检测
另一个流传较广的范式是三元组任务。给被试三个概念A、B、C,要求判断“A和B是否比A和C更相似”,或者“B是否处在A和C的中间”。这种任务的妙处在于,它可以检验几何关系而非绝对距离。如果空间是欧氏的,那么“B在A和C之间”可以严格定义为距离等式,而人类被试的系统性选择可以告诉你这些几何公设是否成立。
黎曼流形假设会预测什么?在流形上,测地线的局部凸性可以保证短距离下近似满足三角关系,但长距离下弯曲效应会明显。所以实验设计的关键是要操纵概念之间的“认知距离”跨度:在局部比较和全局比较两个尺度下,观察三角不等式违例率是否不同。如果违例率随着跨度增大而显著上升,说明距离结构依赖于路径,这不是全局欧氏度量能解释的。统计上可以计算每组三元组的一致率,再做逻辑回归,看距离跨度是否显著预测违例概率。
这个方法我自己操作时有个心得:三元组的选择不能太随机,应当先做一次预实验,用多维缩放粗排一张概念图,然后故意挑选那些在欧氏图中看起来不相容的三元组。这样既提高了统计功效,也方便后续把结果可视化,解释给读者听时会直观很多。
3. 从理论到代码:复现黎曼流形检验的实操流程
3.1 数据收集与预处理:相似性矩阵的干净化
要真正检验一组行为数据是支持欧氏空间还是黎曼流形,最稳的路径是从相似性矩阵出发。先让一组被试对N个概念两两做相似性评分,比如用1到9的李克特量表。矩阵预处理有几个关键点。
首先是去噪。不同被试用打分尺度的方式差异很大,有人喜欢用两端的极端值,有人喜欢挤在中间。这种个体差异会在距离矩阵里引入系统性偏移,建议每个被试的数据先做一次对数量表化或者标准正态化,再取平均。也建议用混合效应模型剥离被试随机效应,而不是简单粗暴地平均。
其次是把相似度转成距离。相似度和距离不是线性关系,常见的经验法则是用倒数和负对数转换。我个人推荐用负对数转换,因为它在心理物理学里有信号检测理论支撑,近似于“辨别难度”。转换后的距离矩阵,理论上应该符合一个度量空间的条件,如果大量元素违反三角不等式,那就要引起注意了。
最后是维度选择。欧氏MDS会告诉你需要多少维才能解释数据,但黎曼流形检验中维度选择更容易过拟合。我的做法是先用现代流形学习算法(比如Isomap)对数据做一个初步嵌入,然后用嵌入结果计算每个点邻域的PCA解释率,来估计局部固有维度。局部维度和全局维度明显不一致,往往是曲率存在的信号。
3.2 模型拟合:用 geomstats 对比欧氏空间与球面/双曲空间
数学上,最简单的一类黎曼流形就是常曲率空间:球面、双曲空间和平坦空间。很多概念空间的行为证据都可以从这三个模型中选择。在Python里,我推荐用geomstats库,它把流形上的切向量、测地线、距离计算都封装好了,用起来比手推张量场要省心得多。
下面是一段最小可复现的流程:读取你的距离矩阵,然后用三种几何模型分别做多维缩放嵌入,再比较距离矩阵的重建误差。我需要提醒的是,代码只是骨架,真正的关键是参数初始化。
python复制import numpy as np
from sklearn.manifold import MDS
from scipy.spatial.distance import squareform, cdist
import geomstats.backend as gs
from geomstats.geometry.hypersphere import Hypersphere
from geomstats.geometry.hyperboloid import Hyperboloid
from geomstats.geometry.euclidean import Euclidean
# 假设你已经有了一个 N x N 的相似度矩阵并入距离矩阵 D
# D[i, j] 表示概念 i 和概念 j 之间的心理距离
N = D.shape[0]
# 1. 欧氏空间基准:使用 sklearn 的 MDS
mds = MDS(n_components=3, dissimilarity='precomputed', random_state=42)
X_euclid = mds.fit_transform(D)
D_euclid = cdist(X_euclid, X_euclid)
# 2. 球面模型:嵌入到三维单位球面
sphere = Hypersphere(dim=2)
# 用等距投影把初始点放到球面上(这里简化:先做欧氏MDS再归一化)
X_sphere_init = X_euclid / np.linalg.norm(X_euclid, axis=1, keepdims=True)
# 球面上的距离是测地线距离,即夹角
D_sphere = np.arccos(np.clip(X_sphere_init @ X_sphere_init.T, -1, 1))
# 3. 双曲空间模型:嵌入到二维双曲面
hyperboloid = Hyperboloid(dim=2)
# 需要先把坐标映射到双曲面,这里用自然参数化伪代码示意
X_hyper_init = np.concatenate([np.sqrt(1 + np.sum(X_euclid**2, axis=1, keepdims=True)), X_euclid], axis=1)
D_hyper = hyperboloid.metric.dist(X_hyper_init[:, :3], X_hyper_init[:, :3])
# 4. 计算重建误差(考虑缩放)
def scale_and_error(D_true, D_pred):
beta = np.sum(D_true * D_pred) / np.sum(D_pred * D_pred)
err = np.sqrt(np.mean((D_true - beta * D_pred)**2))
return beta, err
for name, D_pred in [("euclid", D_euclid), ("sphere", D_sphere), ("hyperboloid", D_hyper)]:
beta, err = scale_and_error(D, D_pred)
print(name, "err=", round(err, 4), "beta=", round(beta, 4))
这段代码有两个地方容易踩坑。一是球面模型对坐标归一化很敏感,归一化之后的点不一定是最优测地线嵌入,严格做需要优化球面MDS,而不是简单归一化。二是双曲空间的距离在边界附近会爆炸,初始化不好容易得到巨大的距离,导致比例系数回归失败。我通常的做法是先做几次随机初始化,保留重建误差最小的结果。
3.3 怎么判断“哪个几何模型赢了”
做完三种模型的距离重建后,不能光看绝对误差,因为三个模型自由度不同。欧氏三维模型有3N个自由度,球面模型是2N个自由度,双曲空间也是类似数量。直接比较误差会吃亏。推荐用信息准则,比如把距离预测误差当成高斯分布的对数似然,再惩罚参数数量,算AIC或者BIC。如果双曲空间的BIC远低于欧氏空间,才能说明行为数据确实更支持弯曲几何。
还有一种更细的验证方法:交叉验证。把被试分成两半,用一半数据学出一个度量张量场,预测另一半被试的相似性判断。欧氏模型预测失效的地方,正是流形模型的优势区域。这个思路在论文里非常加分,因为它说明结果不是靠过拟合得到的。
实际复现中我还发现,颜色相似性数据往往更容易支持球面模型,而抽象语义数据有时候更支持双曲模型。这并不矛盾,黎曼流形本身是允许不同区域有不同曲率的,常曲率模型只是最粗糙的一档。用常曲率空间做第一层判断,主要是为了和一个清晰的baseline比较,而不是为了断言所有概念空间都是双曲的。
4. 常见问题、避坑经验与真正的应用场景
4.1 五个高频问题速查表
| 问题 | 常见原因 | 解决办法 |
|---|---|---|
| 行为距离矩阵大量违反三角不等式 | 被试判断受语境影响,全局欧氏假设不成立 | 不要自动丢弃数据,换成流形检验,看违例是否随距离尺度变化 |
| 球面模型距离重建误差很大 | 球面曲率不适合当前数据,或者初始化不对 | 考虑变曲率模型或直接用局部度量估计,别硬套常曲率 |
| 双曲空间模型发散 | 初始化点离边界太近,距离爆炸 | 把初始坐标归一化到原点附近,或加岭约束 |
| 不同被试出现相反几何偏好 | 个体差异大,有人更依赖线性推理,有人更依赖语境 | 用混合模型分群,定位子群体,而不是直接平均 |
| 结果和经典MDS嵌入不一致 | MDS是全局线性近似,无法刻画局部曲率 | 用Isomap或UMAP观察局部邻域,再做局部曲率估计 |
这张表是我踩了两年坑之后总结的。其中“违反三角不等式”最容易被分析管线自动清洗掉,这非常可惜,因为那恰恰是黎曼流形假设需要解释的核心现象。建议所有研究认知几何的人,遇到这类数据先别急着删,停一下,想想它是不是在告诉你空间不是欧氏的。
4.2 我实际踩过的坑与心得
第一个大坑是直接拿语言模型或者词向量的相似度来替代人类行为数据。词向量空间在训练的时候已经内置了欧氏内积,所以你再怎么测它都很难发现非欧几何。真正能验证认知几何的,必须是来自行为实验的数据,而不是某个现成嵌入空间的内部距离。这点在复现时要格外小心。
第二个坑是过度关注可视化,忽略了统计检验。很多人看到t-SNE图里出现弯曲形状,就觉得“这是双曲空间”,但t-SNE会把任意数据扭曲成类似流形的样子,它是很好的探索工具,不是证实工具。要证明黎曼流形结构,还是要用可度量化、可拟合的模型去与行为数据直接比较,不能看图说话。
第三个经验是关于刺激采样。行为实验中选概念样本非常关键,如果所有概念都聚集在同一个语义域,那么局部度量差异不明显,你可能测半天也看不出来。最好同时包括本地域样本和跨域样本,这样才有机会触碰到流形大尺度弯曲效应。比如研究动物概念空间时,不仅要放猫狗鸟鱼,还要放“电子宠物”“神话生物”这种边缘案例,边缘案例往往能暴露出局部与全局几何的矛盾。
4.3 这个思路能用在哪儿:AI、语言学和临床
认知几何革命不是一件封闭的理论玩具。它最直接的应用是AI表示学习。当前很多向量嵌入模型,比如词向量、图像特征,都默认了欧氏内积结构。如果人类底层的概念空间是黎曼流形,那么用欧氏空间去逼近就会造成系统性偏差。已经有一些工作开始尝试在双曲空间里训练知识图谱嵌入,效果在一些层级分明的数据上确实比欧氏空间好。原因很好理解:树状结构在双曲空间里可以无扭曲地嵌入,而欧氏空间需要高维才能近似。这个思想如果推广到概念建模,可能让分类、推理、检索都更贴近人类。
语言学是另一个受益者。语义演变、隐喻映射、语境敏感的多义词,这些现象很难用固定语义向量解释。如果语义空间是有曲率的流形,那么多义词就可以理解为流形上的不同测地线方向被激活,同一个词的不同含义不再是互相独立的词向量,而是共享同一段局部几何,只是走向不同的分支。这让词义消歧有了几何解释。
临床心理测量也可能从中获益。一些研究者把情绪状态建模为概念空间中的区域,抑郁、焦虑被认为是这个空间里不同病理性偏移。如果空间是黎曼流形,那么情绪变化路径可能是弯曲的,干预方案的设计就需要沿着测地线走,而不是直接拉一条直线。这个方向还很新,但我很看好。
5. 黎曼几何带来的认知科学新问题
5.1 局部度量从哪儿来?动态贝叶斯推断
黎曼流形假设提出之后,一个躲不开的问题是:这个随时间、随语境变化的度量张量场,是怎么在大脑里计算出来的?一种很自然的建模方式是动态贝叶斯推断。大脑可以维护一个关于当前任务和上下文的认识,然后把先验知识和当前输入结合起来,实时修改概念空间中局部距离的权重。
比如在颜色判断实验中,如果被试被要求做“颜色命名”,亮度通道的距离权重可能被调低,色调通道的距离权重被调高;如果被试被要求做“亮度匹配”,权重则反向调整。一张很简单的“按键决策”行为,背后其实是在动态切换所在空间的度量。这样看,黎曼流形里的度量张量并不是天生的固定属性,而是认知系统在不同目标下对同一底层流形施加的变形。这个观点把“几何革命”又往前推了一步:不只是空间结构变了,连空间的“尺子”都在随认知过程流动。
5.2 与拓扑、图结构的关系
黎曼流形只是描述概念空间的一种数学语言,它并不排斥其他结构。概念数据在微观上可能更像一张图,节点之间的边权重会随语境变化;在更粗尺度上,图的连通分簇又可能表现出连续流形特征。近年有很多工作把拓扑数据分析(persistent homology)和心理距离数据结合起来,用来检测概念空间中是否出现“洞”或“环状结构”。这和黎曼流形并不矛盾,流形的整体拓扑本身可能包含非平凡结构,比如圆环面上定义黎曼度量,就既流形又带洞。
我自己的体会是,未来认知几何模型很可能是“拓扑图+黎曼度量+动态上下文”的混合体。在某个局部邻域里,你把它当作黎曼流形来处理是合理的;当尺度放大到抽象类别切换时,图结构会更贴近人的离散判断。这种多尺度、多结构并存的思想,可能是下一步研究的重要方向。
5.3 对“几何革命”的一点冷思考
黎曼流形假设提供了很大的灵活性,这既是优点也是风险。一个模型如果灵活到能解释所有数据,那就很难被证伪。因此行为证据必须设计得足够精确,比如在不同曲率的空间之间做“模型选择”,而不是笼统地说“我们证明了概念空间是黎曼流形”。曲率是正还是负,局部度量具体怎么变化,这些都需要量化到可以预测的程度。
我也看过一些研究声称支持非欧几何,但仔细看,他们的统计检验只做了“欧氏模型显著差”,没有做“其他所有备择模型都差”,相当于只证明了线性模型拟合不好,却不能说非线性模型就一定是真相。好的行为实验应当预先注册,同时提出欧氏模型和多个流形模型的具体预测,再通过贝叶斯因子做比较。这样才能把“可能是流形”升级成“确实只能是流形”。
这些工作目前还处在早期,但方向已经非常清楚:几何方法不会消失,而是会从固定的平坦空间走向动态的弯曲空间。最后再分享一个实操层面的小技巧:如果你打算在自己的数据集上做流形模型分析,第一步别急着上深度学习,先用欧氏MDS出图,再用Isomap出图,人工对比局部邻域是否发生变化。如果两张图里局部点的相对位置差异很大,说明数据里很可能藏着曲率结构。接下来再跑常曲率模型比较,会比直接上复杂模型可靠得多。这套流程虽然朴素,但我在好几个数据集上试下来,从未落空。
