一、用户行为数据的二分图表示(用户物品二分图)
一个二元组(u,i)表示用户u对物品i产生过行为。图中节点由用户和物品组成。每个二元组对应一个边。该边是无向边。
二、基于图的推荐算法
给用户u推荐物品的任务可转化为度量用户定点和与该节点没有边直接项链的物品节点在图上的相关性,相关性越高的物品在推荐列表中的权重越高。
一般来说,衡量图中顶点的相关性主要取决于下面3个方面:两顶点间的路径数(很多)、两顶点间的路径长度(较短)、两顶点间的路径经过的顶点(不经过出度较大的顶点)。基于图的推荐算法中较有代表性的是基于随机游走的PersonalRank算法。
三、算法优缺点
算法在时间复杂度上有明显缺陷,对每个用户推荐都需在整个用户物品二分图上进行迭代,直至收敛,时间复杂度极高。不仅无法提供实时推荐,甚至离线生成推荐结果也很耗时。
解决方案有两个:
方案一:减少迭代次数,在收敛之前就停止。这样会影响最终的精度,但一般来说影响不大。
方案二:从矩阵论出发,重新设计算法。