embedding(嵌入)模型和 reranker(重排序)模型的底层原理,并给出数据处理的例子,理解它们在信息检索或问答系统中的作用。
一、Embedding(嵌入)模型原理
1.1 原理简介
Embedding 模型的核心目标是将文本(如句子、段落、文档)转换为一个高维稠密向量(embedding vector)。这个向量能够捕捉文本的语义信息,使得语义相似的文本在向量空间中距离更近。
常见的 embedding 模型有:
- Word2Vec、GloVe(词级别)
- BERT、Sentence-BERT、Qwen3-Embedding(句子/段落级别)
1.2 工作流程
- 输入文本:如一句话“今天天气很好”。
- 分词/编码:将文本转为模型可处理的 token。
- 模型前向传播:通过神经网络(如 Transformer),输出一个定长的向量(如 768 维)。
- 向量归一化(可选):有时会对向量做归一化处理,便于后续相似度计算。
1.3 应用场景
- 检索系统:将所有文档转为向量,用户查询也转为向量,通过向量相似度(如余弦相似度)检索最相关的文档。
- 聚类、分类等。
1.4 数据处理例子
假设有如下文本数据:
| 文档ID | 文本内容 |
|---|---|
| 1 | 今天天气很好 |
| 2 | 我喜欢吃苹果 |
| 3 | 今天天气不错 |
处理流程:
- 对每条文本调用 embedding 模型,得到向量:
- “今天天气很好” → [0.12, -0.03, …, 0.88](假设为 768 维)
- “我喜欢吃苹果” → [0.01, 0.22, …, -0.11]
- “今天天气不错” → [0.13, -0.02, …, 0.87]
- 存入向量数据库,后续检索时,用户输入“天气如何”,也转为向量,与上述向量做相似度计算,返回最相关的文档。
二、Reranker(重排序)模型原理
2.1 原理简介
Reranker 模型的目标是对初步检索得到的候选文档进行更精细的相关性排序。它通常基于更复杂的深度学习模型(如跨编码器 cross-encoder),对“查询-文档”对进行逐一打分。
2.2 工作流程
- 初步检索:用 embedding 检索得到 top-N 个候选文档。
- 构造输入对:将“查询-文档”对输入 reranker 模型。
- 相关性打分:模型输出每个对的相关性分数。
- 排序:按分数对候选文档重新排序,返回最相关的结果。
2.3 应用场景
- 检索系统的精排阶段(如搜索引擎、问答系统)。
- 需要高精度相关性判断的场景。
2.4 数据处理例子
假设用户查询:“天气怎么样”,embedding 检索得到如下候选:
| 候选文档ID | 文本内容 | 初步相似度 |
|---|---|---|
| 1 | 今天天气很好 | 0.92 |
| 3 | 今天天气不错 | 0.89 |
| 2 | 我喜欢吃苹果 | 0.10 |
Reranker 处理流程:
- 构造输入对:
- (“天气怎么样”, “今天天气很好”)
- (“天气怎么样”, “今天天气不错”)
- (“天气怎么样”, “我喜欢吃苹果”)
- 输入 reranker 模型,得到相关性分数:
- (“天气怎么样”, “今天天气很好”) → 0.98
- (“天气怎么样”, “今天天气不错”) → 0.95
- (“天气怎么样”, “我喜欢吃苹果”) → 0.05
- 按分数排序,最终返回最相关的文档。
总结
- Embedding:将文本转为向量,做粗排、召回。
- Reranker:对召回结果做精排,提升相关性。
?
?