陈利人:“阉割版”谷歌是如何实现的?


2018-08-02    陈利人



今天爆出新闻,“阉割版”谷歌中文搜索将回归,不过随后就有报道只是传闻,谷歌方面也未回应,但百度的股价却是应声大跌。



谷歌若真回归是好事,将加强中文搜索的竞争,免得一家独大,毕竟,中国的广大网民,和巨大的消费市场,国际公司都不可忽视。


作为Google的一名老兵,在2010和之前就曾经历过当时的跌宕起伏,彼时的谷歌(中国)搜索结果网页经过结果审查,好听一点的词,是过滤的中文搜索的研发和运维。那么,大家肯定会好奇,过滤是如何实现的呢?到底怎么“阉割”呢?


文|陈利人 beat365收号_beat365登陆_beat365语言设置首席科学家

最早的时候,Google只有一个巨大的索引,里面包括世界上所有国家、所有语言的所有高质量的网站和网页。高质量与否,是根据PageRank和用户点击计算出来的。


但是,随着互联网的高速发展和Web2.0的爆发,网页实在太多了,所有东西放到一块,根本满足不了不同语言、不同国家、不同文化的需求。比如英文,美国的网页偏多,高质量的也偏多,由于索引的总量是一定的,那么别的语言和国家的网页能进索引的量就少了,这样对于别的国家的网民的体验就不是太好了,很多中国网民,看到的可能是外国的中文网站或网页。


于是,Google为了解决这个问题,提出和实现了区域索引,也就是说,对于不同的地区,会建立不同的索引。



在这些索引里面,控制不同语言、不同地区、不同国家,包括进索引的网页的数量。比如,对于欧美区域索引,包含的英文网页的量特别大。对于中日韩区域索引,包含的中文、日文、韩文的网页的量就很大。这样,对于中国的用户,就会使用中日韩索引,就能有很多中文的、国内网站和网页内容,但也会有不少高质量的英文网页。


如此就很好的解决了索引对于中文搜索的覆盖问题。接下来,就要解决结果审(过)查(滤)的问题,毕竟,很多违法的结果和敏感性的结果,各国政府都是有要求的。不要以为只有中国有过滤问题,其实所有国家都有。比如在欧洲,有关纳粹的内容就是非法的。



第一个层次的审(阉)查(割)是在建立索引的时候。有的网站或是网页,会直接标注为非法,它们就进不了索引,在搜索结果中就永远不可能出现了。其它的敏感性内容,会做网页分类和识别,在索引时打上标签,然后在搜索时,根据不同国家的法律要求,过滤掉不合规定的标签的网页。


第二个层次是使用黑白名单。在索引时没有过滤掉的或是突发的要求,黑白名单就能实时、快速的起到作用。


在黑名单的网页结果,会在搜索结果中被毙掉。在白名单的,如果搜索词要被屏蔽的,那么就只能从白名单里面的那些网站出结果,比如,对于中文来说,政府网站,官媒等的网页,就不会有任何问题。


第三个层次是实时过滤。管理机构会不定时的告知某些网页或是某些搜索词是敏感词,当接到这些指令时,必须在系统设计和实现上能保障快速处理,否则就有被拔网线的风险。


在Google,是通过代理(Proxy)的机制来实现的。在国内,有几个Proxy的beat365语言设置中心,里面运行的都是Proxy服务器,它们接收用户的搜索请求,然后和敏感词表进行比较。如果整个搜索词,或是部分搜索词,或是变种的搜索词与敏感词表匹配了,就需要启动过滤机制,否则就是简单的去区域索引beat365语言设置中心拿到结果再返回。



过滤的时候分几种情况。


如果是很严重的敏感词,不能出一丁点儿错误的,就使用白名单机制的结果,这些结果一般是经过人审核的,或是政府网站内容,或是官媒内容。Proxy告诉后面的服务器,只提供白名单结果。


如果是次之的敏感词,这时会对返回结果的标题、摘要、甚至是全文进行敏感词的匹配,如果有匹配的,这条结果就要拿掉,不能返回给用户。过滤和匹配,都是在Proxy进行的,比较费时费资源,也比较容易出错。


在某些情况下,可能需要对所有搜索词的所有结果(主要是标题和摘要),进行敏感词的匹配,这么操作的Proxy的工作量是相当大的。


还好,Google,包括所有搜索引擎,只会关注前面的1000个高质量的相关结果,也就是说,每次最多返回1000个网页结果。这些结果,一般都会在Proxy上做缓存。这样,其实能减少不少的计算量。


技术上来说,阉割的关键是保障:匹配的正确性和反应的实时性。正确性,就不用太多解释了,如果弄错了,后果会很严重的。实时性,就是管理部门有了新的过滤需求,旧的马上生效,怠慢不得。