现在的位置: 首页 > 综合 > 正文

搜索下一站:个性化搜索基本方法和简单实验

2013年10月08日 ⁄ 综合 ⁄ 共 4227字 ⁄ 字号 评论关闭

 

腾讯soso 文/王亮

 

      所谓的个性化搜索,就是将用户输入的关键字和该用户的个人偏好联系起来进行查询,据此猜测该用户可能想要得到的信息,从而将该用户最可能需要的信息显示在最前面。

      个性化搜索研究早在上世纪九十年末就已有之,相关的方法和研究已经非常多,但商业化的大规模应用尚未出现。其根本原因在于很少有用户愿意直接或间接提供个人信息,像目前很多实验系统都是采集IP的点击记录、cookie等信息构建用户模型,这样的模型显然也很难精确。

      但随着社区网络的快速发展,以用户为核心的UGC内容逐步成为互联网内容的主流,个性化搜索实现的主要障碍正在逐步消失。当前“Facebook+BingVs “Twitter+Google” 正在如火如荼的进行中,个性化很可能再次改变搜索界的版图。


基本需求

     个性化搜索的需求也比较明确,好比前一段时间,“章鱼”属于热门检索词,一些喜爱运动的童靴想搜索到“章鱼哥”和世界杯的故事,而一些生活化的mm,可能主要是需要如何做章鱼小丸子。但前一段“章鱼哥”仙去的那几天,大部分搜索引擎给出“章鱼”的结果,靠前面的基本都是关于体育的。这正是当前搜索引擎排序的基本思路,满足“大多数人”的需要。

      但目前社会正逐步趋向于“碎片化”,这种“大多数人”比例以前可能是80%,现在或未来可能只占30%。而从用户的角度来看,大部分用户都是“懒惰”的,一般只输入13个词,而且不懂not/and/or,很难充分表达自己的信息需求,但现在的搜索只提供的千人一面的结果,不考虑个体的差异性,无关网页就很多。

      从满足“大多数人”的需求逐步转向为每个人“量身定制”搜索,以提高用户的搜索体验,这正是个性化搜索要做的。


个性化搜索基本方法

      个性化搜索的“实质”其实就是对用户的检索词进行了“自动”的“扩展”。这种“扩展”基于对不同用户自身信息的分析。

      个性化搜索流程基本都分为三步:

(1) 根据用户检索,获得原有的搜系统的检索结果集。

(2) 根据用户模型和检索结果集,在线的计算每个结果文档的个性化权值。其实质是户模型和文档的“相似度”计算,将用户最“希望”得到的结果加权,这正是个性化搜索的核心。

(3) 与其它排序权值结合,对搜索结果进行重排。

 

      个性化搜索系统的基本结构图都差不多,如下图1所示:

 

      从图中可以看到,个性化搜索需要解决下面几个关键问题:

(1) 如何构建用户模型?即如何准确的描述用户的兴趣和特色,包括长短期兴趣等。

(2) 搜索个性化如何实现?即如何进行个性化权值的计算。

(3) 除了技术之外,隐私问题也是个性化搜索需要格外注意的问题,像Google前一段时间就因为Toolbar收集个人信息而受到多方指责。如果这个问题处理不好,即使算法方案再优秀,也只能呆在实验室里。

 

构建用户模型

      首先要采集用户的信息,很多试验系统的信息来源有用户注册信、访问日志,查询信息等。而社区时代,则有用户自己发表的博客、微博等UGC信息,这些信息显然更能代表用户的兴趣。

      采集到用户的信息后,就可以构建用户模型,目前主要有基于兴趣的模型和基于行为的模型两种。基于兴趣模型通常用用向量空间模型构建,就是利用特征词及其权值来表示用户的兴趣,其它一些实验模型有分类模型、语义网模型等。基于行为的模型则主要描述用户浏览模式或访问模式。

搜索个性化的实现

      实际上就是利用用户模型和结果文档集进行相似度计算,作为结果排序的要素,对结果进行过滤和重新排序。其基本方法和目前一些推荐系统中使用的方法基本一致,区别主要在于个性化搜索的“推荐”都是在线计算的:

  • 基于“规则过滤”。即基于一些规则,对结果进行过滤。如目前的一些地图搜索,就是根据IP的不同,自动选择搜索的城市。
  • 基于“内容过滤”。在线计算用户模型和结果文档模型的相似度,作为搜索结果排序的要素。典型有http://www.collarity.com/等,还有百度知道的问题推荐,也是利用搜索记录,推荐一些个性化的问题。
  • 基于“协同过滤”。利用用户之间的相似性进行检索结果的过滤和重排。像现在的Bing就是可以优先显示Facebook好友Like推荐的结果。

 

      实际的个性化搜索系统往往是不同方法的综合,如GoogleKaltix算法,基本思路就将具有类似兴趣爱好的人归为一组,率属于不同组的用户给出不同排序的结果,同时还利用了IP、位置等信息进行基于规则的过滤。几种个性化搜索实现方式如下图所示:

 

我们的研究实验

      腾讯有着丰富的UGC资源,这些我们进行个性化搜索研究实验提供了的良好的条件。如目前的Q-zone社区搜索就采用了基于好友关系链的协同过滤方法,使好友结果优先,由于好友的推荐远比一些挖掘算法得到的推荐靠谱的多,这种个性化搜索效果就非常好。有兴趣的童靴可以留意下,并欢迎提出改进意见。

      我们研究实验系统则主要选择和实现一些论文中算法,目前主要以分类算法为基础,实现搜索的个性化。

      实验的用户和文档模型均采用分类概率模型,目前设置了财经、教育、汽车等9个类别。文档和用户都是用一个9维的向量表示,每个向量元素为属于各个类别的概率:

用户模型:P(people)=(y0,y1,…,y8)

文档模型:P(page)=(z0,z1,…,z8)

      其中文档模型按照SVM分类中的逻辑回归方法计算分类概率,对于很短的微博,则可采用贝叶斯分类计算分类概率。用户模型则根据用户发布博客等各类文章的类别比例估算。

      个性化实现的方法:将结果文档模型与登录用户模型进行相似度计算,实现“内容过滤”。将结果文档作者模型与登录用户模型进行相似度计算,实现“协同过滤”。然后将两个结果进行线性相加,得到最终的个性化排序权值:

内容过滤:rank1=sim(P(people),P(page))=cos<P(people),P(page)>

协同过滤:rank2=sim(P(user),P(author))=cos<P(user),P(author)>

最终的个性化权值:rank=a*rank1+(1-a)rank2,0<a<1

其中sim表示相似度计算,目前采用余弦距离,参数a根据实际需要进行调整。

      该个性化搜索的基本算法非常简单,实现也比较容易。采用分类方法构建用户模型的最大好处就是维度低,分类一般都在十几维以内,在线计算非常容易,而且可以很容易的设置多级分类,构建不同粒度的用户模型。

      而按照一些文章中的说法,概率模型和一般的特征向量模型相比,还可更好地体现用户兴趣的多样性和变化。当然,还有最重要的一点,就是该模型提供的仅仅是一个十几维的数字,只体现大的兴趣分类,隐私敏感度较低,即使向外提供个性化云服务,可能也不会有太多的争议。

      在此基础上,还可对该方法进行一定的扩展,如利用检索词的分类概率确定“大众兴趣”模型,和个人用户模型进行叠加;根据用户发布某个类别的文章数,确定一个专家指数,作为计算协同过滤的因素;根据用户发表的文章总数确定模型的可信度;将用户的个人注册信息和query等折算为对应类型的文章数,构建长短期兴趣等。

      实验系统建好之后,遇到一个重要问题就是如何对搜索的效果进行评测,个性化搜索的效果涉及不同的用户、不同的检索词、不同的数据集,还没有一个统一的评测标准。而作为实验系统,也很难进行A/B评测等的在线的评测,因此先期主要构建特定的小规模数据集进行评测。

目前主要参考TREC的“主题(Topic)”查询测试方法及进行评测,其基本思路就是仿真用户的信息需求,以各种方式、各种角度陈述,并利用结构化的字段呈现,形成一个查询主题,然后比较查询结果和查询主题,人工或者自动判断结果的相关性。我们的一个典型的“查询主题”如下所示:

<top> 1  //检索主题编号

<topic>章鱼  //检索词

<user Interests> 4//用户类型,体育爱好者,评测中构建虚拟用户,只有一个兴趣分类

< Narrative >章鱼保罗预测德国击败英格兰章鱼保罗,它生于英国,在德国长大,保罗在南非世界杯上已经“成功预测”了德国胜澳大利亚、加纳,输给塞尔维亚的小组赛赛果。它预测的欧洲杯的赛事,命中率也有8成。出道两年的章鱼保罗在2008欧洲杯和2010世界杯两届大赛中,预测14次猜对13次、成功率飙升至92%............ //需要的文档样例,检索的目的的具体描述等。

      测试数据主要利用现有的一些搜索引擎结果构建,即输入检索词,抽取前几百个结果作为测试数据集,这样可以包含现有搜索的排序因素,方便实验效果评估。

      我们评测时采用两种测试方法:

(1) P@10方法,即判断前10个结果的精度,可以采用人工判别,也可以采用相似度方法判别,即判断前10个检索结果和< Narrative >字段的相似度 ,然后取其平均值作为精度指标。

(2) MRR方法,即第一个相关的答案序号倒数,该“相关”度可以人工判别,或者设置相似度阈值,进行自动判别。

 

      具体评测结果如下所述:

 

      该评测中,未登录时,只考虑文本相关性。登陆时,综合考虑文本相关性和“内容过滤”计算的相关性。从图中可以看到,登陆后的个性化结果大部分都好于未登录的检索结果,说明搜索的个性化还是有效果的。

 

需求为先,应用为王

      搜索的个性化发展趋势已经非常明确,“个性化”技术是否能让后来者实现跨越式发展?答案应该是否定的。市场如战场,先进的技术可以让企业的武器更为精良,但“武器”从来都不是决定战争胜负的最关键因素。如何把握用户需求,用最合适的技术去最好地满足需求才是关键所在。

 

附记:

      社区内容已经逐步成为互联网上最主要的内容,但这些内容存在缺少链接、“质量”普遍较差等特点,传统的文本相关性和PageRank等方法都缺少用武之地,但社区内容又包含了人与人之间的关系,人和文章之间的关系等新的特征。如何“整理”这些信息,不仅是搜索企业的挑战,更是整个互联网发展的挑战。在社区搜索研究方面,soso和国内外多所知名高校都有着深入的合作,并积极参与和资助了CIKM等知名的学术会议,介绍相关的问题和研究成果。未来,soso也会在条件允许的情况下,向研究、开发者提供社区搜索相关语料和基本算法库等内容。

 

      社区搜索,是挑战,更是机遇。

 

 


【上篇】
【下篇】

抱歉!评论已关闭.