雷锋网按:本文作者,雷锋网独家首发文章。
科研界和工业界的关系往往是,科研界负责生产原材料,工业界负责把原材料进行加工料理,最终给用户端上一盘饕餮盛宴。正如20年前,谷歌利用PageRank这个原材料,做出了现在世界上最贵的一道菜,谷歌搜索引擎。
在上个月的CNCC2016演讲中,搜狗CEO王小川提出,输入法的未来方向是自动问答。这句话告诉我们搜狗厨房已经准备好做菜自动问答了,那么让我们看看自动问答这道菜的原材料如何,如果原材料不好想必导致巧妇难为无米之炊。自动问答粗略的进行划分,可以划分为:
基于文本的抽取式问答技术,和基于知识库的生成式问答技术。
首先,我们看一看基于文本的抽取式问答。
此类技术在学术界又有着几个分支:社区问答(CQA),网页问答(WebQA),文本问答(TextQA),阅读理解(Machine Comprehension)。对应的工业界应用有百度知道(社区问答),搜索引擎直接回复(WebQA)。
此技术通俗点说就是让机器学会筛选,用户给定一个问题,机器通过各种各样的算法从自己的语料库中选一个答案回来。
类似于机器是一个超级图书管理员,知道自己的库里面有啥书,用户一问就从自己的图书馆里面查询有没有相关的;但是这个管理员推理能力不强,如果用户的描述不大清晰,或者网上没有,那这次查询就失败。
首先我们来看两个例子,分别是百度知道(CQA),谷歌的搜索推荐(TextQA或者是WebQA)。
谷歌中如果在英文市场下搜索英文(经测试中文并不支持),很多问题谷歌将自动给出答案,并把详细的步骤列出。
下面,我们拿CQA进行举例(其他的基于文本抽取的问答技术均大同小异,均是依靠各式各样的文本相似度计算技术),文本相似度计算一直是计算机人工智能领域研究的重点问题,主要有三大类相关技术。
语言模型:语言模型依靠数两个文本重叠词语个数来判断相似度。
对于文本a中的任意一个词w,计算w在不在文本b中出现,如果出现就给个高分,不出现就给个很低的分(到底多低要看这个词在整个语料库中的重要程度),最后把文本a所有词的得分累计起来就是最后a与b的相似度。
翻译模型:翻译模型为了解决a文本和b文本中意思接近但不是同一个词语的问题,例如“中文”和汉语。
首先利用翻译模型将两段来自同一语言的文本(往往是社区问答的问题和答案)进行词对齐训练,之后就可以得到词到词的转移概率。有了这个表,再计算某个词是否在另一段文本中出现就并不是非黑即白的事情了,还要考虑近义词的转移概率。()
3. 深度学习模型:深度模型研究问答匹配技术如雨后春笋般涌现,而且已经证明比传统方法有效(Jeff Dean在WSDM2016讲谷歌的搜索算法特征贡献的前三名均是基于深度学习的)。
具体的有,谷歌论文中基本的CNN应用,Socher提出的基于Tensor匹配,华为所提出的一系列二维匹配模型。
那么我们首先看一看此类问答的技术到底能做到什么程度,WSDM是信息检索和数据挖掘的大会,在今年年初WSDM上,微软亚洲研究院自然语言处理组公开过一个百度知道的社区问答数据集,此数据集已经过人工标注,标注返回的问题是否满足用户的查询,数据集可供下载,均为百度知道上常见问题,用0和1标注两个问题是否相关。
经过当时作者的实验,如果我们只把排名最高的拿出来判断对不对,基于语言模型的可以让准确率达到68%,基于翻译模型的可以到达70%,基于词向量的方法可以达到73.8%。由于技术还在发展,可以想象基于一些复杂深度学习技术的模型可以达到将近80%的准确率。
那么百分之八十意味着什么呢?
常见问题肯定做得好,不常见的无能为力。
例如上图,xp靠什么建立wifi,光靠字符匹配大部分正确的相似问题已经被捞回来了,所以一旦这类问题向机器提问,机器一定能做得很好,图书管理员合格。然而底下的问题,劳务派遣靠什么挣钱就不一样了,问题比较奇葩,候选的问题中相关的就少,唯一正确的还是福建一个公司劳务派遣如何挣钱,这样机器这个图书管理员就搞不定了。图书馆里没一样的书,而唯一相似的还需要一些推理。
这就是现在基于文本抽取的自动问答现状,常见问题可以搞定,不常见的无能为力。
于是,我们可以预想以后的输入法如果用自动问答作为入口,结果一定是他可以从一定程度帮助我,但是难度大的问题,仍然不行。
基于知识库的问答技术,往往通过一个已有的知识库(例如维基百科,FreeBase等)回答用户的问题,其中主要利用语义解析器将问题的主谓宾等成分抽取出,最终推理出对应的答案。这项技术算是一个新兴的领域,自从知识图谱概念火热起来才渐渐被人们重视。
用一句话概括现状是是:
特别简单的才可以,稍微转个弯就悬了。
基于知识库的问答往往有两条路——
一条路是斯坦福学派的CCG Parser,一种特殊的语义分析器来理解自然语言问题;
另一条,近年来大火的深度学习。
各种各样的深度学习模型在近几年的学术界大杀四方,让基于知识库的问答技术有了质的飞跃。典型的文章有去年ACL获奖论文,来自MSR的Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base
然而纵使重武器应用到了这个领域,仍然效果不是很理想。例如,WebQuestion是一个基于知识库的问答统一评测的数据集。
其中的典型问题有:
what does jamaican people speak?
what did james k polk do before he was president?
what is the oregon ducks 2012 football schedule?
我们人看这些问题感觉特别简单,稍微经过一些推理就可以回答,然而非常让人尴尬的是,在这份数据集上,最好的模型只有50%多的准确率,即利用知识库只能准确回答一半网络上的问题。更何况这是学术论文,模型都是精调且不考虑效果的情况下。
并且基于知识库的问答技术一个比较大的局限是,他非常依赖其他相关自然语言处理技术,例如实体链接(即如何区分苹果指水果还是公司),知识库质量(如果知识库都错了,或者没有,更回答不了)。所以知识库的问答技术在系统实现上要比文本抽取式难一些,且耗费更大人力。
基于文本抽取的问答技术现在扛起了大部分问答系统,绝对是可以工业界使用的,相信搜狗的输入法如果好好做会达到并不低于百度知道的效果。然而基于知识库的问答技术仍然是学术界的玩具,仍然需要一个又一个技术突破。