第七节 语言通讯:沟通的认知基础
我要介绍的人工智能的第三个领域是语言、对话。最近我两次在视觉与语言结合的研讨会上做了报告,从我自己观察的角度来谈,视觉与语言是密不可分的。
人类的语言中枢是独特的,有趣的是它在运动规划区的附近。我们为什么要对话呢?语言的起源就是要把一个人脑袋(mind)的一个信息表达传给你一个人,这就包括上一节讲的知识、注意、意向计划,归纳为图中那三个三角形的表达。希望通过对话形成共识,形成共同的任务规划,就是我们一致行动。所以,语言产生的基础是人要寻求合作。
动物之间就已经有丰富的交流的方式,很多借助于肢体语言。人的对话不一定用语言,手语、哑剧(pantomine)同样可以传递很多信息。所以,在语言产生之前,人类就已经有了十分丰富的认知基础,也就是上一节谈的那些表达。没有这样的认知基础,语言是空洞的符号,对话也不可能发生。
发育心理学实验表明,12个月的小孩就可以知道去指东西,更小年龄就不会,但是很多动物永远达不到这个水平。举个例子,有人做了个实验。一群大猩猩坐在动物园里,一个猩猩妈妈带一个小猩猩,玩着玩着小猩猩跑不见了,然后这个妈妈去找。周围一大堆闲着的猩猩坐在那里晒太阳,它们明明知道那个小猩猩去哪了。如果是人的话,我们就会热心地指那个小孩的方向,人天生是合作的,去帮助别人的,助人为乐,所以这是为什么我们人进化出来了。猩猩不会,猩猩不指,它们没有这个动机,它们脑袋与人相比一定是缺了一块。人和动物相比,我们之所以能够比他们更高级,因为脑袋里有很多通信的认知构架(就像多层网络通讯协议)在大脑皮层里面,没有这些认知构架就没法通信。研究语言的人不去研究底下的认知构架,那是不会有很大出息的。下面这个图来源于人类学的研究的一个领军人物 Michael Tomasello。
除了需要这个认知基础,语言的研究不能脱离了视觉对外部世界的感知、机器人运动的因果推理,否则语言就是无源之水、无本之木。这也就是为什么当前一些聊天机器人都在“扯白”。
我们先来看一个最基本的的过程:信息的一次发送。当某甲(sender)要发送一条消息给某乙(receiver),这是一个简单的通讯communication。这个通讯的数学模型是当年贝尔实验室香农Shannon1948年提出来的信息论。首先把它编码,因为这样送起来比较短,比较快;针对噪声通道,加些冗余码防错;然后解码,某乙就拿到了这个信息。见下图。
在这个通讯过程之中他有两个基本的假设。第一、这两边共享一个码本,否则你没法解码,这是一个基本假设。第二、就是我们有个共享的外部世界的知识在里面,我们都知道世界上正在发生什么什么事件,比如哪个股票明天要涨了,哪个地方要发生什么战争了等等。我给你传过去的这个信息其实是一个解译图的片段(PG:parse graph)。这个解译图的片段对于我们物理世界的一个状态或者可能发生的状态的描述。这个状态也有可能就是我脑袋Mind里面的一个想法、感觉、流态(fluents)。比如,很多女人拿起电话,叫做“煲粥”,就在交流内心的一些经历和感受。
如果没有这个共同的外部世界,那我根本就不知道你在说什么。比如外国人聚在一起讲一个笑话,我们可能听不懂。我们中国人说“林黛玉”,那是非常丰富的一个文化符号,我们都明白谁是林黛玉,她的身世、情感、性格和价值观,就轮到外国人听不懂了。
Shannon的通讯理论只关心码本的建立(比如视频编解码)和通讯带宽(3G,4G,5G)。1948年提出信息论后,尽管有很多聪明人、数学根底很强的人进到这个领域,这个领域一直没有什么大的突破。为什么?因为他们忽视了几个更重大的认识论的问题,避而不谈:
· 甲应该要想一下:乙脑袋里面是否与甲有一个共同的世界模型?否则,解码之后,乙也不能领会里面的内容?或者会误解。那么我发这个信息的时候,措辞要尽量减少这样的误解。
· 甲还应该要想一下:为什么要发这个信息?乙是不是已经知道了,乙关不关注这个信息呢?乙爱不爱听呢?听后有什么反应?这一句话说出去有什么后果呢?
· 乙要想一下:我为什么要收这个信息呢?你发给我是什么意图?
这是在认知层面的,递归循环的认知,在编码之外。所以,通讯理论就只管发送,就像以前电报大楼的发报员,收钱发报,他们不管你发报的动机、内容和后果。
纵观人类语言,中国的象形文字实在了不起。所谓象形文字就完全是“明码通讯”。每个字就是外部世界的一个图片、你一看就明白了,不需要编解码。我觉得研究自然语言的人和研究视觉统计建模的人,都要好好看看中国的甲骨文,然后,所有的事情都清楚了。每个甲骨文字就是一张图,图是什么?代表的就是一个解译图的片段(fragment of parse graph)。
上面这个图是一个汉字的演变和关系图,从一本书叫做《汉字树》得来的。几年前,我到台湾访问,发现这本丛书,很有意思。这个图是从眼睛开始的一系列文字。
首先从具象的东西开始,这中间是一个眼睛,“目”字,把手搭在眼睛上面,孙悟空经常有这个动作,就是“看”(look)。
然后是会意,比如“省”,就是细看,明察秋毫,画一个很小的叶子在眼睛上面,指示说你看叶子里面的东西,表示你要细看。
然后开始表达抽象的概念,属性attribute、时空怎么表达,就是我们甲骨文里面,表示出发、终止,表示人的关系,人的脑袋状态,甚至表现伦理道德。就这样,一直推演开。
所以,搞视觉认知的,要理解物体功能就要追溯到石器时代去,搞语言的要追溯到语言起源。
下图是另一个例子:日、月、山、水、木;鸟、鸡、鱼、象、羊。下面彩色的图是我们实验室现在用计算机视觉技术从图像中得到的一些物体的表达图模型,其实就重新发明一些更具像的甲骨文。这项技术是由YiHong,司长长等博士做的无监督学习。他们的算法发现了代表鸟的有头、身子和脚、水波和水草等“类甲骨文”名词符号。这种视觉的表达模型是可解释explainable、直观的。
所以,从生成式模型的角度来看,语言就是视觉,视觉就是语言。
再来看看动词。考考你们,这是啥意思?第一个字,两只手,一根绳子,在拖地上一个东西,拿根绳子拽。第二个很简单,洗手。第三是关门。第四是援助的援字,一只手把另外一个人的手往上拉。第五也是两个手,一个手朝下一个手朝上,啥意思?我给你东西,你接受。第六是争夺的争,两个手往相反的方向抢。第七两个人在聊天。基本上,字已经表示了人和人之间的动作细节。
现在我的实验室里,计算机也能自动学出“类甲骨文”的动词的表达,见下图。我们学出来的这些两个人交互的动作包括:坐、玩手机、握手、人拉人等等。我们把这些动作模型分别叫做4DHOI (4D Human-Object Interaction)、4Dhoi(4D hand-object interaction)、4DHHI (4DHuman-Human Interaction)。
我刚才说了名词和动词,还有很多其他的东西,我建议你们去研究一下,要建模型的话我们古代的甲骨文其实就是一个模型,他能够把我们世界上所有需要表达的东西都给你表达了,是一个完备了的语言模型。
我再举个复杂和抽象的例子,咱们古代人怎么定义伦理道德,非常的漂亮!
引言中谈到,大家担心机器人进入社会以后,是不是会危害人类生存,所以引发了很多讨论。有一次我参加一个DARPA内部会议,会议邀请了各界教授们讨论这个问题,他们来自社会伦理学、认知科学、人工智能等学科。大家莫衷一是。轮到我做报告,我就说,其实这个问题,中国古代人的智慧就已经想清楚了。
伦理道德的“德”字怎么定义的?什么叫道德?
道德规范是什么,它是个相对的定义,随着时间和人群而变化。我刚来美国的时候,美国社会不许堕胎、不许同性恋,现在都可以了。中国以前妇女都不许改嫁。甚至到几十年前,我在家乡都听说这样的规矩:如果一个妇女在路上,她的影子投到一个长老身上,那是大不敬,所以走路必须绕开,这就是一种社会规范。
中文这个“德”字你看左边是双人旁,双人旁其实不是两个人,双人旁在甲骨文画的是十字路口(见最右边那个图),十字路口就是说你是要做个选择,是个决策。你怎么选择?比如说一个老人倒在地上,你是扶他还是不扶他?这就是一个选择。贪不贪污、受不受贿这都是内心的一个选择。这个选择是你心里面做出的,所以下面有个心字。
那怎么判断你内心的选择符不符合道德呢?社会不可能把大量规则逐条列出来,一个汉字也没法表达那么多的内容吧。“德”字上面是一个十字,十字下面一个四,其实不是四,而是眼睛,十个眼睛看着你。就是由群众来评判的。这就相当于西方的陪审团,陪审团都是普通民众中挑选出来的(那是更进一层的法律规范了)。他们如果觉得你做的事情能够接受就是道德,如果不接受那就是不道德。所以,你在做选择的时候,必须考虑周围人的看法,人家脑袋里会怎么想,才决定这个东西做不做。
所以,如果没有上一节讲的认知基础,也就是你如果不能推断别人的思想,那就无法知道道德伦理。研究机器人的一个很重要的一个问题是:机器要去做的事情它不知道该不该做。那么它首先想一下(就相当于棋盘推演simulation):我如何做这个事情,人会有什么反应,如果反应好就做,如果反应不好就不做,就这么一个规则。以不变应万变。
那它怎么知道你怎么想的呢?它必须先了解你,你喜欢什么、厌恶什么。每个人都不一样,你在不同的群体里面,哪些话该说,哪些话不该说,大家心里都知道,这才是交互,你没有这方面知识你怎么交互呢?
所以我还是觉得我们古代的人很有智慧,比我们现在的人想的深刻的多,一个字就把一个问题说得很精辟。咱们现在大部分人不想问题,因为你不需要想问题了,大量媒体、广告到处都是,时时刻刻吸引你的眼球,你光看都看不过来,还想个什么呢!只要娱乐就好了。
现在,我们回到语言通讯、人与机器人对话的问题。下图就是我提出的一个认知模型。
两个人之间至少要表达五个脑袋minds:我知道的东西、你知道的东西、我知道你知道的东西、你知道我知道的东西、我们共同知道的东西。还有,对话的时候你的意图是什么等等诸多问题。具体我不讲那么多了。
最后,我想谈一点,语言与视觉更深层的联系、与数学中代数拓扑的联系。拓扑学是什么意思?就是说图象空间,语言空间,就是一个大集合,全集。我们的每个概念往往是它的一个子集,比如说,所有的图象是一个集合,一百万个象素就是一百万维空间,每张图像就是这百万维空间的一个点。人脸是个概念,所有的人脸就是在这一百万维空间的一个子集,但是这个子集和其它个子集要发生关系,这个关系叫拓扑关系。计算机的人把它叫做语法,对应于代数拓扑。比如,头和脖子在肩膀上是合规的,概率很高。这个图像空间的结构其实就是语法,这个语法就是STC-AOG,时空因果的与或图。语法可导出“语言”,语言就是一个符合语法的句子的总的集合。STC-AOG就是知识的总体表达,而我们看到的眼前每一个例子是由STC-AOG导出来的时空因果解译图STC-PG。计算机视觉用它,语言肯定用它,认知是它,机器人任务规划也是它。这就是一个统一的表达。