本博文将介绍PersonalRank算法,以及该算法在推荐系统上的应用。
将用户行为数据用二分图表示,例如用户数据是由一系列的二元组组成,其中每个元组(u,i)表示用户u对物品i产生过行为。
将个性化推荐放在二分图模型中,那么给用户u推荐物品任务可以转化为度量Uv和与Uv 没有边直接相连 的物品节点在图上的相关度,相关度越高的在推荐列表中越靠前。
图中顶点的相关度主要取决与以下因素:
1)两个顶点之间路径数
2)两个顶点之间路径长度
3)两个顶点之间路径经过的顶点
而相关性高的顶点一般有如下特性:
1)两个顶点有很多路径相连
2)连接两个顶点之间的路径长度比较短
3)连接两个顶点之间的路径不会经过出度较大的顶点
下面详细介绍基于随机游走的PersonalRank算法。
假设给用户u进行个性化推荐,从图中用户u对应的节点Vu开始游走,游走到一个节点时,首先按照概率alpha决定是否继续游走,还是停止这次游走并从Vu节点开始重新游走。如果决定继续游走,那么就从当前节点指向的节点中按照均匀分布随机选择一个节点作为下次经过的节点,这样经过很多次的随机游走后,每个物品节点被访问到的概率就会收敛到一个数。最终推荐列表中物品的权重就是物品节点的访问概率。
迭代公式如下: