PageRank算法在社交网络上的应用

article/2025/11/7 18:58:38

PageRank算法介绍

pagerank算法的核心思想是,计算一个用户随机点击一个网站然后不停点击从而到达各个网站的概率。而一个网站的打开概率又取决于那些指向他自己的那些网站的概率,所以这个概率的计算是一个不断迭代的过程。

一个简单的例子:B,C,D同时指向A,我们认为,BCD的PR是0.25,那么A的PR值就是0.75
这里写图片描述

但是,如下图,如果网站D有3个外链,那么你从网站D跳到网站A的概率就不一定是100%了,这是我们要给它做一个权重衰减,我们给PR值除以3
这里写图片描述

这个模型可以写作以下公式:
P R ( u ) = ∑ v ∈ B u P R ( v ) L ( v ) PR(u) = \sum_{v \in B_u} \frac{PR(v)}{L(v)} PR(u)=vBuL(v)PR(v)
其中L表示结点的出度, B u B_u Bu是所有指向u的结点。然而一个用户在点击网页的时候是不会无限点下去了,他最终肯定会在某个结点上停止,于是,我们可以引入一个damping factor来表达这种关系,当你计算PR的时候,要乘一个衰减的系数来认为有一定概率会在上一个页面停止,而不会跳转到这个页面来。于是PR的公式可以改写成这样:
P R ( p i ) = 1 − d N + d ∑ p j ∈ M ( p i ) P R ( p j ) L ( p j ) PR(p_i) = \frac{1-d}{N} + d \sum_{p_j \in M(p_i)} \frac{PR (p_j)}{L(p_j)} PR(pi)=N1d+dpjM(pi)L(pj)PR(pj)
d就是damping factor,d一般取0.85,N是结点数量,那个1-d/N是为了保证这个概率值在0到1之间。这个表达式可以写成矩阵的形式:
R = [ P R ( p 1 ) P R ( p 2 ) ⋮ P R ( p N ) ] \mathbf{R} = \begin{bmatrix} PR(p_1) \\ PR(p_2) \\ \vdots \\ PR(p_N) \end{bmatrix} R=PR(p1)PR(p2)PR(pN)

R = [ ( 1 − d ) / N ( 1 − d ) / N ⋮ ( 1 − d ) / N ] + d [ ℓ ( p 1 , p 1 ) ℓ ( p 1 , p 2 ) ⋯ ℓ ( p 1 , p N ) ℓ ( p 2 , p 1 ) ⋱ ⋮ ⋮ ℓ ( p i , p j ) ℓ ( p N , p 1 ) ⋯ ℓ ( p N , p N ) ] R \mathbf{R} = \begin{bmatrix} {(1-d)/ N} \\ {(1-d) / N} \\ \vdots \\ {(1-d) / N} \end{bmatrix} +d \begin{bmatrix} \ell(p_1,p_1) & \ell(p_1,p_2) & \cdots & \ell(p_1,p_N) \\ \ell(p_2,p_1) & \ddots & & \vdots \\ \vdots & & \ell(p_i,p_j) & \\ \ell(p_N,p_1) & \cdots & & \ell(p_N,p_N) \end{bmatrix} \mathbf{R} R=(1d)/N(1d)/N(1d)/N+d(p1,p1)(p2,p1)(pN,p1)(p1,p2)(pi,pj)(p1,pN)(pN,pN)R

其中 l ( p i , p j ) l(p_i,p_j) l(pi,pj)表示结点 p i p_i pi p j p_j pj的影响程度,比如在例子2,里面, l ( B , A ) = 1 / 2 l(B,A)=1/2 l(B,A)=1/2.写成矩阵形式,这里P其实相当于邻接矩阵:
R = d P R + 1 − d N 1 \mathbf{R} = d P\mathbf{R} + \frac{1-d}{N} \mathbf{1} R=dPR+N1d1
我们只要求解这个R,就能得到每个结点的PR值。

Ranking Users in Social Networks with Higher-Order Structures

这里介绍一种改进的方法,这是在社交网络上的应用,在计算PR的时候,其实我们默认了,在一个网站上以相同概率跳转到其他的结点,但这其实在社交网络里面是有问题的。看下面的例子。

用户1同时关注了2,3,4在三个用户,但是,很显然,用户1其实是更信任用户2多过用户4的,因为用户1同时关注了2跟3.
这里写图片描述

所以我们要做的就是,考虑这种三角结构:
这里写图片描述

一共有7种。举个例子,当我们考虑M6时。
这里写图片描述

对于结点3而言,M6结构一共出现了2次,分别是153,123.所以矩阵第1行第3列等于2.

上面的这个考虑了三角结构的邻接矩阵可以用下面的公式计算。其中 B = W ⊙ W T B=W\odot W^T B=WWT, U = W − B U=W-B U=WB,其中 ⊙ \odot 是对应元素相乘
这里写图片描述

最后对于PR的计算公式:
R = d P R + 1 − d N 1 \mathbf{R} = d P\mathbf{R} + \frac{1-d}{N} \mathbf{1} R=dPR+N1d1
我们用
H M k = α W + ( 1 − α ) W M k H_{M_k}=\alpha W+(1-\alpha)W_{M_k} HMk=αW+(1α)WMk
来替换掉P就能取得很好的效果。

扩展资料

其实PR只是目前页面排序的一个小小的权重,这是目前谷歌最新的企鹅算法

参考资料

Zhao, Huan, et al. “Ranking Users in Social Networks with Higher-Order Structures.” (AAAI 2018)

PageRank-wiki

作为分享主义者(sharism),本人所有互联网发布的图文均遵从CC版权,转载请保留作者信息并注明作者a358463121专栏:http://blog.csdn.net/a358463121,如果涉及源代码请注明GitHub地址:https://github.com/358463121/。商业使用请联系作者。


http://chatgpt.dhexx.cn/article/ZrjKhIYH.shtml

相关文章

社交网络与社会计算课程内容梳理总结

目录 1 引言2 复杂网络的图要素3 复杂网络度量4 复杂网络模型5 网络表示学习6 主题模型 1 引言 社会计算是指社会科学和计算技术交叉融合而成的一个研究领域,研究如何利用计算系统帮助人们进行沟通与协作,研究如何利用计算技术分析社会运行的规律与发展…

图论与复杂网络建模工具Networkx的四种网络模型

Networkx的四种网络模型 一. Networkx的下载安装二. 规则图三、ER随机图四、WS小世界网络五、BA无标度网络六. 总结 NetworkX提供了4种常见网络的建模方法,分别是:规则图,ER随机图,WS小世界网络和BA无标度网络。 一. Networkx的下…

社交网络分析算法应用,社交网络分析算法

社交网络的起源,发展历程及未来的发展趋势。越详细越好啊,多谢了各位 社交网络的起源六度分割原理及社交网络的兴起与发展有一个数学领域的猜想,名为Six Degrees of Separation,中文翻译包括以下几种: 六度分割理论或…

PageRank与社交网络模型评估

 SNS社交网络在近几年流行起来,并呈现出火爆的增长趋势。在仿制国外Facebook、twitter等成功先例的基础上,国内的人人网、新浪微博等一系列社交网络正风生水起。  这些社交网站表面上看起来十分普通和其他网站别无二…

基于社交网络的推荐

论文题目:Graph Neural Networks for Social Recommendation 文章解决的challenge: 1.We propose a novel graph neural network GraphRec, which can model graph data in social recommendations coherently; 将用户与物品交互矩阵,用户与用…

社交网络分析之关系图(原理+Python代码)

数据来源于天池赛题:零基础入门数据分析-学术前沿趋势分析 地址:https://tianchi.aliyun.com/competition/entrance/531866/information 一、原理介绍 社交网络分析是图关系挖掘的一个分支,通常以关系图的形式来展示人与人之间的关系网络。…

python绘制社会关系网络图_python画社交网络图

在图书馆的检索系统中,关于图书的信息里面有一个是图书相关借阅关系图。跟这个社交网络图是一样的,反映了不同对象间的关联性。利用python画社交网络图使用的库是 networkx import networkx as nx import matplotlib.pyplot as plt G nx.Graph() G.…

《关于动态社交网络建模和分析的教程》的读书笔记

** 一、The French-DeGroot model ** 1.模型介绍 描述了一个有n个个体的团体的意见形成的离散时间过程。 模型: x(k1)Wx(k),k0,1…(2)(French提出) (3) 参数含义: x1、x2、…xn&am…

社交网络模型

社交网络模型 1.空手道俱乐部模型 1.1 模型概述 空手道俱乐部模型是以一个34人的团体构成的网络拓扑模型,由于俱乐部创始人与空手道教练就学员学费产生分歧,导致俱乐部形成以这两人为首的两个团体。 1.2 俱乐部裂变前的图形和矩阵表示 1.2.1 俱乐部…

社交网络分析——信息传播模型(附带三个模型的python实现)

摘要:主要讲解一些基本的信息传播模型,以及IC模型、SI模型和SIR模型的python实现及可视化。 2021.10.06更新有需要的可以点击传送门 2020.09.26更新更新了SIR模型的实现,请点击传送门,就不放在这篇博客里了 2020.09.03更新更新了S…

MOODLE安装

https://baijiahao.baidu.com/s?id1648898834478394333&wfrspider&forpc

Moodle 安装的时候提示 original IP

在安装 Moodle 的时候提示下面的错误,导致安装不能进行。 Installation must be finished from the original IP address, sorry 这是因为第一次安装的时候访问的 IP 地址与系统中记录的不一致。 你可以登录使用的数据库后运行下面的 SQL UPDATE mdl_user set la…

Wamp5与Moodle安装

最近在更改本科同学关于MOODLE平台的安装的实验报告的时候,发现他们大部分都是用easyphp安装的,他们在报告中体现出来一些的问题,如:日历产生乱码、安装不了中文版本、无法打开http://localhost/mysql/ 等问题,于是我…

linux安装moodle最新版,在linux下安装moodle

上两篇文章介绍了虚拟机中安装linux server 及相关服务,有了这些基础后,安装一个应用服务 moodle 2.7 是使用最广的网络课程平台。 在安装moodle之前,需要支持软件有mysql phpmyadmin apache php5 1.下载moodle安装文件,moodl…

linux安装moodle最新版,于linux已安装moodle

本文介绍了两个虚拟机的安装linux server 及相关服务,随着后这些基础。安装应用程序服务 moodle 2.7 它是使用最广泛的平台,网络课程。 在安装过程中moodle之前,需要支持软件mysql phpmyadmin apache php5 1.下载moodle安装文件&#xff…

phpstudy环境下安装部署moodle平台

引言: 最近尝试在自己电脑上安装部署一个moodle学习平台,因为之前学习对phpstudy比较熟悉,它是Apache MySQL PHP的集成的开发包,所以打算利用phpstudy集成开发包搭建平台。搭建安装环境可以通过单个软件的安装,但是利…

备忘--moodle安装

php -v //查看版本 sudo apt-get --purge remove php5.5* //删除旧版本 sudo add-apt-repository ppa:ondrej/php //添加源 sudo apt-get update //更新源 sudo apt-get install php7.2 //安装 php -v //查看版本 sudo apt-get install php7.2-my…

Moodle安装教程以及phpMyAdmin无法访问解决

这几天我在使用moodle的框架开发一个教务系统,在安装Moodle环境过程中出现了很多问题: 1. 首先是使用官网集成包,按照说明一步步走结果总是出错。 2. 接着尝试使用xammp安装,结果安装成功之后,第二次无法打开MySQL&a…

Moodle 安装出现访问空白和open_basedir问题

首先要感谢,使用Moodle 的前辈,写下问题处理的办法 最近需要使用Moodle,安装Moodle,先装XAMPP,后将下载的Moodle解压后拷贝到xampp/htdocs下,访问http://localhost/moodle,开始安装Moodle, 一开始都挺顺,可…

阿里云CentOS下搭建LNMP环境和Moodle安装

阿里云CentOS下搭建LNMP环境和Moodle安装 Moodle是一个开源课程管理系统,采用PHPMySQL方式运行的自由开源软件,遵循GNU公共许可协议。世界各地教育工作者越来越喜欢使用Moodle为学生建立网上动态网站。Moodle平台界面简单、精巧,您可以根据需…