虽然也许你从没听过google炸弹这个词,但在使用搜索引擎的时候你极有可能已经感受过它的威力。2003年10月,一位名叫George Johnston的博主引爆了迄今为止最为著名的google炸弹,此次爆炸的回声在此后的4年里回响于整个网络。其结果就是如果你在google的搜索框中输入“miserable failure”进行搜索,返回的第一个链接将指向时任美国总统George W. Bush在白宫官方网站上的个人生平介绍(见来自Wikipedia的网页存照)。
其实早在1999年,微软便成了google bomb的“受害者”,当时Microsoft的主页“莫名奇妙”地成了关键词“more evil than Satan himself”(比撒旦更邪恶)所对应的搜索结果的第一个项。自那以后,随着一次次的爆炸,google炸弹逐渐为人所知。那么google炸弹的机理是什么,换句话说如何制作一颗google炸弹呢?为了回答这些问题,我们还要追本溯源,从头谈起。
话说1998年以前的互联网就像美国西部大开发时代,到处是未被开垦的处女地,宝藏深深的隐藏于这片信息的丛林。面对如此丰富却可望而不可及的信息,人们产生的了深深的无力感。Jorge Luis Borges在1941年创作的短篇小说“通天塔图书馆”(”The Library of Babel”)中对此种心境进行了如下描绘:
“当人们听说图书馆已经收集齐全所有的书籍时,首先得到的是一种奇特的幸福感。人们都觉得自己是一座完整无缺的秘密宝库的主人。任何个人或世界的问题都可以在某个六角形里找到有说服力的答案。…… 过分的指望自然会带来过分的沮丧。确信某个六角形里的某个书架上藏有珍本书籍,而那些书籍却不可企及的想法,是几乎难以忍受的。”
更确切的说,在互联网发展的初期,人们曾经天真的认为如果能做出网络上的所有内容的完整索引,就相当于获得了随时随意获取其中信息的能力。但事实却是网络上的信息量如此巨大,以至于人们面对搜索引擒所返回的成千上万的相关页面无所适从。为解决这一问题,就需要一种能够将与关键词相关网页进行排序的方法,使得真正有用的页面排在搜索结果的前列。一言以蔽之,就是要寻求一种方法来判定那个网页真正重要。这就是摆在google两位创始人Sergey Brin和Larry Page面前的问题。那么什么样的网页才重要?
其实类似的问题我们每个人在现实生活种都曾遇到过。比如,最近你在奔小康的康庄大道上又前进了一大步,在咬了5次牙,跺了十次脚后,毅然决然的入手了一辆宝马60系,看这爱车趴在你面前,你决定要给与“她”最好的呵护——买车险,在做出这个决定的一瞬间之后,你就犯了难,现在车险种类繁多,选择那种才合适呢?就在你犹豫不觉,精神恍惚之际,话匣子里传出了你所热爱的,著名影视歌全能艺人嘹亮而富有磁性的声音:“喂!我是优优啊,哦,电话车险?选中平泰!品牌大,理赔快,身边好多人都在用……”,于是妥了,一方面是优优一句顶一万句的号召力,另一方面不是“身边好多人都在用”,那咱也用它吧。
以上事件揭示了在面临众多选择时影响我们判断的因素:专家,名人说好的就应该比较靠谱,如果大家都说好,那就真的靠谱了。而Sergey Brin和Larry Page正是应用这一朴素的观察来解决网页排序问题的。他们所提出的判定方法一言以蔽之即:
被重要网页所引用的网页就是重要的。
这句读起来颇具“鸡生蛋,蛋生鸡”的意味的话可以翻译为以下表示:假设网络上共有n个网页,网页T1…Tn指向网页A,令C(X)表示网页X上的链出的超链接总数,那么网页X的重要程度PR(X)即为:
PR(A) = (1-d)/n + d(PR(T1)/C(T1) + … + PR(Tn)/C(Tn)),
其中d的意义将在下文中阐明。
其实以上这个似乎略有些复杂的公式说白了就是我们平时上网的简化写照。虽然我们每个人都有自己独特的上网习惯,但有一点我想大致每个人都一样。我们都要打开某个网页,然后看看其内容是否有趣,在这个过程中,我们可能点击页面上的某个连接进而跳到下一个网页,也可能关掉此页面,重新进入一个新的页面。如果假设每次打开新页面时,我们都在所有页面中随机的进行选择,同样的每次我们决定要点击链接时也随机的从当前页面上的所有链接中选择。
那么若将1-d视为我们关掉网页重新打开新页面的几率,PR(A)理解为我们访问网页A的几率,由于访问A有两种方式,一种是在新打开网页时,我们偶然的选择了A,由于重新打开网页的几率为1-d,而在茫茫网页中点到A的几率为1/n,则通过此种方式访问A的几率为(1-d)/n;第二种方式则是通过点击某个网页上的链接溜达到A,由于我们知道只有T1…Tn有指向A的链接,而T1页面共有C(T1)个链接,则要通过T1页面访问到A,必须满足如下三个先决条件:到达 A(几率为PR(T1)),决定点击链接(几率为d),从C(T1)个链接种选择到指向A的链接(几率为1/C(T1)),所以通过访问T1到达页面A的几率为PR(T1)*d *1/C(T1) = d*PR(T1)/C(T1),对于其它页面我们有同样的结果,于是通过访问其它网页访问到A的几率为d(PR(T1)/C(T1) + … + PR(Tn)/C(Tn)),则抵达A的几率PR(A)既为(1-d)/n + d(PR(T1)/C(T1) + … + PR(Tn)/C(Tn))。
可是说了这么多,我们得到的还是一个“鸡生蛋,蛋生鸡”的等式,那么到底如何计算PR(A)呢?说白了,也没有任何奇妙的,甚至可以说是有些野蛮的方式,那就是迭代法。只需要假设一开始所有网页都是平等的,既对于任意页面X有PR_(0)(X) = 1/n,而后将这些数值代入上述等式右边,得到PR_(1)(A)=(1-d)/n +d(PR_(0)(T1)/C(T1) + … + PR_(0)(Tn)/C(Tn)),而后依法炮制,将PR_(1)(X)代入等式右侧,得到PR_(2),如此这般,再这般如此,经过多次跌代,既可得到真实值的一个近似。这些数值就决定了被返回的搜索网页的顺序。google依据这些PR值,将网页归为十一个等级,并赋予0到10之间的一个数值。任何人都可以通过google toolbar及一些第三方工具,来查询自己正在访问的网页属于那个级别,比如在写作本文时:baidu.com为9,bing.com为 8,google.com.hk为7,而google.com则毫无悬念被打了10分。
以上就是google决定某个网页重要性的基本想法。凭借这一技术,及卓越的商业嗅觉,Sergey Brin和Larry Page将google这家他们在1998年一手创立的公司打造成了这个时代的商业典范。而他们也凭借此成就入选了2004年人物杂志全球最炙手可热的钻石王老五50强。当然,时至今日,世界上只有极少人知道google页面排序的具体实现方式,但其本质想法依然是以上的第22条军规,也就是“被重要网页引用的网页就是重要的”。
既然网页的重要程度取决于广大劳动人民的选择,自然就可以通过增加指向某一网页的链接数来人为地干预,影响排序的结果,这也就是google炸弹的原理。所以只要在网络上制造足够多以同一关键词指向目标网页的链接,就可以提升该页面相对于某关键词的搜索排名,甚至使这个页面成为这一关键词搜索结果返回的第一个结果。具体来说有就是首先选择一个目标网页,如http://songshuhui.net,其次是关键词,如:最好的科普网站,最后就是广发英雄帖,号召大家将链接: < a href="http://songshuhui.net")">最好的科普网站
播撒到网络上,如果足够多的人参与其中,也许不久后,当你搜索“最好的科普网站”时,http://songshuhui.net就会赫然成为第一个返回结果。当然,大多数网页排名还是整个网络自己进化产生的结果,比如若你用google搜索“click here”,结果的第一名是Adobe Reader的下载页面。究其原因无非是网络上有很多类似”要阅读PDF文件,请点击这里“的链接。
起初google对于google炸弹的态度是不提倡,不干预,并认为防范google炸弹并非其第一要务。但在2007年,由于担心广大网民将 google炸弹制作者的观点误认为是google的官方态度,google改进了它的排序算法。这次的算法升级,导致了“miserable failure”炸弹及其它许多炸弹的失效。但是在同年3月,“miserable failure”曾经短暂复活了,后来发现,原来是白宫的工作人员大意的在网页中写入了“failure”一词。据此人们推测,google防止 google炸弹的方式可能是判断目标网页中是否含有链入链接所包含的关键字。此外,如果在短期内监测到大量包含同样关键词的链接链向某一网页,google的排序算法就会判断此网页受到google炸弹攻击,继而将在计算网页PR
数值的时候忽略这些链接的影响。但这并不能阻止人们借轰炸google表达自己意见及主张的热情。就在今年9月,一群法国网友就将炸弹投向了他们的总统,并成功的将“trou du cul du web” (网络屁眼)链接到了萨科齐facebook主页。但这是一颗短命的炸弹,原因是在此行为曝光不久,萨科齐的facebook主页即被关闭,同时 google内部也有消息传出说google使用专门程序成功排除了这颗炸弹。 可见引爆google炸弹渐渐的也成了比较有科技含量的活计了。
今天,人们对于google炸弹可谓仁者见仁,智者见智。有人认为它增加了网络上的噪音,降低了网页排名的准确性。有人则认为它无非是网民表达意见的一种方式。但我想对于geek或nerd来说,既然它存在,那么尝试一下再说才是最要紧的吧?