本章将介绍一个综合实例的实现过程,详细讲解TensorFlow技术在在智能问答系统中的应用过程。本项目使用预先训练的模型根据给定段落的内容回答问题,该模型可用于构建可以用自然语言回答用户问题的系统。
11.1 背景介绍
问答系统的设计目标是用简治、准确的答案回答用户用自然语言提出的问题。在人工智能和自然语言处理领域,问答系统都有着较长的历史。1950年英国数学家图灵(A.M.Turin8)在论文“Computing Machinery and Intelligence”中形象地指出了什么是人工智能,以及机器应该达到的智能标准。也就是通过自然语言问答的方式,判断机器是否具有智能。20世纪70年代随着自然语言理解技术的发展,出现了第一个实现用普通英语与计算机对话的人机接口LUNAR,该系统是伍德(W.Woods)于1972年开发的,用来协助地质学家查找、比较和评价阿波罗一号飞船带回的月球岩石和土壤标本的化学分析数据的。
11.1.1 互联网的影响
传统的问答系统虽然可以对用户提出的问题给出确定的答案,但是这些问答系统的数据源是基于一个固定的文档集合,尚且不能满足用户的各种各样的需求。利用互联网上的资源是有效的解决之道,互联网上具有丰富的信息,是问答系统数据源的理想资源,因此将问答系统与互联网结合起来,就变得非常必要。这也就促使了基于互联网的问答系统的出现和发展的问答系统的出现和发展。
随着因特网的快速发展,网络上流通的信息日益增加,它已俨然成为巨大的讯息流通交换平台,要在如此大量的数据库中找寻有用的数据着实不易,通常会藉助于搜索引擎的功能来达成,然而以关键词为主的搜索引擎常会找出所有相关的信息,但是其中也包含许多无用的数据,用户浪费很多时间浏览不相关的网页。
随着互联网的发展,网络已成为人们获取信息的重要手段。目前,世界上最大的搜索引擎Google能够搜索的网页数量已经超过了百亿。传统的搜索引擎存在很多不足的地方,其中主要有以下两个方面:
(1)以关键词的逻辑组合来表达检索需求,返回的相关性信息太多
(2)以关键词为基础的索引,停留在语言的表层,而没有触及语义,因此检索效果很难进一步提高。
以上两点使得人们在互联网上的海量信息中快速准确地找到自己所需要的信息变得越来越困难。
11.1.2 问答系统的发展
问答系统的概念虽然提出的时间并不长,但已经形成发展出了一些比较成熟的系统。美国麻省理工学院人工智能实验室于1993年开发出来的START,这是全世界第一个基于Internet的问答系统。START系统旨在为用户提供准确的信息,它能够回答数以百万的英语问题,主要包括与地点相关的问题(城市、国家、湖泊、天气、地图、人口统计学、政治和经济等)、与电影相关的问题(片名、演员和导演等)、与人物相关的问题(出生日期、传记等)以及与词典定义相关的问题等。该系统采用基于知识库和基于信息检索的混杂模式,系统还保留着原来的两个知识库,"START KB”和“Internet Public Library"。如果用户提出的问题属于这两个知识库的范畴,START就直接利用知识库中的知识返回比较准确的回答。反之,START系统将问题解析得到查询的关键词,通过搜索引擎得到相关信息,通过后续处理得到准确而简洁的回答返回给用户。比如提出一个问题“Who was Bill Gates? ", START系统回答“Cofounder,Microsoft. Born William H. Gates on October 28, 1955,Seattle,Washington. "。同时系统还返回一个关于“Bill Gates"网页链接,如果用户希望了解更详细的信息时就可以浏览改网页。
美国华盛顿大学开发的MULDER系统是最早实现的基于Internet的全自动的问答系统。该系统没有知识库,而完全利用Internet上的资源得到答案。对于一个问题,MULDER系统返回的不是唯一的答案,而是一组候选回答,并利用统计的方法给每一个回答赋值一个权重,称之为置信度。比如,对于一个问题“Who was the fast American in space?" ,MULDER系统的返回的候选答案中,"Alan Shepard”具有70%的置信度,"John Glenn”具有15%的置信度。同时在每一个答案下面给出相关的网页链接和该网页内容的摘要。
AskJeeves是美国一个比较著名的商用问答系统,对于自然语言提出的问题,AskJeeves系统采用多种方式进行回答,直接返回一段文本,并返回一系列文档链接及其内容摘要,同时还采用多媒体文件的形式提供相关信息。比如对于问题" Who was Bill Gates?",系统在文本回答的基础上还将显示一张Bill Gate的照片。作为一个商用系统,AskJeeves的服务种类很多,不仅仅可以查找Web网页,也可以采用图片、新闻、产品作为数据源,从而得到所需的信息。AskJeeves系统中的问题分析部分是依赖手工完成的,为了能够正确理解用户的查询AskJeeves雇佣了数百专职人员构造问题模板,并为这些问题模板中常见的问题进行了缓存。系统的问题模板虽然能够细化和明确用户的需求,但由于需要人工产生和维护的,工作量非常大。
国内复旦大学开发的原型系统(FDUQA)己经具有了初步的效果,同时哈尔滨工业大学(金山客服)和中国科学院计算技术研究所也在从事该领域的研究。
从系统的设计与实现来看,自动问答系统一般包括三个主要组成部分:问题分析、信息检索和答案抽取。目前国际上,问答系统的研究方兴未艾,许多大的科研院所和著名公司,都积极参与到该领域的研究,其中比较著名的如MICROSOFT、IBM、MIT、University of Amsterdam、National University of Singapore、University of Zurich、University of Southern California、Columbia University等等,国内在问答系统方面的研究相对国外较为不足,主要有中科院计算所、复旦大学、哈尔滨工业大学、沈阳航空工业学院、香港城市大学、台湾中研院等一些单位。