最近一周时间都在肝国创论文,因为国创做的东西也比较简单,一时之间不知道论文写些什么,想了想,还是写篇综述吧,
水一点好凑字数能够对知识有全局的总结。于是就写了一篇关于知识图谱技术的综述,在这里选取一些有用的内容记录一下。
知识图谱的定义与构成
知识图谱的定义
知识图谱是结构化的语义知识库,由相互连接的实体以及实体的属性构成,实体与实体的连接即代表了他们之间的关系,形成网状的知识结构,可以有效地描述物理世界中的概念及其相互关系。知识图谱由一条条知识组成,一般采用三元组的形式来描述,所使用的描述语言有RDFS、OWL等。其基本组成单位是“实体-关系-实体”三元组,以及实体及其相关属性-值对。 从覆盖范围来看,知识图谱可以分为通用知识图谱和领域知识图谱。通用知识图谱覆盖范围较广,注重与通用的常识性知识,强调知识的数量和全面性,主要用于语义搜索,与领域知识图谱相比准确度不高。并且由于其要获取大范围的知识,构建知识图谱时很难建立规范的实体、属性与关系。而领域知识图谱则是面对特定的行业和领域,对内容的专业性与搜索的准确度要求较高。这就需要比较规范的结构,往往会有专业人士参与知识图谱的构建,并且会采用领域内专业而详细的数据,构建出具有丰富实体属性与实体间关系的知识图谱,以适应各种不同的使用场景和业务需求。一般而言,通用知识图谱可以作为领域知识图谱的构建基础,而领域知识图谱在构建完成后也可以融入到通用知识图谱之中,两者分工不同但可以互相促进。
知识图谱的构成
知识图谱由数据层和模式层两个层次构成,在数据层,知识以事实为单位进行存储,以“实体-关系-实体”及“实体-属性-属性值”三元组来表示,形成一个知识图网络。实体通常指一些具体的人名、地名、组织名等事物,关系则代表实体间的语义联系,属性则表示实体到属性值的映射关系,可理解为事物所具有的性质。在数据层之上是模式层,它是知识图谱的概念模型,通常采用本体库来管理,借助定义的规则和公理来对数据层的知识进行约束,从而减少知识库中数据的冗余。以图的形式来描述的话,在模式层,节点就是概念,边就是概念间的联系;在数据层,节点就是实体,边就是实体间的关系或实体的属性。
知识图谱的构建
知识图谱的构建主要有自顶向下和自底向上两种。自顶向下的方法首先要为知识图谱构建好模式层,确定好本体概念和数据模式,这一过程通常需要结构化的知识库来协助或者人工参与。有了模式层的本体后,则可从数据源中抽取出实体填充到相应的本体上作为知识实例,这样抽取的精度相对较高。自底向上的过程则是直接从开放的数据源中抽取出置信度较高的实体、关系和属性作为数据层的知识,将这些知识进行归纳总结后构建出本体,形成模式层。自底向上的学习方式依赖强大的机器学习算法,实现知识图谱的自动化构建。另外还有自顶向下和自底向上相结合的混合模式,这种方法在构建出模式层本体,抽取得到实体、关系、属性后,会利用得到的知识迭代地更新上层的本体,以达到更优的结构和抽取结果。
不管是采用哪种构建方法,构建知识图谱过程中的主要步骤都不外乎知识抽取、知识融合、知识加工、知识更新这几个部分。
知识抽取
知识抽取是从开放的数据源中利用自动化的技术提取出知识图谱中实体、关系、属性这重要的三个元素。并将抽取得到的内容用事实表示出来,如三元组的形式,形成知识图谱最基础的数据层知识内容。
实体抽取
实体抽取又被称为命名实体识别(named entity recognition),是从文本中提取出命名实体的技术,也是构建知识图谱非常关键的一步。
最早的实体抽取采用的是基于规则的方法,利用定义好的规则进行实体抽取。虽然基于规则的方法在特定的领域上可以取得很好的效果,但是规则的制定需要消耗大量的人力,简单的规则也无法全面地抽取出实体,显得十分笨重。并且制定的规则往往针对特定领域,可移植性较差。
接着命名实体抽取转向了基于统计机器学习的方法,基于统计机器学习的方法主要包括:隐马尔可夫模型(HiddenMarkovMode,HMM)、最大熵(MaxmiumEntropy,ME)、支持向量机(Support VectorMachine,SVM)、条件随机场(ConditionalRandom Fields,CRF)等。基于统计机器学习的方法对特征选取的要求较高,需要从文本中得到对训练有帮助的局部特征和全局特征,常见的有形态、本地词汇和句法信息。除了文本中本身所包含的特征,还可以利用外部知识,如人名词典、地名词典等,来提高抽取性能。
最近深度学习的方法成为研究热点,也被广泛地应用于各个任务,包括实体抽取。在该方法下,使用词向量来表示词语成为主流,词向量可以在统一的向量空间下更好的表示出词语的特征,相较于人工选取特征,效果更好且节省时间。相似的,还有使用字符向量来表示单个字符的,他可以学习到单个字符的前缀后缀等特征,还可以推断未出现过的词汇,作为补充信息。有了向量表示的词汇作为输入,之后采用深度学习模型对其进行编码,如卷积神经网络、循环神经网络(Recurrent Neural Networks)、递归神经网络(Recursive Neural Networks)和最近热门的Deep Transformer。最后实体标签的获取一般采用多层感知机加Softmax或者条件随机场等。
关系抽取
关系抽取,顾名思义就是抽取实体间的语义关系。关系抽取早期也使用基于规则的关系抽取方法,需要运用语言学知识预先构建好实体关系的结构性规则,将预处理的语句片段和模式进行匹配,抽取出关系。
基于传统机器学习的抽取方法以统计语言模型为基础。其中有基于特征向量的抽取方法,从关系实例中提取出一系列特征向量,以此来建立不同的分类模型。
最新的有基于深度学习关系抽取方法。可以通过训练大量数据自动获取模型,不需要人工提取特征。
属性抽取
属性抽取是针对实体,抽取出实体的属性和对应的属性值。事实上,属性和关系都可以使用三元组来表示,属性可以看作是实体到属性值的映射关系,与关系的概念类似。所以属性抽取的问题可以转换为关系抽取问题。
知识融合
在知识抽取过后,知识图谱数据层将得到许多基础的知识。但是这些知识可能来自于多个数据源,质量难以得到保证,可能会产生知识的重叠和冲突,如果直接使用这些知识构建最终的知识图谱,肯定会因噪声影响检索的效果,是不可行的。所以需要通过一些特定的步骤消除知识中的噪声,统一结构和组织形式,得到更高质量的知识,这就是知识融合。本节将从实体消歧、实体对齐和知识合并这几个方面对知识融合进行综述。
实体消歧
命名实体本身是存在歧义的,一个实体指称项可以对应真实世界的多个实体,比如说“苹果”可能指的是一种水果,也可能指的是一家科技公司。实体消歧旨在解决这类问题,确定命名实体具体指向真实世界的哪个实体。常用的方法可以分为基于聚类的实体消歧和基于实体链接的实体消歧。
基于聚类的方法思想是将具有相同指向的命名实体聚为一类,不同类指向不同实体以消除歧义。其关键问题就是用何种特征对命名实体进行表示并聚类。
基于实体链接方法是将给定的实体指称项链接到目标知识库的相应实体上。具体的又分为从知识库中选出候选的实体与实体链接两步。
实体对齐
实体对齐(entity alignment)又可称为实体匹配(entity matching)或实体解析(entity resolution)。在实际生活中,常有多个命名实体指代真实世界的同一个实体,比如说“中国”和“中华人民共和国”。实体对齐就是用于判断这些命名实体是否指向同一客观事物,解决实体不一致性问题
实体对齐的算法可分为成对实体对齐和集体实体对齐两类。所谓成对实体对齐,是指将实体对齐问题看作是根据实体属性相似度评分判断是否匹配的分类问题。集体对齐又可以分为局部集体实体对齐和全局集体实体对齐,局部集体实体对齐会将与实体相关联的实体属性作为比较计算的一部分,全局集体实体对齐通过不同匹配决策之间的相互影响调整实体间的相似度。
知识合并
在构建知识图谱过程中,很重要一部分知识来源是一些结构化数据和第三方知识库,比如说企业或者某些领域的关系型数据库。这些知识符合规范,实用度高,可以作为高质量的知识来源。知识合并就是整合现有的知识库和知识图谱来扩大知识图谱的规模。在实际合并的过程中,由于知识的多样性和异构性,可能会出现知识的重复和冲突,需要进行一定的处理。
知识加工
在知识抽取和知识融合后,得到了一些基本的事实表示。但是事实并不等同于知识。想要形成高质量结构化的知识,还要经过知识加工。具体可分为本体构建、知识推理、质量评估三个方面。
本体构建
本体是对概念进行建模的规范,是同一领域内的不同主体之间进行交流的语义基础。它整体上呈现树状结构,相邻层之间的节点满足“IsA”的关系,同一层之间的实体属于并列关系。这样清晰的层次结构有助于对概念进行明确是界定。通常来说,本体构建有人工构建和自动化构建的方式。对于一些专业的领域,可以采用专家人工构建本体的方法,会有较高的质量和准确度。但是对于规模较大的知识图谱,采用人工构建的方法会消耗大量人力,因此大多采用从特定领域现有的本体库出发,使用自动化构建技术逐步扩展得到。
自动化本体构建过程包含实体并列关系相似度计算、实体上下位关系抽取和本体的生成3个阶段。实体并列关系相似度是用于评判两个实体有多大可能性属于同一概念类别。实体上下位关系用来确定概念间的隶属(IsA)关系。本体生成是对各层次的概念进行聚类和语义类的标定。
知识推理
知识推理是利用已经得到的知识,通过推理,得到新知识的过程。对于知识图谱,可以对实体、实体间的关系、实体属性以及本体概念的层次结构进行推理,进一步挖掘知识,丰富已有内容。例如由(张三,出生地,北京)可以推断出(张三,国籍,中国)。
知识推理根据推理类型可分为单步推理和多步推理两大类。每类又包括基于规则的推理、基于分布式表示的推理、基于神经网络的推理以及混合推理。单步推理是指用直接关系即知识图谱中的事实元组进行学习和推理,多步推理是在单步推理建模直接关系的基础上进一步建模间接关系,即多步关系。
质量评估
开放域中抽取的知识质量参差不齐,可能会存在错误的事实表示,如错误的实体间关系,错误的实体属性值等。同样的,知识推理得到的知识也不完全可靠。质量评估的目的就是评判知识的可信程度,置信度低的知识会被舍弃以提高知识库的质量。
知识更新
知识不是一成不变的,随着时间的推移,人的认知水平、事物本身的变化都会导致知识的变化。为了保证知识库的正确性与实效性,需要对其中的知识定时更新,扩充新的知识,删除已经过时的知识。
从逻辑上来看,知识更新分为模式层的更新和数据层的更新。模式层的修改包括对本体概念、概念间的关系、概念的属性进行增加、修改、删除。这些操作会涉及到整个知识图谱的架构,往往需要人工的干预来制定规则、消除冲突,实现起来复杂度较高。数据层的更新是对实体、实体间的关系、实体的属性进行更新,这些操作应用于局部,对整体影响较小,可以通过对新的数据源抽取来自动化更新。
从更新的方式上看,知识更新可分为全量更新和增量更新。全量更新是从头开始,用新的数据源重新抽取知识并构建知识图谱。这种方式想法简单,可以很好的保障知识图谱概念的一致性和结构的完整性,但是更新时间太长,无法保证知识图谱的实效性。增量更新是仅抽取与当前知识图谱相比增加或发生变化的知识,增量地融入到当前知识图谱中。这种方法计算量较小,更新所用时间短,使用于时常变动的知识,能很好保证时效性。但是对于变动的模式层而言,更新的复杂性较高 ,可能需要人工干预。
问题与挑战
知识图谱自提出至今已经经历了较长时间的发展,并且在各个领域中有了广泛的应用。但这并不是说知识图谱的相关技术已经十分完善,相反,在知识图谱的构建和应用中有许多问题与挑战是我们不能忽视的。
在知识图谱的知识表示方面,多模态和个性化表示是重要挑战,单纯通过文本符号去理解知识是十分有限的,还需要将多模态(图片、音频、视频)化的认知体验与相应的符号关联,实现大规模的符号连接,并与知识图谱中的实体和概念连接。人的认知也是有主观性的,人多事物的认识和看法往往不同,故要针对不同角色定制不同的知识图谱,考虑到知识图谱的普适性,可以用权重来体现。在知识抽取方面,对结构化和半结构化的知识抽取技术已经比较完善,但是面向开放域的知识抽取的效果却还不尽如人意,抽取到的知识存在较多噪声,在准确率和召回率上有待提高,如何低成本、多粒度、大规模地抽取知识有待研究。在知识融合上,如何在上下文信息受限的情况下正确对实体进行链接、针对多语言实体对齐和消歧仍是一些挑战。知识推理是知识图谱中非常有特色的技术,多跳推理与深度推理是其中的难点。同时人类只需要少量样本学习即可完成知识的推理,如何让计算机像人一样在少样本甚至是零样本下实现推理也是一大挑战。知识图谱的不完整性是其缺陷之一,因此知识图谱是需要不断的更新。而在主流的增量更新过程中,经常需要人工的参与和修正,所以减少人工的参与,使得知识图谱高效自动化的更新是必然目标。
当前的知识图谱面临着越来越复杂的应用场景,计算机无法使用通用的模型解决不同场景下知识图谱的构建问题。同时在许多应用场景下,如医疗诊断、司法研判,靠简单的堆砌同质化的数据已经无法满足需求,而是需要知识的深度应用,这也就对知识图谱的应用方式提出了更高的要求。深度学习的应用、符号知识的指导,能否通过这些方式实现可解释的人工智能以及知识图谱的透明化应用还是一个问题。
参考文献在这里就不列举了