网页排序中如何判别网页质量
背景与工程应用价值:
随着移动商务类应用的迅速发展,互联网应用向提升用户体验、贴近生活方向靠拢。搜索引擎作为连接互联网与用户的重要媒介,将对日后新媒体发展起重要作用。而且随着网络用户量的急剧增长,网民对搜索引擎服务质量的要求会越来越高。搜索引擎主要是分为4个步骤,从互联网上抓取网页、建立索引数据库、在索引数据库中搜索排序、对搜索结果进行处理和排序。用户进行信息检索时,总是希望能获得最新、最相关、最权威的网页,并且将这些网页排在搜索结果的最前面,因此网页排序技术是其研究的热点之一。而网页排序的任务中,最核心的难点在于如何判别网页质量。有效解决该问题可以极大的提高网页排序的效率与准确度,提升搜索引擎的用户体验。
数学语言定义:
将互联网上的网页模拟为一个节点,而这个网页的“出链”看做是指向其他节点的一条“有向边”,而“入链”则是其他节点指向这个节点的有向边。这样整个网络就变成了一张有向图。而网页质量的评估是遵循以下两个假设的:(1)数量假设:一个节点(网页)的入度(被链接数)越大,页面质量越高。(2)质量假设:一个节点(网页)的入度的来源(哪些网页在链接它)质量越高,页面质量越高。
因此用数学语言来表达就是给定一个有向图,有向图上每一个顶点的权等于所有以它为终点的有向边的起点的权之和,然后根据每一个顶点权的大小为顶点排序。
解决问题可能遇到的困难:
(1)互联网上的网页太多,意味着要处理的数据太多,计算量太大。
(2)实际情况较复杂,数据处理不能一概而论,且部分参数难以确定,只能用统计规律近似,缺乏证明。
(3)需要大量数据作为参考与分析。
解决问题的初步思路:
一个网页Y的排名应该来自于所有指向这个网页的其他网页的权重之和。首先,假定所有的网页排名是相同的,并且根据这个初始值,算出各个网页的第一次迭代排名,然后再根据第一次迭代排名算出第二次的排名,如此迭代下去,直到算法收敛。
假定向量 B=(b1,b2,…bn)T
为第一,第二,…第N个网页的网页排名。
矩阵A为网页之间链接的数量,其中amn代表第m个网页指向第n个网页的链接数。A是已知的,B是未知的。假定Bi是第i次迭代的结果,那么 Bi = ABi-1 (1)
初始化B的值,令 B0=(1/N,1/N,…,1/N) (2)
通过(1)简单(但是计算量非常大)的矩阵运算,可以得到B1,B2,…。可以证明Bi最终会收敛,即Bi无限趋近于B,此时B=BA。因此,当两次迭代过程的结果Bi和Bi-1之间的差异非常小,小到接近于零时,停止迭代运算,算法结束。最后得到的B就是我们要的结果。
补充:由于网页之间连接的数量相比于互联网的规模非常稀疏,因此计算网页的网页排名也需要对零概率或者小概率事件进行平滑处理。网页的排名是一个一维向量,对它的平滑处理只能利用一个小的常数α。这时,公式(1)变成了Bi
= [(α/N)I+(1-α)A]Bi-1 (3)(其中N是网页的数量,α是一个较小的常数,I是单位矩阵)最后得到的B就是我们要的结果。