几种常见的搜索引擎检索模型

布尔模型

苹果 AND 公司:表示搜索既包含“苹果”,又包含“公司”这两个词的文档。
苹果 OR 公司:表示搜索包含“苹果”,或包含“公司”这两个词中任意一个的文档。
特点:简单粗暴

向量空间模型

把文档被分词后的每一个词当作向量空间的一个维度,把文档表示为一个线性矩阵,比较某个文档的矩阵和查询词的矩阵之间的余弦距离,距离越近,则相关性越大。最后根据相关性对搜索结果做排序。
注意事项:使用TF-IDF对部分词权重进行调整,对文档长度过大的做惩罚等。
特点:依赖于经验对模型的参数进行调整。

BIM、BM25、BM25F

这三个算法是逐步完善的关系
BIM
对于用户的一次搜索,假设拆分为三个词W1、W2、W3,假设索引库中的文档总数为100,有10个文档包含W1,20个文档包含W2,30个文档包含W3,则把W1的权重记为10%,W2的权重记为20%,W3的权重记为30%。假设有一个文档Doc1包含W1、W2两个搜索词,则它的相关性为10%,20%两个权重的汇总。依此对索引库中的100个文档算出相关性得分,把搜索结果按相关性得分排序即可。
BM25
在BIM的基础上增加了两个新的参考因素:1、搜索词在文档中的权重;2、搜索词自身的权重。
BM25F
在BM25的基础上增加考虑了文档中不同Field的权重。比如,标题中包含搜索比内容中包含搜索词要有更高的相关性得分。
特点:当前效果最好的模型,在商业搜索引擎中广泛使用。

统计语言模型

先引入一个概念:抽取概率
把一篇文档进行分词,统计其中每个词的出现频率进行计数,则一个词Word在文档Doc中的抽取概率为“Word词的计数/Doc中所有词的计数之和”。所谓抽取概率,就是在Doc中随机抽取一个词的话,Word被抽取到的概率。
假设用户搜索“野鸟装备 跑步”,野鸟装备在文档Doc1中的抽取概率1%,跑步的抽取概率为2%,则该次搜索中,Doc1的相关性得分为1%*2%。依此可以计算出所有文档的相关性得分,并按相关性得分对搜索结果进行排序。
特点:与BM25效果相当,但需使用大量语料库来训练,语料库最好与使用场景比较相似。

机器学习模型

机器学习与前面的模型相比,有几个显著的不同:
1、这里一般使用有监督的机器学习,因此需要对训练结果有监督反馈,用户对搜索结果的隐性评价(即点击)可以看作是一种监督反馈。
2、传统搜索计算搜索结果相关性一般也就考虑关键词匹配、词频等少数几个维度的数据,使用前面提到的模型已经足够,只有当考察的数据维度比较多时,机器学习的优势才会体现出来。比如像百度、Google这种大型的商业搜索引擎,考察的数据维度要多很多,比如链入链出链接数、网站类型、网站权威度、用户地理位置、历史搜索习惯、设备类型等等,据说Google考察的数据维度多达几百个。
特点:复杂度高,适合大型商业搜索引擎。

你可能感兴趣的:(数学之美,应用内搜索)