我眼中的PageRank算法详解
随着互联网的发展,网络上已有的网页数量庞大,并且每天都会有很多网页发布,如何权衡这些重要度的排名是一个很重要的问题。我们今天就来了解一下PageRank算法。
首先我们要来了解一下图的概念,请看图1。

图1中,A/B/C/D成为节点,e1/e2/e3/e4/e5成为边。指向某个节点的边成为该节点的入度,从该节点指出的边成为该节点的出度。比如对接点B来说,e1是唯一指向B的边,我们可计算出B节点的入度为1;e3是B节点唯一指向其它节点的边,我们可以算出B节点的出度为1。对于网络上的网页之间的关系也可以用上述模型来模仿。对某一个特定网页来说,网络上存在很多网页指向它,并且这个网页内也包含很多指向其它网页的超链接。比如:有很多网页指向百度搜索、百度百科,百度页面内有指向其它网页的超链接。
我们可以用图1中的A/B/C/D表示四个网页,网页与网页之间的边我们成为链接。比如对网页D来说,网络上有一个网页(B)指向它,它包含两个超链接(e4、e5),一个链向网页A,一个链向网页C。在计算机中,图结构可以用二维矩阵来表示:如果网页A到网页B有一条边(连接),那么矩阵中第A行第B列的元素不为0(可以表示为w,w表示权重,但本文都表示为1)。那么,图1所对应的二维矩阵可以表示为图2的形式。

我们采用行存储,例如:A到B有一条边,在矩阵中可表示为第A行第B列的元素为1。
那么,我们现在来考虑一下:什么样的网页重要?可以想象,某种程度上,1)网页入度越多,其重要度越高;2)高质量的网页指向的网页也是高质量的。PageRank就是基于这两点来进行计算的,其数学表达形式如式1所示。
  式1
假设每个页面的初始重要度都为1,包含的超链接数为N,那么它向每个页面传递的重要度为1/N。按照这个思想构造超链接矩阵H,如式2所示。
  式2
由于初始重要度都为1,所以初始向量如式3所示。

通过式1,其计算过程可表示为
,直到
.
在面对实际网络时,有三个问题需要考虑:1,I是否会收敛?2,I的收敛是否与初始值无关?3,满足前两条的情况下得到的数据是否可以作为重要度的排名?现在按照H计算,对这三个问题的回答都是No。需要进行随机调整(Stochasticity Adjustment)保证必须收敛,再进行素矩阵调整(Primitivity Adjustment)保证收敛的元素都为正,即:重要度都是大于0的。
我眼中的PageRank算法详解的更多相关文章
- BM算法  Boyer-Moore高质量实现代码详解与算法详解
		
Boyer-Moore高质量实现代码详解与算法详解 鉴于我见到对算法本身分析非常透彻的文章以及实现的非常精巧的文章,所以就转载了,本文的贡献在于将两者结合起来,方便大家了解代码实现! 算法详解转自:h ...
 - kmp算法详解
		
转自:http://blog.csdn.net/ddupd/article/details/19899263 KMP算法详解 KMP算法简介: KMP算法是一种高效的字符串匹配算法,关于字符串匹配最简 ...
 - 机器学习经典算法详解及Python实现--基于SMO的SVM分类器
		
原文:http://blog.csdn.net/suipingsp/article/details/41645779 支持向量机基本上是最好的有监督学习算法,因其英文名为support vector ...
 - [转] KMP算法详解
		
转载自:http://www.matrix67.com/blog/archives/115 KMP算法详解 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段. 我们这里说的K ...
 - 【转】AC算法详解
		
原文转自:http://blog.csdn.net/joylnwang/article/details/6793192 AC算法是Alfred V.Aho(<编译原理>(龙书)的作者),和 ...
 - KMP算法详解(转自中学生OI写的。。ORZ!)
		
KMP算法详解 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段. 我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法.KMP算法是拿来处理字符串匹配的.换句 ...
 - EM算法详解
		
EM算法详解 1 极大似然估计 假设有如图1的X所示的抽取的n个学生某门课程的成绩,又知学生的成绩符合高斯分布f(x|μ,σ2),求学生的成绩最符合哪种高斯分布,即μ和σ2最优值是什么? 图1 学生成 ...
 - Tarjan算法详解
		
Tarjan算法详解 今天偶然发现了这个算法,看了好久,终于明白了一些表层的知识....在这里和大家分享一下... Tarjan算法是一个求解极大强联通子图的算法,相信这些东西大家都在网络上百度过了, ...
 - 安全体系(二)——RSA算法详解
		
本文主要讲述RSA算法使用的基本数学知识.秘钥的计算过程以及加密和解密的过程. 安全体系(零)—— 加解密算法.消息摘要.消息认证技术.数字签名与公钥证书 安全体系(一)—— DES算法详解 1.概述 ...
 
随机推荐
- hdu 1251 (Trie水题)
			
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
 - 【其它算法】Face The Right Way
			
Face The Right Way Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5278 Accepted: 246 ...
 - 【构造】Gym - 101411F - Figure ans Spots
			
在最外围的一圈没有意义,所以全都涂黑,内部贪心地涂成棋盘即可. #include<cstdio> #include<cstring> using namespace std; ...
 - datatable无法设置横向滚动条(设置无效)
			
datatable设置横向滚动条无效 js如下: 页面如下: 设置 scrollx 属性为true时,还需在 table 添加 style="white-space: nowrap; &qu ...
 - Problem F: 尖兵
			
#include<stdio.h> struct man{ ]; int grade; }; int main(void) { int t; int i,j,n; ],max; scanf ...
 - NOIP2014 解题报告·水渣记
			
Day 1: 第一次参加noip.小激动,小紧张,这些正常的情绪就不用说了.唯一值得一提的是 我早上步行去郑大工学院的时候迷路了,直接转进了隔壁的河南农大,绕了半天找不到机房,还给几个同学打了电话可就 ...
 - 用GDB 调试Java程序
			
陈皓 http://blog.csdn.net/haoel 背景 想要使用GDB调试程序,就需要用GNU的编译器编译程序.如:用GCC编译的C/C++的程序,才能用GDB调试.对于Java程序也是 ...
 - 谈谈 CSS 关键字 initial、inherit 和 unset
			
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
 - 轻量级web服务器lighttpd的编译及配置(for x86-linux)
			
转自:http://blog.163.com/ljf_gzhu/blog/static/131553440201211522317367/ 备注: PC Linux:Ubuntu-10.10 Linu ...
 - Pod中访问外部的域名配置
			
在实际应用中经常遇到Pod中访问外部域名的状况,在Kubenetes 1.6以上的版本通过配置DNS configmap已经解决,详细的内容可以参考官方的 https://kubernetes.io/ ...