【知识图谱】介绍

时间:2022-01-18 18:00:53

概念介绍

知识图谱的概念,由google于2012年率先提出,其初衷是用以增强自家的搜索引擎的功能和提高搜索结果质量,使得用户无需通过点击多个连接就可以获取结构化的搜索结果,并且提供一定的推理功能,但以目前各种chatbot的发展趋势来看,语义交互可能也会成为后期一个重要的搜索入口。我们可以看一个例子。
在google中输入:杭州景点,能够得到结构化的展现
【知识图谱】介绍

google知识图谱图谱的前身是雅虎的研究员在09年提出的概念网络,其数据来源除了自身的搜索日志,还有其收购的freebase(2014年关闭),wikipedia等。目前已经广泛应用在其搜索引擎,并不断融合多领域的知识(目前已知的除了基本的ner五大要素之外,还有健康图谱和购物图谱)。另外,微软也在做自己的概念图谱probase,目前提供了升级的测试功能。目前来看,国内真正可以称为拥有了图谱化数据的只有两家,百度知心和搜狗知立方。

关键点:

基于现有的知识图谱相关的技术点,可以把知识图谱相关的技术抽象为如下4点,包含了算法和部分工程所需,其中1-3主要是知识库构建的相关工作,可以看做是离线的部分,而4可以作为在线使用知识的方式。

1.知识获取

结构化信息:网络爬虫

通过爬虫,可以爬到网页的infobox信息,其中已经有结构化的部分信息,通过网页链接,也可以得到部分较准确的关系链接
以科比的infobox为例:
【知识图谱】介绍

半/非结构化文本:bootstrap模板+keyword的方式抽取

一般来讲,通过我们爬取到的信息,还能够得到关于实体的摘要和描述性文本,以下面刘德华为例,我们在得到了一段描述性文本后,通常能够在其中发现大量的实体信息,将其作为keyword,我们能够通过统计得到大量关系和属性描述模板,以此使用bootstrap框架不断扩充数据集合。
【知识图谱】介绍

2.知识构建

知识图谱的构建,作为离线数据的最重要的部分,其主要工作是从自然语言文本中抽取指定类型的实体、关系、时间等事实信息,形成结构化输出。从知识图谱构建的角度来说,我们可以把其分为三个方向:实体识别,实体链接和关系(属性)挖掘,下面说一下它们各自的主要工作是什么。

实体融合

因为我们的数据往往是多源异构的,同一个string刘德华,在百度百科上都有十个义项(也就是对应到了10个实体),怎么把各个数据源(虾米,优酷,百度,淘宝)的数据整合在一起,并且将其对应到合理的entity_id,就是一个实体融合的过程,那么对于通过知识获取已经结构化的实体信息,我们怎样把他们融合在一起呢

  • 属性相似度计算
    • 关键属性对比(特别是数字,日期类的属性,一般可以唯一确定)
    • 关系链接对比(链接的关系实体名称等是否一致)
  • 摘要的文本相似性 一般来说,摘要的文本jaccard也是一个比较方式
  • 向量距离 如后文会说的RL,如果向量空间距离接近,也可能是同一个实体

实体链接

一般来说,我们处理的都是文本信息,当时实体链接需要坐到id到id的映射,怎样当前的文本指代中知道一个实体的关系是另个实体的id呢

  • 网页linking关系
    使用实体指代作为查询条件模拟搜索请求,可以得到该实体相关信息,然后采用双向校验的方式完成linking
  • PRA
    利用现有的数据,用下面会说的PRA方式,找到执行度高的entity_id作为候选,然后进行关系的分类

属性/关系抽取

  • 目前一般采用的是bootstrap的方式,首先用现有实体在文本中生成大量的伪标注,然后在当前标注区域附近提取大量文本特征,最终把关系挖掘变成一个二分类或者多分类问题。
  • 还有一些方式是通过伪标注数据生成类似ner的标注样本,通过bi_lstm+crf的方式,对属性值标注为1,非属性值标注为0,扩大集合
  • *

3.知识存储和查询

存储方式:spo三元组,rdf,owl

  • spo
    是最简单也是最灵活的一种存储方式,其把图谱的基本结构看做的三元组,所有的linking都通过这种kkv的形式完成。
  • rdf
    简单一点说,就是把spo表示成了一种资源描述符的方式,并且能方便灵活的通过网页存储,目前的图存储和查询,大部分都是采用了这种方式。
<?xml version="1.0"?>     
<RDF>
<Description about="http://www.yahoo.com/">
<资源作者>Yahoo!公司</资源作者>
<资源名称>Yahoo!首页</资源名称>
</Description>
</RDF>
  • owl
    可以看做rdf的升级,在本体外封装了一层语法,但是因为其需要更强的描述,目前大部分还是用的rdf

4.知识表示和推理

知识表示

  • 一阶谓词逻辑
    公式化的表示了kg上的关系,通过知识元(实体或者概念),规则(一个规则可以对应到一个关系约束,语法(定义了规则链的执行)来描述一个推理引擎。
    【知识图谱】介绍

  • 表示学习(RL)
    目标是能够将KG中的entity和relation映射到一个低维的稠密embedding中,从而将知识推理转换为该空间上的向量或矩阵的运算。其应用范围包括了相似度计算,知识图谱补全,和实体链接等。主要的框架是首先通过空间假设将one-hot的entity和relation,映射到参数空间 Φθ 中,然后通过最大化正负样本的空间距离作为得分函数,下面以认知度最广泛的transE举例。

    • 假设实体和关系通过 Φθ 映射后,存在于同一个向量空间,则对于三元组(s,p,o)来说,就可以使用如下的距离公式来表示他们的关系

      d(s,p,o)=||Φθ(s)+Φθ(p)Φθ(o)||2

    • 对于正样本(s+,p,o+)和负样本(s−,p,o−),我们可以使用一个margin损失来作为最终的loss如下

      argmin[d(s+,p,o+)d(s,p,o)]

    • 采取三元组中现有的数据作为正样本,通过替换s或者o的方式进行NCE采样,收敛时即得到了θ 由于transE的空间线性假设,使其不能表示1-n的关系,后来的出现的transR,transG等方法,假设关系和实体处在不同的向量空间中,也取得了不错的效果。

知识推理

知识推理作为知识库的一个重要出口,也是近几年研究的热点,基于不同的表示方法,推理方法也分为三个流派

  • PathRanking方法(PRA)
    来源于CMU对NELL的优化,其采用了图上的randomwalk方法,结合一阶谓词逻辑,通过置信度传播的方式,得到rank靠前的路径,作为新的推理规则,这种方法因为可解释和可干预,是目前被广泛采用的方式
    举个例子:
    【知识图谱】介绍

  • 基于RL的空间向量运算
    因为所有的知识都被映射到了一个向量空间,所有的知识推理可以通过向量运算完成

  • 概率图模型(PGM)
    【知识图谱】介绍
    从逻辑到概率
    【知识图谱】介绍

    参考文献:

    http://blog.csdn.net/iloveayu/article/details/76714077