通过欢迎度对网页排名

一、欢迎度历史

1998年 Jon Kleinberg致力于HITS的万维网搜索引擎项目,其中的算法使用了万维网的超链接结构来改进搜索引擎所得的结果。

同时,在离他很近的斯坦福大学里,两名博士生正在从事一项名为PageRank的类似项目,分别是Sergey Brin和Larry Page。

这两个模型之间的联系令人吃惊。然而,Jon并未试图将HITS发展成为一家公司,不过后来企业家们却试着去做了,并因此而赋予了HITS那迟到的商业成功。搜索引擎Teoma的技术基础就是HITS算法的一个扩展。

在介绍之前,我们先将万维网的超链接结构形成一个巨大的有向图,有向链接分为岀链和入链。

网络有向图

1.1 PageRank

Pagerank的论点是,如果一个网页被其他重要的页面所指向,那它就是重要的。值得注意的是,推荐者的地位对推荐的作用是有一定联系的,也与推荐者推荐的总数有所关联。

1.2 HITS

HITS定义了枢纽(hub)和权威(authority),这是网页的属性,当然一个网页可以两者都是。

论点是,如果一个页面指向好的权威网页,那它就是一个好的枢纽网页(从而配上一个高的枢纽评分);而如果一个网页被好的枢纽网页所指向,那它就是一个好的权威网页。

1.3 查询相关性

如果每个页面的欢迎度评分是离线确定的,并且对于无论哪个查询而言(直至下次更新前)均保持恒定,则排名称为查询无关的

PageRank是查询无关的,HITS的原始版本是查询相关的。它们二者都可以修改为相反的那个类型。

二、谷歌的PageRank数学

2.1 求和公式

某个页面的Pi的PageRank记为r(Pi),它是所有指向Pi的页面的PageRank之和。

r(Pi)=∑Pj∈BPir(Pj)|Pj|

Bpi为指向Pi的页面集合,|Pj|是由Pj发出的岀链数量。

通过迭代的方式,解决通过未知页面的PageRank值得出另外未知页面的PageRank值。为了定义这一迭代过程,我们引入更多的记号,令rk+1(Pi)表示为页面Pi在第k+1次循环时的PageRank,则

rk+1(Pi)=∑Pj∈BPirk(Pj)|Pj|(1)

将所有页面Pi均具有r0(Pi)=1/n开始,并一直重复下去,直至收敛到稳定值。

2.2求和方程的矩阵表示

打个比方,以下面这个图为例

我们引入一个n x n阶的矩阵H和一个1 x n阶的行向量πT。矩阵H是一个行归一化超链接矩阵,则上图相应H为:

H=???????????001/30001/201/30001/20000000001/21001/31/2000001/21/20???????????

向引入行向量π(k)T,它表示在第k次循环时的PageRank向量。则(1)式可表示为:

π(k+1)T=π(k)TH(2)

从这个H矩阵可以看出一些端倪,书中总结出4个,我觉得关键在于在计算中通过矩阵计算降低复杂度,这在现实中是个稀疏矩阵,复杂度对于理论来说由平方降为1次。

2.3迭代过程问题

是否会收敛?收敛到唯一向量吗?是否与初始向量有关?收敛时间?

以下分析为两位Google创始人解决的迭代问题。

布林和佩奇最初利用π(0)T=1/neT来开始迭代过程,但这可能导致排名下沉(rank sink),譬如出现多个0,可比性降低,排名下沉很大程度上与悬挂节点(岀链为0)的出现有关。

为了解决这个问题,他们使用了随机上网者的概念,对H矩阵进行调整,随机上网者特点为:

  • 随机岀链,包括悬挂节点
  • 随机上网者在某个特定页面上所停留的时间比例便是该页面相对重要性的一个度量

于是,我们将H矩阵变为随机矩阵S:

S=???????????01/61/30001/21/61/30001/21/6000001/6001/2101/61/31/20001/601/21/20???????????

可以证明,S是由H的一个秩一修正所给出的,即S=H+a(1/neT),其中,若页面i为悬挂结点则ai=1,否则为0。二值向量a为悬挂结点向量,为列向量。

然而,仅靠这一点还不够,未能达成存在唯一的正向量πT ,且方程能很快地收敛到πT。要做到这一点,布林和佩奇做了另外一个调整,所谓的素性调整。有了这个调整,所得的矩阵就是随机的并且是素的。一个素矩阵是不可约的并且非周期的,因此,链的稳态向量存在且唯一

转换为素矩阵是基于这样一个论述的。上网者有时会在浏览器URL地址栏输入一个新的目的地,为了对这个行为进行数学建模,布林和佩奇创造了一个新的矩阵G如下:

G=αS+(1?α)1/neeT

式中,a是一个0到1的标量(在之后的章节会反复提到a在谷歌中取0.85),表示随机上网者根据万维网的超链接结构进行浏览的时间百分比。G成为谷歌矩阵,E=1/neeT可称为跳转矩阵,是均匀分布的,即在进行跳转时是公平跳转。

在书中,分为6点简单概括G带来的后果:

  • G是随机的。
  • G是不可约的。
  • G是非周期的,Gii>0导致。
  • G是素的。
  • G是完全稠密的。从计算的角度,这是很糟糕的。但G可以写为非常稀疏的超链接矩阵H的秩一修正。

G=αS+(1?α)1/neeT=α(H+a(1/neT))+(1?α)1/neeT=αH+[α(a)+(1?α)e]1/neT

因此,谷歌修正后的PageRank法为

π(k+1)T=π(k)TG

2.4 PageRank向量的计算

将求解πT转换为如下特征向量问题

πT=πTGπTe=1

将求解πT转换为求解如下的性齐次系统:

πT(E?G)=0TπTe=1

第一个系统为找到对应于主特征值λ1=1的G的归一化主左特征向量。在第二个系统中,目标则是找到E-G的归一化左零向量。两个系统均服从归一化方程πTe=1,该方程确保πT是一个概率向量。

2.4.1 幂法计算

PageRank矩阵G的特点使得幂法成为了显而易见的最佳选择。幂法是求取矩阵主特征值和特征向量的最古老同时也是最简单的迭代方法之一。缺点的计算速度缓慢。

π(k+1)T=π(k)TG=αS+(1?α)1/nπ(k)TeeT=α(H+a(1/neT))+(1?α)1/neeT=απ(k)TH+[απ(k)Ta+1?α]eT/n

式中,向量-矩阵乘法απ(k)TH执行于H这个极端稀疏的矩阵之上,而S和G从来就没有被实际生成或存储过,每个向量-矩阵乘法的复杂度为O(n),因为H的每一行有差不多10个非零元素,这就是使用幂法的主要原因。

这里还有几个优点:

  • 幂法中矩阵系数仅通过向量-矩阵乘法运算的程序来进行访问,而没有实际对矩阵加以操作。
  • 幂法存储方面,除了稀疏矩阵H和悬挂结点向量a之外,就只需要保存\alpha \pi^{(k)T}$了,这个向量是完全稠密的。
  • 迭代次数仅需50~100次。

为什么仅需50次呢,解释一下,在马尔科夫链理论中给出了答案,一般而言,应用于某个矩阵的幂法的渐进收敛速率依赖于绝对值最大的两个特征值λ1和λ2的比值。确切来说,渐进收敛速率就是|λ/λ1|k→0的速率。

对于G这样的随机矩阵,λ1=1,由于G也是素的,因此|λ2|<1。

通过一些理论的支撑,有以下关系:

λk=αμk

其中μk<=1

在万维网结构中,μk约等于1,因此,|μ2(G)|≈α。

因此,渐进收敛速率在50次的情况为:

α50=0.8550≈0.000296

即在第50次迭代时,可以期望近似PageRank向量的精度大约为小数点后2~3位。这个精度已经足够了,当然要真正区分需要小数点后10位精度,但是当PageRank评分和内容评分结合起来之后,高精度就变得不那么重要了。

时间: 2024-10-20 16:59:30

通过欢迎度对网页排名的相关文章

第十章 PageRank——Google的民主表决式网页排名技术

搜索引擎的结果取决于两组信息:网页的质量信息,这个查询与每个网页的相关性信息.这里,我们介绍前一个. 1.PageRank算法原理 算法的原理很简单,在互联网上,如果一个网页被很多其他网页所链接,说明它收到普遍的承认和信赖,那么它的排名就高.比如我们要找李开复博士,有100个人举手说自己是李开复,那么谁是真的呢?如果大家都说创新工厂的那个是真的,那么他就是真的.这就是所谓的民主表决.但是,那么多网页,我们不可能一样对待.有些可靠的链接,相应的权重就要大一点.但是麻烦来了,一开始的时候,我们怎么给

搜索和网页排名的数学原理

一.布尔代数和搜索引擎 搜索引擎是每天都在使用的一种工具,它是一门非常复杂的技术,实现一个搜索引擎并非易事.但是,技术是分为术和道两种的,具体的做事方法是术,做事的原理和原则是道. 不谈搜索引擎的术,但可以说说它的道. 搜索引擎的原理相对于它在技术上的实现,就非常简单了.建立一个搜索引擎大致需要做这几件事:自动下载尽可能多的网页:建立快速有效的索引:根据相关性对网页进行公平准确的排序. 1.布尔代数 布尔代数起源于二进制.中国的阴阳学说是二进制的雏形,而二进制作为一个计数系统,是在公元前2-5世

PageRank网页排名算法

互联网上各个网页之间的链接关系我们都可以看成是一个有向图,一个网页的重要性由链接到该网页的其他网页来投票,一个较多链入的页面会有比较高等级,反之如果一个页面没有链入或链入较少等级则低,网页的PR值越高,代表网页越重要 假设一个有A.B.C.D四个网页组成的集合,B.C.D三个页面都链入到A,则A的PR值将是B.C.D三个页面PR值的总和: PR(A)=PR(B)+PR(C)+PR(D) 继续上面的假设,B除了链接到A,还链接到C和D,C除了链接到A,还链接到B,而D只链接到A,所以在计算A的PR

PageRank_网页排名_MapReduceJava代码实现思路

2017年2月15日, 星期三 PageRank 1.    概念 2.    原理 3.    java代码实现思路 1.定义收敛标准 每次算出新的pr-oldpr=差值 ,所有页面的差值累加 ,除以pagecount,得到avg差值 ,如果.小于0.01 2.计算总页面数,并且算出每个页面的初始pr值=1/pagecount 3.     A  0.25 B  D ----- A  0.35 B D--- A  0.29 B D----   数据集: 一个MapReduce(如何做到循环)

九度OJ 1014 排名 (模拟)

这题做了后,不敢再用C++输入输出了,艾玛...调C++的runtime error,调了一上午,原来才发现是那个std::ios::sync_with_stdio(false)有问题!!以后再慢慢尝试这个语句把吧 题目1014:排名 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7462 解决:2213 题目描述:     今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通过

九度OJ 1014 排名

#include <iostream> #include <string.h> #include <sstream> #include <math.h> #include <vector> #include <algorithm> using namespace std; struct People { string name;//准考证号 int solutionNum;//做出题目的个数 //vector<int> p

百度推广优化 关键字质量度优化指南

百度推广中的质量度是关键词的一项属性,它是百度推广系统根据关键词的创意质量.点击率.账户结构.帐户历史表现(账户生效时间.账户内其它关键词的点击率)等多种因素计算得出的值.在帐户中,质量度来说分为10个级别,10颗星是优,1颗星是差. 高质量度的好处主要有:对于广告主来说,可以用更低的点击价格获得更优的排名,从而降低整体推广费用,提高投资回报率.同时质量度的提高,广告可能跳左,提高点击率.对于搜索用户来说,搜索用户越感兴趣,越多人点击,访问者体验越好,质量度越高,对提高用户体验度有帮助. 第一篇

如何有效减少网页加载时间?20个提高网站访问速度的方法

网友上网都不喜欢用太多的时间等待网页的打开,等待的越长,用户可能会直接关闭网页,这样就会损失很多流量!其次,关键字的排名与网页的打开速度也有关系,这个主要体现搜索引擎对用户体验度上,用户体验度好,排名相对其它网站就好些.因此我觉得我们有必要去提高网页的打开速度,这个不需要太多的成本投入,只需要平时多注意一些小技巧就行了!下面给出20种方法帮你提高网站访问速度缩短网页加载时间. 1.减少页面HTTP请求数量 比较直接的理解就是要减少调用其他页面.文件的数量. A.我们在使用css格式控制的时候,经

搜索引擎网页排序算法

2.1基于词频统计——词位置加权的搜索引擎 利用关键词在文档中出现的频率和位置排序是搜索引擎最早期排序的主要思想,其技术发展也最为成熟,是第一阶段搜索引擎的主要排序技术,应用非常广泛,至今仍是许多搜索引擎的核心排序技术.其基本原理是:关键词在文档中词频越高,出现的位置越重要,则被认为和检索词的相关性越好. 1)词频统计 文档的词频是指查询关键词在文档中出现的频率.查询关键词词频在文档中出现的频率越高,其相关度越大.但当关键词为常用词时,使其对相关性判断的意义非常小.TF/IDF很好的解决了这个问