现在人们每天都在通过计算机或智能手机等搜索各种各样的信息,搜索已经成了我们生活的一部分。你有没有想过,搜索是如何实现的?未来的搜索又会是什么样?微软亚洲研究院常务副院长马维英博士接受《科学世界》记者方晨的专访,展望了搜索技术的新趋势。
搜索基于两个重要信号
科学世界:您认为搜索的本质是什么?
马维英:说到搜索的本质,让我们先回过头来看看搜索引擎是怎么工作的。
现在的学生大概很少用到图书馆的索引卡片了。在我当学生的时候,到图书馆里面找一本书、一本杂志或一篇文章,通常会通过标题或作者姓名去检索。图书馆里会有一个个卡片目录,也就是一个个索引表。这种表称为倒排表,也就是根据属性(例如标题、姓名等关键词),反过来去找到这篇文章或这本书。其实搜索引擎就是建立类似于索引表的系统,用许多的信号和文本特征向量来做相关性排序。
信息检索是一个已经研究了多年的领域,但是一直到有了搜索引擎才有突破。这有几个原因,最重要的还是机器学习。
计算机做很多事情,包括搜索、机器学习,其实都需要利用有用的信号,特别是由人监督指导所得到的信息。网络出现之后,为搜索提供了两个非常重要的信号来学习相关性排序。第一个就是锚文本(anchor text)。在互联网中有很多超链接(hyperlink),一个网页可以通过一个超链接指向另外一个网页,网页中描述这些链接的文本,也就是我们在网页中看到的那些可以点击的文字,就是锚文本。以前在纸上是没有办法这样直接链接到另一个地方的。锚文本其实就是指向另外那个网页的最好的简介、描述。也就是说,那个网页要用一句话或者几个关键字来描述的话,那么锚文本就是最好的描述。现在,有无数的人在网络上创造这些锚文本,而不仅仅是图书馆的编目人员在考虑某个文献应该用什么关键字来描述。以前没有互联网,没有办法创造出这么庞大的关于网页标注或者信息标注的数据。这些信息也是大数据,是很重要的数据。
图1.这是维基百科中的“地球”条目,里面那些可以点击的蓝色文字,如“太阳系”、“行星”、“直径”等,就是锚文本。点击这些文字,就可以通过超链接到达相关的页面。
第二个重要信号是指,搜索引擎一旦开始运行之后,人就与它出现了互动,会产生反馈信息。用户不断地输入关键词进行搜索,之后又会点击搜索引擎给出的相关网页,这是一个很庞大的反馈回路。这些信号就可以被拿回来帮助我们去了解用户的需求,也就是应该链接到哪里。一方是网络作者(web author),一方是网络用户(web user),他们通过搜索引擎产生了大量的训练数据(training data)。有了这些数据,计算机就可以通过学习给出更好的信息检索结果。
科学世界:那么搜索结果是如何排序的?
马维英:文档排列(ranking document)的问题,其实就是从海量的数据里大海捞针,一层一层地捞,或者说是一个多次过滤的过程。对于一个查询,最初可能得到多达几百万个结果,先进行第一级过滤,也就是用一些简单的特征向量等把一大批无关的东西滤掉,从几百万个减少到几千个。再进行第二级过滤,用一些相对比较复杂的特征来过滤。最后再做一些更复杂的过滤,比如做重新排序,再按领域如医疗、购物等进行垂直搜索,到最后筛选出来的结果就只剩几百个了,这使得人们可以进一步浏览并找到所需的网页。
科学世界:现在搜索引擎领域研究的主要是什么问题?
马维英:接下来我觉得搜索引擎要解决自然语言理解和自然语言生成的问题,这是人工智能中很难的问题。首先要让搜索引擎能够理解语义,知道用户到底在说什么,要做什么。其实传统的搜索引擎并没有理解,只是在做一些匹配。要表达搜索的结果,又有一个自然语言生成的问题。以往是把10条搜索到的文献列出来,但是将来搜索引擎可以把这10条文献的内容进行摘要和总结,或者直接回答你的问题。
科学世界:也许用户只是说了两个词来搜索,但是机器可能要理解这两个词背后的搜索目标。
马维英:对。现在的搜索引擎只能从这两个关键词去找,例如哪些文章曾经包含这两个词的,然后做一些统计,包括这两个词出现的频率,以及怎么出现的,来决定这些文章有多相关或多重要。这个过程是完全没有语义理解的。搜索引擎走到今天,下一步就是要让机器能够理解人。
例如这样一句话:“Buy a Surface Pro 3 at Microsoft Store at Bellevue two days before my son′s birthday”(在我儿子生日之前两天在Bellevue的微软商店购买一台Surface Pro 3)。机器需要进一步把它分解,知道“Buy”是一个动作,“Surface Pro 3”是一个产品,“Microsoft Store”是一个商店,“Bellevue”是一个地点,然后它还要从“two days before my son′s birthday”找出一个时间,而且要从一个相对的时间对应到一个绝对的时间(日期,例如2015年11月30日)。最终,机器把这样一句非结构化的文字表达成内部的一个结构化表达。
因为计算机只能看懂结构化的数据,所以需要函数映射(mapping function)。可以说它是一个转换,转换之后机器才能够理解这个文字。语音智能助理如微软的小冰、小娜等理解了这句话后,它们就可以帮你去做这件事了。
搜索引擎就是要做这件事情,即一个短句子进来,怎么能够理解它,把它从原来的非结构化表达转换成一个机器内部的结构化表达方式。机器内部要有“知识图”,它需要把外部的信息转换,也可以说是“落地”(ground)到内部图上。只要能够“落地”,它就可以知道这个比尔·盖茨,是微软的比尔·盖茨,而不是另外一个比尔·盖茨,还能知道他还和谁有关系。如果这段文字里面描述的实体之间的关系,或者说里面包含的主语、谓语、宾语能够“落地”到这张图上,机器就可以在图上做计算和推理。
如果问“北京的人口是多少”,这是个一阶问题,我只要找到北京、找到其人口数,就找到答案了。如果问“中国首都的人口是多少”,那就要先理解中国的首都是哪里,这就是两阶的问题。接下来还有三阶、四阶。还有更复杂的,不仅是两个概念之间的关系,而是多元的关系。怎样将复杂的自然语言映射到内部图,我觉得搜索引擎下一个要解决的就是这个问题。谁解决得好,谁就往前跨一步。
图2. 将人类的非结构化自然语言转换为计算机可以理解的结构化语言
(本文发表于《科学世界》2015年第11期)
请 登录 发表评论