PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一. Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一.PageRank适用于任何图或网络在任何域.因此,PageRank是现在经常使用在文献计量学,社会和信息网络分析,用于链接预测和推荐,甚至用于道路网络的系统分析,以及生物学,化学,神经科学,物理.
原理:
由于存在一些出链为0,也就是那些不链接任何其他网页的网, 也称为孤立网页,使得很多网页能被访问到.因此需要对 PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping factor)d, d一般取值d=0.85.其意义是,在任意时刻,用户到达某页面后并继续向后浏览的概率. 1- d= 0.15就是用户停止点击,随机跳到新URL的概率的算法被用到了所有页面上,估算页面可能被上网者放入书签的概率.
最后,即所有这些被换算为一个百分比再乘上一个系数d.由于下面的算法,没有页面的
优缺点:
优点:
1、 在于它对互联网上的网页给出了一个全局的重要性排序,它使用链接来衡量整体受欢迎程度,而不是使用相关主题.
2、 算法的计算过程是可以离线完成的,这样有利于迅速响应用户的请求.
缺点:
1、 主题无关性,没有区分页面内的导航链接、广告链接和功能链接等,容易对广告页面有过高评价;
2、 旧的页面等级会比新页面高,因为新页面,即使是非常好的页面,也不会有很多链接,除非他是一个站点的子站点.
应用:
基于PageRank的理论,我们以每个微博账户的“关注”为链出链接,“粉丝”为链入链接,我们把这种以人为核心的关系,叫PeopleRank
,代码见http://blog.fens.me/hadoop-social-peoplerank/
#################################Matlab########################################
% Parameter M adjacency matrix where M_i,j represents the link from 'j' to 'i', such that for all 'j'
% sum(i, M_i,j) = 1
% Parameter d damping factor
% Parameter v_quadratic_error quadratic error for v
% Return v, a vector of ranks such that v_i is the i-th rank from [0, 1]
function [v] = rank2(M, d, v_quadratic_error)
N = size(M, 2); % N is equal to either dimension of M and the number of documents
v = rand(N, 1);
v = v ./ norm(v, 1); % This is now L1, not L2
last_v = ones(N, 1) * inf;
M_hat = (d .* M) + (((1 - d) / N) .* ones(N, N));
while(norm(v - last_v, 2) > v_quadratic_error)
last_v = v;
v = M_hat * v;
% removed the L2 norm of the iterated PR
end
end %function
##################################R语言########################################
Library(“igraph”)
page.rank (graph, algo = c("prpack", "arpack", "power"),
vids = V(graph), directed = TRUE, damping = 0.85,
personalized = NULL, weights = NULL, options = NULL)
g2 <- make_star(10)
page_rank(g2)$vector