算法初接触 | 其他算法[网页排名]

154 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12月更文挑战」的第5天

网页排名

网页排名(PageRank,也叫作佩奇排名)是一种在搜索网页时对搜索结果进行排序的算法

图解

01

1.jpg
网页排名就是利用网页之间的链接结构计算出网页价值的算法。我们来看看具体的计算流程吧

02

2.jpg
这里假设方块表示网页,箭头表示网页间的链接关系。在网页排名中,链入页面越多的网页,它的重要性也就越高

03

3.jpg
从这张图中我们可以看出,上面网页的重要性最高。实际上,各个网页的重要性会通过计算来数值化。下面我们就来了解计算方法的基本思路

04

4.jpg
假设没有链入页面的网页权重为1

05

5.jpg
有链入页面的网页权重是其链入页面的权重之和

06

6.jpg
如果一个网页链向多个页面,那么其链向的所有页面将平分它的权重

07

7.jpg
在网页排名中,链入的页面越多,该网页所发出的链接的价值就越高

08

8.jpg
最顶端的网页被权重为3的页面链接,所以权重较高。以上就是网页排名的基本思路

09

9.jpg
但是,如果在链接结构为环状的情况下使用这种方法,就会出现问题

10

10.jpg
计算各个网页权重的操作会无限循环下去,从而导致环内网页的权重不断增长

11

11.jpg
此时可以使用“随机游走模型”(random walk model)来解决这个问题。要想了解这个模型,先得思考一下人们是怎样浏览网页的

12

12.jpg
假设有一天,某位互联网用户想浏览从杂志上看到的一个有趣的网页。他从左下角的网页开始浏览,然后通过链接到达其他网页

13

13.jpg
浏览了一些网页后他不想再看了,于是结束浏览

14

14.jpg
过了几天,他又开始浏览朋友推荐的一个与之前完全不同的网页

15

15.jpg
这次也通过链接浏览了别的网页,并在一段时间后结束了浏览。就像这样,他重复着从某个网页开始,通过链接浏览了几个网页后结束的流程

16

16.jpg
如果我们站在互联网空间的视角来观察上述流程,就会觉得浏览网页的人只是在不断重复着“在有链接指向的页面之间移动几次之后,远程跳转到了完全不相关的网页”这一过程

17

17.jpg
那么,用户浏览网页的操作就可以这样来定义:用户等概率跳转到当前网页所链向的一个网页的概率为1-a;等概率远程跳转到其他网页中的一个网页的概率为a

18

18.jpg
此处我们将远程跳转概率a设为15%,并根据前面的定义来模拟一下网页间的跳转过程

19

19.jpg
网页上的数字代表用户访问该网页的次数。现在模拟还未开始,所有的数字都是0

20

20.jpg
开始根据定义模拟用户浏览网页的过程,各个网页的访问次数也开始出现差距

21

21.jpg
模拟中……

22

22.jpg
模拟该过程直到访问的总次数达到1000次为止,最终结果如上图所示

23

23.jpg
换算成百分比后,结果如上图所示。这些值代表的是“某一刻正在浏览这个网页的概率”,随机游走模型会直接将其作为网页的权重来使用

24

24.jpg
最后,我们来确认网页排名的值和最初介绍的用链接加权计算的结果是否一致

25

25.jpg
由于各个值都是四舍五入后的结果,所以所有值加起来并不等于1,但分值比例与之前的结果是非常接近的

26

26.jpg
这是前面讲到的链接结构,试着计算它的权重

27

27.jpg
可以看出,此处的分值比例也和之前的很相近

解说
以前的搜索引擎都是以关键词和网页内容的关联性来决定搜索结果的排列顺序,但这种方法没有考虑网页内是否含有有效内容,因此搜索精度较低。
Google公司提供了使用网页排名算法的搜索引擎,然后凭借其强大的性能成为了世界知名企业。当然,如今决定Google搜索结果排序的已不仅仅是网页排名这一个算法了。
但不管是从利用网页链接结构计算出网页价值这种思路来看,还是从链接形成环状时也能进行计算这点来看,网页排名都是一个划时代的算法。