大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列
  • 作者:韩信子@ShowMeAI,路遥@百度
  • 大厂处理计划系列教程:www.showmeai.tech/tutorials/5…
  • 本文地址:www.showmeai.tech/article-det…
  • 声明:版权所有,转载请联络渠道与作者并注明出处
  • 收藏 ShowMeAI 检查更多精彩内容

一图看懂全文

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

ShowMeAI社区的技能专家小伙伴们对常识图谱的典型算法做了完结,构建了相关运用 『常识图谱构建与落地实践』,对细节感兴趣的话,请前往 这儿 检查完结代码参阅。代码的整理花费了许多心思,欢迎咱们 PR 和 Star!

ShowMeAI官方GitHub(完结代码参阅):github.com/ShowMeAI-Hu…


一、常识图谱简介

常识图谱,是结构化的语义常识库,用于迅速描绘物理世界中的概念及其相互联系,经过常识图谱能够将Web上的信息、数据以及链接联系聚集为常识,使信息资源更易于核算、了解以及评价,并能完结常识的快速响应和推理。

1.1 广泛运用于各范畴

当下常识图谱已在工业范畴得到了广泛运用,如查找范畴的Google查找、百度查找,交际范畴的领英经济图谱,企业信息范畴的天眼查企业图谱,电商范畴的淘宝商品图谱,O2O范畴的美团常识大脑,医疗范畴的丁香园常识图谱,以及工业制作业常识图谱等。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

在常识图谱技能开展初期,许多企业和科研机构会选用自顶向下的办法构建根底常识库,如 Freebase。随着主动常识抽取与加工技能的不断老练,当时的常识图谱大多选用自底向上的办法构建,如 Google 的 Knowledge Vault 和微软的 Satori 常识库。

1.2 构建技能分类

常识图谱的构建技能首要有自顶向下和自底向上两种。

  • 自顶向下构建:凭借百科类网站等结构化数据源,从高质量数据中提取本体和形式信息,加入到常识库里。
  • 自底向上构建:凭借一定的技能手段,从公开采集的数据中提取出资源形式,挑选其间置信度较高的信息,加入到常识库中。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

1.3 “实体-联系-实体”三元组

下图是典型的常识图谱样例示目的。能够看到,“图谱”中有许多节点,假如两个节点之间存在联系,他们就会被一条无向边衔接在一起,这个节点咱们称为实体(Entity),节点之间的这条边,咱们称为联系(Relationship)

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

常识图谱的根本单位,便是“实体(Entity)-联系(Relationship)-实体(Entity)” 构成的三元组,这也是常识图谱的中心。

二、数据类型和存储办法

常识图谱的原始数据类型一般来说有三类(也是互联网上的三类原始数据):

  • 结构化数据(Structed Data),如:联系数据库、链接数据
  • 半结构化数据(Semi-Structured Data),如:XML、JSON、百科
  • 非结构化数据(Unstructured Data),如:图片、音频、视频

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

典型的半结构化数据样例如下:

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

怎么存储上面这三类数据类型呢?

一般有两种挑选:能够经过RDF(资源描绘结构)这样的规范存储格式来进行存储,比较常用的有Jena等。

<RDF>
    <Description about="https://www.w3.org/RDF/">
        <author>HanXinzi</author>
        <homepage> http://www.showmeai.tech </homepage>
    </Description>
</RDF>

另一种办法是运用图数据库来进行存储,常用的有Neo4j等。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

截止现在为止,看起来常识图谱首要是一堆三元组,那用联系数据库来存储能够吗?

对,从技能上来说,用联系数据库来存储常识图谱(尤其是简略结构的常识图谱),是完全没问题的。但一旦常识图谱变杂乱,用传统的『联系数据存储』,查询功率会显著低于『图数据库』。在一些涉及到2,3度的相关查询场景,图数据库能把查询功率提升几千倍甚至几百万倍。

而且依据图的存储在设计上会十分灵活,一般只需求部分的改动即可。当你的场景数据规模较大的时分,主张直接用图数据库来进行存储。

三、常识图谱的架构

常识图谱的架构首要能够被分为:

  • 逻辑架构
  • 技能架构

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

3.1 逻辑架构

在逻辑上,咱们通常将常识图谱划分为两个层次:数据层和形式层。

  • 形式层:在数据层之上,是常识图谱的中心,存储经过提炼的常识,通常经过本体库来管理这一层(本体库能够了解为面向目标里的“类”这样一个概念,本体库就储存着常识图谱的类)。
  • 数据层:存储真实的数据。

能够看看这个比如: 形式层:实体-联系-实体,实体-特点-性值 数据层:吴京-妻子-谢楠,吴京-导演-战狼Ⅱ

3.2 技能架构

常识图谱的全体架构如图所示,其间虚线框内的部分为常识图谱的构建进程,同时也是常识图谱更新的进程。别严重,让咱们顺着这张图来理一下思路。

  • 首要,咱们有一大堆的数据,这些数据或许是结构化的、非结构化的以及半结构化的;
  • 然后,咱们依据这些数据来构建常识图谱,这一步首要是经过一系列主动化或半主动化的技能手段,来从原始数据中提取出常识要素,即一堆实体联系,并将其存入咱们的常识库的形式层和数据层。

四、构建技能

前面的内容说到了,常识图谱有自顶向下和自底向上两种构建办法,这儿提到的构建技能首要是自底向上的构建技能。

如前所述,构建常识图谱是一个迭代更新的进程,依据常识获取的逻辑,每一轮迭代包括三个阶段:

  • 信息抽取:从各种类型的数据源中提取出实体、特点以及实体间的相互联系,在此根底上形成本体化的常识表达。
  • 常识交融:在获得新常识之后,需求对其进行整合,以消除对立和歧义,比如某些实体或许有多种表达,某个特定称谓也许对应于多个不同的实体等。
  • 常识加工:关于经过交融的新常识,需求经过质量评估之后(部分需求人工参加鉴别),才能将合格的部分加入到常识库中,以确保常识库的质量。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

下面咱们依次来对每一个步骤进行介绍。

4.1 常识抽取

常识抽取(infromation extraction)是常识图谱构建的第1步,其间的要害问题是:怎么从异构数据源中主动抽取信息得到候选指示单元?

信息抽取是一种主动化地从半结构化和无结构数据中抽取实体、联系以及实体特点等结构化信息的技能。涉及的要害技能包括:实体抽取联系抽取特点抽取

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

1)实体抽取

实体抽取,也称为命名实体识别(named entity recognition,NER),是指从文本数据集中主动识别出命名实体

图中,经过实体抽取咱们能够从其间抽取出四个实体:“非洲”、“中国海军”、“冷锋”、“战狼”。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

研讨前史: ◉ 从面向单一范畴进行实体抽取,逐步跨步到面向敞开域(Open Domain)的实体抽取。

2)联系抽取

文本语料经过实体抽取之后,得到的是一系列离散的命名实体。为了得到语义信息,还需求从相关语料中提取出实体之间的相相联系,经过联系将实体联络起来,才能够形成网状的常识结构。这便是联系抽取需求做的事,如下图所示。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

研讨前史: ◉ 人工结构语法和语义规矩(形式匹配)。 ◉ 核算机器学习办法。 ◉ 依据特征向量或核函数的有监督学习办法。 ◉ 研讨重点转向半监督和无监督。 ◉ 开端研讨面向敞开域的信息抽取办法。 ◉ 将面向敞开域的信息抽取办法和面向关闭范畴的传统办法结合。

3)特点抽取

特点抽取的方针是从不同信息源中采集特定实体的特点信息,如针对某个公众人物,能够从网络公开信息中得到其昵称、生日、国籍、教育布景等信息。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

研讨前史: ◉ 将实体的特点视作实体与特点值之间的一种名词性联系,将特点抽取使命转化为联系抽取使命。 ◉ 依据规矩和启发式算法,抽取结构化数据。 ◉ 依据百科类网站的半结构化数据,经过主动抽取生成练习语料,用于练习实体特点标注模型,然后将其运用于对非结构化数据的实体特点抽取。 ◉ 选用数据发掘的办法直接从文本中发掘实体特点和特点值之间的联系形式,据此完结对特点名和特点值在文本中的定位。

4.2 常识交融

经过信息抽取,咱们就从原始的非结构化和半结构化数据中获取到了实体、联系以及实体的特点信息。假如咱们将接下来的进程比喻成拼图的话,那么这些信息便是拼图碎片,散乱无章甚至还有从其他拼图里跑来的碎片、自身便是用来搅扰咱们拼图的过错碎片。

也便是说,拼图碎片(信息)之间的联系是扁平化的,缺乏层次性和逻辑性;拼图(常识)中还存在很多冗繁和过错的拼图碎片(信息)。那么怎么处理这一问题,便是在常识交融这一步里咱们需求做的了。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

常识交融包括2部分内容:实体链接、常识兼并

1)实体链接

实体链接(entity linking)是指关于从文本中抽取得到的实体目标,将其链接到常识库中对应的正确实体目标的操作。其根本思想是首要依据给定的实体指称项,从常识库中选出一组候选实体目标,然后经过类似度核算将指称项圈接到正确的实体目标。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

研讨前史: ◉ 仅关注怎么将从文本中抽取到的实体链接到常识库中,忽视了坐落同一文档的实体间存在的语义联络; ◉ 开端关注运用实体的共现联系,同时将多个实体链接到常识库中。即集成实体链接(collective entity linking)。

实体链接的流程

  • 从文本中经过实体抽取得到实体指称项。
  • 进行实体消歧共指消解,判断常识库中的同名实体与之是否代表不同的含义以及常识库中是否存在其他命名实体与之表明相同的含义。
  • 在确认常识库中对应的正确实体目标之后,将该实体指称项圈接到常识库中对应实体。

实体消歧:是专门用于处理同名实体发生歧义问题的技能,经过实体消歧,就能够依据当时的语境,准确建立实体链接,实体消歧首要选用聚类法。其实也能够看做依据上下文的分类问题,类似于词性消歧和词义消歧。 ◉ 共指消解:首要用于处理多个指称对应同一实体目标的问题。在一次会话中,多个指称或许指向的是同一实体目标。运用共指消解技能,能够将这些指称项相关(兼并)到正确的实体目标,由于该问题在信息检索和自然语言处理等范畴具有特殊的重要性,吸引了很多的研讨努力。共指消解还有一些其他的名字,比如目标对齐、实体匹配和实体同义。

2)常识交融

在前面的实体链接中,咱们已经将实体链接到常识库中对应的正确实体目标那里去了,但需求注意的是,实体链接链接的是咱们从半结构化数据和非结构化数据那里经过信息抽取提取出来的数据。

那么除了半结构化数据和非结构化数据以外,咱们还有个更便利的数据来历———结构化数据,如外部常识库和联系数据库。关于这部分结构化数据的处理,便是咱们常识交融的内容啦。

一般来说常识交融首要分为两种:兼并外部常识库,首要处理数据层和形式层的冲突;兼并联系数据库,有RDB2RDF等办法。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

4.3 常识加工

经过刚才那一系列步骤,咱们终于走到了常识加工这一步了!在前面,咱们已经经过信息抽取,从原始语料中提取出了实体、联系与特点等常识要素,而且经过常识交融,消除实体指称项与实体目标之间的歧义,得到一系列根本的现实表达。

然而现实自身并不等于常识。要想终究获得结构化,网络化的常识体系,还需求阅历常识加工的进程。常识加工首要包括3方面内容:本体抽取、常识推理和质量评估

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

1)本体抽取

本体(ontology)是指工人的概念集合、概念结构,如“人”、“事”、“物”等。**本体能够选用人工修改的办法手动构建(凭借本体修改软件),也能够以数据驱动的主动化办法构建本体。**因为人工办法作业量巨大,且很难找到符合要求的专家,因而当时干流的全局本体库产品,都是从一些面向特定范畴的现有本体库动身,选用主动构建技能逐步扩展得到的。

主动化本体构建进程包括三个阶段: 实体并列联系类似度核算 → 实体上下位联系抽取 → 本体的生成。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

如图所示,当常识图谱刚得到“战狼Ⅱ”、“漂泊地球”、“北京文明”这三个实体的时分,或许会认为它们三个之间并没有什么不同。但当它去核算三个实体之间的类似度后,就会发现,“战狼Ⅱ”和“漂泊地球”之间或许更类似,与“北京文明”不同更大一些。

  • 第一步下来,常识图谱实际上仍是没有一个上下层的概念。它仍是不知道,“漂泊地球”和“北京文明”不隶属于一个类型,无法比较。
  • 因而第二步『实体上下位联系抽取』需求去完结这样的作业,从而生成第三步的本体。
  • 当三步结束后,这个常识图谱或许就会明白,“战狼2和漂泊地球,是电影这个实体下的细分实体。它们和北京文明这家公司并不是一类”。

2)常识推理

在咱们完结了本体构建这一步之后,一个常识图谱的雏形便已经搭建好了。但或许在这个时分,常识图谱之间大多数联系都是残缺的,缺失值十分严重,那么这个时分,咱们就能够运用常识推理技能,去完结进一步的常识发现。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

当然常识推理的目标也并不局限于实体间的联系,也能够是实体的特点值,本体的概念层次联系等。

  • 推理特点值:已知某实体的生日特点,能够经过推理得到该实体的年龄特点;
  • 推理概念:已知(山君,科,猫科)和(猫科,目,食肉目)能够推出(山君,目,食肉目)

这一块的算法首要能够分为3大类:依据常识表达的联系推理技能;依据概率图模型的联系推理技能道路示目的;依据深度学习的联系推理技能道路示目的

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

3)质量评估

质量评估也是常识库构建技能的重要组成部分,这一部分存在的含义在于:能够对常识的可信度进行量化,经过放弃置信度较低的常识来保证常识库的质量。

4.4 常识更新

从逻辑上看,常识库的更新包括概念层的更新和数据层的更新。

  • 概念层的更新:新增数据后获得了新的概念,需求主动将新的概念添加到常识库的概念层中。
  • 数据层的更新:首要是新增或更新实体、联系、特点值,对数据层进行更新需求考虑数据源的可靠性、数据的一致性(是否存在对立或冗繁等问题)等可靠数据源,并挑选在各数据源中呈现频率高的现实和特点加入常识库。

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列

常识图谱的内容更新有两种办法:

  • 全面更新:指以更新后的悉数数据为输入,从零开端构建常识图谱。这种办法比较简略,但资源耗费大,而且需求耗费很多人力资源进行系统维护;
  • 增量更新:以当时新增数据为输入,向现有常识图谱中添加新增常识。这种办法资源耗费小,但现在仍需求很多人工干预(定义规矩等),因而实施起来十分困难。

常识图谱的构建就此结束!

参阅文献

  • [1] 刘峤, 李杨, 段宏,等. 常识图谱构建技能综述J. 核算机研讨与开展, 2016, 53(3):582-600.
  • [2] 打怪的蚂蚁. CSDN. 常识图谱技能技巧.
  • [3] Ehrlinger L, W W. Towards a Definition of Knowledge GraphsC// Joint Proceedings of the Posters and Demos Track of, International Conference on Semantic Systems – Semantics2016 and, International Workshop on Semantic Change & Evolving Semantics. 2016.
  • [4] Das R, Neelakantan A, Belanger D, et al. Chains of Reasoning over Entities, Relations, and Text using Recurrent Neural NetworksJ. 2016:132-141.

ShowMeAI 大厂技能完结计划引荐

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列
  • 大厂处理计划系列 | 数据集&代码集(持续更新中):www.showmeai.tech/tutorials/5…
  • ShowMeAI官方GitHub(完结代码):github.com/ShowMeAI-Hu…
  • 『引荐与广告』大厂处理计划
    • 大厂技能完结 | 多方针优化及运用(含代码完结)@引荐与广告核算系列
    • 大厂技能完结 | 爱奇艺短视频引荐业务中的多方针优化实践@引荐与核算广告系列
    • 大厂技能完结 | 腾讯信息流引荐排序中的并联双塔CTR结构@引荐与核算广告系列
  • 『核算机视觉 CV』大厂处理计划
    • 大厂技能完结 | 图像检索及其在淘宝的运用@核算机视觉系列
    • 大厂技能完结 | 图像检索及其在高德的运用@核算机视觉系列
  • 『自然语言处理 NLP』大厂处理计划
    • 大厂技能完结 | 详解常识图谱的构建全流程@自然语言处理系列
    • 大厂技能完结 | 爱奇艺文娱常识图谱的构建与运用实践@自然语言处理系列
  • 『金融科技』大厂处理计划
  • 『生物医疗』大厂处理计划
  • 『智能制作』大厂处理计划
  • 『其他AI笔直范畴』大厂处理计划

ShowMeAI系列教程精选引荐

  • 图解Python编程:从入门到通晓系列教程
  • 图解数据分析:从入门到通晓系列教程
  • 图解AI数学根底:从入门到通晓系列教程
  • 图解机器学习算法:从入门到通晓系列教程
  • 机器学习实战:手把手教你玩转机器学习系列
  • 深度学习教程:吴恩达专项课程 全套笔记解读
  • 自然语言处理教程:斯坦福CS224n课程 课程带学与全套笔记解读
  • 深度学习与核算机视觉教程:斯坦福CS231n 全套笔记解读

大厂技术实现 | 详解知识图谱的构建全流程 @自然语言处理系列