目录
选择题知识点
此部分总结了一些选择题考点,部分名词解释如下。
- W3C
万维网联盟(World Wide Web Consortium)。
- OWL
网络本体语言(Web Ontology Language)。是W3C开发的一种网络本体语言,用于对本体进行语义描述。
- 语义网 Semantic Web
由 Tim Berners Lee 在1998年提出,是一种智能网络,它不但能够理解词语和概念,而且还能够理解它们之间的逻辑关系,可以使交流变得更有效率和价值。
- IsA(is-a) 和 has-A 关系
is-a 即描述一个实体是什么,体现类之间的继承关系,例如 Apple is a company 中 Apple 继承自 company。
has-a 即描述一个实体有什么,体现类之间的包含关系,例如 Nate has a nose 中 Nate 包含 nose 这个类。
- 一阶谓词逻辑 First Order Logic
一阶谓词逻辑是公理系统的标准形式逻辑,表示为由符号组成的项或公式。主要有如下符号。
量化符号 ∀ \forall ∀和 ∃ \exists ∃
逻辑联结词:析取(逻辑或) ∨ \lor ∨、合取(逻辑与) ∧ \land ∧、否定(逻辑非) ¬ \lnot ¬、条件 → \to →、双条件 ↔ \leftrightarrow ↔
等式符号 = = =
断言符号:例如一元断言符号 图灵奖得主(Tim Berners Lee) 表示 Tim 是图灵奖得主
此外,变数(相当于变量的意思)和函数 也是符号,有限次变数和函数用于组成项。
量化符号、逻辑联结词、等式符号都属于逻辑符号,用逻辑符号或非逻辑符号可将变数合成为公式。
变数也属于逻辑符号,函数也属于非逻辑符号。
注意,量化符号、变数和公式的组合可实现量化,例如 ∀ x φ \forall x\varphi ∀xφ,表示对任意x, φ \varphi φ为真。支持量化,也是一阶谓词逻辑区别于命题逻辑的特点。
- 霍恩子句和霍恩逻辑
霍恩子句是最多带有一个肯定文字的析取式。例如 ¬ p 1 ∨ . . . ∨ ¬ p n ∨ q \lnot p_1\lor ... \lor \lnot p_n \lor q ¬p1∨...∨¬pn∨q是一个霍恩子句,可等价地写成 ( p 1 ∧ . . . ∧ p n ) → q (p_1\land...\land p_n) \to q (p1∧...∧pn)→q。
霍恩逻辑是一阶逻辑的子集,基于霍恩逻辑的知识库可看作霍恩规则的集合。一个霍恩规则由原子公式构成: B 1 ∧ . . . ∧ B n → H B_1\land...\land B_n \to H B1∧...∧Bn→H。其中 H H H是头原子公式, B 1 , . . . , B n B_1,..., B_n B1,...,Bn是体原子公式。事实( → X \to X →X)是霍恩规则的特例。
- 语义网络
语义网络又称联想网络,在形式上是一个带标识的有向图。图中“节点”用以表示各种事物、概念等,每个节点可以带有若干属性。节点与节点间的“连接弧”(成为联想弧)用以表示各种语义联系、动作。语义网络的单元是三元组,即(节点1,联想弧,节点2)。
- 描述逻辑
描述逻辑是一阶逻辑的一个可判定子集,可看成一阶逻辑对语义网络和框架进行形式化后的产物,具有很强的表达能力和可判定性。被选为W3C互联网本体语言(OWL)的理论基础。
- 图嵌入
将图节点或子图以向量的形式表达,供给现有的机器学习模型直接使用(索引、分类、回归和聚类等)。
- 知识图谱嵌入
将知识图谱中的实体和关系映射到连续的向量空间,并包含一些语义层面的信息,可以使得在下游任务(问答任务、关系抽取等)中更加方便地操作知识图谱。
- 命令式编程语言和声明式编程语言
命令式编程要求以明确的步骤实现算法,例如C语言等。声明式编程只需声明最终的目的(查什么),而不要求实现具体步骤(怎么查),例如SQL等。
- OBDA
基于本体的数据访问技术(ontology-based data access,OBDA)可以将现有的数据库虚拟化为知识图谱。虚拟化的知识图谱通过提供一种高层次的查询接口,使得最终用户不需关心底层的数据存储和组织。此技术的核心为查询重写,可以重用现有的数据库的功能。
- 逻辑编程
逻辑编程是一族基于规则的知识表示语言,与本体推理相比,规则推理有更大的灵活性,可以根据特定的场景定制规则,以实现用户自定义的推理过程。
- Datalog
Datalog 语言是一种面向知识库和数据库设计的逻辑语言,便于撰写规则,实现推理。
- 产生式系统
产生式系统是一种前向推理系统,可以按照一定机制执行规则并达到某些目标。一个产生式系统由事实集合、产生式集合和推理引擎三部分组成。高效的模式匹配算法是产生式规则引擎的核心,目前最流行的算法是 Rete 算法。
1.早期的知识库项目
- Cyc
Cyc(发音为syke),是持续时间最久、影响范围最广、争议也较多的知识库项目,被誉为是“人工智能历史上最有争议的项目”之一。其主要特点是基于形式化的知识表示方法刻画知识,因此可以支持复杂的推理。缺点有只能手动添加知识到系统内,知识的拓展性和灵活性不够等。
- WordNet
WordNet 是最著名的词典知识库,主要定义名词、动词、形容词和副词之间的语义关系。例如名词之间的上下位关系、动词之间的蕴含关系等。
- ConceptNet
ConceptNet 采用非形式化、更加接近自然语言的描述,更侧重词与词之间的关系,但比WordNet包含的关系类型多。
2. 互联网时代的知识图谱
- FreeBase
FreeBase 是一个开放共享的、协同构建的大规模链接数据库,主要采用社区成员协作方式构建。FreeBase 基于 RDF 三元组模型,底层采用图数据库进行存储。此外,其一个特点是不对顶层本体做严格控制,用户可以创建与编辑类和关系的定义。后被谷歌收购后,将数据和API服务迁移至 Wikidata 并关闭。
- DBpedia
意指数据库版本的 Wikipedia,是早期的语义网项目。其特点是采用了一个较为严格的本体,包含人、地点、音乐等类的定义。此外 DBpedia 还与 FreeBase 等多个数据集建立了数据链接。DBpedia 采用 RDF 语义数据模型。
- Schema.org
Schema.org 是由 Bing、Google、Yahoo 和 Yandex 等搜索引擎公司共同支持的语义网项目。Schema.org 支持各个网站采用语义标签(Semantic Markup)的方式将语义化的链接数据嵌入到网页中,搜索引擎自动收集和归集这些数据快速地从网页中抽取语义化的数据。其本质是采用互联网众包的方式生成和收集高质量的知识图谱数据。
- Wikidata
Wikidata 的目标是构建一个免费开放、多语言、任何人和机器都可以编辑修改的大规模链接知识库。其继承了 Wikipedia 的众包协作机制,但与 Wikipedia 不同的是,支持以三元组为基础的知识条目(Item)的自由编辑。
- BabelNet
BabelNet 是类似于 WordNet 的多语言词典知识库,目标是解决 WordNet 在非英语语种中数据缺乏的问题,采用的方法是将 WordNet 和 Wikipedia 集成,利用 Wikipedia 中的多语言链接和机器翻译技术。
- NELL
NELL(Never-Ending Language Learner)主要采用互联网挖掘的方法从 Web 中自动抽取三元组知识。其基本理念是给定一个初始的本体和少量样本,让机器自动在 Web 中学习。
- Yago
Yago 将 WordNet 的词汇定义和 Wikipedia 的分类体系进行了 融合集成,使其具有更加丰富的实体分类体系。此外还为很多知识条目增加了时间和空间维度的属性描述。Yago 是 IBM Watson 的后端知识库之一。
- Microsoft ConceptGraph
Microsoft ConceptGraph 是以概念层次体系为中心的知识图谱,以概念定义和概念之间的 IsA 关系为主。ConceptGraph 可用于短文本理解和语义消歧。
- LOD
LOD(Linked Open Data)的初衷是为了实现 Tim Berners Lee 在2006年发表的有关链接数据(Linked Data)作为语义网的一种实现的设想,遵循了 Tim 提出的进行数据链接的四个规则:(1)使用 URI 标识万物;(2)使用 HTTP URI,以便用户查看;(3)使用 RDF 和 SPARQL 标准;(4)为事物添加与其他事物的 URI 链接,建立数据关联。
3.机器推理的主要方法
- 基于规则的推理
通过定义或学习知识中存在的规则进行推理。根据规则的真值类型可分为硬逻辑规则和软逻辑规则,硬逻辑规则中的每条规则的真值都为1,软逻辑规则的真值为区间在0到1之间的概率。人工编写的规则多为硬逻辑规则,规则挖掘系统的结果多为软逻辑规则。
基于规则的推理主要优点是,接近人的推理过程,推理结论可解释,对人友好。
- 基于分布式表示学习的推理
分布式表示学习的核心是将知识图谱映射到连续的向量空间中,并为知识图谱中的元素学习分布式表示为低维稠密的向量或矩阵。
- 基于神经网络的推理
通过神经网络的设计模拟知识图谱推理,网络结构的设计多样,能够满足不同的推理需求。
- 混合推理
混合推理一般结合了规则、表示学习和神经网络,能够同时提升推理结果的精确性和可解释性。
4.一阶谓词逻辑优点
- 结构性。
能把事物的属性以及事物间的各种语义联想显式地表示出来。
- 严密性。
有形式化的语法和语义,以及相关的推理规则。
- 可实现性。
可以转换为计算机内部形式,以便用算法实现。
5. 霍恩逻辑的优点
- 结构性。
能把事物的属性以及事物间的各种语义联想显式地表示出来。
- 严密性。
有形式化的语法和语义,以及相关的推理规则。
- 易实现性。
可判定,可以转换为计算机内部形式,以便用算法实现。
6.语义网络的优点
- 联想性。
它最初是作为人类联想记忆模型提出来的。
- 易用性。
直观地把事物的属性及其语义联系表示出来,便于理解,自然语言与语义网络的转换比较容易实现,故语义网络表示法在自然语言理解系统中的应用最为广泛。
- 结构性
语义网络是一种结构化的知识表示方法,对数据子图特别有效。它能把事物的属性以及事物间的各种语义联想显式地表示出来。
7. 描述逻辑的优点
- 结构性
能把事物的属性以及事物间的各种语义联想显式地表示出来。
- 严密性。
有形式化的语法和语义,以及相关的推理规则。
- 多样性
具有大量可判定的拓展,以满足不同应用场景的需求。
- 易实现性。
可判定,可以转换为计算机内部形式,以便用算法实现。
8.互联网时代语义网知识表示的新的标准语言
- RDF
RDF是W3C和RDF工作组制定的关于知识图谱的国际标准,是W3C一系列语义互联网标准的核心。在RDF中,知识总是以三元组的形式出现,每一份知识可被分解为如下形式:(subject, predicate, object),即主谓宾,例如(CSDN, 用户, 波啵菠波)。此外,RDF采用开放世界假设,RDF图谱里的知识有可能是不完备的,且RDF图谱可以被分布式存储和自动合并。
- RDFS(RDF Schema,RDF 模式)
RDF用到了类以及属性来描述个体之间的关系。RDF Schema(RDFS)提供了对类和属性的简单描述,从而给RDF提供词汇建模的语言。例如 rdf:type 用于指定个体的类,rdf:subClassOf 用于指定类的父类,rdf:subPropertyOf 用于指定属性的父属性,rdf:domain 用于指定属性的定义域,rdf:range 用于指定属性的值域。
- OWL(以及OWL2)
RDF(S) 可以表示一些简单的语义,但在更复杂的情况下,例如类、个体、属性的等价性等,需要用表达能力更强的本体语言OWL。
9.OWL1.0的子语言
- OWL Lite
用于提供给那些只需要一个分类层次和简单的属性约束的用户。
- OWL DL
在OWL Lite基础上包括了OWL语言的所有约束。该语言上的逻辑蕴含是可判定的。
- OWL Full
它允许在预定义的(RDF、OWL)词汇表上增加词汇,从而任何推理软件均不能支持OWL Full的所有feature。OWL Full语言上的逻辑蕴含通常是不可判定的。
10.典型的开放域知识图谱
- Freebase
Freebase 的知识表示框架主要包含如下几个要素:对象-Object、事实-Facts、类型-Types、属性-Properties。
- Wikidata
Wikidata 的知识表示框架主要包含如下要素:页面-Pages、实体-Entities、条目-Items、属性-Properties、陈述-Statements、修饰-Qualifiers、引用-Reference 等。
- ConceptNet5
ConceptNet5 的知识表示框架主要包含如下要素:概念-Concepts、词-Words、短语-Phrases、断言-Assertions、关系-Relations、边-Edges。
11.知识图谱嵌入的主要方法
- 转移距离模型
转移距离模型(Translational Distance Model)的主要思想是将衡量向量化后的知识图谱中三元组的合理性问题,转化为衡量头实体和尾实体的距离问题。受词向量的启发,由词与词在向量空间的语义层面关系,可以拓展到知识图谱中头实体和尾实体在向量空间的关系。可理解为在一个知识图谱中,某一个三元组成立,则它的实体和关系需要满足 head+realation ≈ \approx ≈tail。
- 语义匹配模型
语义匹配模型(Semantic Matching Model)更注重挖掘向量化后的实体和关系的潜在语义,该方向的模型主要是RESCAL以及它的延伸模型。RESCAL模型的核心思想是将整个知识图谱编码为一个三维张量,由这个张量分解出一个核心张量和一个因子矩阵,核心张量的每个二维矩阵切片代表一种关系,因子矩阵中的每一行代表一个实体。其得分函数可写成:
f r ( h , t ) = h T M r t = ∑ i = 0 d − 1 ∑ j = 0 d − 1 [ M r ] i j [ h ] i [ t ] j f_r(h,t)=h^TM_rt=\sum_{i=0}^{d-1}{\sum_{j=0}^{d-1}{{[M_r]}_{ij}{[h]}_i{[t]}_j}} fr(h,t)=hTMrt=i=0∑d−1j=0∑d−1[Mr]ij[h]i[t]j
- 考虑附加信息的模型
除了依靠知识库中的三元组构造知识图谱嵌入模型外,还可以考虑例如实体类型、关系路径、文本描述、逻辑规则等额外信息进行提升。
12.知识图谱查询语言
- SPARQL
SPARQL是W3C制定的RDF图数据的标准查询语言,从语法上借鉴了SQL,同样属于声明式查询语言。
- Cypher
Cypher 最初是图数据库 Neo4j 中实现的属性图数据查询语言,也是一种声明式查询语言。目前 Cypher 的发展仍由 Neo4j 主导,但很多图数据库产品已经实现了 Cypher。
- Gremlin
Gremlin 是 Apache TinkerPop 图计算框架提供的属性图查询语言。Apache TinkerPop 被设计为访问图数据库的通用API接口,其作用类似于关系数据库上的JDBC接口。Germlin 定位是图遍历语言,归为过程式语言,需要编程定义查询的具体步骤。
13.面向RDF的三元组数据库
- 开源RDF三元组数据库 RDF4J
RDF4J 目前是 Eclipse 基金会旗下的开源孵化项目,其重要特点是模块化的软件架构设计。正是由于RDF4J规范的模块化设计使其成为很多其他的RDF三元组数据库(如GraphDB)的上层标准框架。
- 开源RDF三元组数据库 RDF-3X
目前 RDF-3X 只支持 Linux 系统,源代码可从 GitHub 上下载,其最大特点在于为RDF数据精心打造的压缩物理存储方案、查询处理和查询优化技术。在逻辑存储上,首次提出全索引方案;在物理存储上,采用基于B+树的压缩方案。
- 开源RDF三元组数据库 gStore
gStore 是基于图的RDF三元组数据库,只能在 Linux 上运行。gStore 将RDF图G中每个实体节点及其邻居属性和属性值编码成一个二进制位串,将这些位串作为节点组成一张与RDF图G对应的标签图 G ∗ G^* G∗。此外 gStore 系统提出可以大幅削减 SPARQL 查询的搜索空间,加快查询速度。
- 商业RDF三元组数据库 Virtuoso
Virtuoso 虽然是可以支持多种数据模型的混合数据库管理系统,但其基础源自开发了多年的传统关系型数据库管理系统,因此具备较为完善的事务管理、并发控制和完整性机制。
- 商业RDF三元组数据库 AllegroGraph
AllegroGraph 是 Franz 公司开发的RDF三元组数据库,对语义推理功能具有较为完善的支持。
- 商业RDF三元组数据库 GraphDB
GraphDB 是一直支持 W3C 语义 Web 标准的主流产品,目前有社区免费版、标准版和企业版,其中企业版支持多台机器的集群分布式部署。
- 商业RDF三元组数据库 Blazegraph
Blazegraph 现在定位为全面支持 Blueprints 标准的图数据库。
- 商业RDF三元组数据库 Stardog
Stardog 支持RDF图数据模型、SPARQL查询语言、属性图模型、Gremlin 图遍历语言、OWL2标准、用户自定义的推理与数据分析规则、虚拟图、地理空间查询以及多种编程语言与网络接口支持。
14.原生图数据库
- 最流行的图数据库 Neo4j
Neo4j 属于属性图模型,其存储管理层为属性图结构中的节点、节点属性、边、边属性等设计了专门的存储方案,这使得 Neo4j 在存储层对于图数据的存取效率天生就由于关系数据库。同时,Neo4j 还具备 OLTP 数据库必需的 ACID 事务处理功能。
- 分布式图数据库 JanusGraph
JanusGraph 借助第三方分布式索引库实现各种类型数据的快速检索功能,包括地理信息数据、数值数据和全文搜索。
- 图数据库 OrientDB
OrientDB 对数据模式的支持相对灵活,可以管理无模式数据,也可以像关系型数据库一样定义完整的模式,还可以适应介于两者之间的混合模式数据。查询语言方面,既支持导航式查询(Gremlin),也实现了声明式的模式匹配(类似于Cypher)。从数据管理角度,还支持完整的事务处理ACID特性、基于多主机复制模式的分布式部署、对于多种操作系统的支持和数据库安全性支持等。
- 图数据库 Cayley
Cayley 使用Go语言开发,可以作为Go类库使用,对外提供REST API,具有内置的查询编辑器和可视化界面,支持多种查询语言,支持多种存储后端(主流的键值数据库、NoSQL数据库、关系型数据库),具有良好的模块化设计,易于拓展,对新语言和存储后端有良好的支持。
15.知识抽取相关竞赛
- 消息理解会议(Message Understanding Conference,MUC)
MUC的目的是鼓励和开发更好的信息抽取方法。MUC不仅仅是学术会议,更重要的是在于对信息抽取系统的评测,重要评价指标有召回率、精确率以及F1值。
- 自动内容抽取(Automatic Content Extraction,ACE)
ACE评测涉及英语、阿拉伯语和汉语三种语言,主要包括以下任务:(1)实体检测和跟踪;(2)关系检测与表征;(3)事件检测与表征。
- 知识库填充(Knowledge Base Population,KBP)
KBP目标是开发和评估从非结构化文本中获取知识填充知识库的技术,KBP评测覆盖了知识库填充的独立子任务以及被称为“冷启动”的端到端知识库构建任务。独立子任务主要包括:(1)实体发现与链接;(2)槽填充;(3)事件跟踪;(4)信念与情感。端到端冷启动知识库构建任务基于给定的知识库模式从文本中获取对应信息。
- 语义评测(Semantic Evaluation,SemEval)
SemEval 早期评测比较关注词义消歧问题,后来出现了更多文本语义理解的任务,包括语义角色标注、情感分析、跨语言语义分析等。
16.基于深度学习的流水线关系抽取方法
- CR-CNN 模型
CR-CNN 模型首先将句子中的词映射到长度为 d w d_w dw的低纬向量,每个词的向量包含了词向量和位置向量两部分。之后经过卷积、池化操作最终得到整个句子的向量表示 d x d_x dx。
- Attention CNNs 模型
将注意力机制引入到神经网络中,对反映实体关系更重要的词语赋予更大的权重。
- Attention BLSTM 模型
包含两个 LSTM 网络,从正向、反向处理输入的句子,从而得到每个词考虑左边和右边序列背景的状态向量。
17.OBDA系统
- D2RQ
核心是 D2R Server,使用可定制的 D2RQ 映射文件将关系数据库内容映射为RDF格式,并将 Web 端请求重写为 SQL 查询。
- Mastro
Mastro 是基于 Java 语言开发的 OBDA 系统,系统中的本体使用属于 DL-Lite 轻量级描述逻辑系列的语言定义,系统核心包含一个推理机,提供本体分类、一致性检查、推理和查询问答功能。
- Ultrawrap
Ultrawrap 是一个商业化系统,主要包含编译器和服务器两部分。编译器负责建立数据库到 RDF 和 OWL 的映射,服务器负责在数据库上执行 SPARQL 查询。
- Morph-RDB
遵循 R2RML 规范,支持两种操作模式:数据升级(从关系数据库中生成RDF实例)和查询转换(SPARQL到SQL)
- Ontop
是将关系型数据库作为虚拟的RDF图进行SPARQL查询的基于 Apache 许可证的开源工具。系统结构包含四层:输入层、Ontop核心层、API层、应用层。
18.实体关系发现框架
- LIMES
由德国莱比锡大学开发的 Web of Data 的链接发现框架。核心是利用度量空间的三角不等式特征来过滤掉大量不满足映射条件的实例对,使链接发现更为高效。
- Dedupe
基于主动学习的方法,只需用户标注框架在计算过程选择的少量数据, 即可有效地训练计算方法,并通过聚类完成匹配。
- SILK
核心是关联发现引擎,从数据源中获取数据,并对其进行 Blocking 处理,进行比较和发现关联,最后过滤结果并输出。
- RIMOM
清华大学研发。
- Falcon-AO
南京大学研发。
- Lily
东南大学研发。
19.常用本体推理工具
- FaCT++
支持本体语言为 OWL DL,编程语言为 C++,有 Java 版名为 Jfact,算法为 tableau-based。
- Racer
支持本体语言为 OWL DL,编程语言为 Common Lisp,算法为 tableau-based。
- Pellet
支持本体语言为 OWL DL,编程语言为 Java,算法为 tableau-based。
- HermiT
支持本体语言为 OWL 2 Profiles,编程语言为 Java,算法为 hypertableaux,比其他推理机更加高效。
20.与Datalog密切相关的编程语言
- SWRL
SWRL(Semantic Web Rule Language)是完全基于 Datalog 的规则语言。
- OWL RL
OWL RL 是 W3C 定义的 OWL 2 的一个子语言,其设计目标为可以直接转换成 Datalog 程序。
- RDFS(RDF Schema)
RDFS 是 W3C 定义的一个基于 RDF 的轻量级的本体语言,其表达能力大体是 OWL RL 的一个子集。
21.基于产生式规则的系统
- Drools
Drools 是一个商用规则管理系统,提供了一个规则推理引擎,核心算法是基于 Rete 算法的改进,提供规则定义语言,支持嵌入 Java 代码。
- Jena
Jena 是一个用于构建语义网应用的 Java 框架,提供了处理 RDF、RDFS、OWL 数据的接口,还提供了一个规则引擎。
- GraphDB
GraphDB(原OWLIM)是一个可拓展的语义数据库存储系统(基于RDF4J),其功能包含三元组存储、推理引擎、查询引擎,支持 RDFS、OWL DLP、OWL Horst、OWL 2 RL 等多种语言。