标签: elasticsearch nlp information-retrieval cosine-similarity sentence-similarity
我知道之前曾有人问过这个问题,但到目前为止,没有人给出明确的答案。我真的很好奇,为什么Elasticsearch决定放弃余弦并使用BM25作为默认相似算法。
到目前为止,我了解余弦是基于文档的分布,因此将其用于查询的vs文档不是一个好主意。与tf-idf余弦相比,BM25对短(或长)文档的相关性更好。
基于所说的话,我仍然不清楚这些算法有何不同,因为它们都使用基于查询条件的tf-idf。我知道文档的大小会影响idf,但是为什么BM25更好呢?
这些算法有何不同,它们的优缺点是什么?