1. 混合检索技术解析:稀疏与密集向量的协同作战
在信息检索领域,混合检索已经成为提升搜索质量的关键技术。这种技术巧妙结合了两种看似对立但实则互补的向量表示方法:稀疏向量和密集向量。
1.1 稀疏向量:关键词匹配的精确制导
稀疏向量是传统信息检索的基石,其核心思想是将文档视为词的集合(bag-of-words),不考虑词序和语法结构。这种表示方法的优势在于:
- 可解释性强:每个维度直接对应一个具体词汇
- 计算效率高:适合处理大规模文档集合
- 精确匹配:对专业术语和命名实体识别准确
典型的稀疏向量实现包括TF-IDF和BM25算法。以BM25为例,其核心公式考虑了三个关键因素:
code复制score(D,Q) = Σ IDF(qi) * (f(qi,D) * (k1 + 1)) / (f(qi,D) + k1 * (1 - b + b * |D| / avgdl))
其中:
f(qi,D)是词qi在文档D中的词频|D|是文档长度avgdl是平均文档长度k1和b是调节参数
在工程实现上,稀疏向量通常采用坐标列表(COO)格式存储。例如,一个50,000维的稀疏向量可能表示为:
python复制(50000, [88, 666, 999], [1.2, 0.8, 1.5])
这表示在第88、666、999维度上的值分别为1.2、0.8和1.5,其余维度均为0。
注意:当处理专业领域文档时,建议对BM25的参数进行调优。k1通常取值1.2-2.0,b取值0.5-0.8,具体取决于文档长度分布。
1.2 密集向量:语义理解的深度挖掘
密集向量是深度学习时代的产物,通过神经网络将文本映射到低维连续空间:
- 语义捕捉:能够理解同义词、近义词和语义关联
- 上下文感知:考虑词语在句子中的实际含义
- 跨语言能力:支持不同语言间的语义匹配
主流模型包括:
- Word2Vec:浅层神经网络模型
- BERT:基于Transformer的双向编码器
- GPT:生成式预训练模型
一个典型的密集向量看起来像这样:
code复制[0.89, -0.12, 0.77, ..., -0.45]
与稀疏向量不同,这些数
