Google 的秘密- PageRank 彻底解说 中文版(二)

5. Namazu 上的实际安装实验

为了使更简单地推测上文描述的问题,PageRank并不是非世界所有的web页面而不能使用的考虑方法,即使是个人的利用方法也能实现。为了实现「PersonalizedPageRank」,针对在各种 UNIX 和 Windows 上运作的中小规模网站适用的全文检索系统Namazu 进行了实际安装实验。(关于Namazu可参考 日语全文检索引擎软件列表。)

由于实验能简单地控制内存的使用量,并将最大特性值用1来考虑,所以将 Haveliwala(1999)的想法做为基本的考虑方法。但是对 dangling pages的处理有少许不同。固有矢量的计算内核使用了数值计算脚本 GNU Octave。所以基本的代码编写自己只用了一天就解决了。另外,从用mknmz 编写的索引不能直接计算PageRank,而要事前准备表示邻接关系的索引(邻接列表)。这个也有可能被编入检索者(Indexer)的主要部分。

以下表示了实际计算时间(单位:秒)。运行机器的配置为 PentiumII400MHz x 2,内存512MB,Kondara MNU/Linux 1.2的(kernel-2.2.17-15ksmp),Octave-2.0.16(一般状态分发物)。收敛精度(剩余差矢量的L1规范)取了到1.0e-10,也许有些过分精确了。

文书数N     mknmz时间    准备时间   PageRank计算时间
============================================================
128          58          2          6
2,301       1, 575       46         214
49,604      15,975       478        5,872

因为没用一些巨大的web页群来做测试,所以实验只停留在小规模的基础上。虽然有这个难点,但从基本上可以了解与索引所花的时间相比,在很短的时间里就可以计算PageRank 的倾向吧。

因为 Namazu 自身中也有很多难题,所以并不寄予很大的奢望,但至少使用105 程度(尽可能106)规模的web页面群来实验。从趋势来看可以预想N=106 的计算时间恐怕会发散开去,所以在N=106 时,若是能够讨论把mknmz时间变成和comparable一样的加速方法的话,对于PersonalizedPageRank 来说就十分实用了。作为参考,根据Page et al.(1998),Google 对7500万的URL的实际PageRank 计算时间约是5小时。(2001年2月现在不明)。从这个角度来说,研究更加高效的加速法的余地就十分得必要了吧。

计算实际运行时的使用内存最大也是10几MB左右。如果是Haveliwala(1999)那样的「吝啬地作战」的话,最大只有O(3N+2)左右的内存使用量就做完了,不过 N 是104-5 程度和内存的使用量连N2 也放不进的话,其他的也只能勉强调谐了,所以以O(5N+α) (α是疏松行列的非零成分数字,典型的是5-20N左右) 程度来编写代码。另外 N是103 左右时,可以确认不压缩疏松行列就在内存上使用幂乘法来计算,从速度面上来说是非常有利的。实测时速度为上述数字的6-7倍左右的。但遗憾的是,这个方法从内存的限制来看,尽可能地只使用2-3千页以内。

此次我们使用了 Octave分发附属的「Tsurushi」,不过,正像大家知道的那样,如果把 Octave调谐的好的话,会戏剧性地提高完成的速度。Octave-2.1.x 和 ATLAS的组合有时候根据情况甚至会使大规模行列乘法的运算速度提高10倍以上。

实验的详细结果请参照prnmz-1.0.tar.gz 中的文档。

Personalized PageRank的基本性质

人们经常会利用 MHonArc、latex2html 或者PowerPoint 这样的工具将文档变成 HTML,针对这样的人工制作的HTML链接群求 PageRank的话,大部分页面的得分几乎都是一样的(~1/N)。如果考虑邻接行列,则大部分的成分是1,或者对角成分附近全部是1。因为这样的推移概率行列的固有矢量成为(1,1,…,1)。

或是象 sitemap.html一样变成树状的情况下,分数会集中在sitemap.html中。就算占据全体的9成也不算新奇。

从现在起能说的是,为了计算有意义的PageRank,要尽可能地排除机械生成的链接关系。如果把链接关系看做是推荐关系的话更加容易认同了吧。

6.对 PageRank 的个人的见解

(读者)应该没有余地去怀疑象 PageRank 那样利用超级链接来决定排列次序有效手法吧。

不过,阅读了这些论文以后笔者自身也考虑了许多问题。在这里,列举几个对PageRank 的个人见解。虽是见解,说到底就是方法论,也许会有很多错误的地方。

  • 关于 danglingpage,不相反考虑的原因是什么?

只是因为考虑一定的变异概率时「偶然」会变成最简才不予考虑吗?还是有时看漏了什么吗?稍微有点不太明白。

  • 改善推移概率行列的可能性

    说起来,为了保证 PageRank的单一意义的性质(一意),只要保证推移概率行列是最简(有向图表是强联结)就行了,没有必要所有的要素aij 都是非零要素。事实上,像在web上浏览Toyota汽车网站后紧接着跳向色情网站,接着又继续跳到白宫网站浏览的怪异的人应该是不存在的吧。(请注意这里是指在随时间变化连续的形式)。因此,从实用的意义上来说,区别于改善多少的使用方便程度,应该留下对算法改良的余地。

  • 考虑「逗留概率」会怎样

根据 PageRank的考虑方法,在一定的时间后必定顺着链接前进到其他的页面,或者突然怪异的、歪曲的跳到其他页面。但是如果对照现实的web浏览模型,也要考虑一定的逗留概率。具体地说,就是推移概率行列的对角成分中只取(1-c)/N的话取得过小了。在原本所有变迁概率都一定的情况下,更加进一步分析会怎样?因为对于无聊的页面(浏览者)必定会想都不想就转到另外的页面,反过来对于重要的页面却会停留较长的时间。

  • 如果考虑概率论应用的话必定会考虑其他许多问题

即使是将实现性置之度外,我们也再来试着进一步考虑这个想法。概率论中,存在着一种叫消灭概率或叫固定概率的概率。比起 PageRank的单纯而同样考虑方法,导入这种考虑方法会得到更期望的结果,所以理所当然被大家所期待。大家都知道马尔可夫链中的分枝过程的考虑方法。这是考虑遗传基因突变时的一个模型,即,说明经过一定的时间而产生淘汰的可能性的模型。很多人认为这个考虑方法或许会被采用。那么导入带有限制的概率(禁忌概率)又会怎么样呢?即,相当于导入通过n 次的推移从状态 i 移动到状态 j 时,不经过状态 k的概率。如果考虑到web浏览的性质的话,不是也能理所当然地成为假定吗?

  • 不能作为非马尔可夫过程(或者说 m次的多重马尔可夫过程)来考虑吗

所谓马尔可夫过程,就是与过去的经历无关,只从现在的状态来确定未来的概率法则的概率过程。马尔可夫过程只依存于1步之前的过程。这个过程和没有对过去的记忆,没有依存于过去经历的要素。PageRank是在单纯马尔可夫过程随时间变化而固定的状态下计算时候所求得的结果。但是,人类的理性行动必须以非马尔可夫过程来表现。复杂的过程总是以一些形式和过去有着牵连。因此,不仅仅单一地分析从哪个页面连接来,而要分析沿着怎样的路径连接而来的。这样的分析才会使其有可能成为更有用的排序系统。在能抑制住计算量爆炸的范围内,试着引入非马尔可夫过程来研究说不定也很有趣。

在考虑到和看到的许许多多中,有像实际安装那样不太难的东西,也有因为只是嘴上说说而不知道怎样实际安装的东西,不管怎样,定量地评价它的效果是极为困难的。难道真的是不能实现的东西吗?

PageRank 的技术有多少

即使只是采用评价很高的 PageRank技术,作为基本的想法也只是使用了枯竭的数值分析的手法来实现的。但是,象我在这里说明的事情,如果从专业的研究者来看完全是理所当然的事情了。只是克服规模这一点就能建立一个专业的研究领域吧。也可以认为专业领域的内部并没有那么深的尽头。事实上,我做事,充其量只是表示了「如果是极其小规模的问题,即使是教科书的手法也能大约地得到满足计算量的结果」。

尽管是这样,充其量只触及了概要的表面就在嘴边说「没什么嘛,原来是程度这么简单的技术呀」的那种不懂装懂的人也是有的。在这里事先强调:这种浅薄的看法是从根本上完全错误的

当然,PageRank技巧的非常好的地方是「从许多优质的页面连接过来的页面是还是优质的页面」,如果明白了就会觉得是简单的想法。但更进一步说,真正绝妙的地方是,不仅仅只是想到一个主意,而是将想法用固定状态变迁的概率分布来定式化,为了实证其有效性而实际地进行安装实验,并证明其在现实领域也能很好地运作的过程。在所有的这些阶段都成功了才是真正值得被称赞的。

的确,不仅有斩新而且巧妙的想法,再加上结合教科书的手法,也有可能制造出能和Google 匹敌(或是凌驾)的搜索引擎。也可以说实际上 Google自己也在这么做着。但是,实际完成的人却是少得惊人。假想模型中的「肯定能够完成」的东西和实际运作的东西之间有着天差地别。在实际问题上,处理大规模疏松行列本身,通过一般的手法也是相当的困难,需要高度的专业技术。应该铭记在头脑中总觉得能够理解的事和实现中能够做的事之间绝对会有不能填埋的差距。不可过分轻率地考虑。

7.参考文献

以下列举了除了在「前言」中介绍的基本论文以外的关联论文。(译者去掉了许多无用的连接)

以下列举数学关联的参考书籍。

  • S.卡琳著,佐藤健一,佐藤由身子译,『概率过程讲义』(数理分析与周边3),1974年,产业图书
  • 岩堀信子著,『图表和概率过程』 (与数理分析与周边4),1974年,产业图书
  • 伊藤升他著,『经济系、工学系的行列及应用』, 1987年,纪伊国屋书店, ISBN4-314-00477-0
  • L.V.Atokinson, P.J.哈里, J.D.赫德森 共著,神谷纪生,大野信忠,佐胁丰,北荣辅 合译,『数值计算及其应用-FORTRAN77-』, 1993年,Science公司,ISBN4-7819-0690-7
  • 宫泽政清著,『概率和概率过程』(现代数学研究小组17),1993年,近代科学社, ISBN4-7649-1034-9
  • 伊理正夫著,『线形代数II』(岩波讲座应用数学11) ,1994年,岩波书店, ISBN4-00-010521-3
  • 韩太舜,小林欣吾著,『信息和符号化数理』(岩波讲座应用数学13) ,1994年,岩波书店,ISBN4-00-010523-X
  • 小国力著,『MATLAB及其实际利用-现代应用数学和CG -』( Information &Computing=86),1995年,Science公司, ISBN4-7819-0763-6
  • 长谷川里美,长谷川秀彦,藤野清次译,『反复法 Templates』(应用数值计算Library),1996年,朝仓书店,ISBN4-254-11401-X
  • 小谷真一著,『测每次和概率2』(岩波讲座现代数学基础10 ),1997年,岩波书店, ISBN4-00-010640-6
  • 藤野清次著,『数值计算之基础-以数值解法做为中心』(Library新信息工程之基础9),1998年,Science公司,ISBN4-7819-0861-6

与有关 Google 的在线新闻报道(日语新闻)已经分离到其另一张页面(googlenews.html) 。(2003/5/20)

其他,特别列出几个认为有关联的页面。

感谢转载!其他许多的个人站点和BBS都介绍了此文。

  • ZDNetChina中文 如何提高网站在Google中的排名(2003/1/6报道) 。读不了...:-)
  • ZDNetChina 如何评价一个网站的人气(2002/8/5报道) 还是中文。读不懂...:-)
  • 中村正三郎「BRAVO!Linux」Linux Japan 2001年5月号
  • InternetWatch Watcher选出的今天的站点2001年3月16日号
  • InternetWatch 摘要新闻2001年2月26日号
  • Google World> Japanese>计算机>因特网> WWW>主页检索 目录
  • Lycos /计算机、因特网/因特网/站点的检索、链接集/搜索引擎/机器人检索/Google 目录
  • Yahoo! JAPAN商务经济>企业>因特网服务>企业间交易(BtoB)>检索,导航>Google 目录
  • 8.附录:「guguru?/ goguru?」

    英语(美式英语)中是不可能把 Google 念成「goguru」的。和没有人把拉面的 noodle发音或标记为「nodoru」一样,如果硬要用片假名来表示的话应该写成「グーグル」。

    不过,有oo 这个拼写的英文单词有以下这些。

    book, bool, cook, cool, food, good,hook, look, loop, loose, mood, moon, noon, pool, roof, soon, tool,wood, zoo, ...

    这些都是简单的一般的英文单词,但不论取哪个都有「u:」这个发音。至少,对许多的典型的日本人来说听起来是这样的吧。英语(美式英语),oo的拼写基本读成「u」。当然,goo就读成「gu:」。广末凉子不也在中古车信息杂志的电视广告中说「如果要说车,gu―」吗?另外,游泳时使用游泳眼镜的拼写是goggle。

    当然,如果 Google不是英语(美式英语)话那就另当别论了。但是,Google名字的由来是从表示10的100次方的英文单词「googol」而来的,也许还是英语发音比较适合(google)吧。不用说,googol的发音也是「guguru」吧。

    另外,创业者之一是 SergeyBrin,从他的名字就能明白他是俄罗斯出身,也有可能是他的英语发音带有自己的方言。如果扯到那里的话,已经是牵强附会了。而且,我也不太清楚Google用俄罗斯的地方口音怎么发音。如果有识之士在的话,请一定告诉我。

    补充(2001/4):给Google的支持中心发了「是goguru,还是guguru?」的询问信的一位读者,热情地给我转发了这封邮件。对方说虽然Google 自己本身的发音是「guguru」,不过,你以你自己喜欢的叫法称呼也决不会介意的哦。

    Date: Wed,31 Jan 200116:12:01-0800
    From:”GoogleTech”<googletech@google.com>
    Subject: RE:{Google#034-917 } pronunciation
    To:转送邮件者(Thanks)!
    
    We go by:”GU Gul” 
    
    But you are welcome to say whichever you prefer! 
    
    Regards, 
    The Google Team 
    

    补充2(2001/10/29):请看Google的页面 ”Google”怎么发音 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值