人工智障(2/3)

作者:Mingke,本文转自S先生人工智障2 ,此为第一部分。

大家好,我又出来怼人了。

两年前,写了一篇文章 《为什么现在的人工智能助理都像人工智障》,当时主要是怼「智能助理们」。这次呢则是表达 「我不是针对谁,只是现在所有的深度学习都搞不定对话 AI」,以及「你看都这样了,那该怎么做AI产品」。

– 阅读门槛 –

  • 时间:这篇真的太长了(近 3 万字)根据预览同学们的反馈,通常第一次阅读到 Part 3 时,会消耗很多精力,但读完 Part 3 才发现是精华(同时也是最烧脑的部分)。请大家酌情安排阅读时间。
  • 可读性:我会在内容里邀请你一起思考(无需专业知识),所以可能不适合通勤时间阅读。你的阅读收益取决于在过程中思考的参与程度。
  • 适合人群:对话智能行业从业者、AIPM、关注 AI 的投资人、对 AI 有强烈兴趣的朋友、关心自己的工作会不会被 AI 代替的朋友;
  • 关于链接:阅读本文时,无需阅读每个链接里的内容,这并不会影响对本文的理解。

– 关于「人工智障」四个字 –

上一片文章发出后,有朋友跟我说,标题里的「人工智障」这个词貌似有点 offensive。作为学语言出身的,我来解释一下这个原因:

最开始呢,我是在跟一位企业咨询顾问聊人工智能这个赛道的现状。因为对话是用英语展开的,当时为了表达我的看法 「现在的智能助理行业正处在一种难以逾越的困境当中」,我就跟她说「Currently all the digital assistants are Artificial-Intelligently challenged」。

她听了之后哈哈一笑。「intelligently challenged」同时也是英文中对智障的委婉表达。 假设不了解这个常识,她就可能忽略掉这个梗,尽管能明白核心意思,只是不会觉得有什么好笑的。那么信息在传递中就有损失。

写文章时,我把这个信息翻译成中文,就成了「人工智障」。但是因为中文语法的特性,有些信息就 lost in translation 了。比如实际表达的是「一种困境的状态」而不是「一件事」。

(顺便说一下,中文的智障,实际上是政治正确的称呼,详见特殊奥运会的用词方法。)

为什么要写那么多字来解释这个措辞?因为不同的人,看见相同的字,也会得到不同的理解。这也是我们要讨论的重点之一。

那么,我们开始吧。

Part 1 对话智能的表现:智障

人工智障 2 : 你看到的AI与智能无关

▲ Sophia in AI for Good Global Summit 2017. Source:  ITU

2017 年 10 月,上图这个叫 Sophia 的机器人,被沙特阿拉伯授予了正式的公民身份。公民身份,这个评价比图灵测试还要牛。何况还是在沙特,他们才刚刚允许女性开车不久(2017 年 9 月颁布的法令)。

Sophia 经常参加各种会、「发表演讲」、「接受采访」,比如去联合国对话,表现出来非常类似人类的言谈;去和 Will Smith 拍 MV;接受 Good morning Britain 之类的主流媒体的采访;甚至公司创始人参加 Jim Fallon 的访谈时一本正经的说 Sophia 是「basically alive

人工智障 2 : 你看到的AI与智能无关

Basically alive. 要知道,西方的吃瓜群众都是看着《终结者》长大的,前段时间还看了《西部世界》。在他们的世界模型里,「机器智能会觉醒」这个设定是迟早都会发生的。

普通大众开始吓得瑟瑟发抖。不仅开始担心自己的工作是不是会被替代,还有很多人开始担心 AI 会不会统治人类,这样的话题展开。「未来已来」,很多人都以为真正的人工智能已经近在咫尺了。

只是,有些人可能会注意到有些不合理的地方:「等等,人工智能都要威胁人类了,为啥我的 Siri 还那么蠢?」

人工智障 2 : 你看到的AI与智能无关

▲ Source: Dumb And Dumber: Comparing Alexa, Siri, Cortana And The Google Assistant, Forbes, May 2018

我们来看看到 2018 年末在对话智能领域,各方面究竟发展的如何了。

 「 不要日本菜 」

我在 2016 年底做过一个测试,对几个智能助理提一个看似简单的需求:「推荐餐厅,不要日本菜」。只是各家的 AI 助理都会给出一堆餐厅推荐,全是日本菜。

2 年过去了,在这个问题的处理上有进展么?我们又做了一次测试:

人工智障 2 : 你看到的AI与智能无关

结果是依然没有解决。「不要」两个字被所有助理一致忽略了。

为什么要关注「不要」两个字?之前我去到一家某非常有名的智能语音创业公司,聊到这个问题时,他家的 PM 显出疑惑:「这个逻辑处理有什么用?我们后台上看到用户很少提出这类表达啊。」

听到这样的评论,基本可以确定:这家公司还没有深入到专业服务对话领域。

场景方面,一旦深入进服务领域里的多轮对话,很容易会遇到类似这样的表达 :「我不要这个,有更便宜的么?」。后台没有遇到,只能说用户还没开始服务就结束了。场景方面与 AI 公司的 domain 选择有关。

但是在技术方面,则是非常重要的。因为这正是真正智能的核心特点。我们将在 part 2&3 详细聊聊这个问题。现在先抛个结论:这个问题解决不了,智能助理会一直智障下去的。

「  To C 团队转 To B  」

自从 2015 年几个重要的深度学习在开发者当中火了起来,大小公司都想做「Her」这样面对个人消费者的通用型智能助理(To C 类产品的终极目标)。一波热钱投给最有希望的种子队伍(拥有 Fancy 背景)之后,全灭。目前为止,在 2C 这方面的所有商用产品,无论是巨头还是创业公司,全部达不到用户预期。

在人们的直觉里,会认为「智能助理」,处理的是一些日常任务,不涉及专业的需求,应该比「智能专家」好做。这是延续「人」的思路。推荐餐厅、安排行程是人人都会做的事情;却只有少数受过专业训练的人能够处理金融、医疗问诊这类专业问题。

而对于现在的 AI,情况正好相反。现在能造出在围棋上打败柯洁的 AI,但是却造不出来能给柯洁管理日常生活的 AI。

随着 to C 助理赛道的崩盘,To B or not to B 已经不再是问题,因为已经没得选了,只能 To B。这不是商业模式上的选择,而是技术的限制。目前 To B,特别是限定领域的产品,相对 To C 类产品更可行:一个原因是领域比较封闭,用户从思想到语言,不容易发挥跑题;另一方面则是数据充分。

只是 To B 的公司都很容易被当成是做「外包」的。因为客户是一个个谈下来的,项目是一个个交付的,这意味着增长慢,靠人堆,没有复利带来的指数级增长。大家纷纷表示不开心。

这个「帮人造机器人」的业务有点像「在网页时代帮人建站」。转成 To B 的团队经常受到资本的质疑:「你这个属于做项目,怎么规模化呢?」

要知道,国内的很多投资机构和里面的投资经理入行的时间,是在国内的移动互联起来的那一波。「Scalability」或者「高速增长」是体系里最重要的指标,没有之一。而做项目这件事,就是 Case by case,要增长就要堆人,也就很难出现指数级增长。这就有点尴尬了。

「你放心,我有 SaaS!哦不,是 AIaaS。我可以打造一个平台,上面有一系列工具,可以让客户们自己组装机器人。」

然而,这些想做技能平台的创业公司,也没有一个成功的。短期也不可能成功。

人工智障 2 : 你看到的AI与智能无关

▲ Yann LeCun 对 AIaas 的看法

主要的逻辑是这样的:你给客户提供工具,但他需要的是雕像——这中间还差了一个雕塑家。佐证就是那些各家试图开放「对话框架」给更小的开发者,甚至是服务提供者,帮助他们「3 分钟开发出自己的 AI 机器人」,具体就不点名了。自己都开发不出来一个让人满意的产品,还想抽象一个范式出来让别人沿用你的(不 work 的)框架?

不过,我认为 MLaaS 在长期的成功是有可能的,但还需要行业发展更为成熟的时候,现在为时尚早。具体分析我们在后面 Part 5 会谈到。

 音箱的成功和智能的失败」

对话这个领域,另一个比较火的赛道是智能音箱。

各大主要科技公司都出了自己的智能音箱,腾讯叮当、阿里的天猫精灵、小米音箱、国外的 Alexa、Google 的音箱等等。作为一个硬件品类,这其实是个还不错的生意,基本属于制造业。

不仅出货不差,还被寄予期望,能够成为一个生态的生意——核心逻辑看上去也是充满想象力的:

  • 超级终端:在后移动时代,每家都想像 iphone 一样抢用户的入口。只要用户习惯使用语音来获得咨询或者服务,甚至可以像 Xbox/ps 一样,硬件赔钱卖,软件来挣钱;
  • 用语音做 OS:开发者打造各类语音的技能,然后通过大量「离不开的技能」反哺这个 OS 的市场占有;
  • 提供开发者平台:像 Xcode 一样,给开发者提供应用开发的工具和分发平台、提供使用服务的流量。

可是,这些技能使用的实际情况是这样的:

人工智障 2 : 你看到的AI与智能无关

▲ Source: Statista

  • 万众期待的 killer app 并没有出现;
  • 基本没有商业服务型的应用;
  • 技能开发者都没赚到钱,也不知道怎么赚钱;
  • 大部分高频使用的技能都没有商业价值——用户用的最多的就是「查天气」
  • 没有差异性:智能的差异嘛基本都没有的事儿。

「 皇帝的新人工智能 」

回过头来,我们再来看刚刚那位沙特阿拉伯的公民,Sophia。既然刚刚提到的那么多公司投入了那么多钱和科学家,都搞成这样,凭什么这个 Sophia 能一鸣惊人?

因为 Sophia 的「智能」是个骗局。

可以直接引用 Yann LeCun 对此的评价,「这完全是鬼扯」。

人工智障 2 : 你看到的AI与智能无关

简单来说,Sophia 是一个带喇叭的木偶——在各种大会上的发言和采访的内容都是人工撰写,然后用人人都有的语音合成做输出。却被宣传成为是其「人工智能」的自主意识言论。

这还能拿「公民身份」,可能是人类公民被黑的最惨的一次。这感觉,好像是我家的橘猫被一所 985 大学授予了土木工程学士学位。

其实对话系统里,用人工来撰写内容,或者使用模版回复,这本来就是现在技术的现状(在后面我们会展开)。

但刻意把「非智能」的产物说成是「智能」的表现,这就不对了。

考虑到大部分吃瓜群众是通过媒体渠道来了解当前技术发展的,跟着炒作的媒体(比如被点名的 Tech Insider)都是这场骗局的共犯。这些不知道是无知还是无良的文科生,真的没有做好新闻工作者份内的调查工作。

最近这股妖风也吹到了国内的韭菜园里。

人工智障 2 : 你看到的AI与智能无关

Sophia 出现在了王力宏的一首讲 AI 的 MV 里;然后又 2018 年 11 月跑去给大企业站台。

真的,行业内认真做事儿的小伙伴,都应该站出来,让大家更清晰的知道现在 AI——或者说机器学习的边界在哪儿。不然甲方爸爸们信以为真了,突然指着 sophia 跟你说,「别人都能这么自然,你也给我整一个。」

你怕不得装个真人进去?

对了,说到这儿,确实现在也有:用人——来伪装成人工智能——来模拟人,为用户服务。

人工智障 2 : 你看到的AI与智能无关

▲ Source: The Guardian

国内的案例典型的就是银行用的大堂机器人,其实是真人在远程语音(所谓 Tele presence)。美国有 X.ai,做基于 Email 的日程管理的。只是这个 AI 到了下午 5 点就要下班。

当然,假如我是这些骗局背后开发者,被质疑的时候,我还可以强行拉回人工智能上:「这么做是为了积累真正的对话数据,以后用来做真的 AI 对话系统识别的训练。」

这么说对外行可能是毫无破绽的。但是真正行业内干正经事的人,都应该像傅盛那样站出来,指明这些做法是骗人:「全世界没有一家能做出来…… 做不到,一定做不到」

人家沙特是把 AI 当成人,这些套路是把人当成 AI。然后大众就开始分不清楚究竟什么是 AI 了。

「 人工智能究竟(tmd)指的是什么?」

另一方面,既然 AI 现在的那么蠢,为什么马一龙 (Elon Musk) 却说 「AI 很有可能毁灭人类」;霍金甚至直接说「AI 可能是人类文明里最糟糕的事件」

人工智障 2 : 你看到的AI与智能无关

而在另一边,Facebook 和 Google 的首席科学家却在说,现在的 AI 都是渣渣,根本不需要担心,甚至应该推翻重做。

人工智障 2 : 你看到的AI与智能无关

大家该相信谁的?一边是要去火星的男人,和说不定已经去了火星的男人;另一边是当前两家科技巨头的领军人物。

其实他们说的都对,因为这里说到的「人工智能」是两码事。

马一龙和霍金担心的人工智能,是由人造出来的真正的智能,即通用人工智能(AGI, Artificial General Intelligence)甚至是超级智能(Super Intelligence)。

而 Yann LeCun 和 Hinton 指的人工智能则是指的当前用来实现「人工智能效果」的技术(基于统计的机器学习)。这两位的观点是「用这种方式来实现人工智能是行不通的」。

两者本质是完全不同的,一个指的是结果,一个指的是(现在的)过程。

那么当我们在讨论人工智能的时候,究竟在说什么?

人工智障 2 : 你看到的AI与智能无关

▲ John McCathy

John McCathy 在 1956 年和 Marvin Minsky,Nathaniel Rochester 以及 Claude Shannon 在达特貌似研讨会上打造了 AI 这个词,但是到目前为止,学界工业界并没有一个统一的理解。

最根本的问题是目前人类对「智能」的定义还不够清楚。何况人类本身是否是智能的最佳体现,还不一定呢。想想每天打交道的一些人:)

一方面,在大众眼中,人工智能是「人造出来的,像人的智能」,比如 Siri。同时,一个 AI 的水平高低,则取决于它有多像人。所以当 Sophia 出现在公众眼中的时候,普通人会很容易被蒙蔽(甚至能通过图灵测试)。

人工智障 2 : 你看到的AI与智能无关

Oracle 对 AI 的定义也是「只要是能让计算机可以模拟人类行为的技术,都算!」

而另一方面,从字面上来看「Artificial Intelligence」,只要是人造的智能产品,理论上都算作人工智能。

人工智障 2 : 你看到的AI与智能无关

也就是说,一个手持计算器,尽管不像人,也应算是人工智能产品。但我相信大多数人都不会把计算器当成是他们所理解的人工智能。

这些在认识上不同的解读,导致当前大家对 AI 应用的期望和评估都有很多差异。

再加上还有「深度学习、神经网络、机器学习」这些概念纷纷跟着人工智能一起出现。但是各自意味着什么,之间是什么关系,普通大众都不甚了解。

「没关系,韭菜不用懂。」但是想要割韭菜的人,最好能搞清楚吧。连有些投资人自己也分不清,你说怎么做判断,如何投项目?当然是投胸大的。

以上,就是到 2018 年末,在对话领域的人工智能的现状:智能助理依然智障;大部分 To B 的给人造机器人的都无法规模化;对话方面没有像 AlphaZero 在围棋领域那样的让人震惊的产品;没有商业上大规模崛起的迹象;有的是一团浑水,和浑水摸鱼的人。

为什么会这样?为什么人工智能在图像识别,人脸识别,下围棋这些方面都那么快的进展,而在对话智能这个领域却是如此混乱?

既然你都看到这里了,我相信你是一个愿意探究本质的好同志。那么我们来了解,对话的本质是什么;以及现在的对话系统的本质又是什么。

Part 2 当前对话系统的本质:填表

「 AI thinks, man laughs 」

人工智障 2 : 你看到的AI与智能无关

▲ Source:The Globe and Mail

有一群小鸡出生在一个农场,无忧无虑安心地生活。

鸡群中出现了一位科学家,它注意到了一个现象:每天早上,食槽里会自动出现粮食。

作为一名优秀的归纳法信徒 (Inductivist),这只科学鸡并不急于给出结论。它开始全面观察并做好记录,试图发现这个现象是否在不同的条件下都成立。

「星期一是这样,星期二是这样;树叶变绿时是这样,树叶变黄也是这样;天气冷是这样,天气热也是这样;下雨是这样,出太阳也是这样!」

每天的观察,让它越来越兴奋,在心中,它离真相越来越接近。直到有一天,这只科学鸡再也没有观察到新的环境变化,而到了当天早上,鸡舍的门一打开,它跑到食槽那里一看,依然有吃的!

科学鸡,对他的小伙伴,志在必得地宣布:「我预测,每天早上,槽里会自动出现食物。明天早上也会有!以后都会有!我们不用担心饿死了!」

经过好几天,小伙伴们都验证了这个预言,科学鸡骄傲的并兴奋的把它归纳成「早起的小鸡有食吃定理」。

正好,农场的农夫路过,看到一只兴奋的鸡不停的咯咯叫,他笑了:「这只鸡很可爱哦,不如把它做成叫花鸡好了」。

科学鸡,卒于午饭时间。

在这个例子里,这只罗素鸡(Bertrand Russell’s chicken)只对现象进行统计和归纳,不对原因进行推理。

而主流的基于统计的机器学习特别是深度学习,也是通过大量的案例,靠对文本的特征进行归类,来实现对识别语义的效果。这个做法,就是罗素鸡。

目前,这是对话式人工智能的主流技术基础。其主要应用方向,就是对话系统,或称为 Agent。之前提到的智能助理 Siri,Cortana,Google Assistant 以及行业里面的智能客服这些都算是对话智能的应用。

「 对话智能的黑箱 」

这些产品的交互方式,是人类的自然语言,而不是图像化界面。

图形化界面(GUI)的产品,比如网页或者 app 的产品设计,是所见即所得、界面即功能。

对话智能的交互(CUI, Conversational UI)是个黑箱:终端用户能感知到自己说出的话(输入)和机器人的回答(输出)——但是这个处理的过程是感觉不到的。就好像跟人说话,你并不知道他是怎么想的。

每一个对话系统的黑箱里,都是开发者自由发挥的天地。

虽说每家的黑箱里面都不同,但是最底层的思路,都万变不离其宗,核心就是两点:听人话(识别)+ 讲人话(对话管理)

如果你是从业人员,那么请回答一个问题:你们家的对话管理是不是填槽?若是,你可以跳过这一节(主要科普填槽是怎么回事),请直接到本章的第五节「当前对话系统的局限」。

「 AI如何听懂人话 ?」

对话系统这个事情在 2015 年开始突然火起来了,主要是因为一个技术的普及:机器学习特别是深度学习带来的语音识别和 NLU(自然语言理解)——主要解决的是识别人讲的话。

这个技术的普及让很多团队都掌握了一组关键技能:意图识别和实体提取。这意味着什么?我们来看一个例子。

在生活中,如果想要订机票,人们会有很多种自然的表达:

「订机票」;

「有去上海的航班么?」;

「看看航班,下周二出发去纽约的」;

「要出差,帮我查下机票」;

等等等等

可以说「自然的表达」有无穷多的组合(自然语言)都是在代表「订机票」这个意图的。而听到这些表达的人,可以准确理解这些表达指的是「订机票」这件事。

而要理解这么多种不同的表达,对机器是个挑战。在过去,机器只能处理「结构化的数据」(比如关键词),也就是说如果要听懂人在讲什么,必须要用户输入精确的指令。

所以,无论你说「我要出差」还是「帮我看看去北京的航班」,只要这些字里面没有包含提前设定好的关键词「订机票」,系统都无法处理。而且,只要出现了关键词,比如「我要退订机票」里也有这三个字,也会被处理成用户想要订机票。

自然语言理解这个技能出现后,可以让机器从各种自然语言的表达中,区分出来,哪些话归属于这个意图;而那些表达不是归于这一类的,而不再依赖那么死板的关键词。比如经过训练后,机器能够识别「帮我推荐一家附近的餐厅」,就不属于「订机票」这个意图的表达。

并且,通过训练,机器还能够在句子当中自动提取出来「上海」,这两个字指的是目的地这个概念(即实体);「下周二」指的是出发时间。

这样一来,看上去「机器就能听懂人话啦!」。

这个技术为啥会普及?主要是因为机器学习领域的学术氛围,导致重要的论文基本都是公开的。不同团队要做的是考虑具体工程实施的成本。

最后的效果,就是在识别自然语言这个领域里,每家的基础工具都差不多。在意图识别和实体提取的准确率,都是百分点的差异。既然这个工具本身不是核心竞争力,甚至你可以用别家的,大把可以选,但是关键是你能用它来干什么?

「Due to the academic culture that ML comes from, pretty much all of the primary science is published as soon as it’s created – almost everything new is a paper that you can read and build with. But what do you build?」

——Benedict Evans(A16Z 合伙人)

在这方面,最显而易见的价值,就是解放双手。语音控制类的产品,只需要听懂用户的自然语言,就去执行这个操作:在家里要开灯,可以直接说「开灯」,而不用去按开关;在车上,说要「开天窗」,天窗就打开了,而不用去找对应的按钮在哪里。

这类系统的重点在于,清楚听清哪个用户在讲是什么。所以麦克风阵列、近场远场的抗噪、声纹识别讲话的人的身份、ASR(语音转文字),等等硬件软件的技术就相应出现,向着前面这个目标不断优化。

「讲人话」在这类应用当中,并不那么重要。通常任务的执行,以结果进行反馈,比如灯应声就亮了。而语言上的反馈,只是一个辅助作用,可有可无。

但是任务类的对话智能,往往不止是语音控制这样一轮交互。如果一个用户说,「看看明天的机票」——这表达正常,但无法直接去执行。因为缺少执行的必要信息:1)从哪里出发?和 2)去哪里?

如果我们希望 AI Agent 来执行这个任务,一定要获得这两个信息。对于人来完成这个业务的话,要获得信息,就得靠问这个用户问题,来获得信息。很多时候,这样的问题,还不止一个,也就意味着,要发起多轮对话。

对于 AI 而言,也是一样的。

要知道「去哪里」= Agent 问用户「你要去哪里?」

要知道「从哪里出发」= Agent 问用户「你要从哪里出发呢?」

这就涉及到了对话语言的生成。

「 AI 如何讲人话?」

决定「该说什么话」,才是对话系统的核心——无论是硅基的还是碳基的智能。但是深度学习在这个版块,并没有起到什么作用。

在当前,处理「该说什么」这个问题,主流的做法是由所谓「对话管理」系统决定的。

尽管每一个对话系统背后的「对话管理」机制都不同,每家都有各种理解、各种设计,但是万变不离其宗——目前所有任务类对话系统,无论是前段时间的 Google duplex,还是智能客服,或者智能助理,最核心的对话管理方法,有且仅有一个:「填槽」,即 Slot filling。

如果你并不懂技术,但是又要迅速知道一家做对话 AI 的水平如何,到底有没有黑科技 (比如刚刚开始看 AI 领域的做投资的朋友 ),你只需要问他一个问题:「是不是填槽?」

  • 如果他们(诚实地)回答「是」,那你就可以放下心来,黑科技尚未出现。接下来,能讨论的范围,无非都是产品设计、工程实现、如何解决体验和规模化的困境,这类的问题。基本上该智障的,还是会智障。
  • 要是他们回答「不是填槽」,而且产品的效果还很好,那么就有意思了,值得研究,或者请速速联系我:)

那么这个「填槽」究竟是个什么鬼?嗯,不搞开发的大家可以简单的把它理解为「填表」:好比你要去银行办个业务,先要填一张表。

如果这张表上的空没有填完,柜台小姐姐就不给你办。她会红笔给你圈出来:「必须要填的空是这些,别的你都可以不管。」你全部填好了,再递给小姐姐,她就去给你办理业务了。

还记得刚刚那个机票的例子么?用户说「看看明天的机票」,要想执行「查机票」,就得做以下的步奏,还要按顺序来:

人工智障 2 : 你看到的AI与智能无关

1. ASR:把用户的语音,转化成文字。

2. NLU 语义识别:识别上面的文字,属于(之前设定好的)哪一个意图,在这里就是「订机票」;然后,提取文字里面的实体,「明天」作为订票日期,被提取出来啦。

3. 填表:这个意图是订机票,那么就选「订机票」这张表来填;这表里有三个空,时间那个空里,就放进「明天」。

(这个时候,表里的 3 个必填项,还差两个:「出发地」和「到达地」)

4. 开始跑之前编好的程序:如果差「出发地」,就回「从哪里走啊?」;如果差「目的地」,就回「你要去哪里?」(NLG 上打引号,是因为并不是真正意义上的自然语言生成,而是套用的对话模版)

5. TTS:把回复文本,合成为语音,播放出去

在上面这个过程当中,1 和 2 步奏都是用深度学习来做识别。如果这个环节出现问题,后面就会连续出错。

循环 1-5 这个过程,只要表里还有空要填,就不断问用户,直到所有的必填项都被填完。于是,表就可以提交小姐姐(后端处理)了。

后端看了要查的条件,返回满足这些条件的机票情况。Agent 再把查询结果用之前设计好的回复模板发回给用户。

顺便说一下,我们经常听到有些人说「我们的多轮对话可以支持 xx 轮,最多的时候有用户能说 xx 轮」。现在大家知道,在任务类对话系统里,「轮数的产生」是由填表的次数决定的,那么这种用「轮数多少」来衡量产品水平的方法,在这个任务类对话里里完全无意义。

一定要有意义,也应该是:在达到目的、且不影响体验的前提下,轮数越少越好。

在当前,只要做任务类的多轮对话,基本跑不掉填表。

5 月的时候,Google I/O 发布了 Duplex 的录音 Demo,场景是 Google Assistant 代替用户打电话去订餐厅,和店员沟通,帮助用户预定位子。值得注意,这并不是 Live demo。

Google’s Assistant. CREDIT:GOOGLE

那 Google 的智能助理(后称 IPA)又怎么知道用户的具体需求呢?跑不掉的是,用户还得给 Google Assistant 填一张表,用对话来交代自己的具体需求,比如下面这样:

人工智障 2 : 你看到的AI与智能无关

图中左边是一个使用 Google Assistant 订餐厅的真实案例,来自 The Verge

「 当前对话系统的局限 」

我刚刚花了两千来个字来说明对话系统的通用思路。接下来,要指出这个做法的问题

还记得之前提到的「不要日本菜」测试么?我们把这个测试套用在「订机票」这个场景上,试试看:「看看明天去北京的航班,东航以外的都可以」,还是按步奏来:

1. ASR 语音转文字,没啥问题;

2. 语义识别,貌似有点问题

– 意图:是订机票,没错;

– 实体提取:跟着之前的训练来;

– 时间:明天

– 目的地:北京

– 出发地:这个用户没说,一会得问问他…

等等,他说的这个「东航以外的都可以」,指的是啥?之前没有训练过与航空公司相关的表达啊。

没关系,咱们可以把这个表达的训练加上去:东航 = 航司。多找些表达,只要用户说了各个航空公司的名字的,都训练成航司这个实体好啦。

另外,咱们还可以在填表的框里,添加一个航司选择,就像这样(黄色部分):

人工智障 2 : 你看到的AI与智能无关

▲ (嗯,好多做 TO B 的团队,都是掉在这个「在后面可以加上去」的坑里。)

但是,这么理所当然的训练之后,实体提取出来的航司却是「东航」——而用户说的是「东航以外的」,这又指的哪个(些)航司呢?

「要不,咱们做点 Trick 把 ‘以外’ 这样的逻辑单独拿出来手工处理掉?」——如果这个问题可以这么容易处理掉,你觉得 Siri 等一干货色还会是现在这个样子?难度不在于「以外」提取不出来,而是在处理「这个以外,是指哪个实体以外?

当前基于深度学习的 NLU 在「实体提取」这个技术上,就只能提取「实体」。

而人能够理解,在这个情况下,用户是指的「排除掉东航以外的其他选择」,这是因为人除了做「实体提取」以外,还根据所处语境,做了一个对逻辑的识别:「xx 以外」。然后,自动执行了这个逻辑的处理,即推理,去进一步理解,对方真正指的是什么(即指代)。

而这个逻辑推理的过程,并不存在于之前设计好的步奏(从 1 到 5)里。

更麻烦的是,逻辑的出现,不仅仅影响「实体」,还影响「意图」:

人工智障 2 : 你看到的AI与智能无关

「hi Siri,别推荐餐厅」——它还是会给你推荐餐厅;

「hi Siri,除了推荐餐厅,你还能推荐什么?」——它还是会给你推荐餐厅。

中文英文都是一样的;Google assistant 也是一样的。

想要处理这个问题,不仅仅是要识别出「逻辑」;还要正确判断出,这个逻辑是套用在哪个实体,或者是不是直接套用在某一个意图上。这个判断如何做?用什么做?都不在当前 SLU 的范围内。

对这些问题的处理,如果是集中在一些比较封闭的场景下,还可以解决个七七八八。但是,如果想要从根本上、泛化的处理,希望一次处理就解决所有场景的问题,到目前都无解。在这方面,Siri 是这样,Google Assistant 也是这样,任意一家,都是这样。

为啥说无解?我们来看看测试。

「 用图灵测试来测对话系统没用 」

一说到对人工智能进行测试,大部分人的第一反应是图灵测试。

5 月 Google I/O 大会的那段时间,我们团队正在服务一家全球 100 强企业,为他们规划基于 AI Agent 的服务。

在发布会的第二天,我收到这家客户的 Tech Office 的好心提醒:Google 这个像真人一样的黑科技,会不会颠覆现有的技术方案?我的回答是并不会。

话说 Google Duplex 在发布会上的 demo 确实让人印象深刻,而且大部分看了 Demo 的人,都分辨不出打电话去做预定的是不是真人。

「这个效果在某种意义上,算是通过了图灵测试。」

人工智障 2 : 你看到的AI与智能无关

▲ Google 母公司的 Chairman 说 google duplex 可以算过了图灵测试了

由于图灵测试的本质是「欺骗」(A game of deception,详见 Toby Walsh 的论文 ),所以很多人批评它,这只能用来测试人有多好骗,而不是用来测智能的。在这一点上,我们在后文 Part 4 对话的本质中会有更多解释。

人们被这个 Demo 骗到的主要原因,是因为合成的语音非常像真人。

这确实是 Duplex 最牛的地方:语音合成。不得不承认,包括语气、音调等等模拟人声的效果,确实是让人叹为观止。只是,单就在语音合成方面,就算是做到极致,在本质上就是一只鹦鹉——最多可以骗骗 Alexa(所以你看活体识别有多么重要)。

只是,Google 演示的这个对话系统,一样处理不了逻辑推理、指代这类的问题。这意味着,就它算能过图灵测试,也过不了 Winograd Schema Challenge 测试。

相比图灵测试,这个测试是直击深度学习的要害。当人类对句子进行语法分析时,会用真实世界的知识来理解指代的对象。这个测试的目标,就是测试目前深度学习欠缺的常识推理能力。

如果我们用 Winograd Schema Challenge 的方法,来测试 AI 在「餐厅推荐」这个场景里的水平,题目会是类似这样的:

A.「四川火锅比日料更好,因为它很辣」

B.「四川火锅比日料更好,因为它不辣」

AI 需要能准确指出:在 A 句里,「它」指的是四川火锅;而在 B 句里,「它」指的则是日料。

还记得在本文 Part 1 里提到的那个「不要日本菜测试」么?我真的不是在强调「回字有四种写法」——这个测试的本质,是测试对话系统能不能使用简单逻辑来做推理(指代的是什么)。

而在 Winograd Schema Challenge 中,则是用世界知识(包括常识)来做推理:

如果系统不知道相应的常识(四川火锅是辣的;日料是不辣的),就没有推理的基础。更不用说推理还需要被准确地执行。

有人说,我们可以通过上下文处理来解决这个问题。不好意思,上面这个常识根本就没有出现在整个对话当中。不在「上文」里面,又如何处理?

对于这个部分的详细解释,请看下一章(Part 3 对话的本质)。

尽管指代问题和逻辑问题,看上去,在应用方面已经足够致命了;但这些也只是深度学习表现出来的诸多局限性中的一部分。

哪怕更进一步,再过一段时间,有一家 AI 在 Winograd Schema Challenge 拿了 100% 的正确率,我们也不能期望它在自然语言处理中的表现如同人一样,因为还有更严重和更本质的问题在后面等着。

「 对话系统更大的挑战不是NLU 」

我们来看问题表现在什么地方。

现在我们知道了,当人跟现在的 AI 对话的时候,AI 能识别你说的话,是靠深度学习对你说出的自然语言进行分类,归于设定好的意图,并找出来文本中有哪些实体。

而 AI 什么时候回答你,什么时候反问你,基本都取决于背后的「对话管理」系统里面的各种表上还有啥必填项没有填完。而问你的话,则是由产品经理和代码小哥一起手动完成的。

那么,这张表是谁做的?

或者说,是谁决定,对于「订机票」这件事,要考虑哪些方面?要获得哪些信息?需要问哪些问题?机器又是怎么知道的?

是人。是产品经理,准确点说。

就像刚才的「订机票」的案例,当用户问到「航司」的时候,之前的表里并没有设计这个概念,AI 就无法处理了。

要让 AI 能处理这样的新条件,得在「订机票」这张表上,新增加「航空公司」一栏(黄色部分)。而这个过程,都得人为手动完成:产品经理设计好后,工程师编程完成这张表的编程。

所以 AI 并不是真的,通过案例学习就自动理解了「订机票」这件事情,包含了哪些因素。只要这个表还是由人来设计和编程实现的,在产品层面,一旦用户稍微谈及到表以外的内容,智障的情况就自然出现了。

因此,当 Google duplex 出现的时候,我并不那么关心 Google duplex 发音和停顿有多像一个人——实际上,当我观察任意一个对话系统的时候,我都只关心 1 个问题:

「是谁设计的那张表:人,还是 AI?」

只是,深度学习在对话系统里面,能做的只是识别用户讲出的那句话那部分——严格依照被人为训练的那样(监督学习)。至于其他方面,比如该讲什么话?该在什么时候讲话?它都无能为力。

但是真正人们在对话时的过程,却不是上面提到的对话系统这么设计的,而且相差十万八千里。人的对话,又是怎么开展的?这个差异究竟在哪里?为什么差异那么大?所谓深度学习很难搞定的地方,是人怎么搞定的呢?毕竟在这个星球上,我们自身就是 70 亿个完美的自然语言处理系统呢。

我们需要了解要解决的问题,才可能开展解决问题的工作。在对话领域,我们需要知道人们对话的本质是什么。下一章比较烧脑,我们将讨论「思维」这件事情,是如何主导人们的对话的。

Part 3 人类对话的本质:思维

 「 对话的最终目的是为了同步思维 」

你是一位 30 出头的职场人士,每天上午 9 点半,都要过办公楼的旋转门,进大堂的,然后刷工牌进电梯,去到 28 楼,你的办公室。今天是 1 月 6 日,平淡无奇的一天。你刚进电梯,电梯里只有你一个人,正要关门的时候,有一个人匆忙挤进来。

进来的快递小哥,他进电梯时看到只有你们两人,就说了一声「你好」,然后又低头找楼层按钮了。

你很自然的回复:「你好」,然后目光转向一边。

两边都没什么话好讲——实际上,是对话双方认为彼此没有什么情况需要同步的。

人们用语言来对话,其最终的目的是为了让双方对当前场景模型(Situation model)保持同步。(大家先了解到这个概念就够了。更感兴趣的,详情请见 Toward a neural basis of interactive alignment in conversation)。

人工智障 2 : 你看到的AI与智能无关

▲ The interactive-alignment model (based on Pickering and Garrod, 2004)

上图中,A 和 B 两人之间发展出来所有对话,都是为了让红框中的两个「Situation model」保持同步。Situation model 在这里可以简单理解为对事件的各方面的理解,包括 Context。

不少做对话系统的朋友会认为 Context 是仅指「对话中的上下文」,我想要指出的是,除此以外,Context 还应该包含了对话发生时人们所处的场景。这个场景模型涵盖了对话那一刻,除了明文以外的所有已被感知的信息。 比如对话发生时的天气情况,只要被人感知到了,也会被放入 Context 中,并影响对话内容的发展。

A:「你对这个事情怎么看?」

B:「这天看着要下雨了,咱们进去说吧」——尽管本来对话内容并没有涉及到天气。

对同一件事情,不同的人在脑海里构建的场景模型是不一样的。 (想要了解更多,可以看 Situation models in language comprehension and memory. Zwaan, R. A., & Radvansky, G. A. (1998). )

所以,如果匆忙进电梯来的是你的项目老板,而且假设他和你(多半都是他啦)都很关注最近的新项目进展,那么你们要开展的对话就很多了。

在电梯里,你跟他打招呼:「张总,早!」, 他会回你「早啊,对了昨天那个…」

不待他问完,优秀如你就能猜到「张总」大概后面要聊的内容是关于新项目的,这是因为你认为张总对这个「新项目」的理解和你不同,有同步的必要。甚至,你可以通过昨天他不在办公室,大概漏掉了这个项目的哪些部分,来推理你这个时候应该回复他关于这个项目的具体什么方面的问题。

「昨天你不在,别担心,客户那边都处理好了。打款的事情也沟通好了,30 天之内搞定。」——你看,不待张总问完,你都能很棒的回答上。这多亏了你对他的模型的判断是正确的。

一旦你对对方的情景模型判断失误,那么可能完全「没打中点上」。

「我知道,昨天晚上我回了趟公司,小李跟我说过了。我是要说昨天晚上我回来办公室的时候,你怎么没有在加班呀?小王,你这样下去可不行啊…」

所以,人们在进行对话的过程中,并不是仅靠对方上一句话说了什么(对话中明文所包含的信息)就来决定回复什么。而这和当前的对话系统的回复机制非常不同。

「 对话是思想从高维度向低维的投影 」

我们假设,在另一个平行宇宙里,还是你到了办公楼。

今天还是 1 月 6 日,但 2 年前的今天,你与交往了 5 年的女友分手了,之后一直对她念念不忘,也没有交往新人。

你和往日一样,进电梯的,刚要关门的时候,匆忙进来的一个人,要关的门又打开了。就是你 2 年前分手的那位前女友。她进门时看到只有你们两,她抬头看了一下你,然后又低头找楼层电梯了,这时她说:「你好」。

请问你这时脑袋里是不是有很多信息汹涌而过?这时该回答什么?是不是类似「一时不知道该如何开口」的感觉?

这个感觉来自(你认为)你和她之间的情景模型有太多的不同(分手 2 年了),甚至你都无法判断缺少哪些信息。有太多的信息想要同步了,却被贫瘠的语言困住了。

在信息丰富的程度上,语言是贫瘠的,而思想则要丰富很多 「Language is sketchy, thought is rich」(New perspectives on language and thought,Lila Gleitman, The Oxford Handbook of Thinking and Reasoning;更多相关讨论请看, Fisher & Gleitman, 2002; Papafragou, 2007)

有人做了一个比喻:语言和思维的丰富程度相比,是冰山的一角。我认为远远不止如此:对话是思想在低维的投影

如果是冰山,你还可以从水面上露出来的部分反推水下大概还有多大。属于维度相同,但是量不同。但是语言的问题在,只用听到文字信息,来反推讲话的人的思想,失真的情况会非常严重。

人工智障 2 : 你看到的AI与智能无关

为了方便理解这个维度差异,在这儿用 3D 和 2D 来举例:思维是高维度(立体 3D 的形状),对话是低维度(2D 的平面上的阴影)。如果咱们要从平面上的阴影的形状,来反推,上面悬着的是什么物体,就很困难了。两个阴影的形状一模一样,但是上面的 3D 物体,可能完全不同。

对于语言而言,阴影就像是两个「你好」在字面上是一模一样的,但是思想里的内容却完全不同。在见面的那一瞬间,这个差异是非常大的:

你在想(圆柱):一年多不见了,她还好么?

前女友在想(球):这个人好眼熟,好像认识…

「 挑战:用低维表达高维 」

要用语言来描述思维有多困难?这就好比,当你试图给另一位不在现场的朋友,解释一件刚刚发生过的事情的时候,你可以做到哪种程度的还原呢?

试试用语言来描述你今天的早晨是怎么过的。

当你用文字完整描述后,我一定能找到一个事物或者某个具体的细节,它在你文字描述以外,但是却确实存在在你今天早晨那个时空里。

人工智障 2 : 你看到的AI与智能无关

▲ Source:The Challenger

比如,你可能会跟朋友提到,早饭吃了一碗面;但你一定不会具体去描述面里一共有哪些调料。传递信息时,缺少了这些细节 (信息),会让听众听到那碗面时,在脑海里呈现的一定不是你早上吃的「那碗面」的样子。

这就好比让你用平面上(2D)阴影的样子,来反推 3D 的形状。你能做的,只是尽可能的增加描述的视角,尽可能给听众提供不同的 2D 的素材,来尽量还原 3D 的效果。

为了解释脑中「语言」和「思想」之间的关系(与读者的情景模型进行同步),我画了上面那张对比图,来帮助传递信息。如果要直接用文字来精确描述,还要尽量保全信息不丢失,那么我不得不用多得多的文字来描述细节。(比如上面的描述中,尚未提及阴影的面积的具体大小、颜色等等细节)。

这还只是对客观事物的描述。当人在试图描述更情绪化的主观感受时,则更难用具体的文字来表达。

人工智障 2 : 你看到的AI与智能无关

比如,当你看到 Angelina Jordan 这样的小女生,却能唱出 I put a spell on you 这样的歌的时候,请尝试用语言精确描述你的主观感受。是不是很难?能讲出来话,都是类似「鹅妹子嘤」这类的?这些文字能代表你脑中的感受的多少部分?1%?

希望此时,你能更理解所谓「语言是贫瘠的,而思维则要丰富很多」。

那么,既然语言在传递信息时丢失了那么多信息,人们为什么理解起来,好像没有遇到太大的问题?

「 为什么人们的对话是轻松的?」

假设有一种方式,可以把此刻你脑中的感受,以完全不失真的效果传递给另一个人。这种信息的传递和上面用文字进行描述相比,丰富程度会有多大差异?

可惜,我们没有这种工具。我们最主要的交流工具,就是语言,靠着对话,来试图让对方了解自己的处境。

那么,既然语言这么不精准,又充满逻辑上的漏洞,信息量又不够,那么人怎么能理解,还以此为基础,建立起来了整个文明?

比如,在一个餐厅里,当服务员说「火腿三明治要买单了」,我们都能知道这和「20 号桌要买单了」指代的是同样的事情 (Nuberg,1978)。是什么让字面上那么大差异的表达,也能有效传递信息?

人能通过对话,有效理解语言,靠的是解读能力——更具体的点,靠的是对话双方的共识和基于共识的推理能力。

当人接收到低维的语言之后,会结合引用常识、自身的世界模型(后详),来重新构建一个思维中的模型,对应这个语言所代表的含义。这并不是什么新观点,大家熟悉的开复老师,在 1991 年在苹果搞语音识别的时候,就在采访里科普,「人类利用常识来帮助理解语音」。

当对话的双方认为对一件事情的理解是一样的,或者非常接近的时候,他们就不用再讲。需要沟通的,是那些(彼此认为)不一样的部分。

当你听到「苹果」两个字的时候,你过去建立过的苹果这个模型的各个维度,就被引用出来,包括可能是绿或红色的、味道的甜、大概拳头大小等等。如果你听到对方说「蓝色的苹果」时,这和你过去建立的关于苹果的模型不同(颜色)。思维就会产生一个提醒,促使你想要去同步或者更新这个模型,「苹果为什么是蓝色的?」

还记得,在 Part 2 里我们提到的那个测试指代关系的 Winograd Schema Challenge 么?这个测试的名字是根据 Terry Winograd 的一个例子而来的。

「议员们拒绝给抗议者颁发许可证,因为他们 [害怕/提倡 ] 暴力。」

当 [害怕 ] 出现在句子当中的时候,「他们」指的应该是议员们;当 [提倡 ] 出现在句子当中的时候,「他们」则指的是「抗议者」。

1. 人们能够根据具体情况,作出判断,是因为根据常识做出了推理,「议员害怕暴力;抗议者提倡暴力。」

2. 说这句话的人,认为这个常识对于听众应该是共识,就直接把它省略掉了。

同理,之前(Part 2)我们举例时提到的那个常识(「四川火锅是辣的;日料不是辣的」),也在表达中被省略掉了。常识(往往也是大多数人的共识)的总量是不计其数,而且总体上还会随着人类社会发展的演进而不断新增。

例子 1,如果你的世界模型里已经包含了「华农兄弟」(你看过并了解他们的故事),你会发现我在 Part 2 最开始的例子,藏了一个梗(做成叫花鸡)。但因为「华农兄弟」并不是大多数人都知道的常识,而是我与特定人群的共识,所以你看到这句话时,获得的信息就比其人多。而不了解这个梗的人,看到那里时就不会接收到这个额外的信息,反而会觉得这个表达好像有点点奇怪。

例子 2,创投圈的朋友应该都有听说过 Elevator pitch,就是 30 秒,把你要做什么事情讲清楚。通常的案例诸如:「我们是餐饮界的 Uber」,或者说「我们是办公室版的 Airbnb」。这个典型结构是「XX 版的 YY」,要让这句话起到效果,前提条件是 XX 和 YY 两个概念在发生对话之前,已经纳入到听众的模型里面去了。如果我给别人说,我是「对话智能行业的麦肯锡」,要能让对方理解,对方就得既了解对话智能是什么,又了解麦肯锡是什么。

「 基于世界模型的推理 」

场景模型是基于某一次对话的,对话不同,场景模型也不同;而世界模型则是基于一个人的,相对而言长期不变。

对世界的感知,包括声音、视觉、嗅觉、触觉等感官反馈,有助于人们对世界建立起一个物理上的认识。对常识的理解,包括各种现象和规律的感知,在帮助人们生成一个更完整的模型:世界模型

无论精准、或者对错,每一个人的世界模型都不完全一样,有可能是观察到的信息不同,也有可能是推理能力不一样。世界模型影响的是人的思维本身,继而影响思维在低维的投影:对话。

让我们从一个例子开始:假设现在咱们一起来做一个不那么智障的助理。我们希望这个助理能够推荐餐厅酒吧什么的,来应付下面这样的需求:

人工智障 2 : 你看到的AI与智能无关

当用户说:「我想喝点东西」的时候,系统该怎么回答这句话?经过 Part 2,我相信大家都了解,我们可以把它训练成为一个意图「找喝东西的店」,然后把周围的店检索出来,然后回复这句话给他:「在你附近找到这些选择」。

恭喜,咱们已经达到 Siri 的水平啦!

但是,刚刚我们开头就说了,要做不那么智障的助理。这个「喝东西的店」是奶茶点还是咖啡店?还是全部都给他?

嗯,这就涉及到了推理。我们来手动模拟一个。假设我们有用户的 Profile 数据,把这个用上:如果他的偏好中最爱的饮品是咖啡,就给他推荐咖啡店。

人工智障 2 : 你看到的AI与智能无关

这样一来,我们就可以更「个性化」的给他回复了:「在你附近找到这些咖啡店」。

这个时候,咱们的 AI 已经达到了不少「智能系统」最喜欢鼓吹的个性化概念——「千人千面」啦!

然后我们来看这个概念有多蠢。

一个人喜欢喝咖啡,那么他一辈子的任意时候就都要喝咖啡么?人是怎么处理这个问题的呢?如果用户是在下午 1 点这么问,这么回他还好;如果是在晚上 11 点呢?我们还要给他推荐咖啡店么?还是应该给他推荐一个酒吧?

或者,除此之外,如果今天是他的生日,那么我们是不是该给他点不同的东西?或者,今天是圣诞节,该不该给他推荐热巧克力?

你看,时间是一个维度,在这个维度上的不同值都在影响给用户回复什么不同的话。

人工智障 2 : 你看到的AI与智能无关

时间和用户的 Profile 不同的是:

1. 时间这个维度上的值有无限多;

2. 每个刻度还都不一样。比如虽然生日是同一个日期,但是过生日的次数却不重复;

人工智障 2 : 你看到的AI与智能无关

除了时间这个维度以外,还有空间。

于是我们把空间这个维度叠加(到时间)上去。你会发现,如果用户在周末的家里问这个问题(可能想叫奶茶外卖到家?),和他在上班时间的办公室里问这个问题(可能想出去走走换换思路),咱们给他的回复也应该不同。

光是时空这两个维度,就有无穷多的组合,用”if then” 的逻辑也没法全部手动写完。我们造机器人的工具,到这个需求,就开始捉襟见肘了。

何况时间和空间,只是世界模型当中最显而易见的两个维度。还有更多的,更抽象的维度存在,并且直接影响与用户的对话。比如,人物之间的关系;人物的经历;天气的变化;人和地理位置的关系(是经常来出差、是当地土著、是第一次来旅游)等等等等。咱们聊到这里,感觉还在聊对话系统么?是不是感觉有点像在聊推荐系统

要想效果更好,这些维度的因素都要叠加在一起进行因果推理,然后把结果给用户。

至此,影响人们对话的,光是信息(还不含推理)至少就有这三部分:明文(含上下文)+ 场景模型(Context)+ 世界模型。

普通人都能毫不费力地完成这个工作。但是深度学习只能处理基于明文的信息。对于场景模型和世界模型的感知、生成、基于模型的推理,深度学习统统无能为力

这就是为什么现在炙手可热的深度学习无法实现真正的智能(AGI)的本质原因:不能进行因果推理。

根据世界模型进行推理的效果,不仅仅体现上在对话上,还能应用在所有现在成为 AI 的项目上,比如自动驾驶。

经过大量训练的自动驾驶汽车,在遇到偶发状况时,就没有足够的训练素材了。比如,突然出现在路上的婴儿车和突然滚到路上的垃圾桶,都会被视为障碍物,但是刹不住车的情况下,一定要撞一个的时候,撞哪一个?

又比如,对侯世达 (Douglas Hofstardler ) 而言,「驾驶」意味着当要赶着去一个地方的时候,要选择超速还是不超速;要从堵车的高速下来,还是在高速上慢慢跟着车流走… 这些决策都是驾驶的一部分。他说:「世界上各方面的事情都在影响着「驾驶」这件事的本质」。

「 人脑有两套系统:系统1 和系统2 」

关于「系统 1 和系统 2」的详情,请阅读 Thinking, Fast and Slow, by Daniel Kahneman,一本非常好的书,对人的认知工作是如何展开的进行了深入的分析。在这儿,我给还不了解的朋友介绍一下,以辅助本文前后的观点。

心理学家认为,人思考和认知工作分成了两个系统来处理:

  • 系统 1 是快思考:无意识、快速、不怎么费脑力、无需推理
  • 系统 2 是慢思考:需要调动注意力、过程更慢、费脑力、需要推理
  • 系统 1 先上,遇到搞不定的事情,系统 2 会出面解决。

系统 1 做的事情包括: 判断两个物体的远近、追溯声音的来源、完形填空 ( “ 我爱北京天安     ” ) 等等。

顺带一提,下象棋的时候,一眼看出这是一步好棋,这个行为也是系统 1 实现的——前提是你是一位优秀的玩家。

对于中国学生而言,你突然问他:「7 乘以 7」,他会不假思索的说:「49!」这是系统 1 在工作,因为我们在小学都会背 99 乘法表。这个 49 并非来自计算结果,而是背下来的(反复重复)。

相应的,如果你问:「3287 x 2234 等于多少?」,这个时候人就需要调用世界模型中的乘法规则,加以应用(计算)。这就是系统 2 的工作。

另外,在系统 1 所设定的世界里,猫不会像狗一样汪汪叫。若事物违反了系统 1 所设定的世界模型,系统 2 也会被激活。

人工智障 2 : 你看到的AI与智能无关

在语言方面,Yoshua Bengio 认为系统 1 不做与语言有关的工作;系统 2 才负责语言工作。对于深度学习而言,它更适合去完成系统 1 的工作,实际上它根本没有系统 2 的功能

关于这两个系统,值得一提的是,人是可以通过训练,把部分系统 2 才能做的事情,变成系统 1 来完成的。比如中国学生得经过「痛苦的记忆过程」才能熟练掌握 99 乘法表,而不是随着出生到长大的自然经验,慢慢学会的。

但是这里有 2 个有意思的特征:

1. 变成系统 1 来处理问题的时候,可以节约能量。人们偏向相信自己的经验,是因为脑力对能量的消耗很大,这是一个节能的做法。

2. 变成系统 1 的时候,会牺牲辩证能力,因为系统 1 对于逻辑相关的问题一无所知。「我做这个事情已经几十年了」这种经验主义思维就是典型案例。

想想自己长期积累的案例是如何在影响自己做判断的?

「 单靠深度学习搞不定语言,现在不行,将来也不行 」

在人工智能行业里,你经常会听到有人这么说「尽管当前技术还实现不了理想中的人工智能,但是技术是会不断演进的,随着数据积累的越来越多,终将会实现让人满意的人工智能。」

如果这个说法,是指寄希望于仅靠深度学习,不断积累数据量,就能翻盘——那就大错特错了。

无论你怎么优化「马车」的核心技术(比如更壮、更多的马),都无法以此造出汽车(下图右)。

人工智障 2 : 你看到的AI与智能无关

对于大众而言,技术的可演进性,是以宏观的视角看人类和技术的关系。但是发动机的演化和马车的关键技术没有半点关系。

深度学习领域的 3 大牛,都认为单靠深度学习这条路(不能最终通向 AGI)。感兴趣的朋友可以沿着这个方向去研究:

  • Geoffrey Hinton 的怀疑:「我的观点是都扔掉重来吧」
  • Yoshua Bengio 的观点:「如果你对于这个每天都在接触的世界,有一个好的因果模型,你甚至可以对不熟悉的情况进行抽象。这很关键…… 机器不能,因为机器没有这些因果模型。我们可以手工制作这些模型,但是这远不足够。我们需要能发现因果模型的机器。」
  • Yann LeCun 的观点:「A learning predictive world model is what we’re missing today, and in my opinion is the biggest obstacle to significant progress in AI.」

至于深度学习在将来真正的智能上扮演的角色,在这儿我引用 Gary Marcus 的说法:「I don’t think that deep learning won’t play a role in natural understanding, only that deep learning can’t succeed on its own.」

「 解释人工智障产品  」

现在,我们了解了人们对话的本质是思维的交换,而远不只是明文上的识别和基于识别的回复。而当前的人工智能产品则完全无法实现这个效果。那么当用户带着人类的世界模型和推理能力来跟机器,用自然语言交互时,就很容易看到破绽。

  • Sophia 是一个技术上的骗局(凡是鼓吹 Sophia 是真 AI 的,要么是不懂,要么是忽悠);
  • 现在的 AI,都不会有真正的智能(推理能力什么的不存在的,包括 Alpha go 在内);
  • 只要是深度学习还是主流,就不用担心 AI 统治人类;
  • 对话产品感觉用起来智障,都是因为想跳过思维,直接模拟对话(而现在也只能这样);
  • 「用的越多,数据越多,智能会越强,产品就会越好,使用就会越多」——对于任务类对话产品,这是一个看上去很酷,实际上不靠谱的观点;
  • 一个 AI agent,能对话多少轮,毫无意义;
  • to C 的助理产品做不好,是因为解决不了「如何获得用户的世界模型数据,并加以利用」这个问题;
  • to B 的对话智能公司为何很难规模化?(因为场景模型是手动生成的)
  • 先有智能,后有语言:要做到真正意义上的自然语言对话,至少要实现基于常识和世界模型的推理能力。而这一点如果能实现,那么我们作为人类,就可能真的需要开始担心前文提到的智能了。
  • 不要用NLP评价一个对话智能产品:年底了,有些媒体开始出各种 AI 公司榜单,其中有不少把做对话的公司分在 NLP 下面。这就好比,不要用触摸屏来衡量一款智能手机。在这儿我不是说触摸屏或者 NLP 不重要 (Essential),反而因为太重要了,这个环节成为了每一家的标配,以至于在这方面基本已经做到头了,差异不过 1%。
  • 对于一个对话类产品而言,NLU 尽管重要,但只应占个整体配件的 5-10% 左右。更进一步来说,甚至意图识别和实体提取的部分用大厂的,产品间差异也远小于对话管理部分的差距。真正决定产品的是剩下的90%的系统。

到此,是不是有一种绝望的感觉?这些学界和行业的大牛都没有解决方案,或者说连有把握的思路都没有。是不是做对话智能这类的产品就没戏了?上限就是这样了么?

不是。对于一项技术而言,可能确实触底了;但是对于应用和产品设计而言,并不是由一个技术决定的,而是很多技术的结合,这里还有很大的空间。

作为产品经理,让我来换一个角度。我们来研究一下,既然手中的工具是这些,我们能用他们来做点什么?

Report Story
Tags :