01学习目标
- 会选嵌入模型与相似度度量
- 理解 HNSW/IVF-PQ 的取舍
- 会做混合检索与重排
建议先学:分词与嵌入 · 无监督学习:聚类、降维与 EM
02要掌握的算法
每张卡都有原始论文、前置和学习资料。
BM25 关键词检索BM25 按词频与稀有度给文档打分的经典关键词检索。 2009核心 句向量(Sentence-BERT)Sentence Embeddings (Sentence-BERT) 把整句话编码成一个向量,用余弦相似度比较语义。 2019核心 稠密段落检索 DPRDense Passage Retrieval (DPR) 用双塔编码器把问题和段落映射到同一空间进行检索。 2020核心 ColBERT 后期交互ColBERT (Late Interaction) 保留每个词的向量,在检索时做细粒度匹配,兼顾精度与速度。 2020核心 HNSW 图索引HNSW (Hierarchical Navigable Small World) 多层“小世界”图结构,实现亿级向量的毫秒级近似最近邻搜索。 2016核心 乘积量化 PQProduct Quantization (PQ) 把向量切段、每段用小码本编码,压缩几十倍还能快速算距离。 2011核心 FAISS GPU 相似度搜索FAISS (Billion-scale GPU Similarity Search) Meta 开源的十亿级向量检索库及其 GPU 算法。 2017扩展 套娃表示学习Matryoshka Representation Learning 一个向量的前几维本身就是可用的小向量,可按需截断。 2022扩展 对比学习与 InfoNCEContrastive Learning (InfoNCE) 拉近正样本对、推远负样本,学到好的嵌入。 2018核心 交叉编码器重排(BERT Reranker)Cross-Encoder Reranking 把查询和文档拼在一起送进 BERT 打相关分,给初筛结果重新排序。 2019核心
03必读论文
- The Probabilistic Relevance Framework: BM25 and Beyond ↗2009 ✓ 已核实
- Dense Passage Retrieval for Open-Domain Question Answering ↗2020 ✓ 已核实
- Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs ↗2016 ✓ 已核实
- ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT ↗2020 ✓ 已核实
04课程与视频
- Sentence Transformers 文档 ↗官方文档EN
- FAISS Wiki ↗官方文档EN
- Pinecone:HNSW 讲解 ↗博客图解EN
- Pinecone:Product Quantization 讲解 ↗博客图解EN
05动手:项目、代码与练习
全部是官方或作者公开的免费页面,多数能在浏览器或免费 Colab 里直接运行。
动手项目
对同一批 1 万篇文档分别用 BM25、向量、混合检索,在 50 个标注问题上比较 Recall@10。
- 1
- 2
- 3
06自测题
先自己想,再点开看答案。
HNSW 的主要代价?
内存占用较高、构建较慢。
为什么要混合 BM25 与向量?
关键词精确匹配与语义匹配互补。
重排器一般比召回模型慢还是快?
更慢更准,只用于少量候选。
所在人群路线:应用开发者