智能运维之道:基于AI技术的应用实践
上QQ阅读APP看书,第一时间看更新

3.2.2 一般知识图谱的构建流程

大多数学者将知识图谱的构建方式分为自顶向下(Top-Down)和自底向上(Bottom-Up)两种。其中自顶向下的构建方式需要事先定义好本体或者数据模式(Schema),然后将实体加入到知识图谱中,这种构建方式一般用于知识体系发展较为成熟的领域,而且需要借助该领域已有的高质量结构化数据进行构建。自底向上的构建方式则是先从开放的非结构化数据中提取实体,然后构建实体间的关系,这种构建方法适合没有完备知识体系的领域,与通用知识图谱的构建较为相似。

自顶向下的构建方式是在知识图谱发展早期被广泛使用的,目前这种构建方式更加适合小而精的单一领域,该领域内的知识已经形成闭环,且不会大幅增加。而自底向上的方式适合知识体系尚不完备或者知识体系涵盖较广的领域,例如维基百科。近年来随着不同领域之间互相融合发展,逐渐产生一些新兴领域,这些领域的知识体系既包括原有较为完备的部分,又包含尚未发展成熟的部分。因此,在现实中往往会采用自顶向下与自底向上相结合的方式进行构建。图3-19所示为知识图谱的构建流程,自顶向下的构建方式是先构建本体,再抽取知识进行填充;而自底向上是先抽取知识,在知识抽取时本体的概念并不清晰,需要在知识抽取后进行多次归纳与分析逐渐细化进而形成本体的概念。不论哪种构建方式,需要完成的基础任务是相似的。

在图3-19中,知识图谱的构建主要包含4个步骤:本体构建、知识抽取、知识融合以及知识存储。其中,本体构建是指构建出知识图谱的本体结构,即知识图谱的数据模型。本体构建过程相当烦琐,其构建过程受到专业知识和工程可行性两个方面的影响,需要领域专家与知识图谱工程师共同协作商讨。知识抽取是从不同类型的数据源中提取出实体、实体属性以及实体间的关系,知识抽取是整个过程中最基础也是最重要的一环,抽取信息的质量直接影响最终构建结果的优劣。知识融合是对不同数据源抽取出的三元组信息进行合并,包括链接或者消歧。融合后的知识在完成质量评估之后,需要存储到相应的数据库来完成知识图谱的构建,构建完成后就可以根据实际的需求进行知识的查询和应用了。

下面对本体构建、知识抽取、知识融合、知识存储以及知识应用等知识图谱构建任务所涉及的相关方法进行介绍。

1.本体构建

“本体”一词是对概念模型精确化、形式化的规格说明。本体主要是用来描述某个领域中概念和概念之间的关系,在领域内具有大家共同认可、明确以及唯一的定义,具有共享化、明确化、概念化和形式化的特征。在知识图谱的构建流程中,本体构建往往因为不同领域中具体工程的不同而过程各异。但目前公认的是本体的构建需要在相关领域专家的指导下进行。一般而言,本体构建有手工、自动和半自动3种方式。

图3-19 知识图谱的构建流程

1)手工进行本体构建一般是由企业内部的多位领域专家通过协作完成的,可遵循的方法有TOVE法、骨架法、IDEF-5法、METHONTOLOGY法、SENSUS法、KACTUS工程法、7步法等。

2)自动化方式是通过机器学习、NLP或者数据分析、统计分析技术从已有的文本中提取概念与关系,并通过聚类等方法自动构建领域本体体系。但是目前自动化的方式很难得到覆盖率和准确率都表现良好的本体。

3)半自动方式是借助已有的术语库或结构化概念表,在人工的指导下,部分使用自动化方式进行本体的构建。

图3-20所示为使用Protégé软件构建的简单本体构建案例。

图3-20 使用Protégé软件构建的简单本体构建示例

2.知识抽取

知识图谱构建的首要工作即是知识抽取。知识图谱中的知识来源于图3-19所示的结构化,半结构化和非结构化的异构数据源,其中的关键问题是如何运用知识抽取技术从获得的信息资源中提取出计算机可理解和计算的结构化数据,以进行下一步的分析及利用。知识抽取任务细分为实体抽取,属性抽取,关系抽取3大部分。

(1)实体抽取

实体抽取包括命名实体抽取与事件抽取。命名实体识别(Named Entity Recognition)是将专有名词(如机构名、地名、人名、时间等)或有意义的名词性短语从获得的语料库中进行识别提取。例如图3-21中,“2016年8月”是时间实体,“易建联”和“NBA”是人名和机构名。事件抽取是从文本中抽取事件的各元素及识别出发生的事件。事件组成元素可以分为主体、触发词、事件类型。图中“并发访问过多”与“内存暴涨”均属于事件。实体抽取问题的研究开展得比较早,该领域也积累了大量的方法。总体上,可以将已有的方法分为基于规则的方法、基于统计模型的方法和基于深度学习的方法。

图3-21 实体抽取举例

1)基于规则的方法。

早期的命名实体识别方法主要采用人工编写规则的方式进行实体抽取。这类方法首先构建大量的实体抽取规则,一般由具有一定领域知识的专家手工构建。然后,将规则与文本字符串进行匹配,识别命名实体。这种实体抽取方式在小数据集上可以达到很高的准确率和召回率,但随着数据集的增大,规则集合的构建周期变长,并且移植性较差。

2)基于统计模型的方法。

基于统计模型的方法利用完全标注或部分标注的语料进行模型训练,主要采用的模型包括隐马尔可夫模型(Hidden Markov Model, HMM)、条件马尔可夫模型(Conditional Markov Model, CMM)、最大熵模型(Maximum Entropy Model, MEM)以及条件随机场模型(Conditional Random Fields, CRF)。该类方法将命名实体识别作为序列标注问题处理。与普通的分类问题相比,序列标注问题中当前标签的预测不仅与当前的输入特征相关,还与之前的预测标签相关,即预测标签序列是有强相互依赖关系的。从自然文本中识别实体是一个典型的序列标注问题。基于统计模型构建命名实体识别方法主要涉及训练语料标注、特征定义和模型训练3个方面。

● 训练语料标注。为了构建统计模型的训练语料,一般采用Inside-Outside-Beginning(IOB)或Inside-Outside(IO)标注体系对文本进行人工标注。

● 特征定义。在训练模型之前,统计模型需要计算每个词的一组特征作为模型的输入。这些特征具体包括单词级别特征、词典特征和文档级别特征等。单词级别特征包括是否首字母大写,是否以句点结尾,是否包含数字、词性、词的n-Gram等。词典特征依赖外部词典定义,例如预定义的词表、地名列表等。文档级别特征基于整个语料文档集计算,例如文档集中的词频、同现词等。

● 模型训练。隐马尔可夫模型和条件随机场模型是两个常用于标注问题的统计学习模型,也被广泛应用于实体抽取问题。HMM是一种有向图概率模型,模型中包含了隐藏的状态序列和可以观察的观测序列。每个状态代表了一个可观察的事件,观察到的事件是状态的随机函数。HMM模型结构如图3-22所示,每个圆圈代表一个随机变量,随机变量Xtt时刻的隐藏状态;随机变量只是t时刻的观测值,图中的箭头表示条件依赖关系。

图3-22 HMM模型结构

3)基于深度学习的方法。

随着深度学习方法在自然语言处理领域的广泛应用,深度神经网络也被成功应用于命名实体识别问题,并取得了很好的效果。与传统统计模型相比,基于深度学习的方法直接以文本中词的向量为输入,通过神经网络实现端到端的命名实体识别,不再依赖人工定义的特征。目前,用于命名实体识别的神经网络主要有卷积神经网络(Convolutional Neural Network, CNN)、循环神经网络(Recurrent Neural Network, RNN)以及引入注意力机制(Attention Mechanism, AM)的神经网络。一般来说,不同的神经网络结构在命名实体识别过程中扮演编码器的角色,它们基于初始输入以及词的上下文信息,得到每个词的新向量表示,最后再通过CRF模型输出对每个词的标注结果。

(2)属性抽取

属性抽取的目标是根据已知的实体找出该实体所拥有的属性信息。例如对于某个公司实体,可以从网络公开信息中得到公司的创建日期、注册资金、位置等信息。属性主要是针对实体而言的,以实现对实体的完整描述,也可理解为属性对于实体而言是一种另类的关系,因此可将属性抽取任务转化为实体与属性之间的关系抽取任务。尽管目前所研究的方法可从百科类网站得到属性信息,但在互联网中充斥着大量的非结构化信息,且非结构化信息包含丰富的属性知识,因此如何从庞大的非结构化数据中找到实体属性信息为目前主要的研究方向。一种解决方案是将解决半结构化数据的方法直接应用至非结构化数据中;另一种方案是采用数据挖掘方法,提取实体与属性之间的某些特征进行属性抽取。

(3)关系抽取

关系抽取最终要达到的目标为根据数据信息得到实体与实体存在的某种联系,从而将离散的实体联系起来获得原始数据完整的语义信息。目前,关系抽取方法可以分为基于模板的关系抽取方法、基于监督学习的关系抽取方法和基于弱监督学习的关系抽取方法。前期所提出的关系抽取方法多是针对特定领域语料的关系进行抽取的,需要自行预先对语料中的关系进行定义。

针对特定领域关系的抽取,最早采用的是基于模式匹配方法,该类方法通常首先对文本进行分割,然后利用分词、词性标注以及与句法及语义分析的相关技术结合制定的模板规则进行规则的抽取。此类方法依赖于自然语言处理工具,对结构性强的语料较为适用,拥有较高的精度,但泛化能力不高。随着机器学习的应用,上述缺点得到了有效解决,根据标注数据的不同,可以分为有监督关系抽取、半监督关系抽取以及无监督关系抽取3种。

1)基于模板的关系抽取方法。

早期的实体关系抽取方法大多基于模板匹配实现。该类方法基于语言学知识,结合语料的特点,由领域专家手工编写模板,从文本中匹配具有特定关系的实体。在小规模、限定领域的实体关系抽取问题上,基于模板的方法能够取得较好的效果。

例如根据以下关系模板。

● 模板1:[X]导致[Y]…

● 模板2:[X]是因为[Y]…

利用上述模板在文本中进行匹配,可以获得具有“因果”关系的实体。为了进一步提高模板匹配的准确率,还可以将句法分析的结果加入模板中。基于模板的关系抽取方法的优点是模板构建简单,可以比较快地在小规模数据集上实现关系抽取系统。但是,当数据规模较大时,手动构建模板需要耗费领域专家大量的时间。此外,基于模板的关系抽取系统可移植性较差,当面临另一个领域的关系抽取问题时,需要重新构建模板。最后,由于手动构建的模板数量有限,模板覆盖的范围不够,基于模板的关系抽取系统召回率普遍不高。

2)基于监督学习的关系抽取方法。

基于监督学习的关系抽取方法将关系抽取转化为分类问题,在大量标注数据的基础上,训练有监督学习模型进行关系抽取。利用监督学习方法进行关系抽取的一般步骤包括:预定义关系的类型、人工标注数据、设计关系识别所需的特征(一般根据实体所在句子的上下文计算获得)、选择分类模型(如支持向量机、神经网络和朴素贝叶斯等)、基于标注数据训练模型、对训练的模型进行评估。在上述步骤中,关系抽取特征的定义对于抽取的结果具有较大的影响,因此大量的处理工作围绕关系抽取特征的设计展开。

3)基于弱监督学习的关系抽取方法。

基于监督学习的关系抽取方法需要大量的训练语料,特别是基于深度学习的方法,模型的优化更依赖大量的训练数据。当训练语料不足时,弱监督学习方法可以只利用少量的标注数据进行模型学习。基于弱监督学习的关系抽取方法主要包括远程监督方法和Bootstrapping方法。

● 远程监督方法。远程监督方法通过将知识图谱与非结构化文本对齐的方式自动构建大量的训练数据,减少模型对人工标注数据的依赖,增强模型的跨领域适应能力。远程监督方法的基本假设是如果两个实体在知识图谱中存在某种关系,则包含两个实体的句子均表达了这种关系。

● Bootstrapping方法。Bootstrapping方法利用少量的实例作为初始种子集合,然后在种子集合上学习获得关系抽取的模板,再利用模板抽取更多的实例,加入种子集合中。通过不断地迭代,Bootstrapping方法可以从文本中抽取关系的大量实例。

3.知识融合

经过知识抽取任务后获得了数据中的实体、属性及实体间的关系信息,但抽取过程采用的是自动化抽取方式,抽取的知识可能包含错误信息,如一词多义的词语信息等。因此,有必要进行知识整理和融合。

知识融合从融合层面划分可以分为数据层知识融合与概念层知识融合。数据层知识融合主要包括实体链接、实体消歧,是面向知识图谱实例层的知识融合;概念层知识融合主要包含本体集成与本体映射。

(1)数据层知识融合

实体链接(Entity Linking)是指在已有知识库中找到从文本信息中抽取的实体对象,防止出现实体错误链接。初期的实体链接研究仅考虑采用技术将某一实体链接至知识库中的实体对象。但在同一篇文档中,多个实体之间有存在语义联系的可能性或者同一个含义可能会有多种实体表示。因此,学者们开始考虑实体上下文环境的共现问题,提出在同一时间内将多个实体进行知识库实体链接,这种方法称为集体实体链接(Collective Entity Linking)。

实体消歧(Entity Disambiguation)是用于解决同一词语含有多义的技术。实体消歧主要采用的方法是聚类法。聚类法是以某一实体对象为中心,聚类后的同一类别是指同时指向同一中心的所有实体。聚类方法消歧的关键问题是如何判断实体对象与另一实体指称项的相似度,常用的方法有空间向量模型(词袋模型)、语义模型、社会网络模型、百科知识模型等。

(2)概念层知识融合

本体集成是指直接将多个本体合并为一个大本体,本体映射则是指寻找本体间的映射规则。这两种方法最终都是为了消除本体异构,达到异构本体间的互操作。图3-23所示为本体映射和本体集成的示意图,图中不同的异构本体分别对应不同的信息源。为了实现基于异构本体系统间的信息交互,本体映射的方法在本体之间建立映射规则,信息借助这些规则在不同的本体间传递。而本体集成的方法则将多个本体合并为一个统一的本体,各异构系统使用这个统一的本体,这样一来,它们之间的交互可以直接进行,从而解决了本体异构问题。

图3-23 本体映射和本体集成的示意图

a)本体映射 b)本体集成

4.知识存储

知识存储,顾名思义为针对构建完成的知识图谱设计底层存储方式,完成各类知识的存储,包括基本属性知识、关联知识、事件知识、时序知识、资源类知识等。知识存储方案的优劣会直接影响查询的效率,同时也需要结合知识应用场景进行良好的设计。

目前,主流的知识存储解决方案包括单一式存储和混合式存储两种。在单一式存储中,可以通过三元组、属性表或者垂直分割等方式进行知识的存储。其中,三元组的存储方式较为直观,但在进行连接查询时开销巨大。属性表是指基于主语的类型划分数据表,其缺点是不利于缺失属性的查询。垂直分割是指基于谓词进行数据的划分,其缺点是数据表过多,且写操作的代价比较大。

对于知识存储介质的选择,可以分为原生(Neo4j、AllegoGraph)和基于现有数据库(MySQL、MongoDB)两类。原生存储的优点是其本身已经提供了较为完善的图查询语言或算法的支持,但不支持定制,灵活程度不高,对于复杂节点等极端数据情况的表现非常差。因此,有了基于现有数据库的自定义方案,这样做的好处是自由程度高,可以根据数据特点进行知识的划分、索引的构建等,但增加了开发和维护成本。

所以,目前尚没有一个统一的可以实现所有类型知识存储的方式。因此,如何根据自身知识的特点选择知识存储方案,或者进行存储方案的结合,以满足针对知识的应用需要,是知识存储过程中需要解决的关键问题。

5.知识计算与应用

知识计算是知识图谱能力输出的主要方式,通过知识图谱本身能力为传统的应用提升服务效率和质量。其中,图挖掘计算和知识推理是最具代表性的两种能力,如何将这两种能力与传统应用相结合是需要解决的一个关键问题。

知识推理一般运用于知识发现、冲突与异常检测,是知识精细化工作和决策分析的主要实现方式。知识推理又可以分为基于本体的推理和基于规则的推理。一般需要依据行业应用的业务特征进行规则的定义,并基于本体结构与所定义的规则执行推理过程,给出推理结果。知识推理的关键问题包括:大数据量下的快速推理、记忆对于增量知识和规则的快速加载。

知识图谱的挖掘计算与分析是指基于图论的相关算法,实现对图谱的探索与挖掘。图计算能力可辅助传统的推荐、搜索类应用。知识图谱中的图算法一般包括图遍历、最短路径、权威节点分析、族群发现最大流算法、相似节点等,大规模图上的算法效率是图算法设计与实现的主要问题。

知识应用是指将知识图谱特有的应用形态与领域数据和业务场景相结合,助力领域业务转型。知识图谱的典型应用包括语义搜索、智能问答以及可视化决策支持。如何针对业务需求设计实现知识图谱应用,并基于数据特点进行优化调整,是知识图谱应用的关键研究内容。

其中,语义搜索是指基于知识图谱中的知识,解决传统搜索中遇到的关键字语义多样性及语义消歧的难题,通过实体链接实现知识与文档的混合检索。语义检索需要考虑如何解决自然语言输入带来的表达多样性问题,同时需要解决语言中实体的歧义性问题。

而智能问答是指针对用户输入的自然语言进行理解,从知识图谱或目标数据中给出用户问题的答案。智能问答的关键技术及难点如下。

● 准确的语义解析,如何正确理解用户的真实意图。

● 对于返回的答案,如何评分以确定优先级顺序。

可视化决策支持是指通过提供统一的图形接口,结合可视化、推理、检索等,为用户提供信息获取的入口。对于可视化决策支持,需要考虑的关键问题包括:如何通过可视化方式辅助用户快速发现业务模式;如何提升可视化组件的交互友好程度,例如高效地缩放和导航;如何提高大规模图环境下底层算法的效率。