图 2 智能问答系统
在某种意义上,现在已经存在这种系统的原型,例如,互联网搜索引擎就可以看作是其简化版。但是要真正构建人类的智能信息助手,还有许多难关要攻克,有许多课题要解决。
知识问答的本质问题是:(1)语义分析,即将输入的自然语言的表示映射到内部的语义表示;(2)知识表示,即将输入的信息知识转换为内部的语义表示。最大的挑战来自语言的多义性和多样性,以及知识的模糊性。
语言具有多义性(ambiguity),也就是说一个表达可以表示不同的意思。下面是语言学家查尔斯·菲尔默(Charles Fillmore)给出的例子。英语单词 climb,其基本语义是四肢用力沿着一条轨迹向上移动,表示「向上爬」的意思。所以如果用 climb 造句,大家一般会给出这样的句子「The boy climbed the tree」(男孩爬上了树)。但是 climb 一词的语义会向不同方向扩展,可以说「Prices are climbing day by day」(物价每日飙升),这里 climb 就没有了四肢用力移动的意思。也可以说「He climbed out of a sleeping bag」(他从睡袋中爬出),这里 climb 就没有了向上移动的意思。语言的词汇都具有如下性质:有一个核心的语义,对应一些典型说法,可以由一些特征表示。但部分特征可以缺失,形成新的语义,产生新的说法。语言中,除了词汇的多义性,还有句法的多义性。
同时语言也具有多样性(variability),也就是说多个表达可以表示同一个意思。比如,「地球和太阳的距离」,「地球离太阳有多远?」,「太阳和地球相隔有多少公里?」等,都是同义表达。
人们的知识,特别是常识,具有模糊性(fuzziness)。下面是人工智能研究的先驱者特里·维诺格拉特(Terry Winograd)给出的例子。英文中,bachelor 是指未婚成年男性,即单身的意思。看似是一个明确的概念,但是当我们判断现实中的具体情况时,就会发现我们对这个概念的认识是模糊的,比如,未婚父亲是否是 bachelor?假结婚的男子是否是 bachelor?过着花花公子生活的高中生是否是 bachelor?大家并没有一致的意见。
神经符号处理
近年,深度学习给自然语言处理带来了巨大变化,使机器翻译、对话等任务的性能有了大幅度的提升,成为领域的核心技术。但是另一方面,深度学习用于自然语言处理的局限也显现出来。面向未来,深度学习(神经处理)与传统符号处理的结合应该成为一个重要发展方向,神经符号处理(neural symbolic processing)的新范式被越来越多的人所接受,其研究也取得初步进展。
图 3 基于神经符号处理的智能问答系统
深度学习用实数向量来表示语言,包括单词、句子、文章,向量表示又称为神经表示(neural representation)。神经表示的优点在于其稳健性,可以更好地应对语言的多义性和多样性,以及语言数据中的噪音。另一方面,传统的符号表示(symbolic representation)的优点在于其可读性和可操作性。语言是基于符号的,计算机擅长的是符号处理,用符号表示语言处理的结果是自然的选择。神经符号处理旨在同时使用神经表示与符号表示来描述语言的语义,发挥两者的优势,更好地进行自然语言处理。
基于神经符号处理的智能问答系统也是由语言处理模块、短期记忆、长期记忆、中央处理模块组成,如图 3 所示。语言处理模块又由编码器和解码器组成。编码器将自然语言问题转换为内部的语义表示,存放在短期记忆中,包括符号表示和神经表示。中央处理模块通过问题的语义表示,从长期记忆中找出相关的信息和知识。长期记忆中的信息和知识也是基于符号表示和神经表示的。找到相关的答案后,解码器把答案的语义表示转换为自然语言答案。
最新进展
实现问答系统有三种方法,分别是基于分析的、检索的、生成的方法。通常是单轮对话,也可以是多轮对话。这里考虑单轮的基于分析的问答系统。