首页 > 编程知识 正文

pagerank算法与特征值(oracle数据库)

时间:2023-05-05 22:17:49 阅读:74687 作者:998

1. PageRank算法概述,即网页排名网页级别Google左侧排名或http://www.Sina

这是谷歌创始人jdddt和yxdkj在1997年构建早期搜索系统原型时提出的一种链接分析算法,自从谷歌在商业上取得空前成功后,该算法已成为其他搜索引擎和学术界关注的计算模型目前,许多重要的链路分析算法都是基于PageRank算法派生出来的。 PageRank是谷歌用于识别网页级别/重要性的方法之一,也是谷歌用于衡量网站好坏的唯一标准。 在细化所有其他元素(如Title徽标和Keywords徽标)后,谷歌将通过PageRank调整结果,在另一个搜索结果网站上对“排名/重要性”更高的网页进行排名,从而提高搜索结果的相关性和质量那个等级从0级到10级,10级是满分。 宣传值越高,该页面越受欢迎(重要)。 例如,宣传值为1的站点表示此站点不太受欢迎,宣传值为7~10的站点表示非常受欢迎(或极其重要)。 一般宣传值达到4,即使是好网站。 谷歌将自己网站的宣传值设置为10,表明谷歌这个网站非常受欢迎,也可以说这个网站非常重要。

2 .从连锁数到PageRank

在提出PageRank之前,提出了一种研究人员,假设指向一个页面的链接越多,该页面越重要,利用页面的链接数进行链接分析计算。 早期很多搜索引擎也采用链数作为链接分析方法,对提高搜索引擎的效果也有很大的效果。 PageRank除了链数的影响外,还借鉴了网页的质量因素,将两者结合起来获得了更好的网页重要性评价标准。

在一个internet页面a上,此页面PageRank的计算基于以下两个基本假设:

数量假设:在Web图形模型中,一个页面节点接收到的其他页面进入链的数量越多,该页面就越重要。

质量假设:页面a的链接质量不同,高质量的页面通过链接向其他页面传递更多的权重。 因此,高质量的页面越指向页面a,页面a就越重要。

利用以上两种假设,PageRank算法刚开始为每页给出相同的重要性分数,并通过迭代递归计算更新每个页面节点的PageRank分数,直到分数稳定。 PageRank的计算结果是网页的重要性评价,这与用户输入的查询没有任何关系。 也就是说,算法与主题无关。 如果有一个搜索引擎,并且其相似度计算函数完全采用PageRank进行排序,而不考虑内容相似因素,那么这个搜索引擎的表现是什么呢? 此搜索引擎对任何查询请求返回相同的结果。 也就是说,它返回PageRank值最高的页面。

3. PageRank算法的原理PageRank的计算充分利用了两个假设:数量假设和质量假设。 步骤如下: http://www.Sina.com /网页按链接关系构建网页地图,每一页设置相同的PageRank值,几轮计算得到每一页得到的最终PageRank值。 随着每个回合的计算进行,网页的当前页面排名值将不断更新。

佩奇排名。更新页的PageRank分数计算中,每个页面将当前PageRank值平均分配给此页中包含的链,并为每个链接分配适当的权重。 每个页面都可以通过将从到此页面的输入链输入的所有权重相加来获得新的页面排名分数。 获取每页更新的PageRank值后,PageRank计算完成。

1)在初始阶段:

当网页t中有到网页a的链接时,t的所有者认为a更重要,将t的重要度分数的一部分赋予a。 该重要度得分值是pr[t]/l[t]

在此,pr(t )是t的PageRank值,l ) t是t的出链数

a的页面排名值是一系列t这样的页面重要度得分值的累积。

也就是说,一个页面的得票数取决于所有链对该页面进行投票的重要性,而指向一个页面的超链接相当于对该页面进行投票。 一个页面上的PageRank通过递归算法获得了所有链链链入该页面(链入页面)的重要性。 有更多链接的页面将是高水平的。 相反,如果页面没有链接,则没有级别。

2)在一轮中更新页面PageRank得分的计算方法:轻松计算:

假设一个只由a、b、c和d四个页面组成的集合。 如果所有页面都链接到a,则a的页面排名值为b、c和d之和。

假设b也有到c的链接,而d也有到包含a的三个页面的链接。 一页不能投两次票。 所以b会给每页半票。 同样的逻辑,d投的票只有三分之一计算在a的PageRank上。

换句话说,基于链接总数将一页的PR值分成两部分。

3.2 基本思想:

/p>

图1 所示的例子来说明PageRank的具体计算过程。

3.4 修正PageRank计算公式:

由于存在一些出链为0,也就是那些不链接任何其他网页的网, 也称为孤立网页,使得很多网页能被访问到。因此需要对 PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping factor)q, q一般取值q=0.85。

其意义是,在任意时刻,用户到达某页面后并继续向后浏览的概率。1- q= 0.15就是用户停止点击,随机跳到新URL的概率)的算法被用到了所有页面上,估算页面可能被上网者放入书签的概率。

最后,即所有这些被换算为一个百分比再乘上一个系数q。由于下面的算法,没有页面的PageRank会是0。所以,Google通过数学系统给了每个页面一个最小值。

这个公式就是.S Brin 和 L. Page 在《The Anatomy of a Large- scale Hypertextual Web Search Engine Computer Networks and ISDN Systems 》定义的公式。

所以一个页面的PageRank是由其他页面的PageRank计算得到。Google不断的重复计算每个页面的PageRank。如果给每个页面一个随机PageRank值(非0),那么经过不断的重复计算,这些页面的PR值会趋向于正常和稳定。这就是搜索引擎使用它的原因。

4. PageRank幂法计算(线性代数应用)

4.1 完整公式:

关于这节内容,可以查阅:谷歌背后的数学

首先求完整的公式:

Arvind Arasu 在《Junghoo Cho Hector Garcia - Molina, Andreas Paepcke, Sriram Raghavan. Searching the Web》 更加准确的表达为:

是被研究的页面,是链入页面的数量,是链出页面的数量,而N是所有页面的数量。

PageRank值是一个特殊矩阵中的特征向量。这个特征向量为:

R是如下等式的一个解:

如果网页i有指向网页j的一个链接,则

否则=0。

4.2 使用幂法求PageRank

那我们PageRank 公式可以转换为求解的值,

其中矩阵为 A =q× P + ( 1 一 q) * /N 。 P 为概率转移矩阵,为 n 维的全 1 行.则=

幂法计算过程如下:
X 设任意一个初始向量,即设置初始每个网页的PageRank值均。一般为1.

R = AX;

while (1 )(

if( lX -R I <) { //如果最后两次的结果近似或者相同,返回R

return R;

} else {

X =R;

R = AX;

}

}

4.3 求解步骤:

一、 P概率转移矩阵的计算过程:

先建立一个网页间的链接关系的模型,即我们需要合适的数据结构表示页面间的连接关系。

1) 首先我们使用图的形式来表述网页之间关系:

现在假设只有四张网页集合:A、B、C,其抽象结构如下图1:

图1网页间的链接关系

显然这个图是强连通的(从任一节点出发都可以到达另外任何一个节点)。

2)我们用矩阵表示连通图:

用邻接矩阵P表示这个图中顶点关系 ,如果顶(页面)i向顶点(页面)j有链接情况 ,则pij = 1 ,否则pij = 0 。如图2所示。如果网页文件总数为N, 那么这个网页链接矩阵就是一个N x N 的矩 阵 。

3)网页链接概率矩阵

然后将每一行除以该行非零数字之和,即(每行非0数之和就是链接网个数)则得到新矩阵P’,如图3所示。 这个矩阵记录了 每个网页跳转到其他网页的概率,即其中i行j列的值表示用户从页面i 转到页面j的概率。图1 中A页面链向B、C,所以一个用户从A跳转到B、C的概率各为1/2。

4)概率转移矩阵P

采用P’ 的转置矩阵进行计算,也就是上面提到的概率转移矩阵P 。 如图4所示:

图2 网页链接矩阵: 图3 网页链接概率矩阵:

图4 P’ 的转置矩阵

二、 A矩阵计算过程。


1)P概率转移矩阵:

2)/N 为:

3)A矩阵为:q× P + ( 1 一 q) * /N = 0.85 × P+ 0.15* /N

初始每个网页的PageRank值均为1 , 即X~t = ( 1 , 1 , 1 ) 。

三、循环迭代计算PageRank的过程

第一步:

因为X 与R的差别较大。 继续迭代。

第二步:

继续迭代这个过程...

直到最后两次的结果近似或者相同,即R最终收敛,R 约等于X,此时计算停止。最终的R 就是各个页面的 PageRank 值。

用幂法计算PageRank 值总是收敛的,即计算的次数是有限的。

lhzdby Page和Sergey Brin 两人从理论上证明了不论初始值如何选取,这种算法都保证了网页排名的估计值能收敛到他们的真实值。

由于互联网上网页的数量是巨大的,上面提到的二维矩阵从理论上讲有网页数目平方之多个元素。如果我们假定有十亿个网页,那么这个矩阵 就有一百亿亿个元素。这样大的矩阵相乘,计算量是非常大的。lhzdby Page和Sergey Brin两人利用稀疏矩阵计算的技巧,大大的简化了计算量。

5. PageRank算法优缺点

优点:

是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;有效减少在线查询时的计算量,极大降低了查询响应时间。

缺点:

1)人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低

2)旧的页面等级会比新页面高。因为即使是非常好的新页面也不会有很多上游链接,除非它是某个站点的子站点。

参考文献:

维基百科http://en.wikipedia.org/wiki/Page_rank

PageRank算法的分析及实现

《这就是搜索引擎:核心技术详解》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。