线性代数笔记13:PageRank问题建模

PageRank是谷歌搜索引擎的核心技术,在学习了矩阵之后,用这个实际例子实验一下。

问题提出

PageRank的核心思想就是:

  1. 如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高
  2. 如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高

因此,我们希望计算出每个网站的PR值,通过这个值来反映网站的重要程度,进而对网站排序。

这样,我们就可以对这个问题进行如下建模和猜想:

假设n是所有可访问网页的数目,此数值非常大,定义n×n为网页链接矩阵G=(gij)Rn×n,若从网页j有一个链接到网页i,则gij=1,否则为0。矩阵G有如下特点:

  1. G是大规模系数矩阵;
  2. j列非零向量的位置表示了从网页j链接出去的所有网页;
  3. i行非零向量的位置表示了所有链接到网页i的网页;
  4. G中非零向量的数目为整个网络中存在的超链接的数目;
  5. ri=jgij,表示第i个网站的入度
  6. cj=igij,表示第j个网站的出度

建模

为了解决这个问题,我们想象一个随机浏览网页的人,当他到达C网页后:

  1. 假定他有一定概率点击超链接(p)到达另一个网页。即,若网页i在网页j的链接上,概率可以表示为:

    p1/ci+(1p)1/n

  2. 假定他有一个确定的概率会输入网址直接跳转到一个随机的网页,若网页i不在网页j的链接上,概率可以表示为:

    (1p)1/n

由于网页i是否在网页j上由gij决定,因此网页ji的转移概率为:

aij=gij[p1/ci+(1p)1/n]+(1gij)[(1p)1/n]=pgijcj+1pn

应该注意的是,若Cj=0意味着gij=0aij=1/n。任意两个网页之间的转移概率形成了一个转移矩阵A,设D为各个网页出度的导数构成的n阶对角阵,e是全为1的n维向量,则:

A=pGD+1pneeT

xi(k)表示时刻k浏览网页i的概率,其中xi(k)=1,那么下一刻浏览到网页i的概率为j=1nxi(k),此时浏览整个网页的概率分布为x(k+1)=Ax(k)

当这个过程无线进行下去,达到极限情况,即网页访问概率x(k)收敛到一个极限值,这个极限向量x(k)为网页的PageRank,满足Ax=x,且i=1nxi=1

实现

参考资料

  1. PageRank算法–从原理到实现
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/crazy_scott/article/details/79967639
文章标签: PageRank 特征值
个人分类: linear algebra
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭