Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 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中找到与查询最相关的结果。

介绍

  1. Pinterest具有主要两个挑战:数据量与实时性。实时性不仅对用户体验有影响同时对整体系统设计具有一定的影响。
  2. Pinterest中具有很多可以观看的pins,用户可以根据喜好将其收集成为boards,在一定程度上用户手工为该基于图的推荐系统建立了边,使他们之间具有了可挖掘的信息。然后系统可以利用该图,根据查询得出相应的推荐。
  3. Pixie Radom Walk算法主要包括下列的创新:
    1. 基于用户的,比如说为用户推荐相关语言及主题的内容
    2. 允许对不同的查询pins分配不同的权重,以此来捕捉用户过往的表现
    3. 该方法会联合多个来自单独的random walk的结果以此来得出最终的结果
    4. 该算法允许early stopping,以此来节约资源与相应时间
    5. 该算法允许推荐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

  1. Biasing the Pixie Random Walk

    Pixie算法利用用户特征与边的特征动态地进行推荐,从而将匹配用户特征的边,如语言、主题

  2. Multiple Query Pins with Weights

    对于拥有不同度的查询pin使用不同的放缩因子以此来解决高度的pins需要更多步数的情况

    scaling factor:

    在这里插入图片描述

    |E(q)|就是query pins的度, C = m a x p P E ( p ) C=max_{p\in P}|E(p)|

    对于不同的query pins采用下述式子计算步长:

    在这里插入图片描述

  3. Multi-hit Booster

    为了奖励那些被来自不同的query pins访问的pins,使用下式进行计算:

    在这里插入图片描述

  4. Early Stopping

    为了节约资源与查询时间,文章定义了两个整数 n p n_p n v n_v ,系统会终止walk当至少有 n p n_p 个候选pins被访问 n v n_v 次时。

Graph Pruning

对图修剪问题的处理方法如下。首先,我们通过计算每个版面主题分布的熵来量化版面内容的多样性。我们在每个pin描述上运行LDA主题模型来获得概率主题向量。然后,使用添加到板上的最新pins的主题向量作为输入信号来计算board的熵。具有大熵值的板及其所有边都从图中移除。

另一个挑战是实时图比较偏向于较为流行的结点。通过计算pin与board的相似性来保留具有最高cosine相似性的边。

猜你喜欢

转载自blog.csdn.net/qq_35564813/article/details/88079795
今日推荐