引言
无论是苹果公司iPhone上火热的应用Siri,还是去年2月在美国电视竞答节目Jeopardy中打败人类冠军的Watson,都与“自动问答”直接相关。什么是自动问答,自动问答产品能带来什么好处,百度有什么样的自动问答产品,本文将用通俗的语言为您一一道来。
图 1 Siri(左)和Watson(右)
自动问答是自然语言处理领域的一个重要方向,旨在让用户直接用自然语言提问并获得答案。例如,用户询问“百度大厦在哪儿?”,问答系统回答“北京市海淀区上地十街10号”。
从用户的角度看,自动问答是一种简单且简洁的信息获取方法。用户直接用自然语言与问答系统交互,而无需考虑使用什么样的关键词组合表示自己的意图,所以简单;问答系统直接返回问题的答案,用户无需从冗长的相关文档中自己寻找答案内容,所以简洁。
传统的自动问答技术
传统的自动问答系统包括三个主要部分:问题分析、信息检索和答案抽取。结构关系如下:
图 2 传统的自动问答系统的组成部分
问题分析的目的是分析问题的语义类型,确定用户提问的意图,即用户是询问时间、地点还是询问实体、实体属性或者其他,并提取问题中的关键词。例如,用户询问“刘德华的生日”,经过问题分析后,确定用户是询问人物的某个属性,并提取该问题的两个关键词“刘德华”和“生日”。另外,因为文档中的潜在答案与问题的关键词不一定完全一致,想找“西红柿炒鸡蛋”,文本中只出现“番茄炒鸡蛋”,为了获得更高的召回率,还需要对关键词进行扩展。
信息检索是根据问题分析得到的关键词及其扩展形式从在线或者离线的文档库中检索相关文档。例如,将问题的关键词提交在线的搜索引擎,获取返回结果中排序最前的若干相关文档。
答案抽取是从检索得到的相关文档中抽取答案。根据问题类型的不同,答案形式也不尽相同,可能是一个词语、一个句子,也可能是一个段落或者更长的文本串。以抽取句子作为答案为例,按照一定的策略(如计算问句与候选答案的相似度)计算句子的权重,根据权重大小对句子进行排序得到候选答案列表,并根据问题类型或者其他选取策略筛选获得最终答案。
百度的自动问答产品
百度的自动问答产品由百度自然语言处理部、知识搜索部等部门的工程师联合开发。目前系统已应用于百度知道。用户在检索框输入问题后点击下方的“我要提问”,就得到自动问答的结果啦。
图 3 百度自动问答产品入口
且看自动问答系统如何回答“姚明的身高是多少”和“水煮牛肉的做法”,回答靠谱吧?
图 4 自动问答系统的回答实例
图 5 自动问答系统的回答实例
百度自动问答的组成部分
百度的自动问答系统是如何答出上面的问题呢?下面就看一下从用户输入问题,到自动问答给出答案,这中间都发生了什么。
百度的自动问答系统包括问题分析、答案抽取这两个主要模块。用户的问题依次经过这两个模块的处理。俗话说,巧妇难为无无米之炊,这两个模块不是自动问答系统的全部,背后还有一个巨大的知识库作为支撑,可以更准确更迅速的获取答案。技术框架如下:
图 6百度自动问答系统的组成部分
问题分析模块对用户的提问进行分析,确定问题的语义类型,预测答案的类型,例如答案是回答人物、时间、地点或者还是回答人物的年龄、商品的价格等;判断用户的提问是否为确定性问题,对于有明确具体答案的确定性问题,分析问题的结构并直接定位用户的所求。
答案抽取模块从知识库中检索问题的答案并返回给用户。对于确定性问题,根据问题的要点直接检索Ontology并返回答案;对于非确定性问题或者未找到答案的确定性问题,通过检索优质问答资源获取答案,即计算用户的提问与优质问答资源中的问题的相似度,获取相同问题或同义问题,直接返回满足提问的答案。
可以看出,影响自动问答的准确率主要有两个方面,一是知识库的容量是否足够大,存储的资源是否准确可靠;二是非确定性问题或者未找到答案的确定性问题,检索结果是否与原问题一致。
通过多重策略可以保证知识库资源的准确。首先,选择可靠的知识站点和其他web站点进行知识挖掘;第二,利用冗余信息对挖掘得到的资源进行验证;第三,利用多种策略对挖掘结果进行过滤。另外,定期和不定期地对知识库的内容进行更新,增加新的资源并滤除其中杂质。正所谓,“问渠那得清如许,为有源头活水来”。
保证检索结果与用户的提问相一致依赖于一个秘密武器,“语义相似度计算”,这里不再赘述,有兴趣的且听下回分解。
百度自动问答的特点
与传统的自动问答技术相比,百度的自动问答系统具有如下特点:
1) 快速响应
因为百度自动问答系统有巨大的知识库作为支持,对于满足条件的问题可以直接从知识库中获取答案,节省了信息检索和答案抽取的时间。
2) 较高准确率
传统的自动问答从文档库中动态抽取答案,准确率方面难以满足用户需求。百度自动问答系统的知识库的内容经过多重验证并且持续更新,因此自动问答的结果能够准确地回答用户的提问,提高了用户的体验。
3) 开放的回答领域
依赖于知识库中开放领域的问答资源,百度的自动问答系统可以回答的问题领域也是开放的,面向用户的各种需求。可以是学习型的“三个火字念什么”,也可以是生活型的“宫爆鸡丁的做法”,甚至可以是无聊型的“讲个笑话吧”。
4) 质量不断提升
知识库中的资源的数量在持续增加,质量也在不断提升。知识库的更新方式包括定期手动添加资源以及实时自动挖掘资源,用更合适的问答资源替换现有的部分。因此,问答的准确率和召回率会逐步递增。
结语
自动问答作为一种快速方便地获取信息的技术,在信息爆炸的今天,将会发挥越来越大的作用,为人们提供更多的便捷。有什么想知道的,“百度自动问答”一下吧。
by Zou Hongjian, Hu Dawei, Fang Gaolin
本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/1033633,如需转载请自行联系原作者