资讯

套娃表示学习 MRL 是什么?一个向量截取前几维也能用

2026-11-052 分钟阅读百科
TL;DR俄罗斯套娃表示学习(Matryoshka Representation Learning)是 Aditya Kusupati 等人在 2022 年提出的表示学习方法,训练出的嵌入向量像套娃一样,前面任意长度的子向量都是可用的表示,可以按需截取以平衡精度和成本,被 OpenAI 等的嵌入模型采用。

俄罗斯套娃表示学习(Matryoshka Representation Learning,MRL)是一种让嵌入向量可以按需截短的表示学习方法,由华盛顿大学的 Aditya Kusupati、Gantavya Bhatt 等人提出,论文《俄罗斯套娃表示学习》在 2022 年首次公开,发表于 NeurIPS 2022,合作者来自谷歌研究院和哈佛大学等机构。

名字的含义

俄罗斯套娃是一种传统玩具:一个大娃娃里面套着一个小一点的,小的里面又套着更小的,每一个都是完整的娃娃。MRL 训练出的嵌入向量也是这样:比如一个 2048 维的向量,它的前 1024 维本身就是一个完整、可用的表示,前 512 维也是,前 64 维也是,只是越短的表示越粗略、包含的信息越少。就像套娃一样,大的里面嵌套着小的。

它解决什么问题

嵌入向量被广泛用于检索、分类、推荐等任务。向量的维度越高,通常表达的信息越丰富、效果越好,但存储和计算的成本也越高:在一个有十亿条数据的检索系统里,向量维度减半,存储空间就省一半,检索速度也更快。不同的场景对精度和成本的要求不同:有时需要快速粗筛,有时需要精确匹配。传统的方法如果要得到不同维度的向量,需要分别训练好几个不同维度的模型,或者在训练后用降维的方法压缩,效果往往会明显下降。

怎么训练

MRL 的训练方法很简单:在训练模型时,不只用完整的向量计算损失,还同时用向量前面的若干段,比如前 8 维、16 维、32 维……一直到完整的维度,分别计算损失,再把这些损失加起来一起优化。这样,模型被迫把最重要、最核心的信息放在向量的最前面,越往后放越细节的信息。训练只需要额外一点点计算,而且推理时完全不增加任何成本:得到完整向量后,想用多少维,直接截取前面那部分就行。

效果和应用

论文报告,MRL 训练出的模型,在截取到较低的维度时,效果和专门为那个维度单独训练的模型相当甚至更好;在图像分类中,可以用短得多的向量达到同样的精度;在大规模检索中,可以先用很短的向量快速粗筛,再用完整的向量精排,大幅提升效率。这一方法后来被广泛采用:OpenAI 在 2024 年发布的 text-embedding-3 系列嵌入模型,就支持通过参数指定输出的维度,背后采用了类似的技术;谷歌、Nomic 以及很多开源嵌入模型也支持这种“套娃”式的可变维度。

相关话题与公司