BM42 诞生:语义搜索与关键词搜索的结合
什么是BM25?
BM25 是一种排名算法,用于信息检索和搜索引擎,以确定文档与给定查询的相关性。它根据文档中出现的查询词、这些词的频率以及文档的长度计算每个文档的相关性分数。
BM25 算法的关键组成部分包括:
- 词频 (TF):查询词在文档中出现的频率。词出现的次数越多,其 TF 值越高。
- 逆文档频率 (IDF):衡量查询词在整个文档集合中的稀有程度。稀有词的 IDF 值越高。
- 文档长度 (DL):文档中的单词数。较长的文档会受到惩罚,以避免它们优于较短的文档。
- 平均文档长度 (AVDL):集合中文档的平均长度,用于规范化文档长度。
BM25 公式将这些成分与两个可调参数 k1 和 b 结合起来,以控制词频和文档长度对相关性得分的影响。
BM25 的一些优点包括:
- 动态排名:与静态 TF-IDF 不同,BM25 根据术语分布调整其排名,使其更适应不同的文档类型和查询。
- 对长查询有效:通过解决术语饱和问题并考虑整体文档长度,BM25 对于长查询的表现往往优于 TF-IDF。
什么是BM42 ?
BM42 是一种新的稀疏嵌入方法,它将精确关键字搜索的优势与 Transformer 模型的智能相结合,实现混合搜索它的工作原理是从 transformer 模型中提取重要信息,而无需任何额外的训练,只要有预先训练好的 transformer 模型,它就可以支持任何自然语言。BM42 的主要优势包括:
- 高可解释性和文档推理速度
- 低内存占用
- 域内准确率高,尤其适用于小文档
- 能够处理未知标记并支持多语言搜索
- 最佳匹配能力
那么,为什么 BM42 很重要?
你可能听说过,嵌入式相似性在精确匹配关键字时会遇到困难,尤其是当关键字是一个罕见的词、名字或某种 ID 时。
通常,解决这一问题的方法是将嵌入相似性与精确关键词搜索(如 BM25)相结合。
然而,BM25 依靠的是纯粹的统计数据,并不了解词语的含义。
BM25 方法对于大型文档效果很好,但对于短文和短块,效果并不理想。
BM42是一种基于稀疏向量和Transformer注意的精确关键词搜索新方法。可以利用Transformer的智能,对句子中每个单词的重要性进行评分,同时还能将其与 IDF 等全集合统计数据相结合。
这种方法在最新发布的 Qdrant 中效果尤佳,它支持开箱即用的混合搜索,并能为您处理 IDF 计算。
尽管 BM42 具有诸多优点,但它并非万能药。对于没有块的大型文档,BM25 可能仍然是更好的选择。
可能有更智能的方法从 transformer 中提取重要性信息。可能有更好的方法来权衡 IDF 与注意力得分。