“热狗”与“煮狗”
以谷歌确定同义词的方法为例。辛格表示:“我们很早就有了一个有趣的发现,那就是用户会更改查询的关键词。比如有人会搜索‘dog’,然后改成‘puppy’,因此搜索引擎就会得知‘dog’和‘puppy’可能是可以互换的。引擎也会知道,当你烧(boil)水时,水会变热(hot)。我们从人类的语义中学习,这是一个很大的进步。”
但这也有障碍。谷歌的同义词系统知道“dog”和“puppy”类似,沸(boiling)水是热的(hot)。但它同时会认为“hot dog”(香肠夹心面包)和“boiling puppy”(煮狗)是一样的。通过路德维希·维特根斯坦(Ludwig Wittgenstein)的理论,该问题于2002年得以解决。该理论涉及上下文如何决定词语的意思。当谷歌抓取并存储数以亿计的文件和网页时,它会分析哪些词是彼此邻近的。包含“hot dog”的页面通常也包含“面包”、“芥末”、和“棒球”,而不会包括对杂种狗的猎杀内容。这就帮助了搜索引擎理解“hot dog”和其他成千上万个词语的意思。辛格说:“现在,搜索引擎会知道bio在‘Gandhi bio’中是‘biography’(传记)的缩写,而在‘bio warfare’中是‘biological’(生物)的缩写。”
在谷歌的发展过程中,该公司不断设法增加新的排序信号,并且兼顾不会影响用户的核心体验。每几年就会对系统做一次重大修改(有点像Windows的新版本),这在山景城是人尽皆知的,但其他人不会关注。
辛格说:“我们的任务是对这架以每小时1000公里在三万英尺高空飞行的飞机的系统进行根本性更改。”2001年,为了应对互联网的飞速发展,辛格事实上完全改写了佩奇和布林的算法,以便使谷歌可以快速增加新的信号(新信号之一可以区分商业页面和非商业页面,从而为购物者提供更好的结果),也是在这一年,一位名叫克利什纳·伯哈拉特(Krishna Bharat)的工程师认为权威网站上的链接应该具有更大的权值,因此设计了一个强大的信号以便赋予这些链接更大的可信度(这是谷歌的第一个专利),最新的一项修改的代号为“咖啡因”,对整个系统进行了修改,从而使得工程师可以更容易地增加新的信号。
谷歌识别语义的过程
谷歌以善于鼓励这些创新而闻名,每年公司都会举办“疯狂搜索创意”内部展示活动,以便鼓励那些离奇但有应用潜力的创新。但大多数时候,改进的过程是充满艰辛的,需要矢志不渝的精神,需要面对尝试过程中的打击。有一个不成功的搜索已经成为传奇:2001年,辛格得知输入“audrey fino”时无法搜到预期内容,而只是返回一些赞扬奥黛丽·赫本(Audrey Hepburn)的印度网页,因为在印度语中“fino”是好的意思。辛格说:“我们知道audrey fino是个人名,但我们的系统没这么聪明。”
这一失败使辛格花了多年时间,试图改进谷歌对姓名的搜索结果——因为姓名占总搜索量高达8%。为了解决这一问题,他不得不掌握“bi-gram拆分”,也就是将多个词分割成独立的单元。比如,“new york”合在一起组成一个bi-gram,指的是纽约。但也有三个字的情况,比如“new york times”,意思是纽约时报,很明显二者指的不是同一样东西。如果用户输入的是“new york times square”,意思又变成了纽约时代广场。人类可以很容易做出区分,而谷歌不是由人工控制的,它依靠的是算法。
“Mike Siwek”这一搜索可以解释谷歌是如何解决这一问题的。辛格输入显示代码的命令后,我们就可以看到信号是如何决定搜索结果排序的:通过bi-gram可以确定mike siwek是一个人名,lawyer是一个同义词,mi是一个地名。辛格说:“从工程师的角度进行解构,系统会对这些词进行分割,它会发现lawyer不是姓氏,siwek不是中间名。同时lawyer也不是密歇根的一个镇,因此它是attorney的同义词。”9
7
3
1
2
3
4
5
4
8
: