其他

邓侃:谷歌Talk to books引爆搜索方式革命

2018-04-15 新智元




  新智元专栏  

作者:邓侃


【新智元导读】昨天,新智元介绍了谷歌的全新搜索工具“Talk to Books”,基于自然语言文本理解,用户能够凭语义而非关键词来实现搜索功能。谷歌搜索的“AI化”令人眼前一亮,谷歌是否即将从当今的搜索引擎,革命性地进化到了回答引擎?本文作者,大数医达创始人、CMU 博士邓侃对谷歌的这个新搜索工具的技术原理进行了解读。



今天读到一则新闻,“谷歌发大招:搜索全面AI化,不用关键词就能轻松撩书”。


这篇新闻的内容,来源于谷歌的官方博客前天(2018/04/13)发的一篇博文 [2],题目是 “Introducing Semantic Experiences with Talk to Books and Semantris”,内容是介绍两个新产品。作者是谷歌未来学家 Ray Kurzweil 和一位产品经理。


介绍产品 Talk to Books 时,作者放了一张产品截图。


当用户提问 “What is fun about computer programming?”    Talk to Books 自动回答,


    “... has been beneficial on many levels. First, computer programming provides a palette with a virtually unlimited potential for creative expression; the thrill of bringing a useful porgram to life rivals the thrill of hearning a new composition being performed for the fist time. Second, a knowledge of computer ...”    


    from Arduino for Musicians: A complete Guide to Arduino and Teensy Microcontrollers by Brent Edstrom. 


 

这个例子很震撼,几个原因:


1. 从搜索到回答:

    

谷歌当今的搜索结果,只是给出文章的链接。而 Talk to Books 的搜索结果,虽然是书的摘要,但是摘要摘得如此精当,几乎是问题的回答。这篇博文是不是在暗示,谷歌即将从当今的搜索引擎,革命性地进化到了回答引擎


2. 语义理解:


长期担任过谷歌搜索业务主管,Amit Singhal,在其任内,曾经亲自领衔主持谷歌知识图谱的实现。在介绍知识图谱的价值时,Amit Singhal 说,谷歌将不再搜索关键词表面上的字符串 “string”,而将直接搜索关键词的内涵语义 “thing”。


在 Talk to Books 的这个例子中,提问中包含 “fun”,而答案中与之呼应的词,包括 “beneficial”、“palette”、“thrill” 等等。注意,是呼应,是相关词,但不是同义词近义词。

 

如何迅速找到同义词、近义词、相关词?不难猜测,一定与词向量有关。如果仅仅用词向量,取代文字表述的词汇,那么基于词向量的搜索引擎,最多是模糊匹配的搜索引擎,但是并非是截图暗示的那种回答引擎。


3. 文章张量树:


Talk to Books 先把提问的整个语句,用论文 [3] 的算法,翻译成一个定长的数值张量,然后用论文 [4] 的算法,在各种书籍的各个章节段落语句中,寻找答案。


论文 [4] 的具体做法是,先把每一篇文章中的每一个词汇,翻译成词汇张量。然后从每一个语句的一连串词汇张量中,提炼出语句张量。再然后把每一个段落的一连串语句张量中,提炼出段落张量。最后从段落张量中,提炼出整个文章的文章张量。


这样每篇文章,就构成一个树状的张量集合。根节点是整个文章的中心思想的文章张量,上层中间节点是段落张量,下层中间节点是语句张量,每个叶子节点是词汇张量。


4. 问答匹配:


输入一个提问语句,Talk to Books 先把提问语句,翻译成一个定长的数值张量,然后在众多文章的张量森林中,寻找最贴切的词汇张量,也就是某棵树的叶子节点。如果不行,就寻找最贴切的语句张量,也就是某棵树的下层中间节点。如果不行,就寻找最贴切的段落张量,也就是某棵树的上层中间节点。如果还不行,就寻找最贴切的文章张量,也就是某棵树的根节点。


难题在于,当文章数量很多,一棵树一棵树地逐个找一遍,计算量太大。所以需要一个办法,快速地从提问匹配到回答。


谷歌博文引荐了论文 [4],它用分类器,把提问匹配到数量固定的回答。分类器的办法,似乎不太可行,原因有二:


    a. 当回答的数量非常庞大时,分类器势必非常复杂。分类器越复杂,越需要的训练数据就越多。收集海量的训练数据,几乎是无法办到的事情。


    b. 无论是书籍还是网文,数量每天都在快速增多。分类类目数量增多,分类器的结构就必须随之改变,就必须重新训练分类器。


分类器似乎不可行,倒排索引是否可行呢?原理上似乎可行,但是占用的存储空间会非常庞大,因为倒排索引的 term,已经不再是每篇文章中出现的所有词汇了,而是,词汇张量 + 语句张量 + 段落张量 + 文章张量,组合爆炸的节奏。


除了索引以外,另外一个匹配提问和回答的办法,是用寻址函数,类似于 Amazon Dynamo 那样的 Hash 寻址函数 [5]。但是论文 [4] 中没有提及。


5. 答案生成:


答案的生成,有两种方式,一个是摘要,如前所述。另外一个是把诸多段落语句,通过推理,串连在一起,更智能地生成答案。


譬如提问是 “孕妇是否能吃海鲜”,推理的办法是,先找到孕妇子宫中,羊水最重要的营养成分是什么。然后查找破坏羊水的营养成分,会有哪些物质。再然后检查海鲜中,是否富含这些破坏物质。


推理的办法,往往需要把跨段落,甚至跨文章的诸多语句,按逻辑顺序,串连在一起,组合成答案。看样子这次 Talk to Books,并没有涉及推理的难题。


总之,Talk to Books 的截图很震撼,但是两篇论文,似乎并没有满足我们所有的好奇心。


# 参考文献:

1. 谷歌发大招:搜索全面AI化,不用关键词就能轻松“撩书”

2. Introducing Semantic Experiences with Talk to Books and Semantris

https://research.googleblog.com/2018/04/introducing-semantic-experiences-with.html

3. Universal Sentence Encoder  https://arxiv.org/abs/1803.11175

4. Efficient Natural Language Response for Smart Reply  https://arxiv.org/abs/1705.00652

5. Dynamo: amazon's highly available key-value store  http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存