ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【论文笔记】www18 Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time

2021-11-19 23:01:44  阅读:197  来源: 互联网

标签:Billion 200 Users pin 查询 step 随机 游走 节点


1.overview

论文地址

pintersert推荐第一部分–pinsage kdd18

这是pinterest推荐系统的第二部分。这也是pinsage中随机游走的原型。

一个基于随机游走的召回方案,这里的图不是协同过滤中的物品-用户交互图,而是pin和board之间的关联图。pin是指图片,board可理解为收藏夹,详细背景见pinsage。该论文解决的几个问题:

  • 大规模:单机可放下,易并行,易扩展
  • 实时更新:没有预计算,随机游走时early stop,且运行时间与图规模无关。

问题:给定一个查询q,找出相关的item。这里的查询q是一个pair set,每个pair包括一个pin和一个权重。最终返回的是基于这一组pin的相关的查询结果。

2. graph puring

这部分名字高级,但实际是一个数据清洗。且位于random walk之后,但实践中逻辑应该是先洗数据。

首先是用LDA topic model 进行了聚类。之后利用聚类结果,对高度节点一些错分的borad进行剪枝。

3. pixie random walk

查询集合中每个pin都要进行随机游走,这里以一个为例。

给定一个查询的pin,通过随机游走,每次随机游走时记录每个节点被访问的次数,最终根据节点的访问次数进行排序,获得相关的pin。下为一次随机游走的伪码。
请添加图片描述

3.1异质图上的随机游走

随机游走时,考虑到图是一个二分图(异质图),pin需要走两步才能得到下一个pin。这里基于meta-path实现的异质图上的随机游走。line7-line11为一次随机游走的过程。line7是从当前的pin出发,走一步到相邻的board上,line8在从board出发,到下一个pin,实现异步图上的随机游走。

line5表明该随机游走是带重启的。

3.2个性化推荐

basic的随机游走没有用户信息,所以推荐不是个性化的。personaizedNeighbor是实现个性化推荐,通过用户特征给邻居不同的权重。加入了user feature,相当于再随机游走是给不同节点赋于不同的权值,每个用户使用featrue在图上进行“修改”,避免了为每个用户保存一个独有的图。文中并没有详细的阐述该函数的细节,但给出了一些例子,如特征为语言和地区,借此来进行边的筛选。

3.3early stop

随机游走的运行时间主要取决与随机游走的步数step。随机游走的step越多,其结果越稳定,但所需的时间也越长。而不同的pin到达稳态所需的step应该是不同的。对于度较低的节点step少一些也是稳定的。为此,提出一种启发式的early stop。随着随机游走的进行,当其结果趋于稳定时,即若干step后,结果不发生变化,就可以停止。但对每个节点进行监视的代价过大,原文中提到该代价可能大于随机游走的代价。再次对其进行简化,至少由np个节点被访问了nHighVisited次,就停止。这个统计即为第10-11行。13行结束的条件也多了一个。

在后续实验中表明结果相对稳定。

3.4权重的处理

每个pin的权重是与时间相关的。权重主要是对随机游走时step由影响。

对于度较大的节点,出现在较多的board中,所以需要较多的step来迭代,使得度大的多迭代,度小的少迭代。如果分配step时按照节点度进行线性递减,可能会导致部分底度节点step过小甚至为负。为此提出一种亚线性模型

请添加图片描述
请添加图片描述
其中,E(q)为节点q的度,wq时节点的权重,Q是查询集合。

3.5 hit booster

查询中每个pin都执行结束后,获得了若干个查询结果,最后是将这些结果进行合并。

对于查询结果中的某个pin值p,若其只产生于一次查询的随机游走(只与某个查询相关),和该pin出现在每次查询的随机游走中(与多个查询相关),其顺序应该是不同的。应该使得关联多个查询结果的pin排序更靠前。

最终的得分计算如下:
请添加图片描述

以上就是pixie random walk的主要部分,整个查询集合的伪码如下:

请添加图片描述

reference

  • http://lipixun.me/2018/02/16/pixie

标签:Billion,200,Users,pin,查询,step,随机,游走,节点
来源: https://blog.csdn.net/qq_38420683/article/details/121420059

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有