乐趣区

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

常识图谱(Knowledge Graph)的概念由谷歌 2012 年正式提出,旨在实现更智能的搜索引擎,并且于 2013 年当前开始在学术界和业界遍及。目前,随着智能信息服务利用的一直倒退,常识图谱已被广泛应用于智能搜寻、智能问答、个性化举荐、情报分析、反欺诈等畛域。本篇是『常识图谱构建与落地实际』的起始篇,咱们与来自百度的 NLP 工程师路遥,一起钻研常识图谱的构建流程与技术细节。


一图看懂全文

获取『自然语言解决』行业解决方案

『举荐与计算广告』系列包含爱奇艺、美团、小米、百度等公司的业务剖析和技术解读。我的项目实现代码、我的项目数据集、论文合辑、文章合辑等,已整顿为大厂行业解决方案。扫码返回 公众号(AI 算法研究所) 后盾回复关键字『自然语言解决』获取。

相干代码实现参考

ShowMeAI 社区的技术专家小伙伴们也对常识图谱的典型算法做了实现。对『常识图谱构建与落地实际』细节感兴趣的话,请返回咱们的GitHub 我的项目(https://github.com/ShowMeAI-Hub)查看实现代码。感激 ShowMeAI 社区参加此我的项目的所有技术专家小伙伴, 也欢送大家 PR 和 Star!

举荐浏览 | 点击查看『自然语言解决』系列教程


一、常识图谱简介

常识图谱,是结构化的语义知识库,用于迅速形容物理世界中的概念及其互相关系,通过常识图谱可能将 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 步,其中的关键问题是:如何从异构数据源中主动抽取信息失去候选批示单元?

信息抽取是一种自动化地从半结构化和无构造数据中抽取实体、关系以及实体属性等结构化信息的技术。波及的关键技术包含:实体抽取 关系抽取 属性抽取

4.1.1 实体抽取

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

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

钻研历史
◉ 从面向繁多畛域进行实体抽取,逐渐跨步到面向凋谢域(Open Domain)的实体抽取。

4.1.2 关系抽取

文本语料通过实体抽取之后,失去的是一系列离散的命名实体。为了失去语义信息,还须要从相干语料中提取出实体之间的关联关系,通过关系将实体分割起来,才可能造成网状的知识结构。这就是关系抽取须要做的事,如下图所示。

钻研历史
◉ 人工结构语法和语义规定(模式匹配)。
◉ 统计机器学习办法。
◉ 基于特征向量或核函数的有监督学习办法。
◉ 钻研重点转向半监督和无监督。
◉ 开始钻研面向凋谢域的信息抽取办法。
◉ 将面向凋谢域的信息抽取办法和面向关闭畛域的传统办法联合。

4.1.3 属性抽取

属性抽取的指标是从不同信息源中采集特定实体的属性信息,如针对某个公众人物,能够从网络公开信息中失去其昵称、生日、国籍、教育背景等信息。

钻研历史
◉ 将实体的属性视作实体与属性值之间的一种名词性关系,将属性抽取工作转化为关系抽取工作。
◉ 基于规定和启发式算法,抽取结构化数据。
◉ 基于百科类网站的半结构化数据,通过主动抽取生成训练语料,用于训练实体属性标注模型,而后将其利用于对非结构化数据的实体属性抽取。
◉ 采纳数据挖掘的办法间接从文本中开掘实体属性和属性值之间的关系模式,据此实现对属性名和属性值在文本中的定位。

4.2 常识交融

通过信息抽取,咱们就从原始的非结构化和半结构化数据中获取到了实体、关系以及实体的属性信息。如果咱们将接下来的过程比喻成拼图的话,那么这些信息就是拼图碎片,散乱无章甚至还有从其余拼图里跑来的碎片、自身就是用来烦扰咱们拼图的谬误碎片。

也就是说,拼图碎片(信息)之间的关系是扁平化的,不足层次性和逻辑性;拼图(常识)中还存在大量繁杂和谬误的拼图碎片(信息)。那么如何解决这一问题,就是在常识交融这一步里咱们须要做的了。

常识交融包含 2 局部内容:实体链接、常识合并。

4.2.1 实体链接

实体链接(entity linking)是指对于从文本中抽取失去的实体对象,将其链接到知识库中对应的正确实体对象的操作。其根本思维是首先依据给定的实体指称项,从知识库中选出一组候选实体对象,而后通过类似度计算将指称项链接到正确的实体对象。

钻研历史
◉ 仅关注如何将从文本中抽取到的实体链接到知识库中,漠视了位于同一文档的实体间存在的语义分割;
◉ 开始关注利用实体的共现关系,同时将多个实体链接到知识库中。即集成实体链接(collective entity linking)。

实体链接的流程:

  • 从文本中通过实体抽取失去实体指称项。
  • 进行 实体消歧 共指消解,判断知识库中的同名实体与之是否代表不同的含意以及知识库中是否存在其余命名实体与之示意雷同的含意。
  • 在确认知识库中对应的正确实体对象之后,将该实体指称项链接到知识库中对应实体。

实体消歧 :是专门用于解决同名实体产生歧义问题的技术,通过实体消歧,就能够依据以后的语境,精确建设实体链接,实体消歧次要采纳聚类法。其实也能够看做基于上下文的分类问题,相似于词性消歧和词义消歧。
共指消解:次要用于解决多个指称对应同一实体对象的问题。在一次会话中,多个指称可能指向的是同一实体对象。利用共指消解技术,能够将这些指称项关联(合并)到正确的实体对象,因为该问题在信息检索和自然语言解决等畛域具备非凡的重要性,吸引了大量的钻研致力。共指消解还有一些其余的名字,比方对象对齐、实体匹配和实体同义。

4.2.2 常识交融

在后面的实体链接中,咱们曾经将实体链接到知识库中对应的正确实体对象那里去了,但须要留神的是,实体链接链接的是咱们从半结构化数据和非结构化数据那里通过信息抽取提取进去的数据。

那么除了半结构化数据和非结构化数据以外,咱们还有个更不便的数据起源———结构化数据,如内部知识库和关系数据库。对于这部分结构化数据的解决,就是咱们常识交融的内容啦。

一般来说常识交融次要分为两种:合并内部知识库 ,次要解决数据层和模式层的抵触; 合并关系数据库,有 RDB2RDF 等办法。

4.3 常识加工

通过方才那一系列步骤,咱们终于走到了常识加工这一步了!在后面,咱们曾经通过信息抽取,从原始语料中提取出了实体、关系与属性等常识因素,并且通过常识交融,打消实体指称项与实体对象之间的歧义,失去一系列根本的事实表白。

然而事实自身并不等于常识。要想最终取得结构化,网络化的常识体系,还须要经验常识加工的过程。常识加工次要包含 3 方面内容:本体抽取、常识推理和品质评估。

4.3.1 本体抽取

本体(ontology)是指工人的概念汇合、概念框架,如“人”、“事”、“物”等。本体能够采纳人工编辑的形式手动构建(借助本体编辑软件),也能够以数据驱动的自动化形式构建本体。因为人工形式工作量微小,且很难找到符合要求的专家,因而以后支流的全局本体库产品,都是从一些面向特定畛域的现有本体库登程,采纳主动构建技术逐渐扩大失去的。

自动化本体构建过程蕴含三个阶段: 实体并列关系类似度计算 → 实体上下位关系抽取 → 本体的生成。

如图所示,当常识图谱刚失去“战狼Ⅱ”、“漂泊地球”、“北京文化”这三个实体的时候,可能会认为它们三个之间并没有什么差异。但当它去计算三个实体之间的类似度后,就会发现,“战狼Ⅱ”和“漂泊地球”之间可能更类似,与“北京文化”差异更大一些。

  • 第一步下来,常识图谱实际上还是没有一个上上层的概念。它还是不晓得,“漂泊地球”和“北京文化”不隶属于一个类型,无奈比拟。
  • 因而第二步『实体上下位关系抽取』须要去实现这样的工作,从而生成第三步的本体。
  • 当三步完结后,这个常识图谱可能就会明确,“战狼 2 和漂泊地球,是电影这个实体下的细分实体。它们和北京文化这家公司并不是一类”。

4.3.2 常识推理

在咱们实现了本体构建这一步之后,一个常识图谱的雏形便曾经搭建好了。但可能在这个时候,常识图谱之间大多数关系都是完好的,缺失值十分重大,那么这个时候,咱们就能够应用常识推理技术,去实现进一步的常识发现。

当然常识推理的对象也并不局限于实体间的关系,也能够是实体的属性值,本体的概念档次关系等。

  • 推理属性值:已知某实体的生日属性,能够通过推理失去该实体的年龄属性;
  • 推理概念 :已知(老虎,科,猫科) 和(猫科,目,食肉目)能够推出(老虎,目,食肉目)

这一块的算法次要能够分为 3 大类:基于常识表白的关系推理技术;基于概率图模型的关系推理技术路线示意图;基于深度学习的关系推理技术路线示意图。

4.3.3 品质评估

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

4.4 常识更新

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

  • 概念层的更新:新增数据后取得了新的概念,须要主动将新的概念增加到知识库的概念层中。
  • 数据层的更新:次要是新增或更新实体、关系、属性值,对数据层进行更新须要思考数据源的可靠性、数据的一致性(是否存在矛盾或繁杂等问题)等牢靠数据源,并抉择在各数据源中呈现频率高的事实和属性退出知识库。

常识图谱的内容更新有两种形式:

  • 全面更新:指以更新后的全副数据为输出,从零开始构建常识图谱。这种办法比较简单,但资源耗费大,而且须要消耗大量人力资源进行系统维护;
  • 增量更新:以以后新增数据为输出,向现有常识图谱中增加新增常识。这种形式资源耗费小,但目前仍须要大量人工干预(定义规定等),因而施行起来十分困难。

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

五、相干代码实现参考

获取『自然语言解决』行业解决方案

『举荐与计算广告』系列包含爱奇艺、美团、小米、百度等公司的业务剖析和技术解读。我的项目实现代码、我的项目数据集、论文合辑、文章合辑等,已整顿为大厂行业解决方案。扫码返回 公众号(AI 算法研究所) 后盾回复关键字『自然语言解决』获取。

相干代码实现参考

ShowMeAI 社区的技术专家小伙伴们也对常识图谱的典型算法做了实现。对『常识图谱构建与落地实际』细节感兴趣的话,请返回咱们的GitHub 我的项目(https://github.com/ShowMeAI-Hub)查看实现代码。感激 ShowMeAI 社区参加此我的项目的所有技术专家小伙伴, 也欢送大家 PR 和 Star!

举荐浏览 | 点击查看『自然语言解决』系列教程

六、参考文献

  • 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,路遥 @百度
地址:http://www.showmeai.tech/article-detail/knowledge-graph
申明:版权所有,转载请分割平台与作者并注明出处

退出移动版