您的位置:首页 > 其它

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

2016-05-14 10:24 239 查看

布尔模型

苹果 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考察的数据维度多达几百个。

特点:复杂度高,适合大型商业搜索引擎。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: