稠密向量 与 稀疏向量
这篇笔记从 RAG 检索质量出发,解释文本向量化时常见的稀疏向量与稠密向量两条路线:前者维度通常等于词汇表规模,只有少量非零值,代表方法是 BM25 和 TF-IDF;后者维度较低但几乎每一维都有实数值,常由 BERT、BGE、OpenAI Embedding 等模型生成。内容重点说明 BM25 只基于已分词后的 token 计算 TF、IDF 和文档长度分数,本身不负责分词,因此中文、日语、泰语、阿拉伯语、德语复合词等场景会受到分词或形态处理质量影响。稠密向量部分则说明 Embedding 模型通过对比学习把语义相近文本拉近、语义不同文本推远,并列出余弦相似度、点积、欧氏距离等常见匹配方式。对比部分强调稀疏检索适合专有名词、数字和明确短语,解释性强且对精确关键词敏感;稠密检索更适合自然语言和模糊语义查询,但可能在稀有词、精确匹配和算力成本上存在短板。实践建议落在混合检索:并行使用 BM25 与 Embedding 召回,再通过 RRF 等方法融合排序,借助 Milvus、Qdrant、Weaviate 等向量数据库实现更稳健的 RAG 检索链路。

