您的位置:首页 > 其它

推荐算法——基于图模型

2017-07-22 19:29 190 查看
基于图模型(graph-based model) 将用户行为数据表示成图的形式。



如上,用户A对物品a,b,d有行为。

表示成二分图之后,给用户u推荐物品可以转化为度量用户顶点vu和与vu没有边直连的物品节点在图上的相关性,相关性越高的物品在推荐列表中权重越高。
顶点的相关性主要体现在如下方面:
两个顶点之间的路径数

两个顶点之间路径的长度

两个顶点之间的路径经过的点

相关性高的一对顶点有如下特征:
两个顶点之间有很多路径相连

连接两个顶点之间的路径长度都比较短

连接两个顶点之间的路径不会胫骨出度较大的顶点

利用随机游走的personalRank算法来为用户推荐物品:

假定要给用户u进行个性化推荐,可以从用户u对应的节点vu开始在用户物品二分图上进行随机游走,游走到任何一个节点的视乎,以α的概率决定是继续游走还是停止游走并从vu节点重新游走,如果继续游走,那么从当前节点指向的节点按照均匀分布随机选择一个节点作为游走下次经过的节点。

这样重复之后,每个物品节点被访问的概率收敛到一个数,最终的推荐列表中物品的权重就是物品节点的访问概率。



缺点
时间复杂度方面有明显的缺点,在为每个用户推荐的时候都需要在整个二分图上迭代,直到整个图上的PR(v)收敛,耗时。
解决
减少迭代次数,但是会影响精度

从矩阵论出发重新设计算法

讲PR转换成为矩阵的形式,令M为用户物品二分图的转移概率矩阵,即:

M(v,v,)=1|out(v)|

迭代公式变为:

r=(1−α)r0+αMTr=(1−α)(1−αMT)−1r0

只需要计算一次(1−αMT)−1即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法