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的度,