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

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

Author:张俊林

timestamp:2007年7月

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

尽管我们没有察觉,其实每次用户向搜索引擎发送的查询以及之后的用户行为都已经记录在案了(个人隐私问题?其实这个很好解决,以后把“个人隐私”这个词汇从人类语言中剔除,自然也就不会有个人隐私问题),比如一个用户是“快男”(注:是快乐男声,不是快枪手男人)的粉丝(一个疑问:为什么所有选秀节目的狂热粉丝都是女士?),那么发出搜索“快男”,搜索引擎返回结果后,用户点击了搜索结果前三项的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在搜索结果中的排名分别是1,2,3名。

也就是说,用户向搜索引擎发出一个查询,搜索引擎返回搜索结果,记录用户针对这个查询点击过哪些网页,点击过的网页会被认为在某种程度上是和这个查询相关的网页,在下次另外一个用户发出同一查询的时候,可能会提高(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:从另外一个角度,即使有些没有点击过的搜索结果也有可能是相关的,但是这些信息没有被利用起来,所以如何识别那些没有点击过但是也是很相关的网页也是其中一个研究点。

问题3:UGC,你来提。

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

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

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

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

3.文档-查询关系

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

搜索2.0:利用用户点击记录改善搜索结果相关推荐

  1. ajax仿百度搜索效果,利用autocomplete.js实现仿百度搜索效果(ajax动态获取后端[C#]数据)...

    实现功能描述: 1.实现搜索框的智能提示 2.第二次浏览器缓存结果 3.实现仿百度搜索 * { margin: 0px; padding: 0px; } #wrapper { height: 100% ...

  2. 蒙特卡洛树搜索_Query 理解和语义召回在知乎搜索中的应用

    分享嘉宾:方宽 知乎 算法工程师 文章整理:艺饭饭 内容来源:DataFunTalk 出品平台:DataFun 注:欢迎转载,转载请留言. 导读:随着用户规模和产品的发展, 知乎搜索面临着越来越大的 ...

  3. 【阮一峰博客学习记录1】追踪用户点击

    使用普通异步的方式发送用户点击日志会不成功,使用同步的方式发送会导致网页延迟.所以有了这个API--navigator.sendBeacon() 作用与优势 就算是关闭浏览器的操作,都可以腾出时间进行 ...

  4. 利用用户行为数据——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  5. 推荐系统实践读书笔记-02利用用户行为数据

    推荐系统实践读书笔记-02利用用户行为数据 为了让推荐结果符合用户口味,我们需要深入了解用户.如何才能了解一个人呢?<论语·公冶长>中说"听其言,观其行",也就是说可以 ...

  6. 实现搜索框记录搜索历史_三个案例告诉你:“搜索框”该如何设计?

    不管是在2C还是2B产品,"搜索"是产品中最常见且必不可少的功能模块之一.对于用户来说,在众多功能模块和信息层级中如何快速定位到目标,通过输入已知的关键词进行搜索是最便捷的方式,没 ...

  7. 《推荐系统实践》样章:如何利用用户标签数据

    <推荐系统实践>样章:如何利用用户标签数据 推荐系统的目的是联系用户的兴趣和物品,这种联系需要依赖于不同的媒介.GroupLens在文章1中认为目前流行的推荐系统基本上通过三种方式来联系用 ...

  8. 利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏

    [先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...

  9. 推荐算法--利用用户行为数据(02)

    文章目录 目录 1.什么是用户行为数据? 1.1用户行为分类 2.用户行为数据如何使用? 2.1 用户活跃度和物品流行度的分布 2.2 用户活跃度和物品流行度的关系 2.3 协同过滤算法 3.实验设计 ...

最新文章

  1. 【视频】V4L2之ioctl
  2. Python爬虫并自制新闻网站,太好玩了
  3. nagios 监控平台搭建
  4. PostgreSQL(三)pgpool管理PostgreSQL集群下主机宕机后的主从切换
  5. 零基础也可以实现“机器同传翻译”!
  6. 字符串太占内存了,我想了各种奇思淫巧对它进行压缩
  7. php socketconnect连接失败_PHP设计模式之模板方法模式
  8. dw中HTML修改背景图片,dreamweaver将一个图片设定背景,用代码怎么写?
  9. Qt工作笔记-QCustomPlot的基本使用
  10. Team Foundation Server 的 Service Pack 1(中文)也发布了,
  11. 小米10首销战绩公布:嘴上说不买身体却很诚实
  12. Win10,Win7,WinServer2012,WinServer2008内存最大支持
  13. java vo转map_javabean实体类对象转为Map类型对象的方法(转发)
  14. 医院MR图像的pixel array 数字过大解决方案
  15. 【华为认证考试扫盲】超详细的华为认证入门基础知识,考证必看。
  16. Java实例化对象的几种方式
  17. (附源码)计算机毕业设计SSM基于远程协作的汽车故障诊断系统
  18. 计算机函数求奖学金,Excel函数在高校奖学金评定中的实践应用参考.pdf
  19. Java反射05 : 修饰符Modifier静态方法学习示例
  20. 2021-2027全球与中国双断面隔离器市场现状及未来发展趋势

热门文章

  1. 秒杀多线程第十一篇 读者写者问题
  2. C++中基于Crt的内存泄漏检测
  3. 终于把CString转化为char*了
  4. ClickHouse 数据存储原理:MergeTree引擎
  5. Linux内存占用分析的几个方法,你知道几个?
  6. 程序员十大心愿,程序员:你这么了解我的心声的嘛!
  7. Kafka监控架构设计
  8. 软件开发提效哪有那么容易,都是坑啊~
  9. 【线上分享】云游戏面对低延迟挑战的实践
  10. 【视频编解码:新标准 新应用】未来可期