面试 · 2025年6月25日 2

embedding(嵌入)模型和 reranker(重排序)模型的底层原理和数据处理示例

embedding(嵌入)模型和 reranker(重排序)模型的底层原理,并给出数据处理的例子,理解它们在信息检索或问答系统中的作用。


一、Embedding(嵌入)模型原理

1.1 原理简介

Embedding 模型的核心目标是将文本(如句子、段落、文档)转换为一个高维稠密向量(embedding vector)。这个向量能够捕捉文本的语义信息,使得语义相似的文本在向量空间中距离更近。

常见的 embedding 模型有:

  • Word2Vec、GloVe(词级别)
  • BERT、Sentence-BERT、Qwen3-Embedding(句子/段落级别)

1.2 工作流程

  1. 输入文本:如一句话“今天天气很好”。
  2. 分词/编码:将文本转为模型可处理的 token。
  3. 模型前向传播:通过神经网络(如 Transformer),输出一个定长的向量(如 768 维)。
  4. 向量归一化(可选):有时会对向量做归一化处理,便于后续相似度计算。

1.3 应用场景

  • 检索系统:将所有文档转为向量,用户查询也转为向量,通过向量相似度(如余弦相似度)检索最相关的文档。
  • 聚类、分类等。

1.4 数据处理例子

假设有如下文本数据:

文档ID文本内容
1今天天气很好
2我喜欢吃苹果
3今天天气不错

处理流程:

  1. 对每条文本调用 embedding 模型,得到向量:
  • “今天天气很好” → [0.12, -0.03, …, 0.88](假设为 768 维)
  • “我喜欢吃苹果” → [0.01, 0.22, …, -0.11]
  • “今天天气不错” → [0.13, -0.02, …, 0.87]
  1. 存入向量数据库,后续检索时,用户输入“天气如何”,也转为向量,与上述向量做相似度计算,返回最相关的文档。

二、Reranker(重排序)模型原理

2.1 原理简介

Reranker 模型的目标是对初步检索得到的候选文档进行更精细的相关性排序。它通常基于更复杂的深度学习模型(如跨编码器 cross-encoder),对“查询-文档”对进行逐一打分。

2.2 工作流程

  1. 初步检索:用 embedding 检索得到 top-N 个候选文档。
  2. 构造输入对:将“查询-文档”对输入 reranker 模型。
  3. 相关性打分:模型输出每个对的相关性分数。
  4. 排序:按分数对候选文档重新排序,返回最相关的结果。

2.3 应用场景

  • 检索系统的精排阶段(如搜索引擎、问答系统)。
  • 需要高精度相关性判断的场景。

2.4 数据处理例子

假设用户查询:“天气怎么样”,embedding 检索得到如下候选:

候选文档ID文本内容初步相似度
1今天天气很好0.92
3今天天气不错0.89
2我喜欢吃苹果0.10

Reranker 处理流程:

  1. 构造输入对:
  • (“天气怎么样”, “今天天气很好”)
  • (“天气怎么样”, “今天天气不错”)
  • (“天气怎么样”, “我喜欢吃苹果”)
  1. 输入 reranker 模型,得到相关性分数:
  • (“天气怎么样”, “今天天气很好”) → 0.98
  • (“天气怎么样”, “今天天气不错”) → 0.95
  • (“天气怎么样”, “我喜欢吃苹果”) → 0.05
  1. 按分数排序,最终返回最相关的文档。

总结

  • Embedding:将文本转为向量,做粗排、召回。
  • Reranker:对召回结果做精排,提升相关性。