8.1 知识问答概述
知识问答系统是一个拟人化的智能系统,它接收使用自然语言表达的问题,理解用户的意图,获取相关的知识,最终通过推理计算形成自然语言表达的答案并反馈给用户。例如,用户想了解“特朗普是哪里人”时,可以在网上搜索关键词“特朗普”,找到相关的百科网页,进而通过阅读文章定位出“纽约”是他的出生地。如果换一种思路,用户拿这个问题问身边的人,也许直接就会听到“纽约”这个答案。
8.1.1 知识问答的基本要素
知识问答或问答(Question Answering,QA)是对话的一种形态。它强调以自然语言问答为交互形式从智能体获取知识,不但要求智能体能够理解问题的语义,还要求基于自身掌握的知识和推理计算能力形成答案。问答是一种典型的智能行为,例如著名的图灵测试就是考验能否通过自然语言对话的方式判定答题者是人还是机器。在采用对话方式与用户沟通时,众多问答系统都需要使用一定的知识来解答问题,所以说问答系统实质上就是知识问答,本文后续也不再区分问答系统和知识问答系统。图8-1列举了一个问答系统应具备的四大要素:①问题,是问答系统的输入,通常以问句的形式出现(问答题),也会采用选择题、多选题、列举答案题和填空题等形式;②答案,是问答系统的输出,除了文本表示的答案(问答题或填空题),有时也需要输出一组答案(列举问答题)、候选答案的选择(选择题)、甚至是多媒体信息;③智能体,是问答系统的执行者,需要理解问题的语义,掌握并使用知识库解答问题,并最终生成人可读的答案;④知识库,存储了问答系统的知识,其形态可以是文本、数据库或知识图谱。也有工作将知识库编码到计算模型中,例如逻辑规则、机器学习模型和深度学习模型。
图8-1 问答系统的四大要素
8.1.2 知识问答的相关工作
信息检索(Information Retrieval,IR)或搜索以关键词搜索为代表,帮助用户发现包含搜索关键词的网页或文档。近来的信息检索技术也在逐步利用语义信息,例如支持查询扩展[1] 、语义相似度匹配[2] 以及基于知识图谱的实体识别[3] 。但是搜索与知识问答有明显差异。第一,搜索以文档来承载答案,用户需要阅读搜索找到的文档来发现相关答案,而问答直接将答案交付给用户,而且答案通常来自已经结构化的数据或抽取后结构化的数据,而且结构化数据可以用列表的形式返回,也支持进一步的数据统计分析。第二,搜索侧重更简单的用户体验,用户的知识检索诉求主要通过关键词而不是完整的句子,这样需要用户掌握一定的搜索技巧。例如同一个问题,大学教授和中学生会采用不同的搜索技巧和搜索关键词组合,而他们得到的搜索结果也会不一样。问答则会尝试理解不同自然语言表达方式中固有的语义,然后形成知识查询。第三,当用户的问题比较复杂,需要通过多个页面的知识来回答时,搜索是无法完成的。例如,需要寻找“在华盛顿的数据挖掘公司”,而公司的地址信息(?公司位于 华盛顿)和公司的专业信息(?公司 业务 数据挖掘)恰好在两个不同网页上,搜索引擎是无能为力的。
数据库查询(Database Query)同样可以帮助用户获取知识,但是知识问答和数据库查询仍然存在一定差异。第一,数据库查询通常需要用户熟悉结构化数据的组织(Schema),知道如何指代数据中的概念(包括实体名、属性名等),掌握数据库查询语言(包括使用 JOIN 等复杂操作逻辑),而知识问答降低了对这些知识的要求,人们可以用自然语言来查询数据。值得注意的是,自然语言查询需要处理歧义现象,例如“List all employees in the company with a driving license”(“列举有驾照的公司的雇员”),可以是找“有驾照的公司”也可以是“有驾照的公司雇员”,从常识判断只有后者才是用户的真正意图。类似的中文歧义的现象也很多,例如“南京市长江大桥”“教育部长江学者”都需要不同的语义理解歧义消解的方案。第二,数据库对知识库有严格限制,要求数据必须结构化存储。然而,大量知识存在于文本中而非数据库中,知识问答并不限制知识库的类型。第三,数据库查询结果不一定能形成用户可使用的最终答案。例如,数据库查询可以查到城市的编码,还需要再查询编码表得到城市的名称,而知识问答则需要直接返回城市的名称。
知识问答、信息检索和数据库查询的对比如表8-1所示。
表8-1 知识问答、信息检索和数据库查询的对比
续表
8.1.3 知识问答应用场景
2011年,IBM 研发的超级计算机“沃森”在美国知识竞赛节目《危险边缘》中上演了“人机问答大战”,并一举战胜了两位顶尖的人类选手,成为人工智能发展史上又一标志性事件,如图8-2所示。自人工智能概念出现开始,问答系统的研究与应用一直在演进:20世纪60年代诞生了基于模板的问答专家系统,如 ELISA、BaseBall[4] 、LUNAR[5] 、SHRDLU;20世纪90年代兴起了基于信息检索的问答[6] ,如 MASQUE、TREC;到21世纪初,伴随搜索引擎和网络社区而生的社区问答,如搜狗问问、百度知道、YAHOO answers 等;直到今日,基于结构化数据的知识图谱问答技术、基于文本理解的机器阅读理解技术均取得了长足的进展。
案例1.知识问答可以直接嵌入搜索引擎的结果页面,将问答的答案与搜索的结果列表同时展示。图8-3展示了谷歌搜索引擎对提问“2016年NBA年度总冠军”所得到的结果页面,“克利夫兰骑士”是问答结果,下面则是搜索结果列表。
图8-2 “沃森”在《危险边缘》中获得冠军
图8-3 问答展示界面
案例2.知识问答技术可以应用于智能对话系统、智能客服或智能助理(Intelligent Agent)[7] 。除了帮助人们获取知识[8] ,智能助理也可以跟人闲聊,帮助人执行任务(例如下订单、订酒店、叫外卖),将用户的问题转化为结构化查询,利用多轮对话补全用户的意图等[9] 。图8-4展示了用户的同一个问题可以在不同的对话系统中得到不同的理解和解答。
图8-4 基于不同领域知识图谱的问答系统在对话中有不同的理解
案例3.知识问答应用于阅读理解。各种答题机器人和对话机器人也是知识问答的一个重要应用方向。例如,2011年,日本富士通联合日本国力信息学研究所的“多达一”考试机器人,以及国内“国家高技术研究发展计划(863计划)”基于大数据的类人智能关键技术与系统,俗称“高考机器人”,其背后均有知识图谱问答技术的支持。以阅读理解为代表的应用也可以被看作是知识问答的特例,它主要限制了知识库的边界(虽然阅读理解的主体知识是指定的章,但是实现理解仍然需要语法、常用词汇概念以及常识等辅助),而问题的形式可以是选择题(判断哪个答案正确)、填空题(直接填写答案)抑或是简答题。图8-5展示了一种阅读理解的应用场景,智能体以一段文章(passage)为知识库,针对问题从文章中寻找一段文字形成答案。
图8-5 SQuAD阅读理解问题示例