1基本思想
通过对由超过 50,000 万个变量和 20 亿个词汇组成的方程进行计算,PageRank 能够对网页的重要性做出客观的评价。PageRank 并不计算直接链接的数量,而是将从网页 A 指向网页 B 的链接解释为由网页 A 对网页 B 所投的一票。这样,PageRank 会根据网页 B 所收到的投票数量来评估该页的重要性。此外,PageRank 还会评估每个投票网页的重要性,因为某些网页的投票被认为具有较高的价值,这样,它所链接的网页就能获得较高的价值。重要网页获得的 PageRank(网页排名)较高,从而显示在搜索结果的顶部。
2举例
其中概率转移矩阵指出了每个网页跳转到其他网页的概率,通过联通图得到。计算时转置。
然后通过A*x来迭代求解,当x的值前后两次差满足阈值要求时停止迭代。
3理论支持
PageRank的计算公式
其中:
PRn(A) :网页A的PageRank值。
PRn-1(Ti)网页存在指向A的链接,并且网页在上一次迭代时的PageRank值。
C(Ti):网页的外链数量。
d: 阻尼系数,0<d<1,.
PageRank的值有两方面决定,比例分别为1-d和d.
一方面,假定全集是n个网页,不通过链接方式其中任意网页就有n个可能的无条件去处,每种跳转的概率相等(1/n)。因此A得到每个网页的1/n的(1-d)的分数。
另一方面,网页存在明确的指向网页A的链接,因此公式后半部分的分数分配给网页A。
4算法步骤
PageRank的公式转化为求解limA*x的值,其矩阵A=d*P+(1-d)*(e*e’)/m,P为概率转移矩阵,e’为n维的全1向量,m为全部网页个数。
1) 任意初始化向量x;
2)迭代res=Ax
3) 如果||x-res||<r,返回res,否则x=res转2)。
5实验
实验算法
function [count,res ] = pagerank( Graph,d,r)
%PAGERANK Summary of this function goes here 对网页重要性排序的算法
% Detailed explanation goes here A=(1-d)*e*e'/m+d*P
% 输入参数为网页的链接矩阵Graph和阻尼系数d,阈值r ,输出为每个网页的pagerank值。
%将连接矩阵转化为概率转移矩阵
[m,n]=size(Graph);%m=n
for i=1:1:m;
temp=sum(Graph(i,:));
for j=1:1:m
Graph(i,j)=Graph(i,j)/temp;
end
end
%初始化变量,迭代计算
P=Graph';
e=ones(m,1);
x=rand(m,1);
A=(1-d)*((e*e')/m)+d*P;
res=A*x;
count=1;
while(norm(res-x)>r)
x=res;
res=A*x;
count=count+1;
end
实验结果
实验表明pagerank算法与使用的初始值x是没有关系的。
>> [count,res]=pagerank(P,0.5,0.000001)
count =
14
res =
1.0769
0.7692
1.1538
6优势和劣势
优点:是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;有效减少在线查询时的计算量,极大降低了查询响应时间。
不足:人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低;另外,PageRank有很严重的对新网页的歧视。
7主要应用场合
对网页重要性进行排名,提高反馈网页的精确度。
8 改进
Topic-Sensitive PageRank
(主题敏感的PageRank)
基本思想:针对PageRank对主题的忽略而提出。核心思想:通过离线计算出一个PageRank集合,该集合中的每一个向量与某一主题相关,即计算某个页面关于不同主题的得分。主要分为两个阶段:主题相关的PageRank向量集合的计算和在线查询时主题的确定。
优点:根据用户的查询请求和相关上下文判断用户查询相关的主题(用户的兴趣)返回查询结果准确性高。
不足:没有利用主题的相关性来提高链接得分的准确性。
Hilltop
基本思想:与PageRank的不同之处:仅考虑专家页面的链接。主要包括两个步骤:专家页面搜索和目标页面排序。
优点:相关性强,结果准确。
不足:专家页面的搜索和确定对算法起关键作用,专家页面的质量决定了算法的准确性,而专家页面的质量和公平性难以保证;忽略了大量非专家页面的影响,不能反应整个Internet的民意;当没有足够的专家页面存在时,返回空,所以Hilltop适合对于查询排序进行求精