社会环境下网页重要性的研究
得多,因为院士的该领域知识水平(PR值)远远高于我。
接着是看投票情况,如果院士投了反对票,这个网页的PR将大打折扣,如果我投了反对票,对网页PR的影响可能不大,因为我的权重比院士的权重小很多。
网页也有它的权重,因为访问者在不同权重的网页被认同,对访问者的PR值贡献是不同的。例如,我在中国期刊网的投票被别人赞同,和在自己QQ空间被被人赞同,前者将大大增加我的PR值,后者影响较小,因为两个网页的权重差几个数量级。
权重就是反映影响力的一个值,访问者的权重越大,则对网页的PR值影响越大,至于是正面还是负面影响,还有看投票评价情况。在计算PRin时,网页的权重越大,则对访问者的PR影响越大,至于是正面还是负面影响,还有看投票评价被认同情况。
3.1.3 算法改进的详细设计思路
事实上,PageRank 值虽然在一定程度上表达了网页与用户查询的相关度 ,但是存在的问题也是明显的, 其中最明显的在于 PageRank 的计算是独立于用户查询而进行的先期运算,根本没有考虑访问者自身的情况和访问者对网页的评价,这样,网页的PageRank值只是一个基于全部网页集合计算出来的一个独立值。而网页的排名不应该单单看网页的访问量,还要看网页内容的权威性和正确性,因为每个用搜索引擎的访问者希望自己搜索的结果是正确的具有一定的权威性的,当然网络多人访问在一定程度上说明了它的正确性,但是也不能够完全这样来判断网页的正确性,还要结合访问者对网页的评价来决定网页的权威性和正确性。但是PageRank算法仅仅根据访问量来决定网站的重要性,这个有点不完善,搜索引擎不单只要返回多人关注的网站排位,而且还要考虑网站的内容是否正确权威,这个可以从访问者的知识水平来判断网页的权威性。
我做的工作就是增加访问者的具体情况影响PageRank值,首先就是访问者的知识水平不同他对网站的PR值贡献不同,在不同的领域不同的访问者具有不同PR(PageRank,下同)值,这个PR值,首先计算每个访问者的PR值,类似PageRank根据链接数量判断网页重要性的算法首先假设有N个访问者每个访问者本身有一个PR值1/ N。有的网站允许访问者对网页内容评价,这时多数的访问者表态代表了正确的评价,即访问者的评价对网页的评价得到越多的人的赞同则访问者的PR值越高,否则就越低,通过大量的访问记录,则统计结果表明访问者本身的PR值,同时由于访问者在不同领域的知识水平不同,应该在不同的领域有不同的PR值,假设网页根据内容可以划分为i类,即分为i个领域,则访问者在i领域的PageRank值为PR(i),网络网站总量为T,i领域的网站的总量是T(i)。
将所有网站分为两类:一种是访问者可以投票的网站,第二种是访问者不可以投票。投票网站一般给出 好、中、差 或者是赞成、反对、中立等几个选项给访问者直接选择,访问者只可以选择其中一个对网页进行评价。投票又可以分为登录投票和匿名投票,都没有问题,因为下面会讲到本文是由物理地址标志访问者的。同时现在的网站大部分都是分主题的,一个网站就是讲一个领域的知识,按照现在的比例百分之九十八的网站都是讲一
16
社会环境下网页重要性的研究
个领域或者说是主题的内容(分类网页),例如体育、军事、健康、新闻、娱乐……等等,大概有百分之二的网站是同时具有几个主题的(非分类网页),根据这个情况,我们可以抓主要的先,先将网页分为i个主题,每个主题的网页是j个,最后才考虑多个主题的少数网页,这些非分类网页的PR值可以通过由分类网页计算出来的访问者PR值计算,因为分类网页的算法是根据绝大部分网页(约98%)来计算访问者PR值的,非分类网页(约2%)对访问者PR值的计算的影响微乎其微[10]。因此由分类网页计算出来的访问者PR值来计算网页的PR值具有统计特性,可以准确反映每个访问者的实际情况,这样计算出来的PR值是可靠的,反映了网页的真实重要性(也就是网页的权威性和正确性),所以计算访问者的PR值只需要根据分类网页来计算即可,根据计算出来的每个访问者在不同领域的不同PR值,结合某个网页被每一个访问者的访问次数和投票情况决定了网页的PR值,因为搜索者不但要找的是人气高的、重要的网站,而且要求网站的内容是权威的准确的,所以访问者每次访问这个网站的投票情况,将影响网页的排名。为了表示投票情况,先设置一个参数Kijn,表示访问者对网页Pij的投票评价的被认同度。
由于本论文研究的改进搜索引擎排序算法是由访问者的知识水平及其投票情况决定网页的排名,因此在计算网页的PR值之前首先就要求出访问者本身的PR值,第二步才是求网页的PR值,下面将改进方法分两步详细说明。
3.2 计算每个访问者的PageRank值
3.2.1 计算访问者PR值的数学表达式
为了下面的运算现在设置好运算的变量,假设总共N个访问者,整个网络的网页有b=98%的网页是单一主题的,另外的2%网页具有多个主题,单一主题的网页可以分为i个领域,每个领域有j个网页,因此Pij就指向具体的任何一个网页。
首先计算某个访问者n在i领域的PR值PRin,设Zijn表示访问者n对网页Pij的访问次数,Kijn为访问者n对网页Pij的投票评价的被认同度 (例如:10个访问者访问网页Pij,其中8人投赞成票,2人投反对票。则投了赞成票的8个人的Kijn为80%或0.8,投反对票的2人的Kijn为20%或0.2)。 访问者在i领域的PR值PRin可以用下式表示
PRin=
?j(Kijn ×?Zijn×PRin×Kijn) (3.1)
n 上式两边都有PRin,不是说上式存在错误,上式只是表达出了一种计算思路,遇到由自身求自身的数学问题,类似先有蛋还是先有鸡的问题,在这里和Google PageRank传统算法计算网页PR的情况类似了,式(2.1)也是由网页自身PR值求网页自身PR值,因此我们可以完全借鉴Google PageRank传统的计算思路,利用循环计算收敛值的方法解决
17
社会环境下网页重要性的研究
这个问题。
下面详细分析一下上式(3.1)的思路:
?Zijn×PRin×Kijn (3.2)
n1,这个权重乘以Kijn得出网页j对访问者n的PR值的式(3.2)整体可以看做网页j权重○
贡献,将i领域所有网页的贡献叠加就得到访问者n在i领域的PR值表示为PRin。笼统来说访问者在每一个网页的被认同度越高,访问者的PR值就越高,但是每个网页对访问者的PR值计算中贡献的份量是不一样的,也就是权重不同,举个例子,像中国期刊网的权重是非常大的,比一般的QQ空间要大几个数量级,当访问者在中国期刊网得到认同,和访问者在自己的QQ空间被别人认同对访问者的PR计算的贡献是差异极大的,相差好几个数量级。所以计算PRin时首先要算出网页的权重。
?Zijn×PRin×Kijn
n式(3.2)中的Zijn×PRin也是一个权重,表示访问者n在计算网页j权重中的份量,乘以Zijn的原因是,访问者访问的次数越多,说明这个网页越受访问者n关注,称为关注度,当然一个网页受访问者n关注越多,并不表示网页j的权重(3.2)越大,还要看访问者的被认同度Kijn,Zijn×PRin只是作为一个权重 ,还要看他的意见是否得到大家的赞同,所以乘以Kijn,简单举个例子,一个资深的学者访问一个本专业的网页,并不是访问次数越多对网页权重的贡献就越大,还要乘以一个系数Kijn,当没有人同意这位资深学者的评价时,这位资深学者本身在这个领域很高的PR值当然不可以贡献在网页j的权重上,相反如果很多人赞同这位资深学者的评价,即Kijn很大,这位资深学者本身的PR就会很大比例地对网页j的权重做出贡献。
Kijn表示在投票网页Pij的所有访问者之中,与访问者n有相同投票的人占得比例。考虑到不是每个网站都设置有投票栏,也不是每个领域所有的网站,访问者n都会去访问,有的访问者访问了网站却不一定会投票,因此上式中的Kijn分四种情况,具体如下:
与访问者n相同的评价(投票)占所有评价的比例
Kijn= 50% ,网页没有投票栏
表达式一
50%,访问者没有投票
0 ,访问者n没有访问网页Pij
18
社会环境下网页重要性的研究
表达式一的表示其实不严密,有少数访问者会多次访问同一个网页但是在这部分人之中又会有极少数的人会对网站的评价进行多次不同的投票也就是给出不同的评价,这并不奇怪,因为人的思想是随着认知水平和社会情况而变化的,因此越后面的投票越具有权威性,因此最后面投票基本反映了最近的社会情况,越后的投票时访问者经过更加缜密结合了最新的事实综合考虑的结果,因此我们只需要考虑访问者最好一次的投票,为了使计算更加精确所以有必要对Kijn进行修正:
与访问者最后一次的评价(投票)相同的评价占所有评价的比例
Kijn= 50 %,网页没有投票栏 表达式二
50%,访问者没有投票
0 ,访问者n没有访问网页Pij
这时有人可能会问,既然上面已经对Kijn进行了修正,Kijn其实是考虑最后一次投票的,再乘以访问次数,显得不合理,这样的说法其实不对因为访问者访问这个网站越多就说明对这个网站关注越多,说明这个网站比较重要,再乘以访问者对网站的最终评价,正好反映了网站的权威性重要性。一个本身PR值越高的人访问某网页的次数越多则网页越重要。对网页内容的评价越高则网页越权威相应的PR值越高,因此以上表达式是合理的可行的。
3.2.2 访问者PR值的循环收敛计算方法
类似Google PageRank计算方法,首先赋予每个访问者相同的PageRank值简称PR值,首先假设每个访问者的PR值为常数。
PRin(i+1)=
?j(Kijn ×?Zijn×PRin(i)×Kijn) (3.3)
n这里是根据上一次的PRin计算下一次的PRin,设
L=?Zijn×PRin(i)×Kijn
n则上式可以表达为
PRin(i+1)=
?j(Kijn×L)。
19
社会环境下网页重要性的研究
上式表示对i领域的所有网页中访问者n被认同度的叠加得到PRin,但是相同的认同度对于不同的网页所对访问者的PR值贡献是不同的,所以对于不同的网页有不同的权重,乘以这个权重就比较准确反映了 j网页对访问者n的PR值的贡献。L的具体算法是
(i)
?Zijn×PRin×Kijn
n L权重是由访问者本身的权重乘以访问次数(访问次数越多说明网页越受关注)。访问者本身有PR值但是只有访问者被认同越高,他本身的PR值才会对网页的权重做出越多贡献(只有访问者被认同越高,本身的PR值才会对网页的PR做出相应的贡献,所以乘以Kijn)。
考虑到还有2?的网站是非分类网页,非分类网页的PR值需要根据每个访问者在相关领域的PR值来计算,与两个以上的领域有关的非分类网页的PR值,是将本网页有关的领域的PR值的叠加再除以涉及到的领域数,而不是在单独的领域计算总的PR值,如果不将不同领域的所有访问者的PR值进行归一化将出现以下的情况,一个访问者在两个不同的领域的知识水平一样但是他在这两个领域的PR值相差很大,如果一个非分类网页包含这两个领域,将各个领域的网页PR相加得到总的PR的方法计算的结果将会出现偏差,因为式(3.1)中,不同领域的PRin是独立运算的,计算分类网页时只需要结果分出相对大小就行,对计算出来的PRin本身的大小则不要求,式(3.1)仅仅限于单领域网页即分类网页的PR计算,因此在不同领域它们的基数不一样,为了使计算结果更加准确,所以必须要对PRin进行归一化以方便跨领域的PR值叠加运算。为了避免出现不同领域总的PR值不同给下面计算非分类网页总的PR值带来偏差的情况,下面对计算所有访问者对各个领域的总的PR值的和。
PRi=?PRin
n设置归一化常数Ci=
n1
?PRin因此最后得出某个访问者n在i领域的PR值
PRin(i+1)=Ci
?j(Kijn ×?nZijn×PRin(i)×Kijn) (3.4)
上式就是结合访问者的自身情况得出的改进算法 算法描述如下:
PRin(0) =
1N //初始化每个访问者的PageRank
while (|PRin(i)- PRin(i-1)|>ε) //PageRank收敛前的循环计算判断 {ε=0.0000000000001 i=1
for each n∈N
20