欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

搜索2.0:利用用户点击记录改善搜索结果 搜索引擎百度Google工作F# 

程序员文章站 2022-07-05 23:50:01
...

/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/

搜索2.0:利用用户点击记录改善搜索结果

Author:张俊林

timestamp:20077

现在是WEB2.0时代了(据真实传言好像已经快4.0了,比微软升级还快,我估计年底前会出现web5.0的说法,大家赶紧想想应该是什么,争取第一个提出这个概念,为中国争光),大家都在讲UGC(用户产生内容。My definition of UGC2.0:Used Garbage Content(come on,just a joke)),如果从利用用户产生的内容来提高网站效果这个角度看,其实搜索引擎早几年前已经迈入WEB2.0的行列了,因为搜索引擎会记录用户发出的查询以及用户点击记录,然后利用这些用户产生的搜索记录来进一步改善其他用户的搜索结果。

尽管我们没有察觉,其实每次用户向搜索引擎发送的查询以及之后的用户行为都已经记录在案了(个人隐私问题?其实这个很好解决,以后把“个人隐私”这个词汇从人类语言中剔除,自然也就不会有个人隐私问题),比如一个用户是“快男”(注:是快乐男声,不是快枪手男人)的粉丝(一个疑问:为什么所有选秀节目的*粉丝<personname productid="都是" w:st="on">都是</personname>女士?),那么发出搜索“快男”,搜索引擎返回结果后,用户点击了搜索结果前三项的URL(广告时间,请不要转台,后面结果更精彩)

陈楚生夺快男冠军 苏醒称亚军不输冠军

印记【79】快乐男声尘埃落定:五强点评

湖南台工作人员自爆快男三进二种种黑幕

搜索引擎会在后台记录如下:

<159.226.200.1,快男,(http://www.onejoo.com/story/80502/1),

http://www.onejoo.com/story/80485/2,)(http://www.onejoo.com/story/80429/3>

其含义是:159.226.200.1这个用户在搜索快男的时候点击了后面这三项URL,每个URL在搜索结果中的排名分别是123名。

也就是说,用户向搜索引擎发出一个查询,搜索引擎返回搜索结果,记录用户针对这个查询点击过哪些网页,点击过的网页会被认为在某种程度上是和这个查询相关的网页,在下次另外一个用户发出同一查询的时候,可能会提高(boost)这些用户点击过的网页的排名。(其实,搜索引擎也可以利用这些信息来进行个性化搜索的工作)

为了正式真实证实这是真事(这个绕口令一点都不拗口吧:),我们看看百度和GOOGLE是否有这个过程。

我们先看百度。向百度提交查询“玩聚”,然后查看搜索结果的页面源代码,可以看到第一条搜索记录的源代码片段为:

<td class=f><a onclick="return c('b4d6',this.innerHTML,this.href,1)" href="http://www.onejoo.com/" target="_blank">

用户行为记录就是这个onclick了,(<a onclick="return c('b4d6',this.innerHTML,this.href,1)),用户点击的时候会激发onclick行为,其中this.href应该是代表href=http://www.onejoo.com/这个URL,数字1代表是本次搜索排在第一位的结果。诸如此类。

再看看GOOGLE,同样的查询,可以看到第四项搜索结果的源代码:

<a href="http://www.onejoo.com:8000/" target=_blank class=l onmousedown="return clk(0,'','','res','4','')"><font color=CC0033>玩聚</font>(OneJoo) - 微内容聚合

这个onmousedown做的就是类似的事情了。(onmousedown="return clk(0,'','','res','4','')

这个方法无疑会在某种程度上改善用户的搜索体验,但是它依赖于一个基本假设:用户点击过的URL是和当前查询相关的页面。其实很明显这个假设是容易遭受理智的以及不理智的攻击的,也就是说这个方法存在着问题,而且不是一个问题,也不是三个问题,是两个问题:

问题1:即使用户在某次搜索结果里面点击了某个网页,但是并不代表这个网页一定是和用户发出的查询相关的,完全有可能用户点击进去以后才发现其实这个网页不是他想要的。所以如果把无关点击记录下来以后向其他用户推荐,这些信息可能是噪音,会导致下次的结果更不准确,所以如何去除这种噪音是一个研究点。

问题2:从另外一个角度,即使有些没有点击过的搜索结果也有可能是相关的,但是这些信息没有被利用起来,所以如何识别那些没有点击过但是也是很相关的网页也是其中一个研究点。

问题3UGC,你来提。

其实其实今天才发现我挺爱用“其实”这个词的,这是一个坏习惯,以后一定要避免滥用这个词汇,其实这应该不难做到),记录用户的点击行为除了做以上用途外,还有很多可以探索的用途,比如个性化搜索,比如以下的用途:

1.查询-查询关系:这个可以用来进行用户查询推荐(query suggestion)用户想搜索引擎提交查询,可以利用查询之间的相似关系来向用户推荐其它可能的查询;(欲知详情,请转台到 搜索引擎设计实用教程(4)-以百度为例 之四:相关提示功能

2.查询-相关文档关系:

可以利用用户行为记录推理出有趣的结论,比如假设两个不同查询的用户点击文档集合,如果两个点击文档集合很大程度是重合的,那么说明两个查询是语义上类似的或者等价的;

3.文档-查询关系

从某篇被点击过的网页来说,可能有不同的查询都导致某个网页被点击,那么可以把这些查询和这个网页绑定起来,说明他们之间有相关关系;