Tuesday, June 5, 2012

《搜索引擎信息检索实践》 notes 之showing the result

此章节主要描述通常的搜索引擎的搜索结果的组成部分,以及可能涉及的比较关键的问题,问题的解决简单提及,并未深究。

1.结果页和snippet


Google搜索flower的结果,其中最上面有底色的是广告。


搜索结果由一系列的文档摘要组成,每条摘要包括title,url,cache,snippet(概述文档内容),匹配的关键字往往会高亮(加粗或者其他颜色),而这其中snippet对用户判断搜索结果是否相关至关重要,下面就来看一下相关的知识。

snippet generation
snippet是文本摘要提取的一个分支。区别在于snippet产生不仅要包括和query无关的摘要,而且还要包括和query相关的摘要。

文本摘要技术始于1950s(Luhn),他的方法是基于重要度因子(significance factor,即为SF)对文档中的所有句子进行排序,选择top的几个句子作为摘要。而句子的SF取决于word的SF。而重要的word是指中等频率的word。
计算句子的SF方法如下

  • 找到重要的word

  • 找到重要的text span,text span由重要的word,和其他word组成,而其中两个重要的word中间的非重要的word数目不能超过k(通常为4),然后计算text span的重要度,为m2/n,m为重要的word的个数,n为text span的长度

  • 句子中重要度最大的text span的重要度即为句子的重要度因子

snippet的生成可以看成是Luhn的方法在寻找重要的word和如何选择句子的阶段做一些变体。如选择重要word,计算word的频度的时候,可能会针对文档中句子的个数做一些平滑。而如何选择句子往往会考虑到句子在文档中的位置信息,是否是标题,是否是第一行,句子中的query term的个数等等。在网页中,有时候考虑metadata,这些数据中包括description,而其他的如wiki,则有对应的简单的入口可以作为摘要。

最重要的一点是,query中的所有term尽可能出现在snippet中,以表明query和文档的关系。

2.搜索和广告


广告是搜索引擎的收入来源,搜索结果中展示广告称为sponsored search。

sponsored search并不是简单的文本搜索,需要考虑到更多经济学和博弈论相关的知识。
先从retrieval的角度来看,问题的关键是做短文本之间的匹配,query和广告都很短,假如做匹配或者相似度计算,内容显得单薄,因此文本扩展的技术非常重要,文本扩展通常使用的技术包括两种:

  • query reformation,利用session log来扩展出query reformation的list来代表query

  • 使用搜索结果扩展,将广告的文本或者query的文本的搜索结果来代表query或者广告

关于排序,广告的排序往往会考虑广告的质量和bid,而质量往往和相关性和点击率相关,即大概是rank by(ctr * relative * bid)

3.结果聚类


记得上学的时候我做过相关的工作,不过是基于语义网的对象识别,相对来说可能容易一些。而对于通用搜索引擎,据我所知,目前貌似主界面没有采用聚类的方式展示的,不过最近google的knowledge graph展示了比聚类更好的对象识别技术。

结果聚类的时候两个问题至关重要

  •  首先是效率,因为聚类往往是实时的,算法的效率要高,即使有cache,大多数的query还是需要在线计算

  • 结果的可理解性,目前有两种主流方式


    • 类别实现没有,从算法聚类的结果总抽取word来代表聚类,有点是简单,缺点是可理解性差

    • 事先定义类别,然后将聚类结果和类别进行match,优缺点同上述方法想法

2 comments: