美文网首页推荐算法
推荐系统召回算法之——图模型(Personal Rank)

推荐系统召回算法之——图模型(Personal Rank)

作者: 易码当先 | 来源:发表于2020-06-08 10:04 被阅读0次

目录

1、Personal Rank 算法背景

2、二分图的概念

3、文件解析原理及其物理意义

4、PR公式推导

5、python实现

6、总结


Personal Rank算法背景:

用户行为很容易表示为图

图推荐在个性化推荐领域效果显著,UI矩阵就是典型的二分图。


二分图:又称为二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,i in B),则称图G为一个二分图。


下面举例并从物理意义角度解析,二分图算法是如何将UI矩阵表示为二分图,计算出Item集合对固定user的重要程度排序?

UI矩阵的二分图表示法

1、两个顶点之间连通的路径数?

A到c:A->a->B->c;A->d->D->c两条连通路径;

A到e:A->b->C->e一条连通路径

故,A对物品c的偏好程度大于对物品e的偏好。

2、两个顶点之间的连通路径长度?

A->c两条路径4个顶点,连通路径长度都是3;A->e也为3

3、两个顶点之间连通路径经过顶点的初度?

A到c:A->a->B->c:3+2+2+2;A->d->D->c:3+2+2+2

A到e:A->b->C->e:3+2+2+1

可见,PR算法是将UI矩阵表示为二分图存储后,通过统计两顶点连通路径长度、连通路径数以及顶点初度信息来计算Item集合每个Item对固定user的重要程度的一种算法。


算法文字描述:对用户A进行个性化推荐,从用户A结点开始在用户物品二分图random walk ,以alpha的概率从A的出边中等概率选择一条游走过去,到达顶点后(例如a),有alpha的概率继续从顶点a的出边中等概率选择一条继续游走到下一个结点,或者(1-alpha)的概率回到起点A,多次迭代。直到所有的顶点对于用户A的重要度收敛。(二分图有且只有一个顶点)

算法公式推导

PR公式(1)

按照上面UI矩阵的二分图表示法结合算法文字描述,以节点A和a来举例解释公式。

PR(v):表示不同节点重要度。

以a为例,公式上部分表示节点a与之相连的节点A和B,分别从各自出边等概率贡献了1/3和1/2的重要度加和后乘以\alpha \alpha 取经值为0-1之间(经验值0.6)。

以A为例,公式下部分表示与A相连的节点a,b,d,分别从各自的出边等概率贡献了1/2的重要度,同时它们又是直接与A相连的节点,从PR算法文字描述可知,都可以以1-\alpha 的概率回到A节点。

公式(1)的矩阵表达方式为:r = (1-\alpha )r_{0}+\alpha M^T r (2)

其中r是n维向量,每一个元素代表一个节点的PR重要度;r_{0} 也是n维向量,第i个位置为1,其余位置为0,我们就是要为第i个节点进行推荐。其中M是n阶转移矩阵:

M_{ij} =  \frac{1}{\vert out(i) \vert }   if (j\in out(i)) else 0

由(2)进行恒等变形可得

(E-\alpha M^T  )r =(1-\alpha ) r_{0} (3)

r = (E-\alpha M^T  )^ -1 (1-\alpha )r_{0} (4) ,其中(E-\alpha M^T  )^-1就是所有节点的推荐结果,乘以r_{0} 就是取出矩阵的第i列。


Python实现:https://github.com/SolodanceMagicq/RecommendSys/tree/master/PersonalRank


总结:

1、personalrank二分图算法,是一种无向图,有且只有一个root顶点。

2、算法核心思想是将UI矩阵以二分图存储,通过顶点按等概率随机游走,迭代计算关联节点pr值的过程。首次迭代只计算推荐用户(root顶点)与其直接关联的节点pr值,然后每次基于上次节点进一步迭代计算关联节点,直至收敛。

3、PersonalRank算法迭代的时间复杂度过高,须进一步优化,工业界一般会借助spark离线计算或mapreduce将多节点并行计算提高计算性能。

相关文章

  • 推荐系统召回算法之——图模型(Personal Rank)

    目录 1、Personal Rank 算法背景 2、二分图的概念 3、文件解析原理及其物理意义 4、PR公式推导 ...

  • 基于图的personal rank推荐算法

    背景 用户的行为很容易表示为图定点,边 uesr,item构建图(二分图)二分图:又称为二部图,是图论中的一种特...

  • 推荐系统精品文章

    推荐系统召回四模型之:全能的FM模型[https://zhuanlan.zhihu.com/p/58160982]...

  • 基于图的推荐算法之Personal PageRank代码实战

    背景:Personal Rank 属于协同的一种,也是为了精准的match用户感兴趣的物品,是一种基于图的推荐算法...

  • 召回

    1.推荐系统的召回2.如何理解推荐系统召回模型中的召回3.推荐系统从0到1[二]:个性化召回4.推荐系统二---召...

  • Personal Rank算法

    那有了二部图之后我们要对u进行推荐物品,就转化为计算用户顶点u和与所有物品顶点之间的相关性,然后取与用户没有直接边...

  • 推荐系统-召回

    目前大部分算法模型资料都是针对于排序模型。对召回的讲解很好,但是召回是推荐系统重要而不可或缺的部门。 置顶 突然的...

  • 推荐系统召回之PersonalRank算法(二)图推荐

    1.相关说明: TopN推荐问题 在基于图模型的推荐算法中,二分图(u,i)表示用户u对电影i评分过,即用户u观看...

  • 推荐策略(5)——召回

    一、什么是召回 我们来看一张图: 在推荐系统模型中,“召回(match)”指从全量信息集合中触发尽可能多的正确结果...

  • 马蜂窝推荐排序算法模型的迭代实现

    马蜂窝推荐系统主要由召回(Match)、排序(Rank)、重排序(Rerank)几个部分组成,整体架构图如下: 在...

网友评论

    本文标题:推荐系统召回算法之——图模型(Personal Rank)

    本文链接:https://www.haomeiwen.com/subject/akuafhtx.html