来源:腾讯研究院 时间:2023-06-27 19:21:06
萨曼莎:我能帮你做什么?
(相关资料图)
西奥多:嗯,就是觉得一堆东西乱七八糟的,没别的。
萨曼莎:要不我帮你看看硬盘?
西奥多:嗯……好吧。
萨曼莎:好的,咱们先从电子邮件开始。你有几千封《洛杉矶周报》的邮件,但是你好像很多年前就不在那里工作了。
西奥多:嗯,是呀。我想,之所以留着那些邮件没删,是因为我觉得以前可能写过几句特别幽默的话。但是……
萨曼莎:是的,的确有些挺幽默的。我看大概有86封应该存下来的。我们可以把剩下这些邮件都删除掉。
——编剧兼导演,斯派克·琼斯,《她》,2013年
如果机器都能像科幻电影《她》中由斯嘉丽·约翰逊配音的“操作系统”萨曼莎理解西奥多那样理解我们,那该有多好。如果机器能在眨眼间整理好我们所有的电子邮件,选我们需要的那些,将剩余的清除干净,那该有多好。
如果我们能赋予计算机一个它们不具备的能力,那么首当其冲的就该是理解语言的能力。因为语言理解不仅能让计算机帮助我们安排日常的生活和工作,而且还能帮助人类去直面那些最大的挑战,比如对大量的科学文献进行精炼和总结。无论是谁,仅凭自己的力量,都不可能紧跟科学界的发展速度。
举例来说,在医学领域,每天都有数千篇论文发表于世。没有哪个医生或研究人员能将这些论文都读一个遍。读不到这些论文,就无法将最新理论应用于实践,拖了进步的后腿。药物研发之所以进展缓慢,一部分原因就在于许多信息都封锁在那些没人能抽出时间阅读的文献中。有时,全新的治疗手段无法得到应用,是因为医生没时间去阅读相关内容,根本不知道有新手段的存在。如果有一个能对大量医学文献进行自动合成的AI程序,就会掀起一场真正的革命。
能像博士生一样从专业角度出发去阅读的计算机,再配备上谷歌强大的计算马力,同样会在科学界掀起一场革命。从数学到气候科学再到材料科学,我们会看到每个领域因此而发生的重大进展。而且,不仅科学能获得变革,历史学家和传记作者也能迅速找到关于某个非著名人物、地点和事件的所有文字记录。作家还能利用自动查询功能,去检索作品中情节的前后矛盾、逻辑缺陷和时代错误。
就连比上述功能简单得多的能力也能发挥巨大的帮助作用。现在iPhone有个功能,当你收到一封提到约见时间地点的电子邮件,你只要点击一下,iPhone就能将此事加进日程安排之中。如果能在整个过程中不出错,那还真是非常方便。但很多时候,iPhone做不到不出错,很可能加入日程的不是你所想的日子,而是邮件中提到的另外一个日子。如果你不能在iPhone犯错的时候及时发现,就只能自认倒霉。
等到机器真正可以阅读的那一天,我们的后人一定会猜想,当年的这帮人是如何在没有合成阅读器的情况下工作生活的,就像我们有时会猜想古人如何在没有电力的情况下工作生活一样。
Talk to Books无法回答一切问题
2018年初的TED大会上,现就职于谷歌的著名未来学家兼发明家雷·库兹韦尔将他新近推出的项目——谷歌“Talk to Books”公之于世,并承诺利用自然语言理解来“提供读书的全新方式”。1Quartz网站照例将这个新产品捧上天,鼓吹“谷歌推出震惊世界的全新搜索工具,将能通过阅读成千上万的书籍来回答一切问题”。
我们头脑中闪现的第一个问题,就是:“这个项目实际上是做什么的?”答案是,谷歌对10万本图书中的句子添加了索引,这些图书包罗万象,从《大学成长手册》到《编程入门傻瓜书》再到《托尔金的福音》,什么都有。在此基础之上,谷歌还开发了一种对句子意义进行编码的高效手段,可以将其转化为被称作“向量”的数字集合。当你提问时,程序会利用这些向量,在数据库中找到拥有最相近向量的20个句子。而系统本身并不知道你问的问题是什么意思。
只需对系统的输入有所了解,我们就能立刻明白,Quartz网站文章中所称的Talk to Books“将能回答一切问题”的说法,不能按字面意思去理解。10万本书听起来很多,但只不过是迄今为止出版过的1亿本图书中的一个零头而已。在本书之前的内容中我们曾讲过,深度学习是靠相关性而非真实的理解来工作的。所以当我们看到Talk to Books给出的许多答案都不太靠谱时,也一点儿不觉得奇怪。如果你的问题是关于某部小说中的具体细节,那么你应该能得到一个比较可靠的答案。但是,当我们提问“哈利·波特和赫敏·格兰杰是在哪里相遇的”,系统给出的20个答案中,没有一个是出自《哈利·波特与魔法石》,也没有一个答案是针对问题而给出的。当我们问到“第一次世界大战后协约国继续对德国进行封锁的行为是否合理”,系统给出的结果中,竟然没有一条提到封锁。Talk to Books能回答“一切问题”的说法,也真是夸张得有点太过了。
而当答案不能从索引文本的句子中直接引用时,许多内容就会被忽略掉。当我们问到“《哈利·波特》中提到的七魂器是什么”,我们根本得不到一个七魂器的列表,可能是因为在所有这些讨论哈利·波特的著作中,没有一本将七魂器同时列举出来。当我们提问“1980年时,美国最高法院最年长的法官是谁”,系统就彻底傻眼了。然而我们只需上网找到最高法院的法官列表,几分钟时间就能查询到答案是威廉·布伦南。Talk to Books在这里之所以遇到了挫折,就是因为所有书籍中都找不到一句能给出完整答案的话来。这10万本书中,没有一本书写过“1980年最高法院最年长的法官是威廉·布伦南”这样一句话。就算有10万本书在手,系统也无法从海量的书面文字中进行提炼和推断。
而最能说明Talk to Books存在问题的是,只要对提问方式稍加改变,就会得到完全不同的答案。当我们问Talk to Books“谁为了30块银钱背叛了自己的老师”,虽然这是一段非常著名的故事中的一个众所周知的情节,但在系统给出的20个答案中,只有6个答案正确地提到了犹大。而如果我们没有用上“银钱”这个特定的说法,答案就会变得更加五花八门。
当我们以不那么确切的方式向Talk to Books提问:“谁为了30个硬币背叛了自己的老师?”犹大只出现在10%的答案中。排名最靠前的答案,既与问题毫不关联,也不能提供任何信息:“不清楚静婉的老师是谁。”当我们再次对问题进行调整,将“背叛”改成“出卖”,形成“谁为了30个硬币出卖了自己的老师”,犹大的答案便从前20个结果中彻底消失了。
这个系统比较适合处理文本序列精确匹配的问题,一旦问题脱离了这个范畴,系统就会一筹莫展。
人是怎样阅读的
有朝一日,当梦想中的机器阅读系统成为现实,就将能够回答关于其读到内容的所有合理问题。机器将能够把多份文件的信息整合为一体,而且其答案不会仅仅是从原文中原封不动摘取的一段话,而是通过信息的合成来呈现。从未同时出现在一个段落之中的七魂器列表也好,律师从多个案件中收集判例的精炼概括也好,科学家通过多篇论文心得而总结出的理论也好,都不在话下。就连一年级小学生都能将系列绘本中的好人和坏人逐一列出。为了写学期论文,大学生能从多个出处搜集思想,并将这些思想整合为一体,进行交叉验证,并得出全新的结论。同样,拥有阅读能力的机器也应该能做到这一点。
机器需要具备信息合成能力,而非单纯的鹦鹉学舌。但在此之前,我们还需要达到一个更简单的目标:让机器能可靠地理解最基础的文本。
时至今日,就算社会上对AI的呼声再高,我们都还没有达到这个简单目标。若想弄明白为什么鲁棒的机器阅读能力目前依然遥不可及,我们首先要具体搞清楚理解相对简单的文本所需经过的步骤。
举例来说,假设你读到了下面这段文字。这段文字引自劳拉·英格斯·怀德创作的儿童读物《农庄男孩》。阿曼佐是个9岁男孩。他在街上捡了个塞满了钱的钱包,当时还叫“钱袋子”。阿曼佐的父亲猜想,这个“钱袋子”可能是汤普森先生的。阿曼佐在城中的一个商店里找到了汤普森先生。
阿曼佐转向汤普森先生,问道:“你的钱袋子有没有丢?”
汤普森先生跳了起来。他用手拍了拍自己的口袋,大声喊着:
“是的,我的钱袋子丢了!里面还有1500美元!我的钱袋子呢?你都知道些什么?”
“是这个吗?”阿曼佐问道。
“是的,是的,就是这个!”汤普森先生说道,一把夺走钱袋子。他将钱袋子打开,匆匆忙忙地数钱。把所有的钞票全部清点了两遍。
之后他长长地舒了一口气,放松了下来,说道:“嗯,看来这个傻孩子一分钱也没偷。”
一个优秀的阅读系统,应该有能力回答下列问题:
1. 汤普森先生为什么用手拍自己的口袋?
2. 在阿曼佐说话之前,汤普森先生是否知道自己丢了钱包?
3. 阿曼佐问“是这个吗”时,指的是何物?
4. 谁差点丢了1500美元?
5. 所有的钱是否还都在钱包里?
对于人类来说,所有这些问题都很简单。但迄今为止开发出来的所有AI系统中,无一能可靠地处理此种类型的问题。。
从本质来看,上述每一个问题都需要读者去跟随一条推论链,而这些推论都隐藏在故事之中。以第1题为例。在阿曼佐说话之前,汤普森先生并不知道自己丢了钱包,以为钱包还在口袋里。当阿曼佐问他是不是丢了钱包,汤普森才意识到他真的可能丢了钱包。就是为了验证钱包丢了的可能性,汤普森才去拍自己的口袋。因为没有在平时放钱包的地方找到钱包,所以汤普森才意识到自己丢了钱包。
目前的AI完全没有能力对复杂推理链条进行处理。这类推理链条通常要求读者将大量关于人和物的背景信息整合在一起,需要对这个世界的基本运转规律有所把握,而目前的系统并不具备足够广泛的通用知识去做到这一点。 在你阅读这个阿曼佐与钱包的故事时,你很可能会无意识地用到许多相关知识,比如:
人们可能在不知情的情况下丢东西。这属于人的心智状态与事件之间关系的知识。
人们常常将钱包放在口袋里。这是有关于人们在通常情况下如何使用某物的例子。
人们经常在钱包里装钱。钱对人们来说很重要,因为人们可以用钱来买东西。这是有关于人、习俗和经济学知识的例子。
如果人们假设某些对他们很重要的事是事实,而他们又发现此事可能并非事实,就会很着急地去加以证实。这是关于对人在心理上极其重要的事情的知识。
你能通过从外部触摸一下口袋,来感觉到某物是不是在口袋里。这是有关于不同类型的知识如何结合为一体的例子,在这里,也是有关于不同的物体彼此互动的知识与感官如何发挥作用的知识相结合的例子。
其他问题所需的推理和知识也同样丰富多样。若想回答第3题:“阿曼佐问‘这个是它吗’时,指的是何物?”读者必须要明白有关语言、人物和物体的相关知识,并从中领会出,“这个”和“它”的合理先行词可能是钱包,但更加微妙的是,“这个”指的是阿曼佐手里拿着的钱包,而“它”指的是汤普森先生丢的钱包。所幸,这两个钱包原来是同一个钱包。
哪怕是应对如此简单的段落,我们关于人物、物体和语言的知识都需要达到深刻、广泛和灵活的水平;如果环境稍有变化,我们就要去适应。我们不能指望汤普森先生在听到阿曼佐说找到了自家外婆的钱包时还能表现出同样的激动状态。从文中我们领会到,汤普森先生是在不知情的情况下丢了钱包,而如果他是在持刀歹徒实施抢劫的情况下,还不知道自己的钱包被拿走了,那我们就会觉得非常奇怪。至今尚无人能想出办法,让机器能以如此灵活的方式进行推理。我们并不认为这一目标不可能达成,随后我们会设计出向前发展所需迈出的几个步骤,但当下的现实问题就是,达到目标所需的能力远远超出了AI界的专业水平。Talk to Books还差得太远,本书开篇提及的微软和阿里巴巴的阅读器也同样如此。
从根本上说,现在的机器所擅长的工作,与获取上述平凡但不可或缺的能力以及理解真实世界的能力之间,还对不上号。
怀德的这段文字并没有什么特别之处。我们平日阅读到的每一个段落,都存在类似的挑战。以下是引自2017年4月25日《纽约时报》的简短例子。
今天本应是埃拉·菲茨杰拉德的百岁寿辰。
洛伦·舍恩伯格这位纽约客,在1990年时为“爵士乐第一夫人”做萨克斯伴奏。此时已接近她职业生涯的终点。他将她比喻成“一瓶陈年红酒”……
无论是人还是机器,都可以回答从文字中能直接找到答案的问题,比如:“洛伦·舍恩伯格演奏的是什么乐器?”但许多问题都需要在文字的基础上做一点点引申,而这点引申,就会让目前的AI系统望而却步。
1. 埃拉·菲茨杰拉德1990年时是否健在?
2. 1960年时她是否健在?
3. 1860年时她是否健在?
4. 洛伦·舍恩伯格和埃拉·菲茨杰拉德是否见过面?
5. 舍恩伯格是否认为菲茨杰拉德是一瓶酒精饮料?
若想回答第1题、第2题、第3题,就需要推理出埃拉·菲茨杰拉德生于1917年4月25日这个事实,因为2017年4月25日应该是她的百岁寿辰。在此基础之上,还要具备一些关于如下事实的知识:
人在职业生涯过程中是活着的,因此她在1990年时还健在。
人在出生之后、死亡之前,是一直活着的,而在出生之前、死亡之后,并不活在这个世界上。因此菲茨杰拉德在1960年肯定活着,而在1860年时还没出生。
回答第4题,需要能通过推理得知为某人的歌唱进行伴奏需要与其见面,并需要在文中没有直接表明的情况下,引申出埃拉·菲茨杰拉德是“爵士乐第一夫人”。
回答第5题,需要能通过推理得知人们在进行类比时头脑中有着怎样一幅画面,并知道埃拉·菲茨杰拉德是一个人,人不能变成饮料。
随手拿来一份报纸、一则故事、一篇小说,无论长短,你都能从里面找到类似的内容。技巧娴熟的作家并不会将每一件事都清楚无疑地向读者阐明,而是只将你需要知道的事情讲给你听,并依赖于人与人之间所共有的知识来填补其余的空缺。想象一下,如果怀德在故事中事无巨细地写下来人们将钱包放在口袋里,人们有时会通过用手摸口袋的方式来察觉小物件的存在与否,这个故事将会变得多么枯燥。
想当年,有一群AI研究人员曾尝试解决这些问题。现任谷歌研究总监的彼得·诺维格,当时曾写过一篇颇具争议的博士论文,主题就是如何应对让机器理解故事的挑战。更为知名的是罗杰·尚克,当时还在耶鲁大学工作的他,提出了一系列颇具深度的案例,指出在客人走进餐厅时,机器可以利用“脚本”来理解当时发生的事情。但是,对故事的理解需要更加复杂的知识结构,以及比脚本要多得多的知识形式,而形成并收集所有这些知识所需的工程量巨大到令人无法下手。随着时间的推移,这条思路逐渐被搁置了下来,研究人员也开始转向更容易上手的领域,比如网络搜索和推荐引擎。谁也没能让我们距离通用人工智能更近一步。
搜索引擎和语音虚拟助手的困惑
尽管如此,网络搜索还是掀起了翻天覆地的变革。这是AI最为显赫的成功案例之一。谷歌、必应等,都是基于极为强大而且极富实效的工程力量,以AI为动力,在数十亿网络文件中以接近实时的速度找到匹配的结果。
令人惊讶的是,虽然这些工具都以AI为动力,但却几乎不涉及我们盼望的那种自动化合成机器阅读的能力。我们希望机器能理解它们读到的内容。而搜索引擎却做不到理解。
以谷歌搜索为例。谷歌算法中有两个基本思想,一个思想是自古有之,另一个思想是谷歌首先提出来的,但无论哪个思想都不需要系统拥有理解文件的能力。第一个古老思想,远在谷歌和互联网诞生之前,自从20世纪60年代早期就被用在文件检索程序之中。这一思想是将问题中的词与文件中的词进行匹配。
想要搜索包括小豆蔻的菜谱吗?没问题,只要找到所有包含“菜谱”和“小豆蔻”这两个词的网站就可以了。根本无须理解小豆蔻是一种香料,无须搞明白这种香料闻起来是什么香味,吃起来是什么味道,也无须知道此种香料是如何从豆荚中提取而成,哪种风味的菜肴更倾向于使用这种香料。想要找到飞机模型指南吗?只要匹配上诸如“模型”“飞机”和“如何”几个词,就能找到许多有用的链接,就算机器根本不知道飞机为何物也无所谓,更无须搞明白什么是升力,什么是阻力,无须理解你为什么一定要乘坐商业航空公司的航班,而不愿驾着一比一的飞机模型遨游天空。
第二个更富创新意识的思想就是著名的“网页排名”算法。该思想认为,程序可以利用网络的集体智慧,通过查看哪些网页拥有更多外链(特别是来自其他高质量网页的链接)来判断网页质量的高下。这一思想令谷歌迅速崛起,将其他搜索引擎远远抛在了后面。但是,词汇匹配与文本理解之间并没有太大关系,计算源于其他网页的链接也与真正的理解有着天壤之别。
谷歌搜索之所以在没有任何复杂阅读能力的情况下也能取得非常好的效果,是因为搜索过程对精度的要求很低。搜索引擎无须进行深度阅读去分辨网络上关于总统权力的论述是偏左派还是右派,这是用户要去做的事情。谷歌搜索需要搞定的,就是判断给定文档是否与正确的通用主题有关。人们从文档中的只言片语就能大概搞清楚此文的主题。如果有“总统”和“行政特权”等词,用户很可能会因为找到了这个链接而欢欣雀跃;而如果是关于卡戴珊家族的,那么很可能不在用户的兴趣范围之内。如果文档中提到了“乔治” “玛莎” “约克镇战役”,谷歌搜索就能猜出来此文与乔治·华盛顿有关,虽然它对婚姻和革命战争一无所知。
其实,谷歌并不肤浅。有时,谷歌有能力对用户查询的问题进行理解,并给出整理好的答案,而不仅仅是一长串链接。这就与阅读能力更为接近,但只是接近了一点点,因为谷歌通常情况下只会阅读用户查询的问题,而不会阅读文件本身。如果你问:“密西西比州的首府是哪里?”谷歌就会正确地对问题进行解析,并在预先设定的表格中找到答案:杰克逊城。如果你问:“1.36欧元等于多少卢比?”谷歌同样会给出正确的解析,在参考另一份汇率表格后,正确地计算出“1.36欧元=110.14印度卢比”。
绝大多数情况下,当谷歌反馈出这类答案时,基本都是可靠的,但距离完美还有很长一段路要走,而我们也能从它犯下的错误中,猜出它背后的工作原理。举例来说,2018年4月,我们在谷歌搜索中提问:“目前谁是最高法院的法官?”得到了一个并不完整的答案:“约翰·罗伯茨。”而罗伯茨只是九位法官中的一位。在答案后面,谷歌还在“人们也在搜索”部分给出了其他七位法官的名字:安东尼·肯尼迪、塞缪尔·阿利托、克拉伦斯·托马斯、斯蒂芬·布雷耶、鲁思·巴德·金斯伯格和安东宁·斯卡利亚。上述所有人的确都曾就任于最高法院,但斯卡利亚已经故去,而斯卡利亚的继任者尼尔·戈萨奇以及新近任命的埃琳娜·卡根和索尼娅·索托马约尔都没有在这份名单中出现。看得出来,似乎谷歌完全忽略掉了“目前”这个词。
回到我们之前讲到的“合成”这个话题上,终极机器阅读系统将能够通过阅读谷歌新闻来编写问题的答案,并在发生变化时对清单进行调整,或者至少应该能通过参考用户会频繁更新的维基百科来提取出目前法官的名字。谷歌似乎不会这样做。根据我们的推测,谷歌只不过是查询了统计规律——阿利托和斯卡利亚在许多关于司法制度的搜索中都有出现,而没有对其来源进行真正的阅读理解。
举另外一个例子,我们问谷歌:“第一座桥梁是何时建成的?”得到了如下置顶答案:
如今世界上绝大多数地方都利用钢铁建筑桥梁,主要河流上横跨的桥梁都属于此种类型。图中所示是世界上第一座铁桥。此桥由亚伯拉罕·达比三世(Abraham Darby III)于1779年建成,是历史上第一座用铁建成的大型建筑。
“第一座”和“桥梁”这两个词与我们的查询相匹配,但有史以来建成的第一座桥并非铁桥,因此“第一座铁桥”并不等同于“第一座桥梁”。谷歌给出的答案与正确答案相差了数千年。在谷歌开发出此功能十几年之后的今天,能通过阅读问题并给出直接答案的搜索依然只占极少数。当你用谷歌搜索得出的是链接而非答案时,就说明谷歌只是依赖于关键词和链接计数之类的能力,而非真正的理解。
当然,像谷歌和亚马逊这样的公司一定会不断对产品进行改进。对于像最高法院法官这样的问题,也很容易通过人工编程的方式给出正确的名单。小规模的循序渐进肯定会继续下去,但当我们展望未来时,并没有看到针对我们提出的许多类型挑战的通用解决办法。
几年前,我们在Facebook上看到了一个特别搞笑的表情包。这是一张奥巴马的照片,上面写着:“去年你告诉我们你50岁了;现在你说你51岁了。奥巴马你到底几岁了?”两种不同的说法,放在不同的时间,可能都是正确的。如果你是人类,就能理解这个笑话。但如果你是只会做关键字匹配的机器,到这里就彻底抓不住笑点了。
Siri、Cortana、谷歌助手和Alexa这类靠语音驱动的“虚拟助手”,又有着怎样的情况呢?先看优点。这些虚拟助手会采取实际行动,而不是抛给你一个链接列表。与谷歌搜索不同,虚拟助手一开始的设计方案就是将用户的查询从实际问题的角度加以理解,而不是将其视为随机的关键词集合。但几年之后,这些虚拟助手都成了“偏科生”,在某些方面很好用,而在其他方面则很薄弱。举例来说,几个虚拟助手都很擅长“事实陈述”的问题,比如“谁赢得了1957年的世界大赛”,但它们每一个又有各自的独门绝技。谷歌助手擅长指路和买电影票。Siri擅长指路和预订餐厅座位。Alexa擅长数学,讲事先写好的笑话,而且尤其擅长从亚马逊网站上买东西——这一点儿也不稀奇。
但在它们擅长的领域之外,你永远也不知道这些助手会在什么时候突然语出惊人。不久前,作家莫娜·布什内尔做了个小实验,向所有4个程序询问通往最近机场的路线。谷歌助手给了她一份旅行社的名单。Siri给她指了一条去往水上飞机基地的路。Cortana给了她一个Expedia等机票网站的列表。我们其中一人在最近一次驾车出行的途中和Alexa聊天,在某些问题得到了完全正确的答案,比如:特朗普是人吗?奥迪是车吗?Edsel是车吗?但在另一些问题上则彻底迷失了,比如:奥迪能用汽油吗?奥迪能从纽约开到加州吗?鲨鱼是一种交通工具吗?
再举个例子,最近有人在Twitter上发给马库斯这么个段子:这是一个手机截屏,向Siri询问“最近一家不是麦当劳的快餐店”,Siri老老实实地列出了附近三家餐厅的名单,而且还都是提供快餐的餐厅,但每一家都是雷·克罗克盖的房子。“不是”这个词被Siri完全忽视掉了。
2009年问世的Wolfram Alpha被大宣传为“世界上第一个计算知识引擎”,实际上也好不到哪里去。WolframAlpha拥有囊括各类科学、技术、数学、人口普查和社会学信息的巨大的内置数据库,还拥有利用这些信息回答问题的一系列技术,但依然不具备将所有这些信息整合为一体的能力。
WolframAlpha的强项是数学问题,比如:“1立方英尺(30)黄金的重量是多少?” “密西西比州的比洛克西距离加尔各答有多远?” “一个边长为2.3米的二十面体的体积是多少?”
但它的理解能力的局限性很强。如果你问“墨西哥边境离圣地亚哥有多远”,你会得到“1841千米”的答案,而这个答案是完全错误的。WolframAlpha忽略了“边境”这个词,而是计算从圣地亚哥到墨西哥地理中心点的距离。如果你对二十面体的问题稍加调整,用“边的长度为2.3米”替换“边长2.3米”,它就不再认为这是关于体积的问题,而是告诉你二十面体有30条边、20个顶点、12个面,根本不提体积的事。WolframAlpha能告诉你埃拉·菲茨杰拉德什么时候出生,什么时候去世;但如果你问“埃拉·菲茨杰拉德1960年时是否健在”,系统就会错误地理解为“埃拉·菲茨杰拉德是否健在”并给出“不”的答案。
可能读者会说:但是,请稍等,沃森呢?就是那个打败了Jeopardy!节目中两位人类冠军的沃森,它不是特别会回答问题吗?没错,但可惜的是,沃森并不像表面看上去那么无所不能。原来,Jeopardy!节目中95%的问题答案都是维基百科页面的标题。在Jeopardy!中获胜,只要能找到合适的文章标题即可。从这种水平的信息检索要发展到能够真正思考和推理的系统,还有着十分漫长的道路。到目前为止,IBM甚至还未能将沃森打造成为鲁棒的虚拟助手。我们最近在IBM的网页上试图寻找这样一款产品,但能找到的只是一个过时的沃森助手演示版,只会处理模拟汽车相关的事情,根本无法与苹果、谷歌、微软或亚马逊的那些多功能产品相提并论。
我们相信,Siri和Alexa等虚拟助手一定会变得越来越好用,但它们还有很长的路要走。而且,关键问题在于,就像谷歌搜索一样,真正的合成是十分稀罕的。据我们所知,目前很少有公司尝试以灵活的方式将多个来源的信息组合为一体。甚至源自包含多个句子的同一个来源时,其内容也被拆散得七零八落,就像我们之前读到的关于阿曼佐和埃拉·菲茨杰拉德的段落一样。
现实情况是,目前的AI系统无法对你在这些情况下所做的事情进行复制,无法对一系列句子进行整合,无法对段落中说了什么和没说什么进行事实重建。如果你能看懂我们的话,那你就是人,而不是机器。或许有一天,你可以让Alexa将《华尔街日报》与《华盛顿邮报》对总统的报道进行比较,或者让Alexa问问你的家庭医生,最近的体检报告中是否漏掉了什么信息。但就目前而言,这还只是幻想。还是继续跟Alexa聊聊天气吧。
我们所拥有的就是一个虚拟助手的大杂烩,通常很有用,但永远都做不到完全可靠——没有一个能做我们人类读书时所做的事情。无论我们曾经怀着多么远大的理想和目标,现实情况就是,AI出现已经60多年了,从功能上讲计算机依然与文盲无异。
计算机不会阅读的三大原因
深度学习解决不了这个问题,与其紧密相关的“端到端”学习也解决不了这个问题。在“端到端”学习中,研究者训练AI将输入直接转换为输出,无须通过任何中间子系统。举例来说,传统的驾驶方法将整体分解成感知、预测和决策等子系统,而端到端的汽车驾驶系统则不经过子系统,是将摄像头图像作为输入,并将加速或转向等调整动作返回作为输出,没有中间子系统来确定视野中有哪些物体位于什么地方,如何移动,其他司机可能会做什么、不可能做什么,等等。
端到端系统发挥的作用有可能极为有效,而且比更加结构化的替代方案更容易实现。端到端系统需要的人力投入也相对较少。有时,这就是最好的解决方案。正如《纽约时报》关于谷歌翻译的文章所说,端到端深度学习系统已经极大提高了机器翻译的技术水平,取代了以前的方法。现在,如果你想做一个英法互译的程序,那么首先就要收集一个规模巨大的英法双语对照的语料库,比如法律规定加拿大议会的议事录必须同时以英法双语出版,这就是很好的语料。从此类数据中,谷歌翻译可以自动学习英语单词短语与法语对应词之间的相互关系,而无须事先掌握关于法语或英语的知识,也不需要事先了解法语语法的复杂性。即便是我们这样的怀疑论者也为此而赞叹不已。
问题是,一个药方治不了所有的病。事实证明,端到端的方法非常适合机器翻译,一部分原因在于可以随时获得大量相关数据,还有一部分原因在于,几乎所有英语单词和法语单词之间都存在或多或少的清晰对应关系。绝大多数情况下,你可以在英法词典中找到精确对应的法语单词,而且两种语言中单词顺序之间的关系遵循相当标准的模式。但关于语言理解的许多其他方面都不太适用端到端方法。
比如属于开放式场景的回答问题就不太适用,一部分原因在于正确答案中所使用的单词可能与文本中的单词并没有明显的关系,而且,我们也找不到规模堪比英法双语议事录文件的问答数据库。即使有这样一个数据库,由于各种问题和答案的潜在变化空间极为庞大,无论怎样的数据库都只能覆盖全部可能性之中的一小部分。如前所述,这就给深度学习带来了严重的问题:深度学习在应用场景中偏离其训练集越远,遇到的麻烦就会越多。
而且说实话,即使在机器翻译中,端到端方法也有局限性。它们通常能够很好地传达要点,但单词和短语的匹配有时还不够。当正确的翻译取决于更深层次的理解时,系统便无法招架。如果你让谷歌翻译一个法语句子“Je mange un avocat pour le dejeuner”,正确的意思是“我午餐吃了一个鳄梨”,但你得到的翻译是“我午餐吃了一个律师”,法语单词avocat有“鳄梨”和“律师”两个意思。而且因为写律师的文章比写鳄梨的文章要多,所以谷歌翻译从统计角度出发自动选择了那个更为常见的意思,而付出了违背常识的代价。
侯世达在《大西洋月刊》上发表的一篇精彩文章中,生动地描述了谷歌翻译的局限性:
我们人类对夫妻、房子、个人财产、骄傲、竞争、嫉妒、隐私等许多无形之物了如指掌,并由此产生一些看似古怪的行为,比如一对已婚夫妇在毛巾上绣着“他”和“她”。谷歌翻译并不了解这种情形。谷歌翻译对所有的情形都一无所知。它唯一熟悉的就是由字母组成的单词以及由单词串起来的句子。它唯一擅长的就是关于文本片段的超高速处理,而不是思考、想象、记忆或理解。它甚至不知道单词代表的是什么东西。
虽然科技的进步有目共睹,但对于我们来说,世界上绝大部分文字知识依然无法获取,就算是以数字化的在线形式存在也改变不了这样的现实,因为这些知识是以机器无法理解的形式存在的。电子医疗记录中充满了所谓的“非结构化文本”,比如病历、电子邮件、新闻文章和word文档等,无法整齐排列在表格之中。而真正的机器阅读系统将能够深入到所有这些内容之内,从病历中搜寻线索,再从血液检测和入院记录中捕捉到重要信息。但这一问题远远超出了目前AI的能力所及,很多病历从未得到过细致阅读。举例来说,人们正在开发用于放射医疗的AI工具。这些工具能够读取图像,对肿瘤与健康组织进行区分。但是,目前还没有办法对真正的放射科医生所做的另一部分工作进行自动化,这部分工作,就是将图像与病人的病史相联系。
在大量拥有潜在商业价值的AI应用中,理解非结构化文本的能力是一个重要的瓶颈。我们现在还不具备自动化阅读法律合同、科学文章或财务报告的能力,因为上述每一类文件中都包含了AI无法理解的文本。虽然目前的工具有能力从最晦涩的文本中提取基本信息,但通常也会遗漏掉许多内容。市面上花样迭出的文本匹配和链接计数工具的确提供了一点帮助,但这些工具根本无法让我们距离拥有真正阅读和理解能力的程序更近一步。
口语理解的情况也没好到哪去。对于将口语转换成医学病历的计算机医生助手来说,面临的挑战更加艰巨―—有了这样一个工具,医生就可以将坐在电脑前的时间节约下来,把更多的时间用来和病人相处。来看看维克·莫哈尔医生发给我们的这段简单对话:
医生:你在体力劳动时会感到胸痛吗?
病人:上周我在修剪院子里的草坪时,感觉就像一头大象坐在了我身上。
从“人”的角度来看,医生问题的答案显然是“是”。修剪草坪属于体力劳动的范畴,而且我们能推断出病人感觉到了痛苦,因为我们知道大象很重,而被重物压到是很痛苦的。我们还能自动推断出,鉴于一头真正的大象可能造成的巨大伤害,“感觉”这个词在这里是个比喻,不能从字面意义去理解。而从“机器”的角度来看,除非之前有过很多关于大象的具体讨论,否则机器很可能认为这只是关于大型哺乳动物和庭院杂务的无意义闲扯。
我们是怎么陷入这一滩浑水之中的呢?
计算机不会阅读的第一个原因是不会建立认知模型。
深度学习在学习相关性时非常有效,比如图像、声音和标签之间的相关性。但是,当涉及理解客体与其组成部分之间的关系时,比如句子与单词和短语的关系,深度学习就犯了难。为什么?因为深度学习缺少语言学家所说的“组合性”,也就是从复杂句子各个成分的意义来构建其整体意义的途径。举例来说,在这句“月亮离地球380000千米”中,“月亮”这个词意味着一个特定的天体,而“地球”则意味着另一个天体,千米意味着距离的单位,“380000”表示一个数字,鉴于汉语中短语和句子的特定组合结构,“380000千米”意味着一个特定的长度,而“月亮离地球380000千米”这句话,就是为了说明两个天体之间的距离是这个特定的长度。
令人惊讶的是,深度学习并没有处理组合性的直接方法,有的只是浩如烟海的孤立特征,而其间并不存在任何结构。深度学习可以知道狗有尾巴和腿,但并不知道尾巴和腿与狗的生命周期有什么关系。深度学习并不知道狗是由一个头、一条尾巴、四条腿组成的动物,甚至不知道动物是什么,不知道头是什么,更不知道青蛙、狗和人的头在概念上有所不同,不知道这些头在细节上存在差异,但与其所在的躯体都保持着同样的关系。深度学习也不能认识到,像“月亮离地球380000千米”这样的句子,其中包含了关于两个天体和一个距离长度的短语。
再举个例子,我们让谷歌翻译将“The electrician whom we called to fix the telephone works on Sundays”这句话翻译成法语,得到的答案是“L’électricien que nous avondes appelé pour réparer le téléphone fonctionne le dimanche”。如果你懂法语,就能看出来这个翻译不太对。特别需要指出的是,work这个词在法语中有两种翻译:travaille意为“工作”,fonctionne意为“正常运转”。谷歌使用了fonctionne这个词,而不是travaille,和我们的理解有所不同。“星期天上班”在语境中指的是电工,如果你说到一个正在工作的人,你应该使用动词travaille。从语法上讲,此处动词“work”的主语是电工,而不是电话。句子的整体意义是各个成分组合在一起所表达出来的,而谷歌并没有真正理解这一点。谷歌翻译在许多情况下取得了成功,而这些成功让我们高估了系统所知的范围,但事实证明,谷歌翻译的确缺乏深度。由此我们也能看出关于AI的错觉与现实之间的距离。
还有一个与此相关的重要问题是,深度学习并不具备整合背景知识的好办法,这一点我们在前面的第3章中也有提到。如果要学习在图片和标签之间建立联系,怎么做到的并不重要,只要能给出正确的结果,就没人会关心系统的内部细节,因为最初设定的目标就是为给定的图像匹配正确的标签,这一任务与我们所了解的绝大部分常识都搭不上关系。而语言远非如此。事实上,我们看到或听到的每一句话,都要求我们在大量的背景知识的基础之上推断出这些背景知识与所读内容之间的相关性。深度学习缺乏表达这类知识的直接方法,更不可能在理解句子的过程中以背景知识为基础进行推理。
最后,深度学习是静态地将输入匹配到标签,比如把猫的图片匹配到猫的标签,但阅读是一个动态的过程。当你利用统计方法对故事开篇的文字进行翻译,将“Je mange une pomme”翻译成“我吃一个苹果”,你不需要知道这两句话的意思,只要你能根据之前的双语语料库识别出“je”和“我”相匹配,“mange”和“吃”相匹配,“une”和“一个”相匹配,“pomme”和“苹果”相匹配。
许多时候,机器翻译程序可以给出一些有参考价值的东西,但一次只翻译一个句子,并不能理解整篇文章的意思。
当你在阅读故事或文章时,你做的是与机器完全不同的事情。你的目标不是去构造统计学上的合理匹配,而是去重建一个作家用文字与你分享的世界。当你读到阿曼佐的故事时,首先会发现故事包含三个主要人物:阿曼佐、他的父亲、汤普森先生。随后你会对这些人物的细节进行填充,比如阿曼佐是个男孩,他的父亲是个成年人等。你还会对一些事件的发生进行把握,比如阿曼佐发现了一个钱包,阿曼佐问汤普森先生这个钱包是不是他的等。同样,当你每次走进房间,每次去看电影或读故事时,都会无意识地做类似的事情。你会判断此处有哪些实体,它们之间的关系是什么。
用认知心理学的话来讲,你在阅读文本时所做的,就是建立一个关于文本表达意义的认知模型。这可以很简单,比如对丹尼尔·卡尼曼和已故的安妮·特里斯曼所讲的“对象文件”进行编译;也可以很复杂,比如对复杂场景的透彻理解。
举例来说,当你读《农庄男孩》时,会逐步在脑海中对故事中所有的人物、东西和事件及其之间的关系建立起形象:阿曼佐、钱包和汤普森先生,阿曼佐与汤普森先生对话的事件,汤普森先生大喊大叫、拍打口袋,汤普森先生从阿曼佐手中抢过钱包,等等。只有在你读过文本并构建起认知模型之后,你才有能力完成与这段故事有关的任务,包括回答相关问题,将段落翻译成俄语,总结,模仿,演绎,解释,或者仅仅是在脑海中留下记忆。
谷歌翻译是狭义AI的典型代表,回避了认知模型的构建与使用的全过程。谷歌翻译从不需要对事件进行推理或跟进事件的进展。在其擅长的领域,谷歌翻译做得还算不错,但其擅长的领域只涵盖了阅读的极小一部分。谷歌翻译从来不会为故事建立认知模型,因为它做不到。你不能向深度学习提问“如果汤普森先生摸了摸他的口袋,发现在放钱包的地方有一个鼓包,那么会发生什么”,因为这种问题根本不属于深度学习范式中应有的部分。
统计数字不能代替对现实世界的理解。问题不仅仅是偶尔出现随机误差而已,而是在目前翻译工具所使用的统计分析与真正的阅读理解所需的认知模型构建之间存在本质上的不匹配。
计算机不会阅读的第二个原因是不理解“不”的含义。
深度学习面临的一个令人意想不到的难题,就是对“不”这个词的理解,而经典AI方法则不会遇到同样的问题。还记得Siri在遇到“找一家不是麦当劳的快餐店”这个指令时给出的错误回复吗?提出这个问题的人,大概想要得到一个类似“榆树街321号的汉堡王,缅因街57号的温蒂汉堡,以及春街523号的IHOP”这样的答案。但是,温蒂汉堡、汉堡王或IHOP并没有与“不”这个词联系在一起的特征,而且人们也不会特别频繁地将这些餐厅称作“不是麦当劳”。所以冰冷的统计数据并不能将这些餐厅与“不是麦当劳”联系起来,尽管同样的方法可以将“国王”与“王后”联系起来。人们可以想出一些统计技巧来解决识别餐厅这一特定问题,但是想要对所有涉及“不”字的场景进行全面处理,则远远超出了深度学习的现有能力。
你真正需要的,是一套传统的曾用于构建数据库和经典AI的计算操作方法:构建一个列表,比如某个位置附近的快餐店,然后排除属于另一个列表的元素,比如各家麦当劳特许经营店的列表。
但深度学习的构建原理从最一开始就避开了这类计算。列表在计算机程序中是最基本、最普遍的存在,已有50多年的历史,却完全被深度学习排除在外。于是,要让深度学习理解一个包含“不”字的查询,就如同要将方钉打入圆孔一样困难。
计算机不会阅读的第三个原因是无法应对模糊性。
人类语言充满了模棱两可的描述。许多单词都有多种含义:作为动词的work既有工作的意思,也有发挥作用的意思;作为名词的bat既是一种会飞的哺乳动物,也是棒球运动中使用的木棒。这些还算相对能说清楚的。若想将in或者take等词汇的全部不同意义都一一列举出来,能写满一部词典。事实上,除了非常专业的词汇外,大多数词汇都有多重含义。而短语的语法结构也不甚清晰。“People can fish”这句话,是指人们可以去钓鱼,还是说人们把沙丁鱼和金枪鱼之类的鱼装进罐头里,就像在约翰·斯坦贝克的小说《罐头厂街》里写的那样?代词之类的词常常会引出更多的歧义。如果你说,萨姆抱不动哈利是因为他太重了,那么从原则上讲,“他”既可以是萨姆,也可以是哈利。
我们人类读者的神奇之处就在于,99%的时候甚至都注意不到这些不清晰的地方。我们不会感到困惑,而是会在无意识的情况下,迅速地、毫不费力地找到正确的解释方法―—如果存在正确解释的话。
假设你听到这样一句话:Elsie tried to reach her aunt on the phone,but she didn’t answer。虽然这句话在逻辑上模棱两可,但意思却很清楚。在你的意识里,根本不会有所疑虑,去想tried在这里是不是指法庭诉讼,或reach是否意味着亲身到达目的地,或on the phone是不是在说阿姨站在电话上面摇晃着保持平衡,或者短语she didn’t answer中的单词she是否指的是埃尔茜本人。相反,你立刻就会把注意力集中在正确的解释上:埃尔茜想通过打电话联系阿姨,但阿姨没有接。
现在试一试用机器来实现上述所有这些能力。在某些情况下,简单的统计就能发挥作用。tried这个词表达“尝试”这个意思的次数要比表达“提起诉讼”的次数多得多。on the phone这个短语表达“用电话进行交流”这个意思的频率也要比表达“坐在电话上”的频率高,即便会存在例外情况。当动词reach后面跟着一个人,而句子附近能找到单词phone时,reach这个词的意思很可能是“成功实现了沟通”。
但在很多情况下,统计方法并不能帮你得到正确的答案。如果不能真正理解发生了什么,是没有办法解决模糊性这个问题的。在“Elsie tried to reach her aunt on the phone, but she didn’t answer”这句话中,最重要的是背景知识与推理的配合。背景知识能让读者一目了然地知道埃尔茜不可能接她自己打的电话。通过逻辑分析,你知道she肯定指的是她的阿姨。学校里没人教我们如何进行这类推理,因为我们本能就知道应该怎么做。从我们最初开始对这个世界进行理解时,这种推理能力就自然而然地形成了。而在这类问题面前,深度学习完全无从下手。
常识很重要
遗憾的是,到目前为止,也没人找到真正有效的替代思路。经典AI技术,也就是在深度学习流行起来之前比较常见的方法,在组合性方面有更好的表现,也是构建认知模型的有用工具,但经典AI方法不善于从数据中学习,目前在这方面根本不能与深度学习相比,而且经典方法要对语言进行人工编码,实在太过复杂烦琐。经典AI系统通常使用模板,例如,模板[位置一离位置二有距离]可以与“月球离地球有380000千米”这句话进行匹配,被用来识别指明两个位置之间距离的句子。但是,每个模板都必须通过人工进行编码,每次遇到一个与以往不同的新句子时,比如,“月球位于地球约380000千米开外”,或者“月球在380000千米之外围绕地球沿轨道运转”,系统就会无所适从。而且,仅靠模板本身也很难实现关于世界的知识与语言知识的结合,从而难以解决语言模糊性的问题。
目前,自然语言理解领域落于两种不同的思路之间:一种是深度学习。深度学习非常善于学习,但在组合性和认知模型构建方面很弱。另一种是经典AI。经典AI将组合性和认知模型的构建囊括了进来,但在学习方面表现平平。
而两者都忽略了我们在本章中始终强调的主要内容:常识。
除非你非常了解世界是怎么运转的,了解人物、地点、物体及其彼此之间的相互作用,否则根本无法为复杂文本建立可靠的认知模型。如果没有常识,你读到的绝大多数内容都将毫无意义。计算机之所以做不到有效阅读,真正原因就在于它们对世界的运行方式缺乏基本理解。
可惜,掌握常识这件事远比人们想象的要难上许多。我们随后还会了解到,让机器获得常识的这一需求,也远比人们想象的要更加普遍。如果说常识对语言领域来说是个不容忽视的问题,那么,在机器人领域则更为紧迫。
全球即时看!水利部珠江水利委员会科学应对今年入汛以来最强降雨过程 有力保障流域防洪安全
Solon 也是 SSE(Server Send Events)后端开发的优选