【图论】三种中心性 —— 特征向量、katz 和 PageRank

维基百科:在图论和网络分析中,中心性指标为图中相应网络位置的节点分配排名或数值。中心性这一概念最初起源于社交网络分析,因此很多衡量中心性的术语也反映了其社会学背景。

不同中心性指标对 “重要” 的衡量方式不同,因此适用于不同的情形。

一、特征向量中心性(eigenvector centrality) 

特征向量这一概念最早应该是在 线性代数 这门课程中接触到的,而取名中的特征向量也与它最初的概念相关,我们先回顾下什么是 “特征值” 和 “特征向量”。

1.1 线性代数中的特征向量

定义:设 A 是 n 阶方阵,若存在向量使得 Ax = \lambda x ,则称 x 为 A 的特征向量,\lambda 为 A 的特征值(严格定义请参考权威文献)。

由定义可见,特征向量的本质是它与原矩阵相乘后,得到的矩阵与特征向量方向相同,仅存在缩放关系(即 \lambda 倍的缩放),该缩放比例称为特征值。进一步延伸,原矩阵无论乘上多少特征向量,其方向都是确定的。回顾一道求特征值和特征向量的简单例题,可以更好回忆相关概念,求 \bigl(\begin{smallmatrix} 3 & 1\\ 1 & 3 \end{smallmatrix}\bigr) 的特征向量和特征值。


\begin{pmatrix} 3-\lambda & 1\\ 1 & 3-\lambda \end{pmatrix} = (3-\lambda )^2 - 1 = 0 

解得两个特征值 2 或 4,则应有

\begin{pmatrix} 3-2 & 1\\ 1 & 3-2 \end{pmatrix}\begin{pmatrix} x_1\\ x_2 \end{pmatrix} = \begin{pmatrix} 0\\ 0 \end{pmatrix}

解得 x_1+ x_2 = 0 ,因此可取特征值 2 的特征向量为

x = \begin{pmatrix} 1\\ -1 \end{pmatrix}.

求特征值 4 的特征向量同理。


1.2 图论中的特征向量中心性

定义:图 G = (V, E),定义其邻接矩阵 A,a_{v,t}=0 表示节点 v 和 t 不相连,a_{v,t}=1 表示节点 v 和 t 相连,则节点 v 的中心性 x 的分数计算式为

 x_v = \frac{1}{\lambda}\sum_{t=1}^{t\in G}a_{v,t}x_t .

单纯看公式会觉得不好理解,结合具体的例子可以马上掌握,它在本质上是求图 G 邻接矩阵的特征向量,只不过在算法设计中,通常不是通过数学方式求得,而是采用迭代逼近的方式得到一个近似解。特征向量中心性的核心思想是,一个结点的邻居越重要,该结点就越重要。下面是一个经典的分析图,

 各节点上的数字表示该结点的权重,以 5 作为节点 1,按顺时针标记各节点,且中心节点记为节点 5,则得到邻接矩阵为

A = \begin{pmatrix} 0 & 1 & 0& 1& 1\\ 1 & 0 & 1& 0& 0\\ 0 & 1 & 0& 0& 0\\ 1 & 0 & 0& 0& 1\\ 1 & 0 & 0& 1& 0 \end{pmatrix}

第一轮迭代,邻接矩阵乘上各结点的分数

A' = \begin{pmatrix} 0 & 1 & 0& 1& 1\\ 1 & 0 & 1& 0& 0\\ 0 & 1 & 0& 0& 0\\ 1 & 0 & 0& 0& 1\\ 1 & 0 & 0& 1& 0 \end{pmatrix}\begin{pmatrix} 5\\ 1\\ 3\\ 3\\ 2 \end{pmatrix} = \begin{pmatrix} 6\\ 8\\ 1\\ 7\\ 8 \end{pmatrix}

迭代完成后,各结点分数发生变化,效果为节点“吸收”了邻接节点的分数,邻接节点分数高的,迭代后分数就高。且经过多轮迭代后,各节点间的相对分数将不再发生变化,即收敛,仅存在绝对分数的缩放,此时我们就得到了最终的中心性分数矩阵,而该矩阵是邻接矩阵的特征向量。

二、katz 中心性

针对特征向量中心性无法用于有向图的不足,提出了 katz 中心性。

2.1 理解特征向量中心性的不足

每篇博客都说了,特征向量中心性不能用于有向图,但是为什么呢,这个结论怎么来的?

此处稍微探究下,我的理解不一定是对的,但特征向量中心性确实存在一些问题。首先观察上一节中邻接矩阵的特点,它是沿着主对角线对称的矩阵。这是可以理解的,无向图的连通性肯定是对称的。而特征向量中心性算法的本质是求邻接矩阵的特征向量,当邻接矩阵的性质发生变化时,特征向量必然会受影响。

在有向图中没有沿主对角线对称这一性质,那么对于只有出度、没有入度的节点,就存在一个致命问题,它的分数一直被出度节点吸收,而它自身分数将归零(以下图为例)。这显然是不合理的,这也是我理解的特征向量中心性计算方式不足的原因。

 2.2 katz 中心性的改进思路

首先看看它的中心性计算公式,

x_{v}=\sum_{k=1}^{k_{max}}\alpha ^k\sum_{j=1}^{n}(A^k)_{v,j}x_{j} + \beta.

比较和特征向量中心性的不同,katz 引入了两个新的变量,分别是衰减因子 \alpha 和基本偏移量 \beta 。第一个求和号中的 k 表示 k-hop,即只考虑与节点 v 距离在 k 以内(通常以一个节点作为一个单位距离)的节点分数,该思路在特征向量中心性中也是可行的,只是在上一节中未列出来。

  • 衰减因子 \alpha 随着 k 增大呈指数级减小,其设计思路是距离越近的节点对分数的影响应更大,反之应有衰减;
  • 偏移量 \beta 是为了避免出现 2.1 中讨论的分数归零现象;
  • A^k 可能较难理解,其实就是在 k 距离内的邻接矩阵,如 k = 1 就是与节点 v 直接相连的邻接矩阵,k = 2 就是与节点 v 隔一个节点相连的邻接矩阵。

通过例子理解先跳过,可以自己搜索具体的计算例子。

三、PageRank 中心性(PageRank centrality)

PageRank 应该是这三者中最出名的,主要用于谷歌的网页排序。
 

3.1 PageRank 中心性思想

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/48466.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YoLoV7做图像分类/目标检测过程(附代码+详细操作说明)

一、准备数据 图像在my_1imgs中,一个是原图jpg,一个是用labelimg画的标签xml文件。(这个画的是一个矩形框) 把自己的数据集(原图和标签准备好后),这两个文件复制到VOCdevkit中,ImageSets为空。 …

多线程(JavaEE初阶系列5)

目录 前言: 1.什么是定时器 2.标准库中的定时器及使用 3.实现定时器 结束语: 前言: 在上一节中小编给大家介绍了多线程中的两个设计模式,单例模式和阻塞式队列模式,在单例模式中又有两种实现方式一种是懒汉模式&a…

Neo4j图数据基本操作

Neo4j 文章目录 Neo4jCQL结点和关系增删改查匹配语句 根据标签匹配节点根据标签和属性匹配节点删除导入数据目前的问题菜谱解决的问题 命令行窗口 neo4j.bat console 导入rdf格式的文件 :GET /rdf/ping CALL n10s.graphconfig.init(); //初始化 call n10s.rdf.import.fetch(&q…

从Arweave开始:4EVERLAND存储签入挑战开始

嗨,4evers, 今天,我们热烈欢迎您参加 Galxe 上的 4EVERLAND “Arweave 入门”活动。这是一项长期的重头活动,所有参与的用户都有机会获得相应的奖励。 Arweave 是一种革命性的去中心化存储协议,为寻求安全可靠的有价…

ubuntu 开启 ssh 服务 设置root远程登录

设置root用户密码 sudo passwd root安装ssh服务和vim编辑器 sudo apt -y install openssh-server vim开启ssh服务 sudo vim /etc/ssh/ssh_config去掉 配置文件中 Port 22 的注释后保存退出 设置root用户远程登录 sudo vim /etc/ssh/sshd_config将 PermitRootLogin prohibit-pas…

html学习1

1、<!DOCTYPE html>用来告知 Web 浏览器页面使用了哪种 HTML 版本。 2、对于中文网页需要使用 <meta charset"utf-8"> 声明编码&#xff0c;否则会出现乱码。 3、html的结构图&#xff0c;<body> </body>之间的部分可以显示。 4、HTML元素…

[语义分割] DeepLab v2(膨胀卷积、空洞卷积、多尺度信息融合、MSc、ASPP、空洞空间金字塔池化、Step学习率策略、Poly学习率策略)

DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs 论文地址&#xff1a;DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs源码地址&…

C# IO 相关功能整合

目录 删除文件和删除文件夹 拷贝文件到另一个目录 保存Json文件和读取Json文件 写入和读取TXT文件 打开一个弹框&#xff0c;选择 文件/文件夹&#xff0c;并获取路径 获取项目的Debug目录路径 获取一个目录下的所有文件集合 获取文件全路径、目录、扩展名、文件名称 …

8款常用系统镜像烧录软件

系统烧录软件是一种用于将操作系统或其他软件程序安装到嵌入式系统、嵌入式设备或存储设备中的工具。它通常用于将预先编译好的二进制文件或源代码烧录到硬件设备的非易失性存储器中&#xff0c;例如闪存芯片、EEPROM、EPROM或其他存储介质。系统烧录软件提供了一个便捷的方式&…

matplotlib

目录 plot bar pie plot plot可以绘制点图和线图 ?plt.plot #使用?查看plot详细信息 x[1,2,3,4,5] y[16,17,18,19,20] plt.plot(x,y) import numpy as np xnp.arange(0,10) yx*x plt.plot(x,y) xnp.arange(5,15,0.1) ynp.sin(x) plt.plot(x,y,ro) #red circle markers p…

vs2013 32位 编译的 dll,重新用vs2022 64位编译,所遇问题记录

目录 一、vs2013 32 DLL 转 VS2022 64 DLL 所遇问题 1、 LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1800”不匹配值“1900” 2、原先VS2013 现在 VS2022 导致的vsnprintf 重定义问题 3、 无法解析的外部符号 __vsnwprintf_s 4、无法解析的外部符号__imp__CertFreeC…

在线平面设计工具盘点,提升效率首选

在移动应用程序或网页UI设计项目中&#xff0c;在线平面图工具是必不可少的。市场上的在线平面图工具绘制软件丰富多样&#xff0c;层出不穷。作为一名UI设计师&#xff0c;有必要了解哪些在线平面图工具既简单又专业。本文将分享6种在线平面图工具&#xff0c;每种在线平面图工…

199. 二叉树的右视图

给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: [] 提示…

力扣算法数学类—剑指 Offer 62. 圆圈中最后剩下的数字

目录 剑指 Offer 62. 圆圈中最后剩下的数字 题目背景&#xff1a; 题解&#xff1a; 代码&#xff1a; 结果&#xff1a; 剑指 Offer 62. 圆圈中最后剩下的数字 题目背景&#xff1a; 这是著名的约瑟夫环问题 这个问题是以弗拉维奥约瑟夫命名的&#xff0c;他是1世纪的一名…

【2023最新教程】6个步骤从0到1开发自动化测试框架(0基础也能看懂)

一、序言 随着项目版本的快速迭代、APP测试有以下几个特点&#xff1a; 首先&#xff0c;功能点多且细&#xff0c;测试工作量大&#xff0c;容易遗漏&#xff1b;其次&#xff0c;代码模块常改动&#xff0c;回归测试很频繁&#xff0c;测试重复低效&#xff1b;最后&#x…

机器学习——样本不均衡学习

1、样本不均衡定义 一般在分类机器学习中&#xff0c;每种类别的样本是均衡的&#xff0c;也就是不同目标值的样本总量是接近的&#xff0c;但是在很多场景下的样本没有办法做到理想情况&#xff0c;甚至部分情况本身就是不均衡情况&#xff1a; &#xff08;1&#xff09;很多…

SSL 证书过期巡检脚本

哈喽大家好&#xff0c;我是咸鱼 我们知道 SSL 证书是会过期的&#xff0c;一旦过期之后需要重新申请。如果没有及时更换证书的话&#xff0c;就有可能导致网站出问题&#xff0c;给公司业务带来一定的影响 所以说我们要每隔一定时间去检查网站上的 SSL 证书是否过期 如果公…

StackOverFlow刚刚宣布推出自己的AI产品!

StackOverFlow刚刚宣布要推出自己的AI产品&#xff01; OverflowAI是StackOverFlow即将推出自己AI产品的名字&#xff0c;据称也是以VSCode插件的形式&#xff0c;计划在8月发布。我们来看看都有些什么功能&#xff0c;通过目前的信息看&#xff0c;OverflowAI的主要功能就是&…

中断控制器的驱动解析

这里主要分析 linux kernel 中 GIC v3 中断控制器的代码(drivers/irqchip/irq-gic-v3.c)。 设备树 先来看下一个中断控制器的设备树信息&#xff1a; gic: interrupt-controller51a00000 {compatible "arm,gic-v3";reg <0x0 0x51a00000 0 0x10000>, /* GI…

机器学习笔记之优化算法(二)线搜索方法(方向角度)

机器学习笔记之优化算法——线搜索方法[方向角度] 引言回顾&#xff1a;线搜索方法从方向角度观察线搜索方法场景构建假设1&#xff1a;目标函数结果的单调性假设2&#xff1a;屏蔽步长 α k \alpha_k αk​对线搜索方法过程的影响假设3&#xff1a;限定向量 P k \mathcal P_k …