文章目录

  • 推荐基本概念
  • PageRank
  • PersonalRank
  • TextRank
  • SimRank

推荐基本概念

其中用户user=[A,B,C],物品item=[a,b,c,d],用户和物品有以下的关系

上述便是一个典型的二分图,我们用G(V,E)来表示,其中V为用户user和物品item组成的顶点集即[A,B,C,a,b,c,d],而E则代表每一个二元组(u,i)之间对应的边e(u,i),我们这里不考虑用户对物品的喜爱程度,即默认喜爱则e=1,不喜爱则e=0。

那么我们如何使用上述的二分图模型进行物品的推荐呢?根据用户与物品的相关性,对于相关性高的顶点有如下的定义:

  • (1)两顶点间的路径数/越多相关性越高
  • (2)两顶点之间的路径长度/越短相关性越高
  • (3)两顶点之间经过的顶点的出度/越小相关性越高

上面有一个概念需要理解,度,顶点的度是指和该顶点相关联的边数。

基于上述的定义,我们这里使用基于随机游走的算法来计算

PageRank

它的基本思想是,假设网页之前通过超链接相互连接,互联网上的所有网页便构成了一张图。用户随机的打开一个网页,并通过超链接跳转到另一个网页。每当用户到达一个网页,他都有两种选择,停留在当前网页或者通过继续访问其他网页。如果用户继续访问网页的概率为d,那么用户停留在当前网页的概率便是1-d。如果用户继续访问其他网页,则会以均匀分布的方式随机访问当前网页指向的另一网页,这是一个随机游走的过程。当用户多次访问网页后,每一个网页被访问到的概率便会收敛到某个值,而计算出来的结果便可以用于网页排名,我们用以下的公式来表示:

其中PR(i)是网页i被访问到的概率,d代表用户继续访问网页的概率,N为所有网页的数量,in(i)代表所有指向网页i的网页集合,out(j)代表网页j指向的其他网页集合。

接下来我们分析一下这个公式,网页i被访问到的概率由两部分组成:

  • 第一部分是网页i作为起点,第一个被用户点击后停留在当前页面的概率,即:
  • 第二部分是用户点击其他网页后(无论网页i是不是起点),再次跳转回到网页i的概率:

这两部分的和便是网页i被点击到的概率

PersonalRank

pageRank算法中计算出来的是每一个顶点相对其他顶点的相关性,代入到我们的用户物品二分图中,这显然不是我们想要的,我们需要的是所有物品相对于特定某个用户的相关性

将用户行为表示为二分图模型。假设给用户u进行个性化推荐,要计算所有节点相对于用户u的相关度,则PersonalRank从用户u对应的节点开始游走,每到一个节点都以1−d的概率停止游走并从u重新开始,或者以d的概率继续游走,从当前节点指向的节点中按照均匀分布随机选择一个节点往下游走。这样经过很多轮游走之后,每个顶点被访问到的概率也会收敛趋于稳定,这个时候我们就可以用概率来进行排名了。在执行算法之前,我们需要初始化每个节点的初始概率值。如果我们对用户u进行推荐,则令u对应的节点的初始访问概率为1,其他节点的初始访问概率为0,然后再使用迭代公式计算。有公式如下:

对比pageRank,不同点只在于r的值不同,u代表根节点,即我们的目标用户节点,意思便是我们每次都是从目标用户节点出发,进行随机游走,而不同于pageRank的起点是随机从所有网页中进行选择,personalRank算法得出的结果便是所有顶点相对于目标用户结点的相关性

TextRank

1. TextRank 算法是一种用于文本的基于图的排序算法,通过把文本分割成若干组成单元(句子),构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代计算句子的TextRank值,最后抽取排名高的句子组合成文本摘要

  • 抽取型摘要:这种方法依赖于从文本中提取几个部分,例如短语、句子,把它们堆叠起来创建摘要。因此,这种抽取型的方法最重要的是识别出适合总结文本的句子。
  • 抽象型摘要:这种方法应用先进的NLP技术生成一篇全新的总结。可能总结中的文本甚至没有在原文中出现

现在我们已经掌握了PageRank,让我们理解TextRank算法。我列举了以下两种算法的相似之处:

  • 用句子代替网页
  • 任意两个句子的相似性等价于网页转换概率
  • 相似性得分存储在一个方形矩阵中,类似于PageRank的矩阵M

2. 基于TextRank的文本关键词抽取是利用局部词汇关系,即共现窗口,对候选关键词进行排序,该方法的步骤如下:

  • (1) 对于给定的文本D进行分词、词性标注和去除停用词等数据预处理操作。本分采用结巴分词,保留'n','nz','v','vd','vn','l','a','d'这几个词性的词语,最终得到n个候选关键词,即D=[t1,t2,…,tn] ;
  • (2) 构建候选关键词图G=(V,E),其中V为节点集,由候选关键词组成,并采用共现关系构造任两点之间的边,两个节点之间仅当它们对应的词汇在长度为K的窗口中共现则存在边,K表示窗口大小即最多共现K个词汇;
  • (3) 根据公式迭代计算各节点的权重,直至收敛;
  • (4) 对节点权重进行倒序排列,得到排名前TopN个词汇作为文本关键词。

SimRank

解决数据稀疏性的问题
Ref:https://blog.csdn.net/qq_34219959/article/details/101456105

图模型-随机游走算法相关推荐

  1. 自然语言处理(六)图的随机游走模型与噪声信道模型与条件随机场

    图的随机游走模型非常适用于统计网页的权重,在文本处理方面则适用于提取关键字,生成人物关系网等. 噪声信道模型本质上就是贝叶斯,它能直接适用于翻译,对于文本简单替换的微博文本规范化来说,感觉还更简单了, ...

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

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

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

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

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

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

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

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

  6. 图神经网络-随机游走

    1. Random Walk with Restart(RWR): 带重启的随机游走算法 参考博客: Random Walk with Restart and its application 参考博客 ...

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

    本总结是是个人为防止遗忘而作,不得转载和商用. 本节的前置知识是我总结的"推荐系统 - 1.2". 协同过滤算法 基于用户行为的数据而设计的推荐算法被称为协同过滤算法(Collab ...

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

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

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

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

最新文章

  1. 在Android 华为手机上运行React_Native工程时出现了如下错误,做以记录:
  2. PMCAFF微课堂 (已结束)| 京东平台产品负责人:如何打造一个支撑3200万日订单量的平台型产品
  3. hibernate.properties与hibernate.cfg.xml 区别
  4. 1284B. New Year and Ascent Sequence
  5. Unexpected end of JSON input while parsing near '...解决方法
  6. php网站建设实训引言_网站建设实训报告
  7. java div2_系统学习 javaweb2----HTML语言2
  8. Visio2019自动闪退问题
  9. 最近做一个新闻类项目,用到调用新浪微博接口,经过研究测试整理步骤如下:先根据此内容获取App Key和Secret Key
  10. 数字电路-逻辑函数化简
  11. 记一次优化天猫商城系统高并发的经验
  12. vue 全年日历显示并且日期批量选择
  13. 《阿甘正传》英文原版剧本(场景+台词)(看电影学英语的最佳材料)
  14. 路由器修改html,路由器信号太差,设置中更换为美国能提升WiFi信号强度?
  15. moses 编译_傻瓜式MOSES安装
  16. python数据可视化(一)
  17. Excel怎么样可以快速删除空白表
  18. 蓝桥杯少儿编程2020年8月份C++比赛每日一练
  19. 默认选中 input元素默认选中设置
  20. 盗取QQ密码的顽固的IEXPLORE.EXE病毒

热门文章

  1. debian linux系统下载工具,在Debian 10 Linux系统中下载安装R和RStudio的方法
  2. Seek Tiger创世节点的推出,对于Web3舞台的重要性
  3. pytorch中的squeeze和unsqueeze函数的使用
  4. C语言数组作为函数参数
  5. 租房子时候的注意事项
  6. JMeter实用教程【二】-BeanShell的使用
  7. 蓝桥杯 LQ三角形 模拟
  8. 老牌子同仁,为何选择浪潮新锐存储AS5600?
  9. python计算回文数的方法_Python计算回文数的方法
  10. 【P39】JMeter 随机顺序控制器(Random Order Controller)