PageRank理论与实践及用户评分应用PeopleRank算法
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
最新文章
- [No0000AA]Windows 系统环境变量列表
- RNN求解过程推导与实现
- Java Eclipse解决中文字体太小
- fast-framework – 基于 JDK 8 实现的 Java Web MVC 框架
- 哈希加密算法 MD5,SHA-1,SHA-2,SHA-256,SHA-512,SHA-3,RIPEMD-160 - aTool
- BZOJ 1923 外星千足虫(高斯消元)
- java SimpleDateFormat非线程安全测试
- 【Fiddler】手机抓包
- Reverse Interger
- dijkstra堆优化模板
- silverlight+wcf 获得web参数
- sql语法复习:增删查改,各种数据库对象创建和函数使用
- bzoj 1430: 小猴打架 -- prufer编码
- Android中相机和相冊使用分析
- Python Day 5
- Ubuntu Docker版本的更新与安装
- BZOJ1192 [HNOI2006]鬼谷子的钱袋 数学推理
- [React] 09 - Tutorial: components
- getHibernateTemplate()的用法 (转)
- 第三方登录:微信扫码登录(OAuth2.0)