一、知识表示
二、知识建模
三、知识抽取
四、知识挖掘
五、知识存储
六、知识融合
七、知识检索
八、知识推理
原创 虞大胆的叽叽喳喳
《从零构建知识图谱:技术、方法与案例》这本书初读的时候,感觉有点理论,不过结合陈华钧教授知识图谱课件学习后,感觉阐述比较完整,尤其前两章,本文是对知识图谱技术体系做一个笔记。
一、知识表示
知识图谱被认为是让人工智能系统做到“有学识”的关键,它通过诸如RDF、图形式等存储各种各样的结构化知识,成为人工智能的大脑。
对现有知识进行表示和建模是构建知识图谱的基础和准备工作,也是完整构建有价值的知识图谱的前提。
通过将知识按照一定的方法进行表示和存储,才能让计算机系统更高效地处理和利用知识。
知识表示的五种角色:
真实世界中知识的抽象替代(知识表示可以看作真实世界中知识的一种抽象替代,而且这种替代是按照计算机可以理解的方法来实现的,但会存在有损)
本体论的集合(本体论将真实世界中的概念和实体抽象成类和对象,从某种程度上达到了与知识表示相同的目的。
将真实世界抽象成类和对象的优势在于,使用者可以只关注自己想关注的重点并仅对其进行抽象和表示,避免了知识表示作为真实世界抽象替代无法做到无损的问题)
不完整的智能推理理论(仅仅存在知识的表示理论是不够的,需要配合推理方法等其他理论形成完整的推理理论)
高效计算的媒介
知识的中间体
综合以上五种知识表示的角色,我们可以将知识表示理解为对真实世界的一种不完整的抽象描述,只包含人类或计算机想要关注的方面,同时也可以把它作为计算和推理的中间件。
在计算机系统中,知识表示的方法和形式化语言有很多种,不同的表示方法会带来不同的表示效果。这就使得我们需要一种公认的描述方法来对需要表示的知识进行描述,这种方法必须足够简洁并且具有较强的可扩展性以适应现实世界知识的多样性。
描述方法有两种,分别是描述逻辑
和描述语言
。
1:描述逻辑
描述逻辑是指一系列基于逻辑知识形式化的表示方法,这些表示方法能够以一种结构化的、易于理解的方式对知识进行表示和推理。描述逻辑建立在概念和关系之上,概念即为知识图谱中的类和实体,而关系可以理解为实体之间的关系。
2:描述语言
在知识表示的过程中,除了需要逻辑来描述知识外,还需要一种合适的语言来基于规定的逻辑对知识进行描述并传递信息。根据W3C标准,通常使用资源描述框架(RDF)及网络本体语言(OWL)对知识进行描述,且两者都使用可扩展标记语言(XML)作为核心语法
在RDF中,知识以三元组的形式编码,其中每个三元组由一个主语、一个谓词(或一个属性)和一个宾语组成,可以方便地将RDF转化为自然语言。其中RDF的主语、宾语均可以是一个空白结点或用来唯一标识资源的国际化资源表示符(IRI),谓词则必须是一个IRI。
从整体的角度看,XML作为知识表示的核心语法和语言,在不同知识表示语言中都起着举足轻重的作用。在XML的基础上,RDF将知识转化为三元组的形式,并且使用IRI作为不同知识的唯一标识符,使得知识对于计算机和人而言都更具可读性。而OWL在RDF的基础上,利用类和实体的概念,将知识进一步抽象成本体的表示,使现实世界的知识得以更完整、更有层次地表示
二、知识建模
知识建模是指建立计算机可解释的知识模型的过程。这些模型可以是一些通用领域的知识模型,也可以是对于某种产品的解释或规范。知识建模的重点在于,需要建立一个计算机可存储并且可解释的知识模型。
通常这些知识模型都使用知识表示方法来存储和表示。
知识建模分为两个步骤:
1:知识获取
通过多种数据源以及人类专家,为知识库系统获取和组织需要的知识的过程。在知识获取阶段,首先需要明确建立知识模型的目的,根据目的来确定其中的知识所覆盖的领域与范围。
2:知识进行结构化
该阶段的任务可以分为两部分:知识抽取和知识结构化的表示。知识抽取部分主要负责对非结构化或半结构化的知识(通常为自然语言或接近自然语言)进行抽取,并为后续的知识表示提供便利。
在知识抽取得到结构化数据后,我们还需要将其转换成计算机可读的形式,一种常见的做法是构建本体,并将知识保存为RDF或OWL文件。
本体的概念最早起源于哲学领域,主要研究与哲学意义上的“存在”直接相关的概念,以及与“存在”相关的关系。而在计算机和人工智能领域,一种简短的对本体的解释是,本体是一种对于现实世界概念化的规范,即知识的一种抽象模型,抽象了不同实体的特征并将其泛化成不同类和关系。
在本体的构建方面,比较经典的方法包括METHONTOLOGY法:
确定建立本体的目的,包括本体的预期用户、使用场景及本体涉及的范围等要
需要进行知识获取
需要对本体进行概念化,目的是组织和结构化外部源获取到的知识
为了使得当前构建的本体与其他本体融合与共享,需要尽可能集成已有本体
使用形式化语言实现该本体
要对构建好的本体进行评估
三、知识抽取
知识抽取是指从不同来源、不同结构的数据中,利用实体抽取、关系抽取、事件抽取等抽取知识的技术。
知识图谱的数据来源按照结构的不同,可以分为三大类,分别是结构化数据、半结构化数据和非结构化数据,不同类型的数据,知识抽取方法也不同。
针对半结构化数据,包装器是一类能够将数据从HTML网页中抽取出来,并将其还原为结构化数据的技术,实现方式主要有三种,分别是手工方法、包装器归纳和自动抽取。
包装器归纳是一种监督学习方法,可以从已标注的数据集中学习抽取规则,应用于具有相同标记或者相同网页模板的数据抽取。自动抽取方法是先对一批网页进行聚类,得到具有相似结构的若干个聚类群,再针对每个群分别训练一个包装器,其他的待抽取网页经过包装器后会输出结构化数据。
对于最终的结构化数据,更多是从文本这类非结构化数据中抽取知识,实现该任务的技术被统称为信息抽取。
信息抽取
与知识抽取
的区别在于信息抽取专注于非结构化数据,而知识抽取面向所有类别的数据。
信息抽取主要由三个子任务构成,分别是实体抽取、关系抽取和事件抽取。
1:实体抽取
这问题可以转化为序列标注问题,可考虑的特征包括词本身的特征,如词性;词的前后缀特征,如地名中出现的行政单位“省”“市”“县”等;字本身的特征,如是否为数字。
基于规则和词典的抽取方法
基于统计学习的方法,包括隐马尔可夫模型、条件随机场模型
混合抽取方法:
机器学习模型与深度学习相结合,如LSTM-CRF模型
2:关系抽取
(1)基于规则的抽取方法
对于基于触发词的关系抽取方法,需要定义一套抽取模板,模板从待抽取的文本中总结得出,通过触发词抽取关系。
对于基于依存句法分析,首先通过依存句法分析器对句子进行预处理,包括分词、词性标注、实体抽取和依存句法分析等,然后对规则库中的规则进行解析,将依存分析得到的结果与规则进行匹配,每匹配一条规则即可得到一个三元组结构数据,再根据扩展规则对三元组结构数据进行扩展,进一步处理以得到相应语义关系。
(2)监督学习方法
监督学习方法旨在通过部分标注数据,训练一个关系抽取器。标注数据需要同时包含关系以及相关实体对。
关系分类器中需要使用大量预定义的特征,这也是这种方法最难的一个问题
(3)半监督学习方法
基于种子数据的启发式算法和远程监督学习方法。
基于种子数据的启发式算法需要预先准备一批高质量的三元组结构数据,然后以这批种子数据为基础,去匹配语料库中的文本数据,找出提及实体对和关系的候选文本集合,对候选文本进行语义分析,找出一些支持关系成立的强特征,并通过这些强特征去语料库中发现更多的实例,加入种子数据中,再通过新发现的实例挖掘新的特征,重复上述步骤,直至满足预先设定的阈值。
为了在短时间内产生大量的训练数据,可以使用远程监督方法,该方法利用已有的知识库对未知的数据进行标注。假设知识库中的两个实体存在某种关系,则远程监督方法会假设包含这两个实体的数据都描述了这种关系。但实际上,很多文本中的候选实体对并不包含该关系,此时可以通过人工构建先验知识缩小数据集范围
远程监督方法不需要用迭代的方式获得数据和特征,是一种数据集扩充的有效方法。
3:事件抽取
指的是从自然语言中抽取出用户感兴趣的事件信息,并以结构化的形式存储,目前在自动问答、自动文摘、信息检索领域应用较为广泛。
事件抽取任务包括事件发现,识别事件触发词及事件类型,事件抽取分多个阶段进行,因此可以将问题转化为多阶段的分类问题。
事件抽取任务可分为元事件抽取和主题事件抽取两类。
元事件表示一个动作的发生或者状态的改变往往由动词或者表示动作的名词或其他词性的词触发。
元事件抽取停留在句子层级,由一个动作或状态的改变而触发,而主题事件往往由多个动作或状态组成,分散在多个句子或文档中。因此,主题事件抽取的关键在于如何识别描述同一个主题的文档集合,并将其归并到一起。
四、知识挖掘
知识挖掘是指从文本或者知识库中挖掘新的实体或实体关系,并与已有的知识相关联的过程。知识挖掘分为实体链接与消歧、知识的规则挖掘两部分。
1:实体链接与消歧
实体链接是指从自然语言文本中的实体指称映射到知识库对应的实体的过程,避免出现同一个实体名包含多个实体或多个实体名指向同一个实体的情况,所以此时需要对实体做消歧处理。
实体链接与消歧的基本流程分为实体指称识别、候选实体生成和候选实体排序三个步骤。
实体指称识别与知识抽取中的实体抽取相同。
候选实体生成,即由文本中识别的实体指称生成可能链接的候选实体集合,目前有三种常用的生成候选实体的方法,分别是基于实体指称字典的生成方法、基于搜索引擎的生成方法、基于实体指称表面扩展的生成方法。
生成候选实体集合后,集合中往往还包含多个候选实体,需要对其进行排序,筛选出实体指称真正指代的实体。按照是否需要标注数据可将候选实体排序方法分为基于监督学习的排序方法和无监督学习的排序方法两种。
2:知识规则挖掘
知识规则挖掘是对知识结构的挖掘,可以针对现有的知识体系,利用部分规则,挖掘出新的知识,如挖掘新的实体、关联关系等。
知识规则挖掘分为基于关联规则的挖掘和基于统计关系学习的挖掘。
(1)基于关联规则的挖掘
关联规则是形如X→Y的蕴含表达式,其中X和Y是不相交的两个项集。其强度可以用支持度
和置信度
来衡量。
基于关联规则的挖掘是挖掘知识库中类别与类别之间的某种潜在联系,所发现的联系可以用关联规则或者频繁项集来表示。
(2)基于统计关系学习的挖掘
基于统计关系学习的挖掘基于统计关系学习的挖掘,是利用知识库中已知的三元组,通过统计关系学习,对未知三元组成立的可能性进行预测,可用于完善现有的知识图谱
五、知识存储
知识存储是考虑业务场景及数据规模等条件,选择合适的存储方式,将结构化的知识存储在相应数据库中的过程,它能实现对数据的有效管理和计算。
基于图结构的知识存储,即利用图数据库对知识图谱中的数据进行存储。图数据库是一个使用图结构进行语义查询的数据库。所谓语义查询,即允许进行关联和上下文性质的查询和分析,可以利用数据中包含的语法、语义和结构信息来检索显式和隐式派生的信息。图数据库起源于欧拉图理论,也可称为面向图的数据库或基于图的数据库。图数据库的基本含义是以“图”这种数据结构存储和查询数据。
图数据库分为三类:资源描述框架、属性图和超图。
资源描述框架也称为RDF,是一种三元组数据模型,每一份知识可以被分解为三元组的(Subject,Predicate,Object)形式,也可通过图来展示。值得注意的是,RDF是一种数据模式,而不是序列化格式,具体的存储表示形式可以为XML、Turtle或N-Triples。
六、知识融合
知识融合,是通过高层次的知识组织,使来自不同知识源的知识在同一框架规范下进行异构数据整合、消歧、加工、推理验证、更新等步骤,达到数据、信息、方法、经验以及人的思想的融合,形成高质量的知识库。
知识融合技术产生的原因,一方面是通过知识抽取与挖掘获取的结果数据中可能包含了大量冗余信息与错误信息,需要进行清理和整合;另一方面是由于知识来源的渠道众多,存在数据重复、质量参差不齐、关联不明确等问题。
知识融合分为概念层知识融合和数据层知识融合,其中概念层知识融合主要研究本体匹配、跨语言融合等技术,数据层知识融合主要研究实体对齐等。
1:概念层知识融合
当存在多个知识源时,每个知识源可能使用不同的分类体系和属性体系。概念层知识融合就是将这些不同的分类体系和属性体系,统一为一个全局的体系。
本体匹配,是指建立来自不同本体的实体之间的关系,这些关系可以是实体间的相似值、模糊关系等,它是概念层知识融合的主要任务之一。
2:数据层知识融合
实体对齐,也称为实体匹配或实体解析,是判断相同或者不同数据集中两个实体是否指向真实世界中同一对象的过程。
目前实体对齐存在许多问题和挑战,是数据层知识融合研究的主要任务之一。
七、知识检索
对比人类大脑的功能,认知的关键在于对知识的利用和加工。构建好知识图谱后,即系统已经将知识进行建模,并存储成人类与机器都可以理解的形式,此时当外界信息传入时,首先需要找到与感知信息相关的知识,并对其进行加工和处理。在该过程中,主要涉及的技术为知识检索和知识推理。
知识检索作为知识图谱最简单的应用之一,主要目的是根据某些条件或关键词,通过对知识图谱进行查询,返回相关信息。相较于传统的查询和检索,知识检索不仅仅返回简单的数据列表,还以结构化的形式返回信息,与人类的认知过程一致。目前常用的知识检索手段主要有基于查询语言的知识检索和基于语义的知识检索(即语义搜索)。
1:基于查询语言的知识检索
查询语言通常至少包括两个子集:数据定义语言和数据操作语言。其中数据定义语言用于对数据库中的项目进行创建、修改和删除,数据操作语言用于查询和更新数据表中的数据。
比如Neo4j支持的查询语言是Cypher。
2:语义搜索
实际上,图数据库的查询语言无论怎样接近自然语言,其本质还是需要使用者编写结构化的查询脚本来对数据库中的知识进行检索。同时,传统的搜索方法通常只能使用较为简单的语法进行组合来满足用户对检索的需求。
在这种情况下,随着大量结构化数据平台如链接开放数据(Linked Open Data)的不断开放和完善,可以用于构建知识图谱的数据源数量将持续增加。同时,大量由RDF、OWL作为知识表示语言的知识图谱将不断被构建。
在这种情况下,以Google为首的各公司分别开始使用知识图谱来提高搜索质量,并实现基于语义的知识检索(即语义搜索)。实际上,语义搜索是在基于查询语言的知识检索的基础上更进一步发展的产物。
语义搜索的本质是通过数学方法来摆脱传统搜索方法中的近似和不精确,并且为词语的含义以及这些词如何与输入的词语进行关联找到一种清晰的理解方式。
简单来说,语义搜索可以让用户的输入尽可能地接近自然语言,同时在理解这些语言的基础上返回更加精确的答案。语义搜索借助知识图谱的表示与表达能力来挖掘用户需求与数据之间的内在关联。同时,相比于传统的查询方法,语义搜索可以理解和完成更复杂的查询,并给出更精确的结果。
语义搜索可以分为轻量级的基于语义的信息检索系统和相对复杂的语义搜索系统。
在轻量级的基于语义的信息检索系统中,没有像知识图谱这样相对复杂的知识表示系统,所以通常只使用词典或分类器这样简单的模型,将语义数据与待检索的数据相关联。
而相对复杂的语义搜索系统,通常需要使用知识图谱或本体等方法,对语义和知识进行显式建模。在基于模型的基础上检索或查询中的关键词时,可以通过推理或联想的方法,根据其语义找到确实与检索要求相关的内容并返回更精确的结果。
常用的语义搜索方法主要包括关键词查询和自然语言查询等。
常用的语义搜索方法主要包括关键词查询和自然语言查询等。关键词查询作为语义搜索中最基础的方法,其流程为:对于指定的关键字,首先需要按照索引在知识图谱中找到符合关键字定义的子图,这样可大大减少整体搜索空间。在得到子图后,在规模相对较小的子图中进行检索,最终找到检索结果。关键词查询的主要问题在于如何构建索引。
自然语言查询比关键词查询复杂。
当使用者输入自然语言时,系统需要对这个句子进行理解,首先去掉句子中的无意义成分,并对其进行消歧,然后对其句法、词法等特征进行分析并向量化。
得到输入语言的向量表示后,再将其与知识图谱中的信息的向量化表示进行比较,最终得到精确的查询结果。
八、知识推理
当已经构建了一个完整的知识图谱时,意味着距离让计算机系统足够有学识又前进了一步。然而,单纯地构建知识图谱,并利用其查询需要的内容并没有真正让计算机系统达到认知的目的。
在人类长期的演化和发展当中,拥有知识并使用这些知识进行推理是认知的关键部分。从概念上讲,推理是从已有的知识当中推断出尚未拥有的知识的过程。
推理的过程中通常涉及两种知识:已有的知识和尚未拥有的新知识。
知识推理的应用主要包括知识补全、知识对齐与知识图谱去噪声等。
传统的知识推理方法主要依托规则来对知识图谱中的内容进行推理。基于规则的推理方法主要采用了逻辑推理中的方法,将简单的规则、约束或统计方法运用到知识图谱所表示的数据中,然后根据这些特征进行推理。常见的完全基于规则的推理包括类别推理与属性推理等。
也可以通过知识图谱来对规则进行训练,得出新的规则后再进行推理。如NELL使用一阶逻辑与概率学习相结合的方式,将学习到的规则经过人工筛选后再使用知识图谱中存在的实体将其实例化。
总体来看,基于知识图谱的规则推理可以通过统计、人工筛选或机器学习等方法构建有效规则并对其进行推理,准确性较高,计算量相对较小,推理速度快。
但由于目前知识图谱的规模普遍相对较大,需要用大量的实体来对规则进行验证;同时当图谱的规模不断上升时,抽象全局规则和多步规则也会非常困难。在这种情况下使用统计特征会过度依赖统计数据并造成过拟合,且对数据噪声的抵抗能力较差。所以,随着深度学习的发展,基于表示学习的推理与基于深度学习的推理则更具有优势。
通过知识图谱的表示学习,可以将知识图谱中的结点和关系等元素映射到相同的连续向量空间,从而学习到每个元素在向量空间中的表示。实际上,知识图谱的表示学习最初起源于自然语言处理中词与字的表示学习方法,其表示学习得到的向量或矩阵同样具有空间平移性。在知识图谱的表示学习领域最经典的算法即TransE。
标签:实体,一文,AI,图谱,知识,语义,抽取,数据 From: https://www.cnblogs.com/o-O-oO/p/18375750