几个基本概念:本体、实体、知识库、知识图谱
1、本体是概念的集合,是大家都公认的概念框架,一般不会改变如“人”、“事”、“物”、
“地”、“组织”,在面对对象编程里面,我们把它叫做类,在数据管理里面我们把它叫做元数据;
3、很多实体形成的数据库叫做知识库,如dbpedia等;
4、知识图谱是一种图谱组织形式,通过语义关联把各种实体关联起来,之前不叫做知识图谱,而叫做语义网。知识图谱把结构化、非结构化的数据通过数据抽取、融合在一起,体现了数据治理、语义连接的思想,有利于大规模数据的利用和迁移。
一、从数据治理角度
二、语义连接角度
从多源数据的融合来说,主要有如下三种方式:
1、分阶段使用:这比较好理解,就是先使用某种数据,再使用某种数据;
2、利用特征拼接:大部分的机器学习算法都是这么做的,可以根据具体的情况增减特征数目;
3、基于语义信息的融合:通过本体之间的关系属性来体现语义信息的融合,这里面涉及到自然语言的处理、统计分析概率、语义网等。比如,“小红的爸爸(小明)”,“小红的妈妈的老公(小明)”这两句话中的爸爸和老公都是指的是同一个人小明,通过上下文分析、语义分析等就会获得这两人为同一个人的概率为100%。举个比较实际的知识库推理的例子,如下图
知识库中本来就有的语义信息有:<王教授,belongto,男性疾病诊疗中心>以及<王教授,specializein,性病前列腺炎>。但是,知识库中并没有<王教授,specializein,急性前列腺炎>,通过知识图谱的语义推理得到<王教授,specializein,急性前列腺炎>。
这里要说明的是,深度学习的本质其实也是一种重度、高通量的“语义”链接器,只是这里的“语义”是隐藏的语义,不易理解的语义。所以有人说深度学习是一台端到端传递信息的广义翻译机器。对于知识图谱和深度学习:深度学习是通过一个黑盒子来进行预测,人类不好理解;而知识图谱是通过语义分析来推理,人类好理解。融合知识图谱与深度学习,已然成为进一步提升深度学习效果的重要思路之一。以知识图谱为代表的符号主义,和以深度学习为代表的联结主义,日益脱离原先各自独立发展的轨道,走上协同并进的新道路。目前的几种交叉应用如下:
2、利用知识图谱来管理数据,深度学习来做特征工程;
3、用符号表达知识图谱,利用深度学习对符号化的知识图谱进行学习将知识图谱的语义信息输入到深度学习模型中,将离散化的知识表示为连续化的向量,从而使得知识图谱的先验知识能够称为深度学习的输入;
4、利用知识作为优化目标的约束,指导深度学习模型的学习过程,通常是将知识图谱中的知识表示为优化目标的后验正则项。
三、智能应用角度
在问答和搜索应用上,知识图谱可以使搜索以精准的结果呈现给你,而不是返回一堆相似的页面让你自己去筛选,达到“所答即所问”,比如,搜索姚明有多高,返回来的结果就是姚明具体的身高。
对于知识图谱的理解、构建都是一个比较困难的过程,尤其是要理解知识图谱并把它应用到实际业务中去。
知识图谱的构建过程
1知识图谱的总体构建思路
如下图所示,从原始的数据到形成知识图谱,经历了知识抽取、知识融合(实体对齐)、数据模型构建、质量评估等步骤。
原始数据分为结构化数据、半结构化数据和非结构化数据。采用不同方法将不同结构化形式的数据转换为三元组,然后对三元组的数据进行知识融合(主要是实体对齐,和数据模型进行结合),之后形成标准的数据表示。可以依据一定的推理规则发现新知识,形成的知识经过质量评估后进入知识图谱。依据知识图谱数据平台可构建语义搜索,智能问答,推荐等应用。
以下是知识图谱构建步骤的详细介绍。
2知识抽取
2.1结构化数据处理
普遍采用D2R技术把关系型数据库中的数据转换为RDF数据(linkeddata),D2R主要包括D2RServer,D2RQEngine,D2RRQMapping语言。
D2RServer是一个HTTPServer,它的主要功能提供对RDF数据的查询访问接口,以供上层的RDF浏览器、SPARQL查询客户端以及传统的HTML浏览器调用。
D2RQEngine的主要功能是使用一个可定制的D2RQMapping文件将关系型数据库中的数据换成RDF格式。D2RQEngine并没有将关系型数据库发布成真实的RDF数据,而是使用D2RQMapping文件将其映射成虚拟的RDF格式。该文件的作用是在访问关系型数据时将RDF数据的查询语言SPARQL转换为RDB数据的查询语言SQL,并将SQL查询结果转换为RDF三元组或者SPARQL查询结果。D2RQEngine建立在Jena(Jena是一个创建SemanticWeb应用的Java平台,它提供了基于RDF,SPARQL等的编程环境)的接口之上。
D2RQMapping语言的主要功能是定义将关系型数据转换成RDF格式的Mapping规则。
2.2半结构化数据处理
半结构化数据是指那些具有一定的数据结构,但需要进一步提取整理的数据。比如百科的数据,网页中的数据等。对于这类数据,主要采用包装器的方式进行处理。
包装器是一个能够将数据从HTML网页中抽取出来,并且将它们还原为结构化的数据的软件程序。
对于有规律的页面,可使用正则表达式写出XPath和CSS选择器表达式来提取网页中的元素。但通用性很差,因此可通过包装器归纳这种基于有监督学习的方法,自动从标注好的训练样例集合中学习数据抽取规则,用于从其他相同标记或相同网页模板抽取目标数据。
2.3非结构化数据处理
对于非结构化的文本数据,抽取的知识包括实体、关系、属性,对应的研究问题就有三个。
二是关系抽取,也就是实体和实体之间的关系,也是文本中的重要知识,需要采用一定的技术手段将关系信息提取出来。
三是属性抽取,也就是实体的属性信息,和关系比较类似,关系反映实体的外部联系,属性体现实体的内部特征。
非结构化数据的抽取问题,研究的人比较多,对于具体的语料环境,采取的技术也不尽相同。比如关系抽取,有的人采用深度学习的方法,将两个实体,它们的关系,以及出处的句子作为训练数据,训练出一个模型,然后对非结构化数据进行关系抽取。这是一种关系抽取的方法。还有人用句法依存特征,来获取关系,这种方法认为,实体和实体之间的关系可以组成主谓宾结构,在一个句子中,找出主谓关系和动宾关系,其中的谓词和动词如果是一个词,那么这个词就是一个关系。比如说“小明吃了一个苹果”,主谓关系是“小明吃”,动宾关系是“吃苹果”,那么就认为“吃”是一个关系。
当然,还有其它很多方法,可以在一定程度上实现实体抽取,关系抽取和属性抽取,效果可能会有差异,这需要在实践中测试和完善。
3知识融合
知识融合就是将多个知识库中的知识进行整合,形成一个知识库的过程。在这个过程中,主要需要解决的问题就是实体对齐。不同的知识库,收集知识的侧重点不同,对于同一个实体,有知识库的可能侧重于其本身某个方面的描述,有的知识库可能侧重于描述实体与其它实体的关系,知识融合的目的就是将不同知识库对实体的描述进行整合,从而获得实体的完整描述。
比如,对于历史人物曹操的描述,在百度百科、互动百科、维基百科等不同的知识库中,描述有一些差别,曹操所属时代,百度百科为东汉,互动百科为东汉末年,维基百科为东汉末期;曹操的主要成就,百度百科为“实行屯田制,安抚流民消灭群雄,统一北方,奠定曹魏政权的基础,开创建安文学,提倡薄葬”,互动百科为“统一北方”,维基百科为“统一了东汉帝国核心地区”。
由此可以看出,不同的知识库对于同一个实体的描述有差异,所属时代的描述差别在于年代的具体程度,主要成就的差别的范围不同,等等。通过知识融合,可以将不同知识库中的知识进行互补融合,形成全面、准确、完整的实体描述。知识融合过程中,主要涉及到的工作就是实体对齐,也包括关系对齐,属性对齐,可以通过相似度计算,聚合,聚类等技术来实现。
4数据模型构建
5知识推理
知识推理是根据已有的数据模型和数据,依据推理规则,获取新的知识或者结论,新的知识或结论应该是满足语义的。知识推理,依据描述逻辑系统实现。描述逻辑(DeionLogic)是基于对象的知识表示的形式化,也叫概念表示语言或术语逻辑,是一阶谓词逻辑的一个可判定子集。
一个描述逻辑系统由四个基本部分组成:最基本的元素:概念、关系、个体;TBox术语集:概念术语的公理集合;Abox断言集:个体的断言集合;TBox和ABox上的推理机制。
描述逻辑涉及到的内容也比较多,此处举几个例子,比如实体的分类包含关系,一个电脑椅是椅子,椅子是家具,可以说,一个电脑椅是家具。常识规则的推理,一个男人的孩子是A,一个女人的孩子是A,可以知道,这个男人和女人是配偶。
6质量评估
质量评估就是对最后的结果数据进行评估,将合格的数据放入知识图谱中。质量评估的方法,根据所构建的知识图谱的不同,对数据要求的差异而有所差别。总的目的是要获得合乎要求的知识图谱数据,要求的标准根据具体情况确定。比如对于公共领域的知识图谱,知识的获取采用了众包的方法,对于同一个知识点,可能会有很多人来完成,如果这个知识点只有一个答案,可以采用的一种策略是,将多人的标注结果进行比较,取投票多的结果作为最终的结果。当然,这是不严谨的,因为真理往往掌握在少数人的手里,特别是针对一些行业的知识图谱,表现尤为突出。行业内的一条知识,可能只有行业专家能够给出权威正确的答案,如果让大众投票来决定,可能会得到一条错误的知识。所以,针对行业知识图谱,可能会采用不同于公共知识图谱的策略,来进行知识的质量评估。
1、人机对话体系结构
2、问答产品知识结构
3、典型的智能问答产品
4、智能问答的关键技术
5、基于知识图谱的智能问答
问答类产品的主要目标是输入问题,获得答案。从问题的类型上可以分为事实类/非事实类,不同类型的处理方式以及技术难度都存在一定差异。在问答形式上可以分为单轮问答、多轮以及聊天式的情感互动,其中单轮问答相对简单,多轮问答以及情感互动还处于较为初级的发展阶段。对于问答系统的实现方式也有多种,对技术需求也不尽相同,要根据具体的需求具体规划。
Watson系统是典型的问答系统,其由IBM研究院在2011年推出,参加美国知识竞赛Jeopardy!(危险边缘)并挑落人类冠军而名声大躁。相比AlphaGo或早年IBM研制的战胜卡斯帕罗夫的国际象棋人工智能程序深蓝,Watson具有更清晰的商业路径。IBM斥巨资成立医疗事业部,并与MDAnderson等知名医疗机构合作推出面对特定病种(尤其是癌症)的辅助诊断AI医生。与此同时,RossIntelligence依托Watson认知计算平台推出了法律咨询系统。回到技术层面,Watson所用到的知识库是一个广义的知识库,不仅包含各种结构化知识、也包含各种文本语料和语言学知识。整个流程称为DeepQA,包含问题分解、假设生成、基于证据的融合排序等关键步骤。这里的DeepQA并非指通过深度学习(DeepLearning)技术来提供问答。事实上,Watson诞生于深度学习大热之前,这里的Deep是指通过深度解析(DeepParsing)来实现对问句的真正理解。
搜狗汪仔机器人是搜狗公司打造的问答机器人,搜狗汪仔能听、会说、会看、会思考,代表了人工智能领域的前沿技术。搜狗汪仔背后依靠的是基于人工智能技术的搜狗立知问答系统。立知问答系统是搜狗搜索研发的面向未来的搜索技术,在理解用户的问题或信息需求后,利用海量网络信息及大规模知识库,直接给出答案,方便快捷,适用于多种交互方式。其背后蕴含语义分析、问题理解、信息抽取、知识图谱、信息检索、深度学习等众多技术。
目前国际上的智能问答技术主要采用检索技术、知识网络、深度学习这三大技术,当然,对于以上三种技术最后都需要应用在自然语言处理领域才能最终实现所需的功能。
问答系统可分为面向任务、面向知识和面向聊天三类,从关键技术上分,还可以把其分成基于搜索技术的问答系统、基于协同的问答系统、基于知识库的问答系统。
面向任务的问答系统是一种闭域应用,通常使用基于规则的或基于模板的方法,并采用对话状态跟踪技术。在帮助服务中所使用的槽位填充方法,就是一种基于模板的方法。
面向知识的问答系统可用于闭域和开放域,通常使用以数据为驱动的信息检索模型。该类方法基于从问答知识库中查找与提问问题最匹配的知识。一份最新的研究工作尝试使用基于神经网络的方法实现问题间的匹配。最常用的一种方法是基于知识图谱与信息检索相结合的方法,检索知识图谱可给出高准确率的问答,并以信息检索为补充。
基于聊天的问答系统常用于开放域,使用方法包括信息检索和生成模型。
对于知识图谱的构建需要从两个角度来进行抽象,一个是实体维度的挖掘,一个是短句维度进行挖掘,通过获取各种网上积累的大量数据,通过主题模型的方式进行挖掘、标注与清洗,再通过预设定好的关系进行实体之间关系的定义最终形成知识图谱,下表为知识图谱作为问答匹配的优缺点对比:
基于知识图谱的问答匹配
优点
缺点
对于知识图谱处理问答匹配的流程一般可以总结为如下图,主要包括8个过程:
基于知识图谱的智能问答,以上只是一种简单的实现方式,实际的情况远比这个要复杂,如果要达到比较好的智能问答效果,需要在语料库、技术架构、算法、业务理解等方面下功夫。这里借用电信业务场景的智能问答机器人的架构,简单展示一下具体的逻辑架构。