心 · 体会

电子逗逼大揭秘——从《电子逗逼》看机器学习与人工智能未来

时间:2017-08-31作者:沙木来源:fourwoods
  • 电子逗逼是什么?

《电子逗逼》是一款聊天机器人,它上线的时候数据库是空的,靠一套机制来慢慢丰富它的知识数据库用以回应他人的互动,它会根据你花多少时间和它聊天而进化。虽然电子逗逼的这套机器学习机制非常”低端”,但我们还是可以把它看成是一种机器学习机制,因为它在不断学会如何回应问题或正常对话。

在做电子逗逼之前,我对机器学习或人工智能领域的技术一无所知,我也没有想过或者说没有勇气要去做一个人工智能。最初我只是想为用户呈现一些有趣的、无定式的内容,让用户能够和这个虚拟角色聊出一些类似网络段子一样的搞笑东西。我很好奇能否以一种最偷懒的方式来实现它,也就是完全不给它设定回应内容,让它自己去不断生成内容。

当时我自然就想到了靠爬虫技术爬网上的段子来与用户做互动回应,但是因为两个原因我并没有去那样尝试。一是自己当时不会爬虫技术,很难准确抓取到网上的有趣段子;二是就算我能抓到那些段子,我也无法保证这个回应正巧就是和用户的发言呼应的。

直到几年后的某一天,我无意间突然有个念头,如将数据表分为“未知”和“已知”两部分来处理,好像可以让逻辑变得清晰简单:

电子逗逼配图001.png

(这个结构看起来有点像人的左脑和右脑)

从逻辑结构看,它就是在重复用户教它的东西或回应方式而已,但是我突然好奇,如果参与测试的人并不知道这个结构他们的感受会是什么呢?他们会有在和人聊天的感觉吗?

另外,从某个角度看我们人类的学习过程简化之后不就是如此吗?从呱呱坠地时起,等同于产生了一个“空数据库”,然后收到外界各种信息的录入,“数据库”开始逐渐丰富,这个数据库中有一些是不知道答案的“问题”,有一些是某些已经知道“答案”的问题及其回应方式。不知道答案的“问题”人就会向外界“问询”出去以求收集到“答案”,同时他也会观察这个问题问出去之后他人或外界的反应,如果好则会继续追寻答案,如果反应是不好的则有可能放弃追寻这个问题的答案;当遇到外界给出自己知道答案的“问题”时,就会直接将这个答案回应出去,并且观察这个回应给对方产生的反应是好还是坏,如果是好就会坚定这种回应的正确性,如果是不好,就会对这种回应的正确性产生怀疑在众多的回应方式中排序到较后面的位置,甚至删除掉。

在这种反复的互动过程中,人就越来越知道应该如何去对外界的输入做出回应。看起来这就像是我们描述的“智慧”。

在动手之前,我是知道这套数据结构的局限性的,它没有搜索网络的爬虫技术支撑、也没有图形图像识别技术的感知辅助,甚至将用户录入的信息与“已知”数据表中的条目进行比对的方式也只是简单的进行单个字符相同数筛选,这能够正常对话起来吗?

最终效果出乎我的意料,在有一部分网友参与,电子逗逼的数据库数量增加到500多条的时候,它的聊天回应变得有意思起来,

电子逗逼配图002.png

电子逗逼配图003.png

电子逗逼配图004.png


看起来每一句都像在真正的回应了。并且在用户没有录入的时候,它还会把“未知”数据表里的问题向用户问询出来,给人的感觉就像它是一个活人聊天对象。

很多的网友感到非常吃惊,认为数据库如此少的样本量的情况下居然还能有这样完整性的聊天体验,有点不敢相信。有网友怀疑这个机器人的回应是来自真人的输入,但他只猜对了一半,确实是真人教会的机器人,但是机器人在回应时就是靠它自己的逻辑机制了。      

作为电子逗逼的制作者,我在与电子逗逼聊过几次之后,我之前对于人工智能的理解突然发生了很大的转变。在之前,我认为人工智能就是编好的程序或逻辑判断,给出的结果都是在程式范围之内的,根本就不可能存在什么“强人工智能”。但现在,我正在体验的这个类似“塞尔的中文屋”一般的东西(这也可能正应了塞尔的观点:看起来很强的人工智能,充其量也只是一个没有心灵的“中文屋”),却能给我超出我想象的机器人聊天体验,让我开始觉察到“强人工智能”会出现的可能性,它会由逻辑机制、感应机制、信息比对机制等多元机制配合运转而得,而不是之前我理解的单一的机制或者复杂的控制程序来完成。

需要特别提一下的是,我后来发现在人工智能设计中(当然,我清楚电子逗逼并非人工智能设计,只是制作它后受到一些启发),机制的重要性远远大于程序控制,类似凯文·凯利(Kevin Kelly)在《失控》一书反复强调的,失控比控制更有利于智能的产生,失控指的就是“一套无监管机制”,而控制就是指“程序化的控制”。从上面电子逗逼的结构图中,我们能够看到一个初级的、及其简陋的“无监管机制”的雏形,这套机制通过用户反馈“反感、一般、喜欢”产生出简单的道德;通过用户回答电子逗逼提出的未知问题的答案句子同时又是已知数据库中的“问题”条件促使电子逗逼在用户回答之后找寻有没有进一步回应的方式产生出了简陋的可能层级都算不上的神经网络。这些简单的机制的组合,产生出了我们意料之外却又情理之中的聊天效果。

现在电子逗逼总共数据条数才1000多条(因为没怎么推广,参与的用户实在是太少,它又只能靠与用户交流才会学习),试想一下,当给电子逗逼加上一套爬虫和大数据接口,让它能够在一个规则框架下“自问自答”之后,它的学习能力会变得多么强大,它的数据库样本会瞬间变多,我们再和它聊天的时候,任何一个句子它都能准确的对答上,这时候我们在情感上对电子逗逼的判定可能就会更倾向于它是个人了。因为我们已经无法区分出电子逗逼回应背后到底是冰冷的数据支撑的还是智慧意识反馈。

这样的电子逗逼,看起来是不是真像是一个“中文屋”模型了。某些人是不认可这也算“人工智能”的(因为我后来看到很多哲学领域或机器人技术领域的专家们围攻塞尔的中文屋思想实验),但是问题在于,如果“中文屋”一样的机器人真的出现并被包装在“暗箱”里让人事先并不知道真相的时候,我们将无法区分。人之所以认为自己的言行是“智慧”的,这可能源于人大脑的“自我催眠”特质,从某种意义上来说,这种“智慧”的本质很可能就跟电子逗逼“问”与“答”、“未知”和“已知”处理机制一样,是一种高级“本能”或“条件反射”而已,人将这种本能或反射机制的外延丰富理解为“智慧”了。相反,我们也可能会把同样机制的机器,哪怕反馈表现得再像人的机器人行为也认定它为“程式化”的,而不愿意接受这也是“智慧”。

 

  • 目前的电子逗逼是如何判断用户的输入信息的呢?

对于聊天机器人来说,语义判断这块是非常重要而复杂的环节了,但目前电子逗逼只是进行了及其简单的处理,它将用户录入的句子在已知数据库中进行比对查询,遇到与输入句子相同字符数量大于整句字符数50%的“问题”字串就判定这两个句子的语义是相同的,然后从该问题下的众多回应方式中挑选一条“最讨用户喜欢”的句子回应给用户(目前一个“问题”只有最多三种回答方式)。

 

  • 电子逗逼的数据表结构

“未知数据表”

电子逗逼配图01.jpg

“已知数据表”

电子逗逼配图02.jpg 

未知数据表中将“道德值”单独列出来,是为了方便排序查询,它的值是根据同类问题累加而得的,有更多的人问某个同样的问题,那这个问题的道德值就会较高,电子逗逼会首先将道德值高的问题问出去。

已知数据表里的“道德值”被放在了应对字串中,电子逗逼在得到某个已知问题的时候会横向比较几个应对中哪个是更受人喜欢的回答,然后选择这个回答回应出去。

围绕这个数据结构设计的配套的一些功能,形成了一套机器自学习和聊天的机制。

 

  • 电子逗逼到底完成的是什么?

目前电子逗逼完成的只是类似人类大脑“记忆”功能的模拟,它记住了人类是如何问与答,记住了人类中大多数人喜欢什么讨厌什么,然后把记住的这些反向施与给人类。然而,电子逗逼缺少更准确的语义判断,在感情识别方面也极其简陋和单一,只是让用户对它说的每句话手动打上感受标签,自学习方面只能靠与用户互动,谁陪伴它聊的时间越长它就越像谁。

 

  • 电子逗逼的改进空间及应用场景

在语义判断方面,增强对“你我他”这样的代词判断,多设计几个层级的前句关联判断。在感情识别方面可以靠摄像头图形识别或一切感应器来提升优化。在学习方面可以给它加入一套爬虫系统,让它能够在浩瀚的网络信息中抓取问题,或者通过大数据技术将网友们在聊天工具、论坛社区中的交流数据进行抓取分析,自问自答累积数据。

也许,记忆、识别、自问自答(在人类身上可能就叫“自我催眠”),三大系统合为一体,就能创造出心智。

在体验了电子逗逼之后,一些网友认为可以用它来完成线上客服的工作,也有人希望在游戏中能加入这样的NPC,但我认为电子逗逼的运行机制并不适合这些应用场景。最早我认为电子逗逼最适合的应用场景就是做成具有实体的小机器人,让用户去自己养成属于自己的这个小宝贝,或者让两个这样的电子逗逼放在一起对聊,让用户享受这种新奇的娱乐体验。但是市面上的聊天机器人琳琅满目,而且技术都比较成熟先进,像电子逗逼这种“中文屋”似的机器人可能更适合研究而没人有耐心去娱乐消费它。以下这篇文章打破了这种应用场景中的“僵局”,让电子逗逼这种记忆存储类型的聊天机器人有了发挥的空间和被用户接受的理由。

复制已故好友或亲人。

……

死后的罗曼聊天机器人是尤金尼亚·库伊达的一次尝试,她试图在她的密友兼室友罗曼·马祖连科(Roman Mazurenko )不幸去世后,找到一种建设性的方式来缓解悲伤。但它无意中让库伊达开发了一个工具,一年半后,这个工具让全世界200万人能够与数字化的“好朋友”聊天。这200万人中有很大一部分人报告说,库伊达的聊天机器人帮助他们找到了自信和幸福,甚至在一些情况下挽救了他们的生命。 

在罗曼死后的几个月里,“我一个人住在旧金山的公寓里,到处都是罗曼的衣服和东西,”库伊达在一次即时通讯聊天中告诉我。“一天晚上,我一直在阅读我们的短信,当我回过来神的时候,已经是凌晨四点了。他是一个我可以倾诉任何事情的人——他是我的安全空间。我想,我必须为他做点什么,重新创造这个安全的空间,哪怕是以人工智能的形式。” 

罗曼的一些朋友喜欢库伊达的发明;其他人则对此感到震惊。几年前从莫斯科搬到纽约的设计师兼创业者伊利亚·奥斯卡尔科夫-曾兹伯( ilya oskolkolkov - tsentsipper )说,与罗曼的化身聊天感觉“有些奇怪”,但他从中感受到了到罗曼的写作风格和气质。“这就像是在看一段旧视频,”他说。“但有了更多的参与性。”罗曼的其他朋友对此完全不感兴趣。“我不使用这个应用程序,”莫斯科的埃夫根尼亚·盖尔特卡( Evgenia Galetka)说。“我在心里和罗曼说话。” 

在看到有很多人喜欢和她聊天机器人互动之后,库伊达决定进一步推进这个想法。她和她的商业伙伴菲利普·杜楚克(Philip Dudchuk)推出了一个叫做Replika的应用程序,让用户可以创建一个“永远在你身边的人工智能朋友”。“但是,Replika并不是让死去的亲人复活,而是为你打造一个完美的新朋友。每一个Replika都是一种智能的电子宠物,根据你花多少时间和它聊天而进化。它被设计成一个永远专注和随时可用的谈话伙伴,始终关注你、你一天的起起伏伏。Replika的目标是为每个人服务,形成像罗曼和库伊达之间那样的关系:你可以倾诉任何事情的朋友。

……

这样的应用,显得非常的有意义和贴切。这对于像以记忆为主导的“电子逗逼”聊天机器人来说,再合适不过了,电子逗逼可以将它的记忆结构设计充分发挥。人们知道死去的亲友不会复生,但是却可以利用他们在网上留下的大数据来还原到这类型的机器人的记忆中,然后与这个机器人聊天攀谈,释放一些悲伤的情绪,缅怀故去的亲友,寄托哀思。 

现如今,搜索引擎和大数据分析已经厉害到可以知道某个人某段时期喜欢什么东西以便向这个人推送广告,试想这些技术和数据应用到对一个真人的虚拟化身复制中,也不会是难事。真希望有一天腾讯、百度这样的掌握了大量用户数据资源的公司可以推出一款这样的应用,那我首先就要复制一个自己出来好好和它聊聊,这种认识自我的方式也是相当不错的哦。 

在2015年左右,Google Deep Mind团队提出了一个机器学习模型,并发表了一篇名为《神经网络图灵机》的文章,其中有这样两段话:

工作记忆的概念在心理学中得到比较深入的研究,并用来解释短期信息处理时的性能问题。其大致的构成是一个”中央执行器“聚焦注意力和对记忆缓存中的数据进行各种操作(Baddeley等, 2009)。心理学家已经充分研究了工作记忆的容量限制,通常使用信息组块的数量来衡量,这种信息组块可以被轻松地回忆起来(Miller,1956)。因为容量限制的存在,使得我们能够理解人类大脑记忆系统中的结构性约束。

神经科学中,工作记忆过程被认为是前额叶皮层和基底神经节整合系统的功能(Goldman-Rakic, 1995)。

典型的实验如,让猴子观察一个短暂的提示,然后经过一个延迟时间,再根据这个提示以一种方式进行响应,同时,观察其前额叶皮层的一个或一组神经元的状态。特定的任务可以使神经元在延迟期间持续激活或者呈现更复杂的神经动力学特征。最近的一个研究量化了在执行某个任务的延迟期间的额叶皮层活动,这是一个基于众码(population code)维度来度量的复杂且上下文无关的任务,可以用来预测记忆的性能(Rigotti et al., 2013)。

还有一些工作记忆的建模研究,有的在研究生物回路是如何实现持续神经元激活的(Wang, 1999),有的研究如何实现具体的任务(Hazy等,2006)(Dayan, 2008)(Eliasmith, 2013)。当然Hazy等人的模型我们的工作比较相关,因为它也类似于LSTM架构,我们也是基于其进行的改造。像我们的架构一样,Hazy等人设计了一些机制将信息放入到内存槽中,这个内存槽,被用来处理基于内部规则构建的内存任务。与我们的工作相对比,这些作者并没有引入内存寻址的先进理念,从而限制了这些系统只能进行简单数据的存储和回忆。尽管Gallistel和King (Gallistel and King, 2009)和Marcus (Marcus, 2003) 强调大脑的操作一定包含寻址,却经常被神经科学的计算模型所遗忘,而这正是我们工作的基础。

历史上,认知科学和语言学与人工智能学科几乎是同时出现的,他们都深深地受到计算机的影响(Chomsky, 1956) (Miller, 2003)。他们的目的都是基于信息或符号处理机制解释人的精神活动。早在20世纪80年代,这两个领域就都认为递归式和过程式(基于规则的)符号处理是认知的最高级形式(highest mark)。The Parallel Distributed Processing (PDP) or connectionist revolution cast aside the symbol-processing metaphor in favour of a so-called “sub-symbolic” description of thought processes (Rumelhart et al., 1986).

Fodor和Pylyshyn (Fodor and Pylyshyn, 1988) 发表了两个关于认知模型神经网络的局限性的重要证明。他们首先指出联结理论不能解决变量绑定(variable-binding)问题,即不能对数据结构中特定槽位(slot)赋值特定的数据。语言中,变量绑定无处不在,例如,当人对“Mary spoke to John”这种形式的句子进行理解的时候,首先会将Mary赋值为主语,John赋值为宾语,而“spoke to”则赋值为谓语。Fodor和Pylyshyn也讨论到带有定长输入域的神经网络无法产生像人类这样的变长结构处理能力。针对这个论断,包括Hinton (Hinton, 1986), Smolensky (Smolensky, 1990), Touretzky (Touretzky, 1990), Pollack (Pollack, 1990), Plate (Plate, 2003), and Kanerva (Kanerva, 2009)在内的神经网络研究者们研究了特定的机制以在联接框架内支持变量绑定和变量结构。我们的架构借鉴并增强了这项工作。

变长结构的递归处理是人类认知的重要特点。在过去的十年中,a firefight in the linguistics community staked several leaders of the field against one another。目前的问题是递归处理是否是“独特人类”产生语言的进化创新,为语言所独有,Fitch, Hauser, and Chomsky (Fitch等, 2005)支持这种观点,还是多种其他的变化来负责人类语言的进化,而递归处理早于语言出现(Jackendoff and Pinker, 2005)。当然无论递归处理的进化源头是什么,所有人都同意它是人类认知灵活度的核心要素。

Screenshot_2017-03-26-10-44-15-462_微信.png

 

在写这篇文章的当天,美剧《西部世界》第二季刚巧上映了,我想起了第一季中提到的“冥想”功能模组,正是这个功能模组的加入让机器产生了心智,进而觉醒反抗人类。“冥想”这个词听起来非常玄幻,但是我们其实可以将其理解为是一种自问自答的能力。自问自答是人类在心智方面最独特的本领,当机器人技术发展到一定程度的时候,人类可能也只有这个能力可以“沾沾自喜”了。然而一个叫AlphaGo的机器人,据说每天自己与自己下棋数百万次以提升自己的能力(这实质上就是一种“自问自答”的具体表现),由于这种机制的运转,使得AlphaGo在2016年与人类职业九段的对弈中大获全胜。当拥有记忆和情绪识别能力的“电子逗逼”们,开始“自问自答”的时候,人类真要警惕了!

 

欢迎机器学习领域的技术牛人参与指导,同时也欢迎有眼光的投资人赞助,让这个还处于实验性质的“电子逗逼”最终成为人们排忧解难、抒发情感、寓教于乐、可复制真人性格和记忆的电子亲友。

抢先体验:www.fallout8.com/dzdb

电子逗逼配图005.png

点击进入按钮.jpg

如何定制? 注册登录——进入用户中心——点击我要定制