本篇博客主要基于微软亚洲研究院段楠老师的《智能问答》第一章 概述 进行整理。
智能问答(Question Answer,QA)旨在为用户提出的自然语言问题自动提供答案,得益于大数据、硬件计算能力提高(GPU、TPU)以及自然语言处理和深度学习技术的进步,近来年取得了飞速发展,其应用场景(如搜索引擎、智能语音助手)更加贴近人们的日常生活。
目录
一. 历史沿革
1. 受限领域问答
20世纪60年代,QA研究主要针对数据库自然语言接口任务,即如何使用自然语言检索结构化数据库。如LUNAR系统,允许月球地质学家使用自然语言检索NASA数据库,来获取月球岩石和土壤相关的信息和数据。本时期的工作需要依赖人工撰写的规则模版,完成自然语言问题到结构化数据库查询语句的转换。
20世纪70年代,QA研究聚焦于对话系统,并在末期拓展到阅读理解任务。
20世纪80年代,受限领域知识库的构建工作继续向前发展,进一步推动了基于知识库的专家系统研究。如UNIX Consultant系统,允许用户使用自然语言完成unix操作系统中的特定任务,该系统基于人工撰写的规则完成自然语言理解和回复生成任务。
早期智能问答系统大都针对特定领域(垂直领域)构建,并且需要领域专家撰写大量该领域相关的规则,用于问题理解和答案生成,这极大地限制了该类智能问答系统的规模和通用性,此外,受限于自然语言处理水平和计算机的运算能力,这类系统的准确度也差强人意。
2. 开放领域问答
1993年第一个基于互联网的智能问答系统START由MIT开发上线。该系统使用结构化知识库和非结构化文档作为问答知识库。对于能够被结构化知识库回答的问题,系统直接返回问题对应的精准答案。否则START首先对输入问题进行句法分析,并根据分析结果抽取关键词,然后基于抽取出来的关键词从非结构化文档集合中找到与之相关的文档集合,最后采用答案抽取技术,从相关文档中抽取可能的答案候选进行打分,并选择得分最高的句子作为答案输出。
1999年,TREC举办第一届开放领域智能问答评测任务TREC-8,目标是从大规模文档集合中找到输入问题对应的相关文档,该任务从信息检索角度开创了智能问答研究的一个崭新方向,TREC问答评测是世界范围上最受关注和最具影响力的问答评测任务之一。
2000年,CLEF提出跨语言问答评测任务,在该任务中问题和检索文档集合分别使用不同的语言,这就需要在问答中考虑并用机器翻译技术。此外,还引入了包括推理类和动机类在内的复杂问题,用于检验问答系统处理这类问题的水平。
Evi是2005年上线的问答型搜索引擎。和传统搜索引擎不同,Evi基于开放领域知识库,对用户提出了自然语言问题进行问题理解,并根据问题理解的结果,从知识库中查找出问题对应的精准答案,核心技术是基于知识图谱的智能问答技术。
Wolfram Aplha是2009年上线的计算知识引擎。支持计算机代数、符号和数值运算、可视化和统计等功能。它还提供基于结构化知识库的问答功能。
2011年,由IBM构建的智能问答系统Watson参加了美国电视问答比赛节目Jeopardy!,并在比赛中击败了人类冠军选手。Jeopardy!问答比赛涵盖了包括历史、语言、文学、艺术、科技、流行文化、体育、地理和文字游戏等多方面问题(开放/水平领域)。每个问题对应的线索在逐条展示给选手的过程中,选手需要根据已有的提示尽快猜出问题对应答案。IBM Watson系统框架图如下,主要由四个模块组成:
1)问题分析。该模块负责对输入问题进行包含命名实体识别(人名、地名、机构名等)、关系分类、句法解析、指代消歧在内的多种自然语言处理操作,并根据处理结果抽取问题焦点、词汇化答案类型和问题类型(事实类问题/非事实类问题).
2)候选生成。该模块负责从不同类型的数据源(包括结构化数据库和非结构化文档)中抽取答案候选。维基百科是Watson使用的主要数据源,这是由于Jeopardy!95%的问题对应的答案,都能在维基百科的标题中找到,除了维基百科外,知识图谱、词典、新闻文档和其他类型百科文档也被用于答案候选抽取。需要注意的是,问题分析模块预测得到的答案类型并不会作为答案候选抽取的硬性过滤条件,而是在答案候选排序中作为特征使用。
3)候选打分。该模块使用多种特征,从不同角度对每个答案候选进行置信度打分(每个答案有多个置信度打分)。
4)答案合并和排序。该模块基于每个答案候选对应的多个置信度打分,使用逻辑斯蒂回归计算每个答案候选对应的最终得分。答案候选集合可能包含同一个答案的不同表达形式(比如JF、John Frank表示同一个人),系统将会对不同表达形式的得分再进行合并。
从2015年起,TREC引入LiveQA评测任务。该任务在测试过程中,每隔一分钟向所有参赛系统发送一个雅虎Answer上尚未被回答的问题,并要求参赛系统在一分钟内返回问题对应的答案,答案质量由人工进行标注和评分。任务场景十分贴近真实的需求。
斯坦福在2016年发布了SQuAD数据集,该数据集针对智能问答中的机器阅读理解任务进行构建,要求问答系统从给定自然语言文本中找到输入问题对应的精准答案。该数据集提供了10万量级的高质量标注数据.截止到2018年1月初,由微软亚洲研究院和阿里巴巴提出的方法几乎同时在精准匹配(exact match,EM)这一指标上超过了Amazon Mechanical Turk标注者的平均水平。在中文方面,百度发布的中文机器阅读理解数据集DuReader,并在2018年3月联合CCF共同举办了2018机器阅读理解技术竞赛。