欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

知识图谱(一)-基本概念

程序员文章站 2022-06-12 17:05:20
...

开放资料以及一些相关项目:

开放的中文知识图谱

基于elasticsearch的KBQA实现及示例

智能问答机器人

什么是知识图谱?

知识图谱(Knowledge Graph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。 知识图谱是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。

知识图谱的发展

20世纪中叶,普莱斯等人提出使用引文网络来研究当代科学发展的脉络的方法,首次提出了知识图谱的概念。(注意:这里的知识图谱和本博文主要介绍的知识图谱不太一样,在此是指Mapping Knowledge Domain,而本博文主要介绍的知识图谱是指Knowledge Graph)1977年,知识工程的概念在第五届国际人工智能大会上被提出,以专家系统为代表的知识库系统开始被广泛研究和应用,直到20世纪90年代,机构知识库的概念被提出,自此关于知识表示、知识组织的研究工作开始深入开展起来。机构知识库系统被广泛应用于各科研机构和单位内部的资料整合以及对外宣传工作。2012年11月Google公司率先提出知识图谱(Knowledge Graph,KG)的概念,表示将在其搜索结果中加入知识图谱的功能。其初衷是为了提高搜索引擎的能力,增强用户的搜索质量以及搜索体验。据2015年1月统计的数据,Google 构建的KG已经拥有5亿个实体,约35亿条实体关系信息,已经被广泛应用于提高搜索引擎的搜索质量。虽然知识图谱(Knowledge Graph)的概念较新,但它并非是一个全新的研究领域,早在2006年,Berners Lee就提出了数据链接(linked data)的思想,呼吁推广和完善相关的技术标准如URI(Uniform resource identifier),RDF(resource discription framework),OWL(Web ontology language),为迎接语义网络的到来做好准备。随后掀起了一场语义网络研究的热潮,知识图谱技术正是建立在相关的研究成果之上的,是对现有语义网络技术的一次扬弃和升华。

  • 起源(20世纪中叶):知识图谱(Mapping Knowledge Domain)
  • 发展(20世纪90年代):知识库(Knowledge Base)
  • 形成(2012年Google首次提出):知识图谱(Knowledge Graph)

定义

知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系。其基本组成单位是“实体 关系 实体”三元组,以及实体及其相关属性值对,实体间通过关系相互联结,构成网状的知识结构。

G\in  (E,R,S) 

其中

E=\left \{  \right.e_1,e_2,e_3,e_4,e_5...e_{|E|} \left.  \right \}

是知识库中的实体集合,共包含| E |种不同实体;

 R= \{r_1 ,r_2 ,...,r_{|R|}\}

是知识库中的关系集合,共包含| R |种不同关系;

S\subseteq E \times R \times E

代表知识库中的三元组集合。三元组的基本形式主要包括实体1、关系、实体2和概念、属性、属性值等,实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等;属性主要指对象可能具有的属性、特征、特性、特点以及参数,例如国籍、生日等;属性值主要指对象指定属性的值,例如中国、1988-09-08等。每个实体(概念的外延)可用一个全局唯一确定的ID来标识,每个属性-属性值对(attribute-value pair,AVP)可用来刻画实体的内在特性,而关系可用来连接两个实体,刻画它们之间的关联。

总结一下知识图谱包含三层含义:

  1. 知识图谱本身是一个具有属性的实体通过关系链接而成的网状知识库.从图的角度来看,知识图谱在本质上是一种概念网络,其中的节点表示物理世界的实体(或概念),而实体间的各种语义关系则构成网络中的边.由此,知识图谱是对物理世界的一种符号表达 .
  2. 知识图谱的研究价值在于,它是构建在当前Web基础之上的一层覆盖网络(overlay network),借助知识图谱,能够在Web网页之上建立概念间的链接关系,从而以最小的代价将互联网中积累的信息组织起来,成为可以被利用的知识。
  3. 知识图谱的应用价值在于,它能够改变现有的信息检索方式,一方面通过推理实现概念检索(相对于现有的字符串模糊匹配方式而言);另一方面以图形化方式向用户展示经过分类整理的结构化知识,从而使人们从人工过滤网页寻找答案的模式中解脱出来。

知识图谱架构主要部分:

  • 知识抽取(包括实体抽取、关系抽取以及属性抽取等)
  • 知识融合(包括实体消岐等)
  • 知识加工(包括本体构架、知识推理等)
  • 知识更新

知识图谱架构细化

知识抽取或信息抽取

  • 实体抽取
    • 基于规则和词典的方法
    • 基于统计机器学习的方法
    • 面向开放域的抽取方法
  • 关系抽取
    • 基于规则和模板的方法
    • 基于统计机器学习的方法
    • 面向开放域的抽取方法
  • 属性抽取
    • 基于规则与启发式算法
    • 基于机器学习的算法

知识融合

  • 实体连接
  • 实体消岐 专门用于解决同名实体产生歧义问题的技术。实体消岐主要采用聚类的方法,聚类法消歧的关键问题是如何定义实体对象与指称项之间的相似度,常用的方法有:
    1. 空间向量模型(词袋模型<BOW.WIKI.CSDN>)
    2. 语义模型(与空间向量模型相似,不同的地方在于语义模型不仅包含词袋向量,而且包含一部分语义特征)
    3. 社会网络模型(该模型的基本假设是物以类聚人以群分,在社会化环境中,实体指称项的意义在很大程度上是由与其相关联的实体所决定的)
    4. 百科知识模型(百科类网站通常会为每个实体分配一个单独页面,其中包括指向其他实体页面的连接,百科知识模型正是利用这种链接关系来计算实体指称项之间的相似度)
    • 实体对齐 主要用于消除异构数据中实体冲突、指向不明等不一致性问题,可以从顶层创建一个大规模的统一知识库,从而帮助机器理解多源异质的数据,形成高质量的知识库。对齐算法可以分为成对实体对齐和集体实体对齐,而集体实体对齐又可以分为局部集体实体对齐和全局集体实体对齐。成对实体对齐:《1》基于传统概率模型的实体对齐方法。《2》基于机器学习的实体对齐方法。局部实体对齐方法:局部实体对齐方法为实体本身的属性以及与它有关联的实体的属性分别设置不同的权重,并通过加权求和计算总体的相似度,还可以使用向量空间模型以及余弦相似性来判别大规模知识库中的实体的相似程度,算法为每个实体建立了名称向量与虚拟文档向量,名称向量用于标识实体的属性,虚拟文档向量则用于表示实体的属性值以及其邻居节点的属性值的加权和值。全局集体实体对齐方法:1》基于相似性传播的集体实体对齐方法。《2》基于概率模型的集体实体对齐方法
    • 整体层面分类
      • 基于概率生成模型方法
      • 基于主题模型的方法
      • 基于图的方法
      • 基于深度神经网络的方法
  • 知识合并
    • 合并外部知识库:将外部知识库融合到本地知识库需要处理2个层面的问题。
      1. 数据层的融合,包括实体的指称、属性、关系以及所属类别等,主要的问题是如何避免实例以及关系的冲突问题,造成不必要的冗余。
      2. 通过模式层的融合,将新得到的本体融入已有的本体库中。
    • 合并关系数据库:在知识图谱的构建过程中,一个重要的高质量知识来源是企业或者机构自己的关系数据库。为了将这些结构化的历史数据融入到知识图谱中,可以采用资源描述框架(RDF)作为数据模型。业界和学术界将这一数据转换过程形象的称为RDB2RDF,其实质就是将关系数据库的数据转换成RDF的三元组数据。
  • 知识加工
    • 本体构建—本体的最大特点在于它是共享的,本体中反映的知识是一种明确定义的共识。本体是同一领域内不同主体之间进行交流的语义基础,本体是树状结构,相邻层次的节点(概念)之间具有严格的“IsA”关系,这种单纯的关系有利于知识推理却不利于表达概念的多样性。本体的构建可以采用人工编辑的方式手动构建(借助于本体编辑软件),也可以采用计算机辅助,以数据驱动的方式自动构建,然后采用算法评估和人工审核相结合的方式加以修正和确认。除了数据驱动的方法,还可以采用跨语言知识链接的方法来构建本体库。对当前本体生成方法的主要研究工作主要集中在实体聚类方法,主要挑战在于经过信息抽取得到的实体描述非常简短,缺乏必要的上下文信息,导致多数统计模型不可用。(可以利用主题进行层次聚类)。

知识推理

知识推理是指从知识库中已有的实体关系数据出发,经过计算机推理,建立实体间的新关联,从而拓展和丰富知识网络,知识推理是知识图谱构建的重要手段和关键环节,通过知识推理,能够从现有知识中发现新的知识。

  • 基于逻辑的推理
    • 一阶谓词逻辑推理
    • 描述逻辑推理
    • 规则逻辑推理
  • 基于图的推理
    • 基于神经网络模型
    • 基于Path Ranking算法
  • 跨知识库的知识推理(当前趋势)
  • 质量评估—对知识库的质量评估任务通常是与实体对齐任务一起进行的,其意义在于,可以对知识的可信度进行量化,保留置信度较高的,舍弃置信度较低的,有效保证知识的质量。 已有的方法 大多是基于 symbolic 和 logical 的推理系统,比如 Universal Schema,它学习 relation type 的向量表示,包括结构化 KG 中的以及自然语言文本中的关系表示,其中的 matrix completion(矩阵完备化) 机制可以进行简单的推理,但只能对单条 evidence进行操作,比如从 microsoft-located-in-seattle 推理出 microsoft-HQ-in-seattle。

更高级的推理 是从从句中得到包含三个或更多实体的 multi-hop 的知识库图路径。比如可以从 Melinda–spouse–Bill–chairman–Microsoft–HQ-in–Seattle 得到 Melinda–lives-in–Seattle。

资料

知识更新

人类所拥有信息和知识量都是时间的单调递增的函数,因此知识图谱的内容也需要与时俱进,其构建过程是一个不断迭代更新的过程。从逻辑上看,只是哭的更新包括概念层更新和数据层更新。知识图谱内容的更新有两种方式:数据驱动下的全面更新和增量更新。

知识表示

虽然三元组的知识表示形式受到了人们的广泛认可,但是其在计算效率、数据稀疏性等方面却面临着诸多问题。近年来,以深度学习为代表的学习技术取得了重要的进展,可以将实体的语义信息表示为稠密低维的实值向量,进而在低维空间中高效计算实体、关系及其之间的复杂语义关联,对知识库的构建、推理、融合以及应用均具有重要的意义。分布式表示旨在用一个综合的向量来表示实体对象的语义信息,是一种模仿人脑工作的表示机制,通过知识表示而得到的分布式表示形式在知识图谱的计算、补全、推理等方面起到重要的作用:语义相似度计算、链接预测(又被称为知识图谱补全)等代表模型如下:

  • 距离模型
    • 首先将实体用向量进行表示,然后通过关系矩阵将实体投影到与实体向量同一纬度的向量空间中,最后通过计算投影向量之间的距离来判断实体间已经存在的关系的置信度。由于距离模型中的关系矩阵是两个不同的矩阵,故实体间的协同性较差,这也是该模型本身的主要缺陷。
  • 单层神经网络模型
    • 针对距离模型的缺陷,提出了采用单层神经网络的非线性模型(single layer model,SLM)。单层神经网络模型的非线性操作虽然能够进一步刻画实体在关系下的语义相关性,但是在计算开销上却大大增加。
  • 双线性模型
    • 双线性模型又叫隐变量模型(latent factor model,LFM)。双线性模型主要是通过基于实体间关系的双线性变换来刻画实体在关系下的语义相关性,模型不仅形式简单、易于计算,而且能够有效刻画实体间的协同性。
  • 神经张量模型
    • 其基本思想是,在不同维度下,将实体联系起来,表示实体间复杂的语义联系。神经张量模型在构建实体的向量表示时,是将该实体中的所有单词的向量取平均值,这样一方面可以重复使用单词向量构建实体,另一方面将有利于增强低维向量的稠密程度以及实体与关系的语义计算。
  • 矩阵分解模型: 例如RESACL模型
    • 通过矩阵分解的方式可以得到低维的向量表示,故不少研究者提出可以采用该方式进行知识表示学习,其中典型的代表是RESACL模型。
  • 翻译模型: 例TransE模型
    • 受到平移变现象的启发,提出了TransE模型,即将知识库中实体之间的关系看成是从实体间的某种平移,并用向量表示。关系lr可以看作是从头实体向量lh到尾实体向量lt的翻译。该模型的参数较少,计算的复杂度显著降低,同时,TransE模型在大规模稀疏数据库上也同样具有较好的性能与可扩展性。
  • 复杂关系模型
    • 知识库中的实体关系类型可分为:1-to-1、1-to-N、N-to-1、N-to-N 4种类型。代表性模型有:TransH模型、TransR模型、TransD模型、TransG模型、KG2E模型。

模型 :

语义神经网络 基于距离的模型,Translational Distance Model.

最经典的 TransE 方法中, 只能通过对一个 triplet(三元组) 进行评分. 而无法对两个节点直接进行计算距离. 当然, 语义相似的 entity embedding (估计) 是具有近似的向量的, 也许用cosine距离函数或者l2函数计算一下的话, 可能会发现语义上的相关性. 但是, 为什么会这样, 还没有类似的研究. 因为, TransE, Dismult这样的模型本身就不是为了计算 entity 之间的 similarity 而设计, 也就是说没有为了计算 similarity 去显式地设计模型.

转载于:https://my.oschina.net/VenusV/blog/3075589