知识图谱构建技术一览一、什么是知识图谱知识图谱(Knowledge graph)首先是由Google提出来的,大家知道Google是做搜索引擎的,知识图谱出现之前,我们使用google、百度进行搜索的时候,搜索的结果是一堆网页,我们会根据搜索结果的网页题目再点击链接,才能看到具体内容,2012年google提出Google Knowldge Graph之后,利用知识图谱技术改善了搜索引擎核心,表现出来的效果就是我们现在使用搜索引擎进行搜索的时候,搜索结果会以一定的组织结构呈现。 辛格尔博士对知识图谱的介绍很简短:things,not string。这抓住了知识图谱的核心,也点出了知识图谱加入之后搜索发生的变化,以前的搜索,都是将要搜索的内容看作字符串,结果是和字符串进行匹配,将匹配程度高的排在前面,后面按照匹配度依次显示。利用知识图谱之后,将搜索的内容不再看作字符串,而是看作客观世界的事物,也就是一个个的个体。搜索比尔盖茨的时候,搜索引擎不是搜索“比尔盖茨”这个字符串,而是搜索比尔盖茨这个人,围绕比尔盖茨这个人,展示与他相关的人和事,左侧百科会把比尔盖茨的主要情况列举出来,右侧显示比尔盖茨的微软产品和与他类似的人,主要是一些IT行业的创始人。一个搜索结果页面就把和比尔盖茨的基本情况和他的主要关系都列出来了,搜索的人很容易找到自己感兴趣的结果。 查找关于知识图谱的资料,可以找到不少的相关定义: 引用维基百科的定义:
引用百度百科的定义:
引用学术/学位论文的定义:
引用著作的定义:
引用互联网博客的解释:
总的来说,知识图谱本质上是一种语义网络,用图的形式描述客观事物,这里的图指的是数据结构中的图,也就是由节点和边组成的,这也是知识图谱(Knowledge Graph)的真实含义。知识图谱中的节点表示概念和实体,概念是抽象出来的事物,实体是具体的事物;边表示事物的关系和属性,事物的内部特征用属性来表示,外部联系用关系来表示。很多时候,人们简化了对知识图谱的描述,将实体和概念统称为实体,将关系和属性统称为关系,这样就可以说知识图谱就是描述实体以及实体之间的关系。实体可以是人,地方,组织机构,概念等等,关系的种类更多,可以是人与人之间的关系,人与组织之间的关系,概念与某个物体之间的关系等等。 知识图谱是由实体和实体的关系组成,通过图的形式表现出来,那么实体和实体关系的这些数据在知识图谱中怎么组织呢,这就涉及到三元组的概念,在知识图谱中,节点-边-节点可以看作一条记录,第一个节点看作主语,边看作谓语,第二个节点看作宾语,主谓宾构成一条记录。比如曹操的儿子是曹丕,曹操是主语,儿子是谓语,曹丕是宾语。再比如,曹操的小名是阿瞒,主语是曹操,谓语是小名,宾语是阿瞒。知识图谱就是由这样的一条条三元组构成,围绕着一个主语,可以有很多的关系呈现,随着知识的不断积累,最终会形成一个庞大的知识图谱,知识图谱建设完成后,会包含海量的数据,内涵丰富的知识。 知识图谱构建完成之后,主要用在哪些地方,比较典型应用是语义搜索、智能问答、推荐系统等方面。知识图谱是一个具有本体特征的语义网络,可以看成是按照本体模式组织数据的知识库,以知识图谱为基础进行搜索,可以根据查询的内容进行语义搜索,查找需要找的本体或者本体的信息,这种语义搜索功能在google、百度、阿里巴巴等数据量大的公司里得到应用。智能问答,和语义搜索类似,对于提问内容,计算机首先要分析提问问题的语义,然后再将语义转换为查询语句,到知识图谱中查找,将最贴近的答案提供给提问者。推荐系统首先要采集用户的需求,分析用户的以往数据,提取共同特征,然后根据一定的规则,对用户提供推荐的产品。比如淘宝中记录用户经常购买的商品,经常浏览的商品,提取这些商品的共同特征,然后给这个用户打上标签,然后就给用户推荐具有类似特征的商品。 知识图谱主要反映的事物之间的关系,对于和关系链条有关的场景,也可以用知识图谱解决,一些应用场景包括反欺诈、不一致性验证、异常分析、客户管理等 二、知识图谱的分层架构知识图谱由数据层(data layer)和模式层(schema layer)构成。
三、知识图谱构架技术根据上述的知识图谱分层结构,知识图谱的构建方法主要有两种:一种是自底而上的构建方法(如下图所示);一种是自定而下的构建方法。 自底向上的构建方法流程如下图所示,从开放链接的数据源中提取实体、属性和关系,加入到知识图谱的数据层;然后将这些知识要素进行归纳组织,逐步往上抽象为概念,最后形成模式层。自顶而下的方法正好相反。 (一)数据获取(Data Acquisition)数据获取是建立知识图谱的第一步。目前,知识图谱数据源按来源渠道的不同可分为两种:一种是业务本身的数据,这部分数据通常包含在行业内部数据库表并以结构化的方式存储,是一种非公开或半公开的数据;另一种是网络上公开、抓取的数据,这些数据通常是以网页的形式存在,是非结构化的数据。 按数据结构的不同,可分为三种:结构化数据、半结构化数据和非结构化数据,根据不同的数据类型,我们采用不同的方法进行处理。 (二)信息抽取(Information Extraction)信息抽取的关键问题是如何从异构数据源中自动抽取信息得到候选知识单元。如前文所说,知识获取有两种渠道,前者只需要简单预处理即可以作为后续AI系统的输入,但后者一般需要借助于自然语言处理等技术来提取出结构化信息,这正是信息抽取的难点问题,涉及的关键技术包括实体抽取、关系抽取和属性抽取。 (1)实体抽取(Entity Extraction)/命名实体识别(Name Entity Recognition)实体抽取又称为命名实体识别(NER),是指从文本数据集中自动识别出命名实体,其目的就是建立知识图谱中的“节点”。实体抽取的质量(准确率和召回率)对后续的知识获取效率和质量影响极大,因此是信息抽取中最为基础和关键的部分。 实体的类型主要包括三大类七小类:
最初,实体识别通常采用人工预定义实体分类体系的方式,但是随着技术的日新月异,这种老旧的方式已经很难适应时代的需求,因此面向开放领域的实体识别和分类极具研究价值。 在面向开放域的实体识别和分类研究中,不需要也不可能为每个领域或者每个实体类别建立单独的语料库作为训练集。因此,研究人员主要面临的挑战是如何从给定的少量实体实例中自动发现具有区分力的模型。 一种思路是根据已知的实体实例进行特征建模,利用该模型处理海量数据集得到新的命名实体列表,然后针对新实体建模,迭代地生成实体标注语料库。 另一种思路是利用搜索引擎的服务器日志,事先并不给出实体分类等信息,而是基于实体的语义特征从搜索日志中识别出命名实体,然后采用聚类算法对识别出的实体对象进行聚类。 (2)关系抽取(Relation Extraction)文本语料经过实体抽取之后得到的是一系列离散的命名实体(节点),为了得到语义信息,还需要从相关的语料中提取出实体之间的关联关系(边),才能将多个实体或概念联系起来,形成网状的知识结构。研究关系抽取技术,就是研究如何解决从文本语料中抽取实体间的关系。 (3)属性抽取(Attribute Extraction)属性抽取的目标是从不同信息源中采集特定实体的属性信息,从而完成对实体属性的完整勾画,如针对某款手机,可以从互联网中获取多源(异构)的数据,从中得到其品牌、配置等信息。 如果把实体的属性值看作是一种特殊的实体,那么属性抽取实际上也是一种关系抽取。 百科类网站提供的半结构化数据是通用领域属性抽取研究的主要数据来源,但具体到特定的应用领域,涉及大量的非结构化数据,属性抽取仍然是一个巨大的挑战。 (三)知识融合(Knowledge Fusion)经由信息抽取之后的信息单元间的关系是扁平化的,缺乏层次性和逻辑性,同时存在大量冗余甚至错误的信息碎片。知识融合,简单理解,就是将多个知识库中的知识进行整合,形成一个知识库的过程,在这个过程中,主要关键技术包含指代消解、实体消歧、实体链接。不同的知识库,收集知识的侧重点不同,对于同一个实体,有知识库的可能侧重于其本身某个方面的描述,有的知识库可能侧重于描述实体与其它实体的关系,知识融合的目的就是将不同知识库对实体的描述进行整合,从而获得实体的完整描述。 (1)指代消解(Coreference Resolution)Coreference Resolution,字面上翻译应该是“共指消解”,但在大部分博客或者论坛中通常被称呼为“指代消解”。一般情况下,指代分为三种(NLP领域一般只关注前两种指代类型):
所以,根据上面描述,个人认为将“Coreference Resolution”翻译为“指代消解”更为恰当。 (2)实体消歧(Entity Disambiguation)有些实体写法不一样,但指向同一个实体,比如“New York”表示纽约,而“NYC”同样也可以表示纽约。这种情况下,实体消歧可以减少实体的种类,降低图谱的稀疏性。 实体消歧是专门用于解决同名实体产生歧义问题的技术,通过实体消歧,就可以根据当前的语境,准确建立实体链接,实体消歧主要采用聚类法。其实也可以看做基于上下文的分类问题,类似于词性消歧和词义消歧。 (3)实体链接(Entity Linking)实体链接(entity linking)是指对于从非结构化数据(如文本)或半结构化数据(如表格)中抽取得到的实体对象,将其链接到知识库中对应的正确实体对象的操作。其基本思想是首先根据给定的实体指称项,从知识库中选出一组候选实体对象,然后通过相似度计算将指称项链接到正确的实体对象。 (4)知识合并实体链接链接的是从半结构化数据和非结构化数据那里通过信息抽取提取出来的数据。那么除了半结构化数据和非结构化数据以外,还有个更方便的数据来源——结构化数据,如外部知识库和关系数据库。对于这部分结构化数据的处理,就是知识合并的内容啦。一般来说知识合并主要分为两种:
(四)知识加工(Knowledge Processing)海量数据在经信息抽取、知识融合之后得到一系列基本的事实表达,但这并不等同于知识,要想获得结构化,网络化的知识体系,还需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分纳入知识体系中以确保知识库的质量,这就是知识加工的过程。知识加工主要包括3方面内容:本体构建、知识推理和质量评估。 (1)本体(Ontology)本体的概念来自维基百科的本体的定义:
本体这个概念,对于初学者来说的确有些抽象,不易理解。它可以用多种方式来描述:
总的概括:本体定义了组成领域的词汇表的基本术语及其关系,以及结合这些术语和关系来定义词汇表外延的规则。
本体 VS 知识图谱 VS 知识地图引用:
(2)本体构建(Ontology Extraction)本体构建过程包含三个阶段:
比如对下面这个例子,当知识图谱刚得到“阿里巴巴”、“腾讯”、“手机”这三个实体的时候,可能会认为它们三个之间并没有什么差别,但当它去计算三个实体之间的相似度后,就会发现,阿里巴巴和腾讯之间可能更相似,和手机差别更大一些。 这就是第一步的作用,但这样下来,知识图谱实际上还是没有一个上下层的概念,它还是不知道,阿里巴巴和手机,根本就不隶属于一个类型,无法比较。因此我们在实体上下位关系抽取这一步,就需要去完成这样的工作,从而生成第三步的本体。 当三步结束后,这个知识图谱可能就会明白,“阿里巴巴和腾讯,其实都是公司这样一个实体下的细分实体。它们和手机并不是一类。” (3)知识推理(Knowledge Inference)完成了本体构建这一步之后,一个知识图谱的雏形便已经搭建好了。但可能在这个时候,知识图谱之间大多数关系都是残缺的,缺失值非常严重,那么这个时候,我们就可以使用知识推理技术,去完成进一步的知识发现。 知识推理就是指从知识库中已有的实体关系数据出发,经过计算机推理,建立实体间的新关联,从而扩展和丰富知识网络。 例如康熙是雍正的父亲,雍正是乾隆的父亲,那么尽管康熙和乾隆这两个实体之间通过知识推理,就可以获得他们之间是祖孙关系。 知识推理的对象也并不局限于实体间的关系,也可以是实体的属性值,本体的概念层次关系等。比如:
知识的推理方法可以分为2大类:基于逻辑的推理和基于图的推理。 (4)质量评估(Quality Evaluation)质量评估也是知识库构建技术的重要组成部分,这一部分存在的意义在于:可以对知识的可信度进行量化,通过舍弃置信度较低的知识来保障知识库的质量。 三、Reference1、通俗易懂解释知识图谱 或 一文揭秘!自底向上构建知识图谱全过程 |
|