simrank随机游走实现

simrank在推荐系统中,应用的比较广泛,原理互联网上很多。实践中,使用spark进行计算时,当【用户】+【物料】比较多的时候,矩阵相乘很慢,无法满足业务需求。

经过调研,可以使用mcmc的方式就行随机游走,进行相似度的计算。

1、抽取出【用户】+【物料】的ID。

2、对ID进行数字全局化。

3、将原始用户行为映射为全局id。

4、把行为数据当作权重图数据,对图进行随机游走,进行路径采样(步数可根据需要自行设置)

5、根据采样到的数据,两两计算相似度(crossjoin)。对于每一条路径中的每一步,如果相遇,则计数。概率为所有步数相遇的数与总路径数的比例。即为最后两节点的相似度。

6、根据相似度,采用协同过滤的思想进行召回。

对于其他图算法,如person page rank等都可以采用同样的思想。不过会牺牲准确度。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。