版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35564813/article/details/88079795
Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time
摘要
作者呈现了Pixie——一个基于图的实时推荐系统,输入一系列用户相关的pins作为查询,然后Pixie会实时地从上亿的可能pins中找到与查询最相关的结果。
介绍
- Pinterest具有主要两个挑战:数据量与实时性。实时性不仅对用户体验有影响同时对整体系统设计具有一定的影响。
- Pinterest中具有很多可以观看的pins,用户可以根据喜好将其收集成为boards,在一定程度上用户手工为该基于图的推荐系统建立了边,使他们之间具有了可挖掘的信息。然后系统可以利用该图,根据查询得出相应的推荐。
- Pixie Radom Walk算法主要包括下列的创新:
- 基于用户的,比如说为用户推荐相关语言及主题的内容
- 允许对不同的查询pins分配不同的权重,以此来捕捉用户过往的表现
- 该方法会联合多个来自单独的random walk的结果以此来得出最终的结果
- 该算法允许early stopping,以此来节约资源与相应时间
- 该算法允许推荐pins和boards,这帮助解决冷启动问题
Pixie Random Walk
Basic Random Walk
主要步骤:给一个当前的pin p也就是所谓的q,选择一条连接board b和q的边,然后从连接board b的边中随机选择一个p’,然后将p’作为所谓q,重复上述操作。
Improvement over the basic random walk
-
Biasing the Pixie Random Walk
Pixie算法利用用户特征与边的特征动态地进行推荐,从而将匹配用户特征的边,如语言、主题
-
Multiple Query Pins with Weights
对于拥有不同度的查询pin使用不同的放缩因子以此来解决高度的pins需要更多步数的情况
scaling factor:
|E(q)|就是query pins的度,
对于不同的query pins采用下述式子计算步长:
-
Multi-hit Booster
为了奖励那些被来自不同的query pins访问的pins,使用下式进行计算:
-
Early Stopping
为了节约资源与查询时间,文章定义了两个整数 与 ,系统会终止walk当至少有 个候选pins被访问 次时。
Graph Pruning
对图修剪问题的处理方法如下。首先,我们通过计算每个版面主题分布的熵来量化版面内容的多样性。我们在每个pin描述上运行LDA主题模型来获得概率主题向量。然后,使用添加到板上的最新pins的主题向量作为输入信号来计算board的熵。具有大熵值的板及其所有边都从图中移除。
另一个挑战是实时图比较偏向于较为流行的结点。通过计算pin与board的相似性来保留具有最高cosine相似性的边。