随机矩阵1实际上是一种特殊的非负矩阵(non-negative matrix),非负矩阵是指矩阵元素都是非负(non-negative)的,当然非负要与正矩阵(Positive Matrix,所有元素都大于0)进行细微的区分。

非负矩阵在计算数学、图论、线性规划、自动控制等领域有着广泛的应用,对其特征值,尤其是最大特征值(注意这里的最大时从模的角度或者说在绝对值概念上的最大),也就是矩阵的主特征值(principal/primary eigenvalue)的估计有很重要的意义。

A stochastic matrix has principal/primary eigenvalue 1.

import numpy as npif __name__ == '__main__':np.random.seed(0)A = np.random.rand(5, 5)A /= A.sum(0)   # 列和为1lmbd, Q = np.linalg.eig(A)print(lmbd)# [ 1.00000000+0.j -0.25356414+0.j -0.03024074+0.j # 0.03303155+0.07419558j  0.03303155-0.07419558j]

随机矩阵说来如此重要,那么到底什么样的矩阵才是随机矩阵呢?假如随便给你一个非负矩阵,该如何判定它是否属于随机矩阵呢?

随机矩阵实际上应当分成左随机矩阵(left stochastic matrix,或者叫 column stochastic matrix:列随机矩阵)和右随机矩阵(right stochastic matrix,或者叫 row stochastic matrix:行随机矩阵)。左随机矩阵的列和为1,右随机矩阵的行和为1,两者在应用上几乎等价,区别仅在于约定。对于那些只满足随机矩阵条件,但有些列(或行)的矩阵元之和小于1的矩阵也有一个名称,叫做亚随机矩阵(substochastic matrix)2。同时满足行和和列和都是1的非负矩阵就是双随机矩阵(double stochastic matrix),单位矩阵就是一种特殊的双随机矩阵。

既然随机矩阵 AA 的行和为1,那么假设 e=(1,1,…,1)e=(1,1,\ldots,1),则 ee 的转置 eTe^T,即是矩阵的一个特征向量,对应于 AA 的特征值为1;

AeT=1⋅eT

Ae^T=1\cdot e^T

这样对于证明随机矩阵的主特征值(矩阵的谱半径)是1还有一定的距离。假设 AA 的 nn 个特征值为λ(i)λ(i),其中 i=1,2,...,ni=1,2,...,n;若要证明性质成立,则必须证明|λ(i)|<=1|λ(i)|。现今有一个特征值是1,只要证明其余各特征值的绝对值都小于等于1即可。又由矩阵的谱范数的性质可知,也即任何矩阵的谱半径都不大于该矩阵的任意诱导矩阵范数,而随机矩阵的 ℓ1\ell_1 范数(列和最大)是1,那么谱半径不大于1。故,1确实是随机矩阵 AA 得主特征值。

随机矩阵的主特征值以及 second largest eigenvalue 的比值是幂法收敛速度的一个基本的衡量标准。
ageRank的计算有多种方式,而对此的研究也是不计其数,当然最传统的还是利用幂法来确定抓取入库的各网页的PageRank值。由于web网页的数量巨大,针对幂法收敛速度的考虑就不是多余无用的分析。
两特征值的“谱隙(eigengap)”主要用来衡量利用幂法求解得到的PR值的稳定性。
特征值分析对于理解PageRank算法起到关键作用。

随机矩阵的物理意义

普通马尔科夫随机过程中的转移矩阵通常是随机矩阵(stochastic matrix),即每一列的矩阵元素之和为1的矩阵。也即每一列对应于一个概率分布

Pn+1=HPn

P_{n+1}=HP_{n}
其中 Hij=pj→i/NjH_{ij}=p_{j\to i}/N_j,所以 HH 的每一列其实表示当前节点(也即网页 jj)的出度分布。

而我们的矩阵 H<script id="MathJax-Element-356" type="math/tex">H</script> 却可能有一些列是零向量(亚随机矩阵),从而 矩阵元之和为0,它们其实对应于那些没有对外链接的网页,即所谓的“悬挂网页”(dangling page)

References


  1. 随机矩阵(stochastic matrix) ↩
  2. 谷歌背后的数学 ↩

随机矩阵(stochastic matrix)与 PageRank相关推荐

  1. 随机矩阵 stochastic matrix

    转自:https://www.cnblogs.com/startover/archive/2013/06/18/3141624.html 随机矩阵(stochastic matrix)       最 ...

  2. stochastic matrix,doubly-stochastic matrix (bistochastic matrix)

    1.随机矩阵 stochastic matrix 定义: A square matrix P is said to be stochastic if its elements are all nonn ...

  3. PageRank背后的数学

    转载自 谷歌背后的数学 --卢昌海 一. 引言 在如今这个互联网时代, 有一家公司家喻户晓--它自 1998 年问世以来, 在极短的时间内就声誉鹊起, 不仅超越了所有竞争对手, 而且彻底改观了整个互联 ...

  4. 谷歌背后的数学(PageRank)

    谷歌背后的数学 - 卢昌海 - 一. 引言 在如今这个互联网时代, 有一家公司家喻户晓--它自 1998 年问世以来, 在极短的时间内就声誉鹊起, 不仅超越了所有竞争对手, 而且彻底改观了整个互联网的 ...

  5. 机器学习笔记马尔可夫链蒙特卡洛方法(二)马尔可夫链与平稳分布

    机器学习笔记之马尔可夫链蒙特卡洛方法--马尔可夫链与平稳分布 引言 回顾:蒙特卡洛方法 马尔可夫链与平稳分布 马尔可夫链 平稳分布 细致平衡 关于平稳分布的补充 马尔可夫链的本质 平稳分布的收敛性证明 ...

  6. cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph as Matrix 2. PageRank / the Google Algor ...

  7. 【十大经典数据挖掘算法】PageRank

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 引言 PageRank是Sergey Brin与Larry Page于1 ...

  8. 《统计学习方法》学习笔记 第二十一章 PageRank算法

    目录 1 PageRank的定义 1.1 基本想法 1.2 有向图和随机游走模型 1 有向图(directed graph) 2 随机游走模型 3 PageRank的基本定义 4 PageRank的一 ...

  9. 机器学习算法-PageRank(排序)

    Larry Page于1998年提出了PageRank,并在斯坦福大学攻读计算机科学博士学位期间,遇到了Sergey Brin,两人于1998年合伙创立Google,并将PageRank应用在Goog ...

最新文章

  1. pandas计算滑动窗口中的最大值实战(Rolling Maximum in a Pandas Column):计算单数据列滑动窗口中的最大值、计算多数据列滑动窗口中的最大值
  2. JS打印指定区域内容
  3. HTTP长连接和短连接以及推送服务原理(转)
  4. 朋友圈里的一张组合逻辑图
  5. 未来计算机能帮人们做什么,未来的计算机阅读答案
  6. linux怎么进入bios查看mac地址,详细教您查看本机mac地址
  7. 二分查找 寻找指定数 python 实现
  8. 在状态栏中显示鼠标位置坐标
  9. Codeforces Round #326 (Div. 2) B. Pasha and Phone C. Duff and Weight Lifting
  10. 一些弹出框的用法例子(二)
  11. 小熊的人生回忆(三)
  12. 2007标注没有文字_Hi,siri,你的商标注册了吗
  13. xml文件修改逆向android,Android逆向重置版(2)—起源
  14. iOS如何优雅的处理“回调地狱Callback hell”(一)——使用PromiseKit
  15. 「数字电子技术基础」6.触发器
  16. linux系统用户密码忘了怎么办,linux 系统忘记密码的快捷解决方法(图文详解)
  17. 模拟win10系统开机加载的动画
  18. 穿越“惊世骇俗”的美景
  19. Excel按照单元格内设定好的次序进行工作表排序
  20. 上云,你需要了解的账号管理模型

热门文章

  1. Doris之磁盘空间管理(重点)
  2. 详解:Spark程序的开始 SparkContext 源码走一走
  3. android fragment实例化,Android使得Fragment 切换时不重新实例化
  4. Java常量什么时候被回收,JVM GC调优(2)-GC算法判定对象可以被回收(部分摘自深入理解Java虚拟机) - Java 技术驿站-Java 技术驿站...
  5. python微信公众菜单_Python实现微信公众平台自定义菜单实例
  6. Tableau可视化学习笔记:day01-02
  7. 使用C++和LIBSVM实现机器学习+样本分类
  8. 小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
  9. 小程序-picker之key-value形式
  10. ECMAScript 6 + Babel