人工智障 2 : 你看到的AI与智能无关
- 2019-01-21 12:15:00
- 刘大牛 转自文章
- 339
“ 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。
Googles Assistant. CREDIT:GOOGLE
那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亿个完美的 自然语言处理 系统呢。
我们需要了解要解决的问题,才可能开展解决问题的工作。在对话领域,我们需要知道人们对话的本质是什么。下一章比较烧脑,我们将讨论“思维”这件事情,是如何主导人们的对话的。
Part 3
人类对话的本质:思维
“ 对话的最终目的是为了同步思维 ”
你是一位30出头的职场人士,每天上午9点半,都要过办公楼的旋转门,进大堂的,然后刷工牌进电梯,去到28楼,你的办公室。今天是1月6日,平淡无奇的一天。你刚进电梯,电梯里只有你一个人,正要关门的时候,有一个人匆忙挤进来。
进来的快递小哥,他进电梯时看到只有你们两人,就说了一声“你好”,然后又低头找楼层按钮了。
你很自然的回复:“你好”,然后目光转向一边。
两边都没什么话好讲——实际上,是对话双方认为彼此没有什么情况需要同步的。
人们用语言来对话,其最终的目的是为了让双方对当前场景模型(Situation model)保持同步。(大家先了解到这个概念就够了。更感兴趣的,详情请见 Toward a neural basis of interactive alignment in conversation)。
The interactive-alignment model (based on Pickering and Garrod,
2004)
上图中,A和B两人之间发展出来所有对话,都是为了让红框中的两个“Situation model” 保持同步。Situation model 在这里可以简单理解为对
联系人: | 透明七彩巨人 |
---|---|
Email: | weok168@gmail.com |