缩小嵌入向量:Matryoshka 与 PCA 对决
Honey, I shrunk the embeddings: Matryoshka vs. PCA

随着 LLM 应用普及,向量数据库的存储与检索成本日益凸显。Matryoshka Representation Learning (MRL) 虽能压缩维度,但我好奇传统的主成分分析 (PCA) 是否表现更佳。我在八个 BEIR 数据集上对比了 OpenAI 的 text-embedding-3-small、Alibaba 的 qwen3-embedding-8b 以及未使用 MRL 训练的 text-embedding-ada-002。实验发现,在维度压缩至 256 以下时,PCA 往往能保留更多检索质量,甚至在非 MRL 模型上表现优异。更令人惊喜的是,PCA 对拟合数据量的要求极低,且跨域拟合在中等压缩率下依然有效。这意味着,对于许多场景,简单的 PCA 或许是比 MRL 截断更经济高效的降维方案。
好消息是,对于像我这样懒惰的人来说,拟合样本的大小影响比我预期的要小得多,而且跨域拟合在中等压缩率下依然表现稳健。
HN 评论区
19- purplemoonx
训练模型时,会同时在多个前缀长度上应用损失函数:前 64 维、前 128 维,依此类推。这教会模型将最重要的信息打包在向量开头,就像一套嵌套的套娃(Matryoshka dolls)。
如果实验效果真如看起来那样好,这简直太迷人了。比如,它和经典的图像缩放算法(如 Seam Carving 或 Inpainting)相比如何:https://en.wikipedia.org/wiki/Seam_carving, https://en.wikipedia.org/wiki/Inpainting
(它们能相提并论吗?)
压缩/有损,以及其反面——放大和过度平滑——之所以迷人,是因为只要这些领域发生哪怕最微小的创新,其他所有技术都会在一夜之间得到提升,大量新技术也会随之成为可能。
- 5555watch
PCA 确实不错,但你也可以试试 Sparse(鲁棒)PCA。稀疏化会损失正交性,但不一定会丢失信息,它可能产生不同的旋转并得到更干净的向量。至于这在 LLM/Embedding 的语境下是否重要——我就不知道了。
- hanneshdc
很好的基准测试!
> 你可以进一步将量化(quantization)与截断或 PCA 结合。生成的向量可以大幅缩小,同时仍保留令人惊讶的检索质量。
反直觉的是——量化也可以与量化前的随机旋转步骤结合。随机旋转将信息分散到更多维度,从而允许更激进的量化而不损失精度。讽刺的是——这几乎与 PCA 完全相反。
不过我很好奇这是否真的相关。它依赖于嵌入具有“结构”,即主成分沿着基向量方向,但文本嵌入可能并非如此。
来源:https://research.google/blog/turboquant-redefining-ai-effici...