新的一天开始的时候,我们就会依赖机器,以前机器是冷冰冰的,它不会“主动的”做事情。也不能很好的理解人的意图。自行车作为人类伟大的发明,在电子计算机面前,就像是猿猴之于人类。我们的身体早已经从树上下来,但是我们的思想并不一定,感谢那些长久的想将人类举起的人,他们是后文提及的一些名字,因为今天所发生的一切,要得益于他们的坚持和谦逊。
在上世纪50年代,信息论之父香农就提出了使用数学方 法处理自然语言问题。问答系统可以看成是一个函数: 回复 = 函数体(问题)。 在函数体内部,它拥有很多种获得回复候选集的方式,然后通过算法进行排名选择最优的输出。人们一直在这个思路上探索,经过了几十年的探索,尤其是朴素贝叶斯,隐性马尔可夫模型,维特比算法,图论以及神经网络的应用,不断提升了智能程度。
从1982年开始,人们开始研究人工神经元网络,但是受限于当时的数据及计算能力,反向传播网络失败,而支持向量机上升,人工神经元的研究进入平静的时期,为了寻求资助,深度学习之父辛顿搬到了加拿大,继续研究。2006年,辛顿等人发表的论文《A fast learning algorithm for deep belief nets》再度引发了人们的重视,它打破了人们认为神经元网络不可被训练的理念。当时这篇论文在手写字体识别的问题的错误率并不是当时最好的,但这个是一个开端。2007年,Yoshua Bengio等人的工作又证明了深度学习在解决复杂问题上,比其他方法更加有效,深度学习可以无监督的方式从训练数据中提取特征。从此,人们开始广泛的使用深度学习解决各种问题,并催化了增强学习和对抗网络等更加前沿方向的研究。
作为机器学习的经典任务,手写字体识别问题的错误率已经比人还低了,从2012年开始到现在,语音识别类问题也被攻陷,中文的语音识别在实时情况下,比一个高级的速记员还要准确。今天,我们所使用的美颜相机,语音识别,根据图片风格自动创建相册,翻译软件等各类服务,都有深度学习支撑。作为一个科技工作者,本书作者相信,从2011年,谷歌大脑团队驱动10亿权重的神经网络的学习开始,深度学习将会影响我们的生活的方方面面。
聊天机器人,是“人工智能”领域的最后的战场,隐含着上帝造物的秘密,人工智能之父图灵最早提出了区分人和机器的图灵测试就是以聊天任务的形式。一个智能的聊天机器人会处理很多场景,而本书所要探索的智能问答,就是其中之一。深度学习会横扫聊天机器人么?
近年来,很多研讨会、教程、期刊专刊或会议都对深度学习在自然语言处理和问答系统中进行讨论,其中包括:
2017年IJCNLP(International Joint Conference on Natural Language Processing,国际自然语言处理大会)
2017年 NIPS(Neural Information Processing Systems,神经信息处理系统)深度学习研讨会(Deep Learning Workshop), 自然语言处理研讨会(Natural Language Processing Workshop),智能对话系统大赛(The Conversational Intelligence Challenge)
2017年 斯坦福大学 Deep Learning for Natural Language Processing(深度学习应用于自然语言处理)课程
2012年 IEEE 《音频、语音和语言处理》(T-ASLP,1月) 会刊有关语音和语言处理中深度学习专栏(2012 Introduction to the Special Section on Deep Learning for Speech and Language Processing)
当今,大公司和开源领域联合学术界,大力的推广深度学习技术,本书的作者从2015年开始从事深度学习的研究,也组织和参加过一些交流活动,这些经历促发了本书作者创作本书的想法。
现代的问答系统是融合知识库、信息检索、机器学习、自然语言理解等技术的人机对话服务。问答系统与传统的信息检索系统在很多方面有所不同。
比较方面 | 问答系统 | 传统信息检索系统 |
---|---|---|
系统的输入 | 自然语言 | 关键词组合 |
系统的输出 | 自然语言答案 | 文档列表 |
上下文环境 | 需要考虑用户对话的上下文 | 不需要考虑上下文 |
任务驱动 | 在不能理解用户意图的情况下,会请求用户补充信息 | 尽可能的理解当前的查询,不要求用户补充 |
问答系统也可以划分成很多类型,按照领域进行分类,可以分为基于事实的问答系统,基于常见问题集的问答系统和开放域的问答系统。基于事实的问答系统是通过学习百科知识、字典、期刊、杂志、新闻和文学作品等内容,从这些语料中,挖掘出“问题”,“问题类型”和“答案”,可以回答“姚明有多高”,“诺贝尔奖获得者名单”等问题。基于常见问题集的问答系统,通常是面向一个垂直的领域,在已有的问题-答案对的集合中找到与用户提问相匹配的问题,然后将答案返回给用户。开放域的问答系统通常是通过抽取海量的聊天记录,比如即时通信应用和论坛网站等语料,提供一个能闲聊的服务。
IBM Watson是基于事实的问答系统的代表,2011年,Watson参加问答综艺节目的过程中,打败了人类选手,它包含了2亿页结构化和非结构化的信息,随着互联网数据规模的增长,Watson所学习的信息也就不断增长。它是基于“假设认知”和大规模的证据搜集、分析、评价和决策的问答系统。DBPedia,Wordnet和Yago是其数据的主要来源。下面简要分析Watson的技术实现:
证据获取: 从本地数据库或互联网获取支撑问题的证据。若本地数据库有该问题的证据,直接返回支撑问题的证据,否则利用互联网搜索引擎从互联网上抓取有关该问题的片段,并抽取其中的正文作为该问题的支撑证据。
证据评分:为评价不同证据对问题的支撑度,建立一套证据评分机制。
问题分类:对问题所属的类别进行判定。比如将问题划分成人名、地名、机构名、数字、时间和对象等。
候选答案评分:评估后选答案的质量,建立答案的评分机制。
基于不同技术的事实问答系统可以很好的评测。通常设定固定的大规模真实的语料,使用不同技术从中寻找答案,比如 TREC QA Track评测,尽管语料库中无法涵盖用户所有的问题答案,但是它为不同算法提供了很好的评测平台。
微软的QnA Maker(https://qnamaker.ai)服务是典型的基于常见问题集(Frequently Asked Questions, FAQ)的问答系统。它的主要用途是对企业产品和专业知识问题的解答,FAQ数据集的内容表现形式是提问和相应答案的问答对。这种类型的数据质量很高,答案基本上也很准确,不足之处是数据规模小,很多商业公司可以提供FAQ问答系统的软件。在学术界,FAQ问题集也有很多开放语料用来检测不同算法的优劣,比如Ubuntu Dialogue Corpus包含50万条对话,该语料是从Ubuntu官方论坛中筛选了问答对并脱敏和标记后发布的。
常见问题集的常见实现方案主要是先从数据库或者搜索引擎召回候选问答对,然后计算候选答案对的问题和用户问题的相似度来验证最优的答案。
微软小冰是开放域聊天的代表,它是微软亚洲研究院于2014年在中国推出的一个人工智能聊天机器人,微软小冰集合了中国近7亿网民多年积累的、全部公开的文献记录,凭借微软公司在大数据、自然语言语义分析、机器学习方面的技术积累,精选上千万条真实而有趣的语料库,通过理解对话的语境语义,实现的人机问答系统。从推出到现在,微软小冰通过不断增加语料和技术,实现了更多的技能,同时微软公司也开始对开放域聊天和搜索引擎的整合。
基于事实的问答系统和基于常见问题集的问答系统更强调精确性,开放域的问答系统更强调趣味性。目前,针对FAQ问题集的问答系统的研究是热门方向,本文也是主要侧重使用信息检索技术、自然语言理解、知识图谱和深度学习技术实现FAQ问答系统。
今天简要介绍了聊天机器人问答的分类,后续将更新更多相关内容。请读者关注专栏。