谈谷歌百宝箱的“时空隧道”
周四下午,应龙如俊兄弟和奥美的邀请,去参加了谷歌搜索百宝箱的新闻发布会,见着了李开复和洪波的真人。
发布会现场员工扮演机器猫引介的重点是神奇罗盘(Wonder wheel)和时空隧道(Timeline),那么我们姑且分析一下二者的实现。
第一印象
如果“时空隧道”只是简单地判断关键词在文中出现位置的前后是否有明确的年份标记,如果“神奇罗盘”只是图形化相关搜索关键词,如果雅虎很早以前就推出过特定时间段的搜索选项,那这次谷歌发布百宝箱,可能主要难点在于海量数据的处理上。
事后分析
当晚,我并不能立刻在谷歌页面上看到google.com上的开启选项。据龙如俊说,当前为5%的用户,在搜索时出现百宝箱功能。
翌日,选项出现,和俊林讨论了一下,对于中文领域的“时空隧道”,大致判断如下:
1:对于某一篇文档分词后出现的词,一般索引中会记录它的出现位置和词频。为了配合Timeline功能,还会附加存储一个位置最近的年份字段。因为“时空隧道”的显示速度相当快,所以要在索引上事先做好才行。
2:对于距离最近的年份日期的识别,并不像最开始我想像的那样,要分析一个句子中谁是主体(比如像雅虎的人际关系图分析一样),那样错误率仍会较高而且增加了计算开销;所以,谷歌应该只是简单地匹配一个文档中出现的各种年份和日期字符串,然后在给所有词(包括停止词)建索引时,直接把位置最近的日期关联存储起来即可。
3:是否是海量数据呢?俊林提示,“时空隧道”搜索“我”(找到了2千万记录)和“的”(找到了9千万记录),由此推算,“时空隧道”只是索引出现了年份日期的那部分文档,所基于的数据量大致在1亿篇文档以下(是单独搜“的”的30分之一)。1亿篇文档上建立起来的数据挖掘,对于谷歌来说,只是小case。所以,才会有如此的搜索速度,丝毫不受特殊功能的影响。
4:但对于这种
检索时第一时间出现的年份文档数量图,这个数组是如何迅速地给出来的呢?因为即使你搜索随机的字符串,这个图依然能较快地显示。
5:分页。“时空隧道”它是尽量在一页内的显示结果按照时间排序,即每页返回结果20条,在这20条内做时间排序,这样对搜索速度没影响。
神奇罗盘
比较google.com和google.cn的罗盘显示结果,可以得知此功能只是把“相关搜索”所列出的搜索词列表图形化而已。
只不过谷歌的相关搜索词语和google的不一样罢了,毕竟这个列表是用本土的搜索次数和单词在文档索引中出现次数做出来的,所以,这个一定是本土化的。
小结
其实现在在技术上,谷歌(不是google)已经不用和百度比,新闻发布会上根本不需要提百度,记者也不需要问与百度的比较,他们早已经不是一个层面上的拳手了。
“实时搜索”对Google来说也是弹指之间便可做到,没什么。对比Google搜索结果信息的丰富度以及逼近真理的排序,对比海量数据的快速索引能力,那么索引了算不上海量的短文本的其他实时搜索又能如何呢?他和他都解决不了那个难题:用户为何而来。正是不知道输入一个词是要干什么,所以你才会看到“周杰伦”页面上显示了谷歌音乐搜索、新闻搜索、视频搜索的结果,“全聚德”的结果甚至要显示北京周边所有商户的地图信息。实时搜索能解决这个吗?不能。
“神奇罗盘”和“时空隧道”是逼近用户意图的一个小技巧,还会有更多这样的努力。