本总结是是个人为防止遗忘而作,不得转载和商用。

本节的前置知识是我总结的“推荐系统 - 1、2”。

协同过滤算法

基于用户行为的数据而设计的推荐算法被称为协同过滤算法(Collaborative Filtering, CF)。

什么意思?

“推荐系统 - 1 - 相似度”和本总结合在一起就是在做协同过滤,即:

协同过滤算法就是大量的用户对大量的商品产生了作用(点击、购买等),这么多人齐心力共把那些不太重要的数据给过滤出去,即:齐心力共过滤算法就是协同过滤算法

比如:

对于“推荐系统 - 1 -相似度”例子中的那个例子,我们通过某种相似度得到了与莫愁最相似的15个人,且这15个人喜欢看的电影也统计出来了。

而这么一来这15个人与莫愁的相似度就是已知的了,于是用每个人与莫愁的相似度*此人的电影评分,就给此人喜欢的电影赋予了系数。

把这些系数从大到小排列后,将排名靠前且莫愁没有看过的电影推荐给莫愁,这就完成推荐了。

而这个,就是协同过滤算法。

随机游走算法

假定只有4个用户,5个商品:

整理用户A、B、C、D对于商品a、b、c、d、e的喜爱列表,得到二部图。

对于上图,A到达不了c和e(如:A没买过/点击过c和e),那么我们如何判断A更有可能喜欢c还是e呢?

1,统计A到达c和e的最短路径,见下图:

发现A到达c和e的最短路径都是3,于是进一步判断。

2, 因为A到达c的最短路径只有1条,而到达e的有2条,那我就有理由判断:A可能更喜欢e。

这就是随机游走算法的直观表现

那随机游走算法的实现方式是什么呢?

         答案是谱聚类(我已总结:http://blog.csdn.net/xueyingxue001/article/details/51966980)

PS1:如果你了解谱聚类的话,会发现,上面从A“蔓延”到a后“蔓延”到B后“蔓延”到c,这么一个过程就是谱聚类的表现。

PS2:这么算法叫“随机游走算法”,谱聚类的拉布拉斯矩阵中有个“随机游走拉布拉斯矩阵”,仅看这个名字就知道这两个家伙有一腿。

因为图论中的随机游走是一个随机过程,它从一个顶点跳转到另外一个顶点。而谱聚类即找到图的一个划分,使得随机游走在相同的簇中停留而几乎不会游走到其他簇。

这里,谱聚类的转移矩阵就是:从顶点vi跳转到顶点vj的概率正比于边的权值wij,不过随机游走的拉布拉斯矩阵L=D-1(D-W) = I - D-1W在这里要变成L=D-1W,D是度矩阵,W是邻接/相似度矩阵。

因为D是对角阵(假设其对角线上的元素是D1,D2, ...),于是D-1W就是W的第一行除D1,W的第二行除D2,....,即:L中第i行第j列的元素就是该元素转移出去的概率(如:A转移到a的概率,a转移到B的概率),因此L中第i行第j列的元素可以写成:

                   Pij = Wij/di

PS2:L=D-1W是求最大的特征值的前一些特征向量。

推荐系统 - 3 - 协同过滤算法、随机游走算法相关推荐

  1. 重启随机游走算法(RWR:Random Walk with Restart)

    重启随机游走算法(RWR:Random Walk with Restart) 1 pagerank算法的基本原理 Pagerank算法是Google的网页排名算法,由拉里佩奇发明.其基本思想是民主表决 ...

  2. 重启随机游走算法(RWR)

    重启随机游走算法(Random Walk with Restart) 1 pagerank算法的基本原理 Pagerank算法是Google的网页排名算法,由拉里佩奇发明.其基本思想是民主表决.在互联 ...

  3. python游走代码_介绍一个全局最优化的方法:随机游走算法(Random Walk)

    1. 关于全局最优化求解 全局最优化是一个非常复杂的问题,目前还没有一个通用的办法可以对任意复杂函数求解全局最优值.上一篇文章讲解了一个求解局部极小值的方法--梯度下降法.这种方法对于求解精度不高的情 ...

  4. 介绍一个全局最优化的方法:随机游走算法(Random Walk)

    1. 关于全局最优化求解   全局最优化是一个非常复杂的问题,目前还没有一个通用的办法可以对任意复杂函数求解全局最优值.上一篇文章讲解了一个求解局部极小值的方法--梯度下降法.这种方法对于求解精度不高 ...

  5. 图像分割之随机游走算法

    转载于:https://blog.csdn.net/broccoli_lian/article/details/79739299 看了部分,没搞很明白,等有时间再看. 版权声明:本文为博主原创文章,未 ...

  6. c语言随机漫步,基于最短路径的随机游走算法研究与应用

    摘要: 近年来,人们越来越多地关注数据集中数据点之间的关系.不同种类的网络相继涌现.有链接和节点类型都单一的同质网络如以朋友友谊为基础建立起来的社交网站;以网络链接形成的互联网.另外还有多种链接和节点 ...

  7. 【图像融合】基于随机游走算法实现多焦点图像融合含Matlab代码

    1 内容介绍 近几年来,随机游走模型(random walk)与引导滤波器(guided filter)在图像处理领域受到了研究者们的广泛关注.前者已经被应用于图像处理的多种领域--图像融合.图像平滑 ...

  8. 图模型-随机游走算法

    文章目录 推荐基本概念 PageRank PersonalRank TextRank SimRank 推荐基本概念 其中用户user=[A,B,C],物品item=[a,b,c,d],用户和物品有以下 ...

  9. 重启随机游走(RWR)算法

    RWR介绍 Random Walk with Restart(RWR) RWR是最早提出的一种用于图像分割的算法.它迭代地探索网络的整体结构,以估计两个节点之间的接近度(亲和力分数). 从一个节点开始 ...

最新文章

  1. Java多线程,实现卖电影票的业务
  2. oracle知识汇总
  3. 小猿圈Web前端开发学习路线
  4. Unity3d 札记-Let's try shooting 知识点汇总
  5. 28 数组中出现次数超过一半的数字
  6. Redis简单命令(部分示例代码)
  7. python中tkinter模块pack_使用Python中的tkinter模块作图的方法
  8. 简约通用工作总结ppt模板
  9. 百度杀毒软件2013正式发布
  10. tpadmin文档 框架更新
  11. python小程序实现 --- 乌龟吃鱼(练习点——面向对象的特性:继承,多态,封装)
  12. Unity(数据库SQLite)
  13. 疫情下,数字化转型成功的“光明”
  14. react初步学习(三)
  15. Android开发中Html.fromHtml(String source)方法过时的替代方法
  16. mysql数据库中三张表的基本连接
  17. 1026-西方经济学(本)8153-商务交际英语(2)
  18. ZigBee网络路由算法设计
  19. 数学上的整数拆分问题
  20. Curio for Mac(头脑风暴思维导图)

热门文章

  1. JS开发——文件夹的上传和下载
  2. 抽象类:案例:猫和狗
  3. 汇编学习笔记1 通用寄存器和段寄存器详解
  4. 正则表达式与拳皇大招组合技(数字篇)
  5. 铁客网络订票系统 铁客订票 12306
  6. 【Spark】standalone运行模式
  7. c语言贪吃蛇显示边框,c语言写的贪吃蛇程序,VC++6.0,控制台字符显示
  8. 作业14-QQ简易聊天框
  9. 简易聊天程序教程(六)主窗口和聊天窗口
  10. Netty快速入门攻略