随机游走算法(推荐系统 知识十)

随机游走算法

协同过滤算法的扩展算法,原因是:只考虑了A与B的直接共现,没有考虑间接共现
  • 导致了一种稀疏性,覆盖半径比较短
  • 另一个侧面减少了物品的展现机会

希望的情况是:A和B的频繁共现 + B和C的频繁共现 =》导致A和C有高的相关性


算法逻辑:

  • 只考虑两部相关性:AB+BC = >AC
  • 相关性的二八原则
  • 直观流程:已经计算好物品直接相似度的前提下
  • 遍历i和j的对,构造(i,j)=>(k1,k2)的数据结构
  • 套用公式计算i和j的间接相似度

问题:i和j的存储量大,三层循环计算量大

高效实现:NUMjk += SIMij * SIMik;DENOMjk +=1

最终计算非零的

图片文字说明

算法实现了:

  1. 多看一步,提高了覆盖半径
  2. 充分利用了已有CF结果和过滤结果
  3. 流式计算,不用占用过大内存
  4. 缺点:相关性弱于CF


欢迎技术探讨