搜索引擎已经从单纯的关键词匹配取得了长足的进步,但它们仍然在一个根本性问题上举步维艰: 歧义性 (ambiguity) 。 当用户搜索 “Is the US a member of WHO?” (美国是世卫组织的成员吗?) 时,传统的系统看到的可能是单词 “us” (我们) 和 “who” (谁) ,从而可能错过了至关重要的实体 “United States” (美国) 和 “World Health Organization” (世界卫生组织) 。
这种脱节源于许多现代检索模型依赖于 分词 (tokenization) ——即将单词分解为更小的片段,称为“词片” (word pieces) 。虽然这有助于计算机处理生僻词,但这往往将有意义的概念打碎成无意义的音节。
在这篇文章中,我们将深入探讨 DyVo (Dynamic Vocabularies,动态词表) , 这是一个研究框架,旨在通过教导搜索模型同时以“词”和“维基百科实体”的思维方式来解决这个问题。我们将探讨 DyVo 如何将数百万个实体动态注入到稀疏检索模型中,从而显著提高其理解复杂查询的能力。
神经搜索中的词表鸿沟
要理解 DyVo,我们首先需要了解 学习型稀疏检索 (Learned Sparse Retrieval, LSR) 的现状。
LSR 模型 (例如流行的 SPLADE 架构) 已成为初级检索 (first-stage retrieval) 的主流方法。它们的工作原理是将查询和文档编码为稀疏向量 (大部分值为零的向量) ,类似于 BM25 等传统的词袋 (Bag-of-Words) 模型。然而,与仅统计文本中出现单词的 BM25 不同,LSR 模型会 学习 哪些单词是重要的,甚至可以用相关术语扩展文本。
分词问题
LSR 模型通常使用源自 BERT 等模型的 词片词表 (Word Piece vocabulary) 。 该词表包含大约 30,000 个子词单元。
当这些模型遇到复杂的实体时,问题就出现了。以 “BioNTech” 这家公司为例。标准分词器可能会将其拆分为 ['bio', '##nte', '##ch']。单独来看,这些片段失去了原始实体的语义含义。模型很难理解 ##nte 是一家生物技术公司的一部分。
此外,词片袋 (bag-of-word-piece) 模型很难处理 同形异义词 (homonyms) 。 如下图所示,在标准词表中,“US” 和 “WHO” 与普通的代词无法区分。

图 1 展示了 DyVo 方法。该模型不再仅依赖蓝色的词片 (这些词片具有歧义) ,而是通过显式的橙色实体 (如 “World Health Organization” 和 “United States”) 来增强表示。
介绍 DyVo: 动态词表
研究人员提出了 DyVo , 一种利用海量实体词表 (具体来说,超过 500 万个维基百科实体) 来丰富 LSR 模型的方法。
其核心思想是将文档或查询不仅仅表示为 词袋 (Bag of Words) , 而是表示为一种联合表示: 词袋 + 实体袋 (Bag of Words + Bag of Entities) 。
规模挑战
将实体集成到神经网络中听起来很简单,但存在一个巨大的计算障碍: 词表大小。
标准的 LSR 模型 (如 SPLADE) 的工作原理是为每个输入文档预测词表中 每一个词项 的权重。当词表大小为 30,000 (标准 BERT) 时,这是可行的。 然而,维基百科拥有超过 500 万 个实体。这就使得为我们索引的每个文档预测 500 万个权重在计算上是不可能的。
DyVo 解决方案
DyVo 通过使词表 动态化 来解决这个问题。模型不再对每一个可能的实体进行评分,而是遵循两步流程:
- 候选检索: 针对特定的输入文本,识别一小部分可能相关的实体。
- 评分: 仅计算那些特定候选实体的权重。

如 图 2 所示,该架构的工作流程如下:
- 输入: 文本 (查询或文档) 被输入系统。
- 实体检索器: 一个外部组件识别相关的实体候选者 (例如 “United States”, “WHO”) 。
- LSR 编码器: 一个 Transformer (如 DistilBERT) 处理文本以创建隐藏状态 (token 的上下文表示) 。
- DyVo 头 (Head) : 模型利用预先计算好的嵌入,仅对检索到的候选者进行评分。
数学框架
让我们分解一下 DyVo 如何构建其最终的稀疏表示。查询 \(q\) 和文档 \(d\) 之间的总相关性分数 \(S(q,d)\) 是词片对齐和实体对齐的总和。
1. 标准词片评分
首先,模型使用词片词表计算标准 LSR 分数。这是通过将查询 \(f_q(q)\) 和文档 \(f_d(d)\) 编码为稀疏向量 \(s_q\) 和 \(s_d\),并取它们的点积来完成的。

为了获得文档中特定单词 \(v_i\) 的权重,模型会查看 Transformer 的隐藏状态 \(h_j\)。它计算单词嵌入 \(e_i\) 与隐藏状态之间的点积,并保留最大激活值 (通过 ReLU 确保为正值并进行对数缩放) 。

在查询端,研究人员发现简单的线性投影 (MLP) 比用于文档的复杂扩展效果更好。这使得查询表示更加集中。

2. 实体评分
这正是 DyVo 引入创新之处。为了对一个实体 (它 不是 原始文本中的 token) 进行评分,模型将 实体嵌入 \(e_i^{entity}\) 与输入文本的隐藏状态 \(h_j\) 进行比较。

注意项 \(\lambda_{ent}\)。这是一个可训练的缩放因子。研究人员发现这至关重要,因为实体嵌入的量级通常与单词嵌入不同。如果没有 \(\lambda_{ent}\),实体分数可能会主导单词分数,或者在训练期间坍塌为零 (稍后会详细介绍) 。
3. 联合评分
最后,系统将两个世界结合在一起。最终的相似度分数是词片重叠和实体重叠的总和。

这种联合表示使模型能够利用精确的关键词匹配 (通过词片) ,同时利用高层的概念匹配 (通过实体) 。
实体从何而来?
DyVo 的一个关键组件是 实体检索器 (Entity Retriever) (见图 2) 。稀疏表示的质量完全取决于能否找到正确的候选者进行评分。研究人员探索了几种方法:
1. 实体链接 (REL)
这是传统方法。实体链接器扫描文本,识别提及 (如 “Paris”) ,并将其链接到维基百科 ID。
- 优点: 精确。
- 缺点: 会遗漏隐式实体。如果文本讨论 “The Big Apple” (大苹果城) ,链接器会找到 “New York City” (纽约市) ,但可能会遗漏像 “Wall Street” (华尔街) 这样的相关概念,如果它们没有被明确命名的话。
2. 生成式检索 (LLMs)
这是论文中提出的最先进的方法。研究人员使用大型语言模型 (LLMs) ,如 Mixtral 或 GPT-4 , 来“构想”相关的实体。
他们向 LLM 提供查询并提问: “识别有助于检索与此搜索查询相关的文档的维基百科实体。”
这有效地利用了 LLM 庞大的内部知识来进行 扩展 。 对于关于 “NFTs” 的查询,LLM 可以建议 “Non-fungible token” (非同质化代币) 、“Ethereum” (以太坊) 和 “Blockchain” (区块链) ,即使这些词没有出现在查询中。

表 4 突显了这种差异。对于关于 “NFTs” 的查询, REL 链接器完全失败 (链接到了 “Next plc” 和 “Toronto”) 。 BM25 找到了随机噪声。然而, GPT-4 正确识别了 “Non-fungible token”、“Cryptocurrency” (加密货币) 和 “Bitcoin” (比特币) 。
实验结果
研究人员在三个富含实体的数据集上测试了 DyVo: TREC Robust04、TREC Core 2018 和 CODEC 。
性能提升
结果很明确: 结合实体始终能提高检索性能。

在表 2 中,LSR-w 代表仅使用词片的基线模型。DyVo 始终优于它。值得注意的是, 生成式方法 (Mixtral 和 GPT-4) 产生了最高的分数,证明利用 LLM 推断相关实体比简单的实体链接更强大。
实体坍塌问题
训练这些模型并非没有挑战。论文中一个引人入胜的见解是 实体表示坍塌 (Entity Representation Collapse) 现象。
由于实体嵌入来自与训练好的 BERT 单词嵌入不同的来源 (例如 Wikipedia2Vec 或 LaQue) ,它们存在于不同的向量空间中。在训练的早期阶段,模型难以平衡两者。

如 图 3 所示,如果没有仔细调整,模型可能会决定完全抑制实体,将其权重推至零 (上方图表中的急剧下降) 。一旦权重归零,ReLU 激活函数就会截断梯度,实体头 (entity head) 就会“死亡”——它将永远停止学习。
研究人员通过引入数学部分提到的可学习缩放因子 \(\lambda_{ent}\) 解决了这个问题,这有助于稳定两个不同向量空间的量级。
嵌入类型重要吗?
研究人员还提出了一个问题: 我们应该如何表示实体? 他们测试了几种嵌入类型:
- Token 聚合 (Token Aggregation) : 仅对实体名称的词嵌入进行平均。
- Wikipedia2Vec: 预训练的静态嵌入。
- LaQue / BLINK: 先进的基于 Transformer 的实体编码器。
虽然像 BLINK 这样的高级编码器提供了最佳性能,但即使是简单的 Wikipedia2Vec 嵌入也比基线有显著提升。这表明,拥有实体的独特维度才是成功的关键驱动力,而非嵌入向量的具体细微差别。
结论与启示
DyVo 在弥合词汇搜索 (匹配单词) 和语义搜索 (匹配概念) 之间的鸿沟方面迈出了重要一步。通过将维基百科实体视为模型词表的动态扩展,DyVo 使得搜索引擎能够:
- 消歧 复杂术语 (US 与 us) 。
- 轻松 更新知识 (通过更新实体数据库而无需重新训练整个模型) 。
- 利用 LLM 进行推理,同时保持稀疏检索 (倒排索引) 的高效性。
对于信息检索领域的学生和研究人员来说,DyVo 展示了一个强大的设计模式: 将词表与模型架构解耦。 我们不再局限于模型预训练时所用的 token;我们可以动态地将世界知识精确地注入到需要它的地方。
](https://deep-paper.org/en/paper/2410.07722/images/cover.png)