知识图谱和语义网概述
文章目录
- 知识图谱和语义网概述
-
- 一、知识图谱
-
- 1.1 知识图谱的发展
- 1.2 知识图谱与深度学习区别
- 1.3、知识图谱相关技术
- 1.4 经典的知识图谱
- 1.5 知识图谱的表示
- 二、语义网
-
- 2.1 语义网的设计方案
- 2.2 语义网相关技术
- 2.3 语义网执行过程
- 2.4 语义网的结构
人工智能的发展:
- 计算智能:规则明确的数据快速处理智能
- 感知智能:视觉、听觉等感知的智能,人脸识别、语音识别等,现在常见的AI
- 认知智能:理解语言、逻辑、知识的智能,机器在知识量上超越人类,推理上不如人类
一、知识图谱
1.1 知识图谱的发展
知识图谱的发展历程:
在1960年,提出了语义网络(Semantic Networks),主要用于自言语言理解领域。它是一种用图来表示知识的结构化方式。在一个语义网络中,信息被表达为一组结点,结点之间的边用于表示结点间的关系。
1980年代出现了本体论(Ontology),用来刻画知识。本体主要指领域共享知识的描述方式,是语义Web、语义搜索、知识工程等的基础。在1989年Time Berners-Lee发明了万维网,实现了文本间的链接。
1998年提出语义网(THe Semantic Web),从超文本链接到语义链接。语义网是为了使得网络上的数据变得机器可读而提出的一个通用框架。Semantic Web=Data+Link。
2006年Tim突出强调语义网的本质是要建立开放数据之间的链接,即链接数据(LInked Data)。
Google在2012年提出了对搜索引擎的知识图谱称呼。现在知识图谱常用于指代类似Google的知识库,可用于搜索、问答、决策、AI推理等方面。
1.2 知识图谱与深度学习区别
深度学习 | 知识图谱 | |
---|---|---|
智能原理 | 逻辑层隐性模拟 | 思考层显性模拟 |
场景 | 感知智能:语音、图像、视频、文本 | 搜索、人机交互 |
特点 | 大量训练数据、高算力、难解释 | 大量知识、可解释、可理解 |
知识图谱可以从大量的实例中,抽取和提炼出精炼的语义信息。
相比于传统的数据库系统,知识图谱由传统的知识库发展而来,包含语义信息,可以进行一定的推理,可扩展性较好。
1.3、知识图谱相关技术
在最底层有大量的文本、结构化数据库、多媒体文件等数据来源。通过知识抽取、知识融合、知识众包等技术,获取需要的数据,而后通过知识表示和知识推理、知识链接等将知识规范有序的组织在一起并存储起来。最终用于知识问答、语义搜索、可视化等方面。
- 知识表示:利用计算机符号来表示人脑中的知识,如何通过符号之间的运算模拟人脑推理。其从最开始的基于数理逻辑的知识表示发展为基于向量空间学习的分布式表示。
- 输入:领域以及更具体的应用场景
- 输出:领域知识本体:领域实体类别体系;实体类别的属性;类别之间的语义关系;语义关系之间的关系
- 主要技术:Ontology Engineering
- 知识抽取:目标是抽取KR用的三元组、多元关系、模态知识等。具体流程包括文本预处理、词法语法处理、命名实体识别、关系抽取。
- 输入: 领域知识本体;海量数据——文本、垂直站点、百科
- 输出:实例知识。包括实体集合,实体关系/属性
- 主要技术:信息抽取、文本挖掘
- 知识来源:结构化数据(infobox)、半结构化数据(表格型数据)、非结构化数据(文本,重点)。
- 模块:实体识别,实体链接,关系(属性)抽取,事件抽取,事件关系判别等
- 知识存储和查询
- 输入:大规模知识图谱
- 输出:知识库存储结构,查询服务
- 主要技术:知识表示、知识查询语言、存储/检索引擎
- 查询语言:SPARQL/Cypher
- 知识推理:采用推理的手段发现已有知识中隐含的知识(知识图谱补全,关系/边预测)基于描述逻辑、基于规则挖掘、基于概率逻辑、基于表示学习与神经网络。
- 输入:大规模知识图谱
- 输出:隐含知识
- 主要技术:基于逻辑规则的推理;基于表示学习的推理
- 知识融合:从不同数据集找出一个实体的描述记录。
- 输入:抽取出来的知识;知识本体;现有知识库
- 输出:统一知识库;知识置信度
- 关键技术:Ontology Matching 、Entity Linking
1.4 经典的知识图谱
- Cyc:https://www.cyc.com/1984年由Douglas Lenat创建,由术语Terms(概念、关系、实体的定义)和断言Assertion(事实fact和规则rule)组成。其特点是基于形式化的知识表示方法。
- WordNet:https://wordnet.princeton.edu/1985年由普林斯顿大学开发,主要用于词义消歧。
- ConceptNet:http://conceptnet.io/起源于MIT的OMCS项目,以三元组形式的关系型知识构成,依靠互联网众包、专家创建和游戏三种方法构建。
- Freebase:https://developers.google.com/freebase/由Metaweb开发,2007年公开运营。
- Wikidata:https://www.wikidata.org/wiki/Wikidata:Main_Page(还要翻墙)特点是人人可编辑。以entity为核心,包括label、description、aliases等属性。
- DBPedia:https://wiki.dbpedia.org/旨在作为数据库版本的Wikipedia,从Wikipedia抽取出来的链接数据集,使用RDF语义模型。
- YAGO:https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/yago/#c10444由马普研究所研制的链接数据库,将WordNet的词汇定义和Wikipedia的分类体系融合,并增加了时间和空间维度的描述。
- NELL:http://rtw.ml.cmu.edu/rtw/CMU开发,采用互联网挖掘,从Web抽取三元组。
- ZhiShi.me:http://zhishi.me/以百度、互动百科、维基-ch为基础构建的中文知识图谱。
- BabelNet:http://babelnet.org/类似于WordNet,旨在解决WordNet非英语语种中的数据缺乏。
1.5 知识图谱的表示
知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Object)。
在知识图谱中,用RDF形式化地表示这种三元关系。RDF(Resource Description Framework),即资源描述框架,是W3C制定的,用于描述实体/资源的标准数据模型。RDF图中一共有三种类型,International Resource Identifiers(IRIs),blank nodes和literals。IRI我是URI及其泛化和推广,唯一定义一个实体/资源。literal是字面量,带有数据类型的纯文本。blank node可以视为没有IRI和literal的资源。
下面是SPO每个部分的类型约束:
- Subject可以是IRI或blank node。
- Predicate是IRI。
- Object三种类型都可以。
二、语义网
语义网(Semantic Web)由万维网联盟的蒂姆·伯纳斯·李(Tim Berners-Lee)在1998年提出,目的是使计算机更能解决万维网——选择、组合、聚集等智能工作
2.1 语义网的设计方案
- 结构化/半结构化的数据以标准的格式呈现在万维网上
- 建立数据集的同时构建个体数据的元素和关系
- 利用形式化模型描述隐含语义,便于机器处理
2.2 语义网相关技术
-
形式化模型:资源描述框架(Resource Description,RDF)作为对象及其关系的数据模型
-
万维网标识符:统一资源标识符(Uniform Resource Identifier,URL)标识数据项及其关系
-
本体(ontology)作为模型隐含语义的形式化表达:RDF、OWL。
-
显示元数据:基于数据的数据,捕获数据的含义。HTML扩展为XML,定义信息的结构;在扩展为RDF,声明信息片段。
-
本体:术语+术语间的联系;提供了领域的共享理解。本体有助于网站的组织和导航;提高搜索的准确性;有效利用一般化/特殊化信息。
-
逻辑:提供形式语言表达知识,提供广泛理解的形式语义。逻辑用来揭示隐式给定的本体知识,被智能体用来决策和选择动作。逻辑需要可解释和可追溯。
2.3 语义网执行过程
- 利用元数据从资源识别和提取信息
- 利用本体辅助网格搜索,并解释;
- 利用逻辑处理信息,并进行推导
2.4 语义网的结构
- 向下兼容性:如OWL应该兼容RDF
- 向上部分理解:RDF能部分理解OWL
Unicode和URI层:Unicode定义字符集,URI是统一资源标识符。所有事物都称为资源,每一个资源都用唯一的URI标识。
XML+NS+xmIschema层:基础描述语言层。XML是语义网层次模型的基础;命名空间(Name Space)提供上下文机制,避免命名冲突。XMLSchema提供了语法结构上的约束,保证XML文档的完整性与有效性。
RDF/RDF Schema层:RDF资源描述框架(Resource Description Framework)是用于描述网上资源的语言;RDF Schema提供类型定义,丰富RDF表达。
本体层:提供网上互操作体之间关于信息的共同理解,即语义。
逻辑层:该层提供公理和推理规则,为智能推理提供基础。
证明层:用于提供认证机制,执行逻辑层产生的规则。
信任层:主要负责提供信任机制,保证资源的交互安全可靠。