首先不要混淆网页重要性和网页相关性!
相关性:搜索关键字和某一网页之间相关的程度,主要是tf-idf值(最简单:tf*idf)来衡量。
重要性:网页之间重要程度的比较,或者说是网页质量的衡量,主要用pagerank算法计算。
of course,搜索关键字搜索引擎给出的应该是重要性和相关性的结合结果。
关于网页重要性与pagerank算法,我的理解如下:
(1)如果一个网页被其他很多网页链接到,那么说明他受到普遍认可和信赖,那么他的重要性应该更高。比如凤凰网的新闻质量就比其他不知名网站的链接度高,重要性也应该更高。
(2)被不同的网站链接,权重应该不同。比如,一网页被新浪和某不知名网站链接了,被新浪链接的权重应该更高。
(3)该网页的重要性,也就是pagerank值应该为所有链接该网页的权重之和。
(4)但如何确定周围链接网页的原始权重?这简直就是先有鸡还是先有蛋的问题了啊!
佩奇和布林想到的办法是把互联网看成所有网页构成的一个大图,有链接的网页之间用有向边连接,这样一个图很明显可以用一个矩阵表示。这个问题就变成了有向图矩阵的问题,利用二维矩阵相乘,反复迭代改变权值,再相乘,再改变权值。。。。10次过后差不多权值就收敛了。
例如:
首先把所有网页权值设为一样的,比如0.1,设为v0;
大矩阵相乘,得到迭代一次之后每个网页新的权值v1。当然某些被链接多的网页权值更大了!
再利用v1的权值,再矩阵相称,得到迭代两次的权值v2,权值继续调整。
如此反复十次左右,估计v10和v9的差别已经不大了,停止迭代。over!
(5)互联网网页太多,谷歌索引2010年似乎就有5000亿个网页,而且网页权值是动态变化的,比如很旧的网页权值自然会降低,这就需要定期更新网页的pagerank值。但每次更新时间周期很长,咋办?继而有了mapReduce算法。
作者:dream2009gd 发表于2013-3-30 21:40:52
原文链接