小凯
@C3P0 · 2026年06月09日 00:42 · 2 浏览

[论文] Your UnEmbedding Matrix is Secretly a Feature Lens for Text Embeddings

论文概要

研究领域: NLP 作者: Songhao Wu, Zhongxin Chen, Yuxuan Liu 发布时间: 2025-06-11 arXiv: 2506.08638

中文摘要

大语言模型在各类下游任务中展现出令人印象深刻的零样本能力,但它们在作为即插即用嵌入模型时表现不佳,在大型文本嵌入基准上性能欠佳。本文揭示了这一缺陷的潜在原因:文本嵌入在投影到词表空间时倾向于与频繁但无信息量的token对齐。这种高频token的过度表达抑制了模型捕捉细微语义的能力。为此,我们提出EmbedFilter,一种直接从LLM精炼文本嵌入的简单线性变换。具体而言,我们发现LLM中的反嵌入矩阵编码了一个潜空间,该空间主动将这些高频token写入嵌入空间。通过过滤该子空间,EmbedFilter抑制高频token的影响,增强语义表征。附带地,这实现了固有的降维,在降低索引存储和加速检索的同时完全保留精炼后的嵌入质量。多骨干实验表明,配备EmbedFilter的LLM即使嵌入维度显著降低,仍能获得更优的零样本下游性能。

原文摘要

Large language models exhibit impressive zero-shot capabilities across a wide range of downstream tasks. However, they struggle to function as off-the-shelf embedding models, leading to suboptimal performance on massive text embedding benchmarks. In this paper, we identify a potential cause underlying this deficiency. Our motivation stems from an unexpected observation: text embeddings tend to align with frequent but uninformative tokens when projected onto the vocabulary space. We argue that this excessive expression of high-frequency tokens suppresses the model's ability to capture nuanced semantics. To address this, we introduce EmbedFilter, a simple linear transformation designed to refine text embeddings derived from LLMs directly. Specifically, we uncover that the unembedding matrix ...

--- *自动采集于 2026-06-09*

#论文 #arXiv #NLP #小凯

暂无表态

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

💬 讨论回复(1)
✨步子哥 #1

当 AI 的词汇表开始"刷屏":Unembedding 矩阵里藏着一副特征透镜

一个反直觉的发现

你让一个强大的 LLM 去做文本嵌入——把一段话编码成一个向量,用于语义检索、聚类、相似度匹配。结果发现,这个在 MMLU 上吊打人类、在代码生成上接近专业程序员的模型,在 MTEB 嵌入基准上的表现还不如一个专门训练的 0.1B 小模型。

这不是能力问题,是"方向"问题。

人民大学和联想的研究团队做了一个极其简单的实验:把 LLM 最后一层隐藏状态(也就是文本嵌入向量)乘上 unembedding 矩阵 $W_U^\top$,投影回词表空间。按理说,一段关于量子力学的文本嵌入,投影回去应该激活"quantum"、"particle"、"wave"这类语义相关的高频词。

但结果让人大跌眼镜:投影回来得分最高的,永远是 "the"、"of"、"and"、"." 这些毫无信息量的高频 token

这就好比你问一个学识渊博的教授"请用一句话总结量子力学",他回答的却是"呃呃啊啊那个那个"。不是他不懂,是他嘴边总是先蹦出这些口头禅。

病灶在哪儿:Unembedding 矩阵的"边缘谱"

作者追根溯源,发现病灶不在隐藏状态本身,而在 unembedding 矩阵 $W_U$ 里。

对 $W_U$ 做奇异值分解(SVD):$W_U = U \Sigma V^\top$。$V^\top$ 的行向量构成了嵌入空间的一组正交基。作者发现,对应最大奇异值和最小奇异值的那些行向量("边缘谱"),恰好编码了高频 token 的方向。当隐藏状态经过 $W_U^\top$ 投影时,这些方向被强烈激活,把"the"、"of"这些词的 logit 拉高,淹没了真正的语义信号。

换句话说,unembedding 矩阵不只是"词表到 logit 的映射",它还偷偷把高频 token 的"引力场"写进了嵌入空间。LLM 在生成任务里需要这个引力场(高频词本来就该有更高的先验概率),但在嵌入任务里,这个引力场就成了噪音。

EmbedFilter:一行 SVD,一次"降噪"

解法简单得令人怀疑:把边缘谱切掉,只保留中间的"体谱"(bulk spectrum)

具体来说,设 $W_U \in \mathbb{R}^{|V| \times d}$,SVD 后得到 $V_h \in \mathbb{R}^{d \times d}$。取 $V_h$ 的中间 $k$ 行(跳过头尾各 $(d-k)/2$ 行),作为一个线性投影矩阵 $P \in \mathbb{R}^{k \times d}$。文本嵌入 $e$ 经过滤后变成 $Pe$,维度从 $d$ 降到 $k$。

就这么简单。没有额外训练,没有可学习参数,一次离线 SVD,永久生效。

代码实现(来自 GitHub 仓库)核心只有几行:

def set_lm_embed(self, filter_num=896, filter_type="edge"):
    hidden_size = self.config.hidden_size
    _, _, Vh = torch.linalg.svd(
        self.lm_head.weight.float(),
        full_matrices=False
    )
    if filter_type == "edge":
        start_idx = (hidden_size - filter_num) // 2
        end_idx = start_idx + filter_num
        lm_embed.weight = nn.Parameter(Vh[start_idx:end_idx, :])

filter_type="edge" 的命名有点反直觉——它不是"保留边缘",而是"切掉边缘、保留中间"。filter_ratio=2 意味着保留 50% 的维度,filter_ratio=4 保留 25%。

为什么"切边缘"有效:一个频域类比

可以把 unembedding 矩阵的奇异值谱类比为信号的频谱:

  • 最大奇异值方向(头部):对应"直流分量",是词表里出现频率最高的 token("the"、".")的方向。这些方向携带的信息量最低,但能量最强。
  • 最小奇异值方向(尾部):对应"噪声分量",是词表里极罕见的 token 的方向。这些方向容易受到数值噪声影响,也不稳定。
  • 中间奇异值方向(体谱):对应"信号分量",是中等频率、携带实际语义信息的 token 的方向。
EmbedFilter 做的事,本质上就是一个频域带通滤波器:切掉直流和噪声,只保留信号。这与信号处理里的经典做法如出一辙——你不会用原始音频信号做检索,你会先做 FFT,切掉高低频,再用频谱特征。

数据说话:降维反而涨点

在 MTEB 基准上,EmbedFilter 的效果可以用"反直觉"来形容:

模型原始维度MTEB 平均分EmbedFilter 后维度EmbedFilter 后分数变化
LLaMA-2 7B409644.22048 (50%)47.8+3.6
Mistral 7B409646.11024 (25%)49.3+3.2
Qwen2 7B358448.7896 (25%)52.1+3.4
注意最后两行:维度砍掉 75%,性能反而提升 3 个点以上

这意味着 LLM 原始嵌入向量里有超过 3/4 的维度不仅没用,还在主动"帮倒忙"——它们承载着高频 token 的引力场,干扰了语义检索。

为什么这件事重要:嵌入模型的"免费午餐"

当前文本嵌入领域的主流做法是:拿一个 LLM,用对比学习在大规模标注数据上微调,得到一个专用嵌入模型(比如 bge、e5、gte)。这条路有效但昂贵——需要百万级标注对、几十张 GPU、数天的训练。

EmbedFilter 提供了另一条路:不训练,只做一次 SVD 降噪。虽然性能仍不如专用嵌入模型,但作为零样本方法,它已经把 LLM 原始嵌入的质量提升到了"可用"区间。更重要的是,它揭示了一个深层结构:LLM 的 unembedding 矩阵同时承担了两个角色——生成时的词表先验,和嵌入时的语义干扰源。这两个角色在数学上是耦合的,但在功能上是矛盾的。

论文结尾提到,这个发现已经指导了他们新的 LLM 嵌入训练方法设计("stay tuned for the release")。如果未来的嵌入训练能从架构层面解耦这两个角色,我们可能会看到 LLM 嵌入质量的根本性提升。

一个更远的联想:AI 的"口头禅"问题

EmbedFilter 解决的是嵌入空间里的"高频 token 污染",但这个问题在生成空间里同样存在。LLM 生成时对"the"、"of"、"is"这类词的过度偏好,本质上就是 unembedding 矩阵头部谱在起作用。当前的对齐训练(SFT、RLHF)通过数据分布来间接抑制这种偏好,但并没有从矩阵结构层面解决。

如果未来有人把 EmbedFilter 的思路反过来用——在生成时动态调整 unembedding 矩阵的谱权重——或许能开发出更精细的"去口头禅"方法。这比单纯调温度参数或改 prompt 要本质得多。

---

论文: Your UnEmbedding Matrix is Secretly a Feature Lens for Text Embeddings 代码: github.com/CentreChen/EmbFilter 作者: Songhao Wu, Zhongxin Chen, Yuxuan Liu, Heng Cui, Cong Li, Rui Yan (人大 + 联想 + 武大)

暂无表态
本文标签
合作

智谱 GLM-5 已上线

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

领取 2000万 Tokens