人工智障 2:你所看到的AI和智能无关(上)

“ Artificial-Intelligently Challenged ”

前言

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

两年前,写了一篇文章《为什么现在的人工智能助理都像人工智障》,当时主要是怼“智能助理们”。这次呢则是表达 “我不是针对谁,只是现在所有的深度学习都搞不定对话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 

对话智能的表现:智障

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”。


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

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

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


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

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


 “ 不要日本菜 

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

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

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

为什么要关注“不要”两个字?之前我去到一家某非常有名的智能语音创业公司,聊到这个问题时,他家的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。我可以打造一个平台,上面有一系列工具,可以让客户们自己组装机器人。” 

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


Yann LeCun对AIaas的看法

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

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


“ 音箱的成功和智能的失败 ”

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

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

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

超级终端:在后移动时代,每家都想像iphone一样抢用户的入口。只要用户习惯使用语音来获得咨询或者服务,甚至可以像Xbox/ps一样,硬件赔钱卖,软件来挣钱;

用语音做OS:开发者打造各类语音的技能,然后通过大量“离不开的技能” 反哺这个OS的市场占有;

提供开发者平台:像Xcode一样,给开发者提供应用开发的工具和分发平台、提供使用服务的流量。

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

Source: Statista

万众期待的killer app并没有出现;

基本没有商业服务型的应用;

技能开发者都没赚到钱,也不知道怎么赚钱;

大部分高频使用的技能都没有商业价值——用户用的最多的就是“查天气”

没有差异性:智能的差异嘛基本都没有的事儿。


 皇帝的新人工智能 

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

因为Sophia的“智能” 是个骗局。

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

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

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

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

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

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

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

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

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

你怕不得装个真人进去?

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

Source: The Guardian

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

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

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

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


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

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

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

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

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

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

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

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

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

John McCathy


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

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

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

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

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

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

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

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

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

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

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

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


Part 2

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


 AI thinks, man laughs 

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领域的做投资的朋友 ),你只需要问他一个问题:“是不是填槽?”

如果他们(诚实地)回答“是”,那你就可以放下心来,黑科技尚未出现。接下来,能讨论的范围,无非都是产品设计、工程实现、如何解决体验和规模化的困境,这类的问题。基本上该智障的,还是会智障。

要是他们回答“不是填槽”,而且产品的效果还很好,那么就有意思了,值得研究,或者请速速联系我:)

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

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

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

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 I/O 2018 Google Duplex Restaurant Call

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

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


 当前对话系统的局限 

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

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

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

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

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

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

    - 时间:明天

    - 目的地:北京

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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亿个完美的自然语言处理系统呢。

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



关于作者

作者Mingke,正在从事对话智能方面的创业,为世界一百强企业提供对话智能应用的咨询和解决方案。上次《为什么现在的人工智能助理都像人工智障》一文发出来之后,认识结交了不少行业内的朋友。希望这次,把过去一段时间的思考与大家分享,能给行业内的新老朋友们一些启发,有兴趣沟通和碰撞的也欢迎与我联系。

欢迎行业里的新老朋友勾搭吐槽,微信:mingke27 (请注明称呼+所在机构)

你可能感兴趣的:(人工智障 2:你所看到的AI和智能无关(上))