我眼中的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.概述 ...
随机推荐
- [BZOJ3214][ZJOI2013]丽洁体(Hash+DP)
3214: [Zjoi2013]丽洁体 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 906 Solved: 335[Submit][Status] ...
- Eden的退役记
好久没更博客了, 这篇随笔不同于之前的学术性随笔.游记,只是来发泄一下自己的情感,回忆一下自己的OI经历…… 五年的OI生涯结束了 初一:懵懂的我刚接触了OI,被其功能吸引.由于运气好过了初赛,然而复 ...
- [转]SpringMVC拦截器详解[附带源码分析]
目录 前言 重要接口及类介绍 源码分析 拦截器的配置 编写自定义的拦截器 总结 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:ht ...
- Ubuntu 16.04安装RedisDesktopManager
说明:0.9版本的安装补上,只能安装0.8版本的. 官网: https://github.com/uglide/RedisDesktopManager 下载: https://github.com/u ...
- devfs、sysfs、udev介绍
转:http://www.360doc.com/content/11/1203/09/7378000_169310928.shtml 一.devfs linux下有专门的文件系统用来对设备进行管理,d ...
- mysql join优化
http://www.jb51.net/article/50427.htm 七.性能优化1.显示(explicit) inner join VS 隐式(implicit) inner join 如: ...
- 【LaTeX】E喵的LaTeX新手入门教程(4)图表
这里说的不是用LaTeX画图,而是插入已经画好的图片..想看画图可以把滚动条拉到底.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础 ...
- javascript不依赖JS加载顺序事件对象实现
背景: 在现在WEB开发中,稍复杂一点的页面,都会涉及到多个模块,尤其是类似seajs.LABjs.requireJS等模块工具出来后,前端开发者分模块开发已经慢慢变成一种习惯了,但是多个模块间的常常 ...
- [转]Sql Server 主从数据库配置
本文转自:http://www.cnblogs.com/yukaizhao/archive/2010/06/02/sql-server-master-slave-mode.html 网站规模到了一定程 ...
- iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式
新建一个字符串分类:NSString(Check),定义类方法更方便 .h文件 #import <Foundation/Foundation.h> @interface NSString ...