搜索引擎点击日志聚类实现相关搜索

news/2024/5/20 8:34:13 标签: 搜索引擎日志, 搜索引擎, 推荐系统, 聚类

组里经常招实习生, 在技术问题问得差不多的时候, 我经常会问他们一个问题:‘百度的相关搜索,你会如何设计实现?’   主要想看下实习生会有哪些思路,看看思路是否广,方法是否多, 没有啥方法的话, 我会提示下,看他是否能够一些思路。

其实各大搜索引擎的‘相关搜索‘ 虽然涉及到的细节会比较多, 包括如何权衡点击,用户体验,收入之间的关系等细节,主要的挖掘算法还是比较类似的。 从数据上来说,基本上围绕着网民搜索的session数据,网民点击数据,涉及到商业变现的话,可能会引入广告主的信息。

百度的相关搜索的实现这里就不介绍了(可能涉及泄密),这里主要介绍之前看过的一篇论文: Agglomerative clustering of a search engine query log    使用搜索点击日志进行query聚类,并使用层次聚类结果进行相关搜索结果挖掘与推荐。希望对大家有所帮助。

算法中的创新点, 是在对query进行聚类的同时, 也就将URL进行了聚类聚类的过程没有使用query的内容信息, 而是直接使用了网民的行为信息(搜索,点击行为)。这种思路和协同过滤类似, 就是不考虑推荐item的内容,而是使用用户的行为数据直接进行推荐。

算法首先使用点击日志, 格式为<query, url>的pair,构建双边图,左边为query, 右边为url,如果搜索query后点击了url则链接该query和该url代表的节点建立一条边。该二分图的建立方式如下:

agglomative_clustering_init

二分图示例如下,左边为query,右边为被点击url,边为搜索相关query后点击对应的url:

bipartite_graph

 

定义N(x)为x的邻居点, 则可以定义query点x, y 的相似度如下:

 

相似度度量-bipartite

该相似度介于[0,1]之间,即, 当x,y 均为query时, 使用与x,y均相邻的节点比例度量他们之间的相似度; 相对地, 当x,y均为url时,使用共同搜索query定义其相似度。

之后的工作便是迭代进行聚类,每次使用url计算两两query的相似度,合并最相似的query; 之后使用query作为特征计算两两url的相似度,合并最相似的url;一直迭代直到终止条件。

agglomerative_interative

 

之所以每轮迭代都要对query和url分别进行,是因为只有这样才能找出原来不明显的一些聚类关系。例如下图,在点1,2 合并为1’前, 是不能直观看出a和c之间的关系的:

clustering_implicit_relationship

 

终止条件一直是agglomerative聚类的重要问题, 一般的思路是一直合并到不能合并为止, 但实验中一般这样的话会合并出很多较大的cluster, 所以很多时候会采用控制每个cluster的大小(或是层数),以及最多的类的个数等因素作为合并的终止条件。

使用该方法即可将搜索引擎的点击日志进行聚类。 具体应用时,当网民输入某个具体query的时候, 判断该query所属的cluster, 之后该cluster中的query即可作为相关搜索的结果的候选,当然cluster的query具体展现哪些, 以及如何排序, 又可以有很多因素需要考虑, 例如点击率, 用户体验, 倒流量的能力等, 此处不再进一步讨论。 使用该方法最大的优势是不用考虑query的内容信息, 而是直接使用网民的行为信息进行聚类(此处与推荐系统中协同过滤有异曲同工之处)。 当然, 具体工程实现中, 我们也可以使用类似于推荐系统的思路, 融合入按内容的特征联合进行聚类, 取得更好的效果。 例如重新重新定义相似度度量方式, 使用点击关系和内容相似度进行加权作为最终相似度:

co-similarity

 

其中cross_ref_similarity表示根据关系数据得到的相似度, 更多内容可参见‘Query Clustering Using User Logs’

更多内容参见原论文:

Beeferman, Doug and Berger, Adam. 2000. Agglomerative Clustering of a Search Engine Query Log. Proceedings of the 6th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 2000, 407-416.

Wen, Ji-Rong, Nie, Jian-Yun and Zhang, Hong-Jiang. 2002. Query Clustering Using User Logs. ACM Transactions on Information Systems. January 2002, Vol. 20(1), pp. 59-81.

也可关注微博: weibo.com

或是直接访问: http://semocean.com



http://www.niftyadmin.cn/n/722358.html

相关文章

bzoj4537: [Hnoi2016]最小公倍数

传送门&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id4537 思路&#xff1a;把边按a排序&#xff0c;每sqrt(m)分一组 然后把询问按b排序&#xff0c;把在这组及以前的边按b排序 把这些边用并查集一条一条插入并维护 零散的部分暴力插入并记录&#xff0c;做完…

Java集合框架的知识总结(1)

为什么80%的码农都做不了架构师&#xff1f;>>> 说明&#xff1a;先从整体介绍了Java集合框架包含的接口和类&#xff0c;然后总结了集合框架中的一些基本知识和关键点&#xff0c;并结合实例进行简单分析。 1、综述 所有集合类都位于java.util包下。集合中只能保存…

淘宝运营,获取免费流量的方法,免费流量分配的核心原理

对比起付费推广&#xff0c;大家更多想要的免费流量吧&#xff0c;但是免费流量是淘宝系统自动分配的&#xff0c;所以我们只能去优化自己的店铺&#xff0c;尽量获得免费流量&#xff0c;免费流量的核心原理这时我们就必要要搞清楚了&#xff0c;以及影响商品排名的因素等 一、…

关键词推荐工具中的用户引导机制

搜索引擎根据网民输入的检索词(query)猜测网民需要的信息&#xff0c; 之后进行检索&#xff0c; 排序后将相关的信息展现给网民。 因为网名输入的query一般都较短&#xff0c; 而且不同的网民使用搜索引擎的能力也不一样。 所以一般搜索引擎都会有些查询引导机制&#xff0c; …

我的面试错题

p、ul、li、body那个不需要初始化margin 答&#xff1a; li&#xff1b; body: p: ul: li: 转载于:https://www.cnblogs.com/sameen/p/5419115.html

帝范读后感

以前每次拿起金庸老先生的武侠小说都会爱不释手&#xff0c;而且每次都会产生这样的感想&#xff1a;‘这部武侠小说如果放到古代&#xff0c; 那就是中国五大古典名著之一啦&#xff01;’但自从看了朋友推荐二月河的《康熙王朝》&#xff0c;《雍正皇帝》&#xff0c; 《乾隆…

超级推荐带动手淘首页流量的原理,为什么你的超级推荐没有展现和访客?

手淘首页改版后&#xff0c;超级推荐就成为了一个非常重要的付费推广渠道&#xff0c;接下来我们就跟大家介绍一下超级推荐带动手淘流量的原理。 一、超级推荐带动首页的流量原理 1、超级推荐可以对单品甚至整个店铺带来成交提升。 2、提高商品出现手首页展现的概率&#xff0c…

Java方法总结与源码解析(未完待续)

使用StringTokenizer去掉字符串中的空格 public class StringTo {public static void main(String[] args){String text " We are students ";System.out.println("源字符串是&#xff1a;");System.out.println(text);System.out.println(text.trim());S…