TF-IDF和BM25

TF-IDFBM25搜索引擎排序中常用到的两种Score计算方式,用于评估两个文档的相关度。本文会介绍下两种算法的具体逻辑,并在一些维度上进行对比。

TF-IDF

TF-IDF分为两部分:TF和IDF。

TF(Term Frequency)代表词频。词频是指当前词汇在文章中的次数。次数越多,一定程度说明这个词汇对于这个文章的重要性。

表示当前词在当前文档的出现的次数, 表示当前文档所有词出现的总次数。

IDF(Inverse Document Frequency)称为“逆文本频率”。逆文本频率是指该词汇在已有文档中出现过的文档的占比,词出现的频率越高则重要性越低,比如在金融领域的文档搜索中的"经济"一词。

总文档数, 包含词语 的文件数目

最后

取值区间[0,+∞]

总结

TF-IDF的理论基础:df维度单文档词频率越高越重要,idf维度文本频率越小越重要。

TF-IDF的劣势:

1)文档分词的准确性并没有绝对的保证

2)理论存在漏洞,不能覆盖所有场景,会导致精度丢失

BM25

BM25是基于TF-IDF 改进的算法,算法公式如下

为当前文档的长度, 为当前文档库中平均文档长度。

改进的地方,主要对关联度TF 做了调整。

1)增加参数 ,限制关联度的取值,建议取值

2)引入 ,把文档的长度作为关联度的一个影响因素。理论依据:篇幅越大的文档,单个词的词频对整个文档的影响因素越小。 作为一个参数因子,决定文档长度影响的程度。建议取值 。

IDF 部分定义有效不同,但整体理论是一致的。

总结

BM25 相对通常意义上 TF-IDF 在算法上有了更多可调参数,同时在大多数场景下BM25 有更好的表现,但文本关联度是一个复杂的业务领域,BM25 也并非绝对完美。

参考

维基百科 TF-IDF

维基百科 BM25

BM25 vs Lucene Default Similarity

BM25 The Next Generation of Lucene Relevance

你可能感兴趣的:(TF-IDF和BM25)