1
现在的人工智能还处于一个摸索阶段,对话机器人的开发者们都在从最基础的程度开始制作深度学习。最终做出的产品也千差万别。但最终归纳起来大致的方法都属于同样几类。
最初大家用的都是最容易实现,也最容易想到的:关键词匹配的方式,到后来开始慢慢出现根据语序结构来判断用户语言内容的手段,现在,横扫整个人工智能行业的深度学习也被运用到对话机器人的训练中了。
加拿大皇家科学院的院士最近提出了一个应用于他们产品上的,一种比较创新的深度学习理论和架构。通过这个架构,他们的产品“薄言豆豆”可以进行自主学习,更新对话的应对内容。
李明院士表示,自己和团队在人工智能的基础理论上下了很大的功夫,他认为人工智能的进步一定会是因为基础理论的进步而不是工程学上(如关键字的匹配技巧)的进步。
以下是李明院士在第三届机器人峰会中的演讲,关于薄言豆豆架构原理的部分。
NLPCC在2015年10月份组织了一个测试,设计了1千个用来问机器人的问题,这1千个问题测试了现在中国最先进的对话技术。参与测试的对话机器人有薄言豆豆、图灵机机器人,出门问问。还有小I机器人、微软小冰,和百度度秘。这其中出门问问最近融资了7千万美元,微软小冰有4千万用户,百度度秘曾经跟李克强总理对话过,还博得了总理的喜爱。但是这哥第三方测试的结果是:及格的只有豆豆一个。其他的都不及格,而豆豆也是刚刚及格,60分出头。第二是图灵机器人,出门问问,百分之十几,小I,小冰,小度都不及格。其他的机器人可能擅长对话而不是回答问题。但是我觉得一个聊天机器人,只会瞎说八道肯定是不行的。知识就是力量,你要想做好一个聊天机器人,就必须要有大量的知识做后盾。
人类的智能,就是从说话开始的。语言赋予了人们组织和更进一步思考的能力。而人工智能的革命,我们觉得也是从学习语言开始。这就是我们现在正在做的事。我们觉得这也非常振奋人心。但是机器人怎么学说话呢?大家都听说过Alphago,Alphago在跟欧洲围棋冠军下棋的时候,棋力还不怎么样。但是之后的4、5个月他跟自己下了三千万盘棋,从中它的能力增加了很多,跟李世石下棋的时候,李世石几乎是一点机会没有。Alphago是这三千万盘棋不是白下的,它下完了能知道自己是输还是赢。通过输和赢的反馈结果他就可以改进它的价值网络。知道走哪步容易输走哪步容易赢,这样训练它的神经网络。但是说话怎么办?怎么判断它的话说得是好还是坏,现在市面上有很多机器人告诉大家它们会学习,他们的机器人会通过用户的反映来学习,这句话100%不靠谱。第一大家听说过小冰的事。就是如果用户教你一些坏事,你没法把它筛选掉的话,就会很麻烦。第二,你的用户才几个啊?AlphaGo跟自己下了3千万盘棋,每盘棋能走好几百步,这样多的数据量不可能能从用户那来的,用户数据的量级根本没有那么大。如果要让计算机学说话,必须训练计算机跟自己说话,光自己跟自己说话还不行,你还得要有一个办法来估计这个话说得好还是不好,所以这是件特别难的事。比Alphago下围棋难得多,以下我给大家介绍我们薄言怎么样用我们的数学理论解决这件事情。
让薄言豆豆自己跟自己说话。比下围棋难得多。这里我们讲一个很小的侧面,我来介绍一个数学理论,这个数学理论可以教会你怎么样来估计这句话说得好还是不好。我说一个很小的例子,他要学习类似的问题。比如天气问题?直接教你说话的话,我教你今天天气怎么样。你学习之后可能可以可以回答今天天气怎么样,比如天气挺热的等等。但是如果我换个问法,我问明天怎么样。你就要去写个新的模板,对话的变化是无穷无尽的。所以这样写模板不行,最好的办法是有一个理论,定义什么叫语意相似性,什么东西相似什么东西不相似。这是我们要解决的问题。也是人工智能50年还没有解决的问题。但是我希望提出对这个问题的一个另类的解决方法。这是豆豆所用的来学习一个句子的相似形的LSTM算法,说起来比较复杂。不过这个东西最关键的是用我说这两个相似,那最后到底是相似还是不相似?你必须得给我反馈,必须得有一个办法告诉我是不是相似。
那怎么反馈?这需要设计一个的最基本的理论概念,数学概念。叫“语义距离”。这是非常重要的概念,但是人工智能做了50年没有人知道怎么算,怎么定义。这就跟大家知道图灵那个机器人一样,这个东西有一个概念,但是没法定义到底它是个什么东西,它是不可计算的,语义就是这么一个东西。语义是不可计算,不可定义的。我们要知道今天天气怎么样,我要知道这个语义距离是0。那我怎么定义一个数学理论来解决这个问题?我希望我在这能够给大家解释一个通俗一点的解释。我先给大家定义一个别的东西:比如有两句话,我要定义这两句话之间的,任何两个实体之间的距离,只要有信息就会有,我们将它定义为“信息距离”。然后我拿信息距离来近似描述“语义距离”。
那么我们怎么做?我们是从一个特别漂亮的数学理论开始的。我们出发点是用物理公理推导出所有要做的事。这是我们跟所有其他厂家的不一样的。这个理论是5个人共同发明的,我是其中之一。
我首先要定义信息距离,这个信息距离是非常复杂的东西,不能用传统定义,因为传统的定义肯定不行。那我怎么办?比如我们有X、有Y两个信息载体,现在我需要计算两个信息载体之间的距离,怎么算?我们给信息距离的定义就是说这两个信息X、Y之间的距离就是转换他们之间所需要的能量,就是比特数,不可逆的这个数。我们证明了一个定理,就是最小的信息量可以用这个公式表示,这个K是一种复杂性。如果大家感兴趣可以看我们的书,这本书是我写的。转换X、Y所需要的最小的能量,我就定义为X、Y之间的信息距离:D(X、Y)。
上面是信息距离,我们之前说的叫语义距离,我们用信息距离去近似语义距离。而且我能证明一件事,如果你有任何可计算的距离模拟近似语义距离。那我这个信息距离一定比你小!那么就是说我这个距离比你好。你根本不用去计算什么语义距离,近似度,就算系距离就够了。我一定比你好。好了,现在就是咱们从理论,中间证明过程不说了。从理论上解决了语义距离,不可逆,不可定义的办法。这个虽然不可计算,但是信息距离的定义就是说我要压缩编码就可以了。所以在自然语言方面基本上可以用。所以这样我给豆豆提供了一个理论。
我觉得人工智能的进步,一定要靠首先是理论的进步,而不应该是工程上的什么关键字,什么模板匹配。
李明院士坚信理论基础的建立才是应用进步的基础,也在坚持贯彻着这个理念,事实上我们也认同这个观点,这也是最近图灵测试遭受的质疑的思路:即使一个机器人能根据匹配和搜索关键字完美的回答你的所有问题,甚至让你分辨不出它到底是人还是机器人。也不意味着它就拥有了思维能力。只有人工智能的理论不断发展,当我们真正探索出一种能够创造出智能的手段,才能赋予机器人真正的“智能”。
冯·诺依曼在某次演讲中说:只要你把被认为是计算机无法解决的问题描述清楚,计算机就总能找到一种方法解决它。而目前我们最需要的也正是对希望计算机解决的问题的精确定义。这么看来,李明院士和他的团队对语言的含义和效果给出的定义“语义距离”和“信息距离”两个概念或许能成为AI领域未来进步的基石之一。让我们期待这些睿智的学者和科学家们在制造出越来越有人性味的产品的同时,也在AI的理论领域做出更多的突破。
题图来自xuite.net
雷峰网原创文章,未经授权禁止转载。详情见转载须知。