在淘宝搜索中,相关搜索也被称做查询推荐,也就是说用户输入某个查询后,淘宝搜索引擎向用户推荐与用户输入查询语义相关的其他查询。用户对于自己的信息需求,不一定能够准确地想到合适的搜索词来表达搜索意图,相关搜索可以给用户提示,如果用户觉得淘宝搜索引擎推荐的查询更适合自己的搜索意图,那么会改善用户体验。
相关搜索目前已经是淘宝搜索引擎提供的标准配置功能,图1是输入“麻将”作为查询请求时,淘宝搜索引擎的相关搜索提供的结果。
给定用户查询,淘宝搜索引擎如何计算相关查询呢?目前主流的做法有两类:基于查询会话的方法和基于点击图的方法。
1、基于查询会话的方法
对于原始搜索日志,淘宝搜索引擎会对其做初步整理,而查询会话是其中一种整理方式。每个查询会话包含了某个固定用户在较短时间内连续发出的查询流,一般而言,在同一查询会话内的查询相互之间存在语义联系,而基于查询会话来进行相关搜索推荐的方法就是利用了这一点。
图2是这种方法的简明示意图。淘宝搜索引擎将原始搜索日志转换为大量的查询会话,之后采用关联规则挖掘等各种数据挖掘算法来对查询会话进行统计处理,挖掘结果往往是一批查询对<Qx,Qy>,这代表Qx和Qy在查询会话里是经常一起出现的,所以当用户输入其中某一个查询的时候,可以推荐给用户另外一个查询作为相关搜索结果。
这种方法思路简单,但是存在两个缺点:一个是查询会话的准确切割有一定难度;另外,因为查询会话是以同一用户的输入为基准的,所以在挖掘结果里不能体现不同用户的查询之间的关联。
2、基于点击图的方法
点击图是对原始搜索日志整理后的另外一种中间结果,很多算法使用点击图来进行查询推荐。尽管方法很多,但是其基本指导思想是相同的:如果两个查询各自对应的点击中,有很大比例是相同的,那么说明这两个查询在语义上紧密相关,可以作为相互推荐的相关查询。
图3是一个较为通用的利用点击图来探寻语义相关查询的方法示意图。总的来说,这种方法由两个步骤构成。首先,根据点击图可以将查询表示为其对应点击链接的权重向量,比如图中的q2这个查询,因为用户发出这个查询后点击过D2和D3两个链接,且其点击次数分别是10和8,所以可以构造向量[0,10,8,0],向量的每一维度代表一个链接,以点击次数作为对应的权重。在做出以上处理后,就可以进行第2步,计算任意两个查询之间的相似度,在此基础上采用不同的聚类算法可以将查询聚合成大小不同的类别,被聚合到同一类别内的查询可以相互作为相关搜索的结果推荐给用户,比如在图3的例子中,用户输入查询q2,可以将q3和q4作为相关搜索的结果推荐给用户。
上述是一个通用的基本算法框架,不同的研究者提出了各种扩展算法,比如在设定查询的权重向最时,不仅考虑点击关系,还可以将点击链接的网页内容相似性考虑进来等,同时,在聚类算法方面也可以采用不同的方法来实现具体系统。
基于点击图的方法是很常见的做法,但是也有其自身的缺点,由于点击图数据量非常庞大,一般的聚类算法如何能够快速处理如此大量的数据是具有挑战性的。在此就不再展开论述了。
郑重声明:本站“淘宝搜索技术文档”版块所有内容均来自淘宝搜索技术内参,并由薄言亲自归纳整理,旨在将复杂的技术文档转化成直白容易理解的文字,以此来帮助淘宝卖家更好的了解淘宝搜索系统,为此耗费了巨大的时间和精力,请大家尊重薄言的劳动,不要转载和盗用,即使需要转载,请务必取得授权,并注明出处!谢谢!