知识图谱导论----相关笔记

1.知识图谱引言

      1.1 知识图谱的发展历史与现有应用

           (1)  深度自然语言理解需要知识的支撑。

           (2)IBM Watson 在知识竞赛节目《危险边缘Jeopardy!》中上演“人机问答大战”,并取胜。

           (3) 1998年语义网的概念被提出。

    1.2 知识图谱的基本概念

  • 已有的知识图谱:

             (1)语言知识图谱

                     WordNet: 155,327个单词,同义词集117,597个,同义词集之间由22中关系连接

             (2)事实性知识图谱

                    OpenCyc :23.9万个实体,1.5万个关系属性,209.3万个事实三元组

                    FreeBase: 4000多万实体,上万个属性关系,24多亿个事实三元组

                    DBpedia: 400多万个实体,48293种属性关系,10亿个事实三元组

                   YAGO2: 980万实体,超过100个属性关系,1亿多个事实三元组

                   百科词条:词条数1000万个

                   百科互动:800万词条,5万个分类,68亿文字

            (3)领域知识图谱

                     Kinships:描述人物之间的亲属关系,104个实体,26种关系,10800个三元组

                     UMLS: 医学领域,描述医学概念之间的联系,135个实体,49种关系,6800个三元组

                     Cora: 2497个实体,7种关系,39255个三元组

           (4)机器自动构建的知识图谱

                  NELL: 519万实体,306种关系,5亿候选三元组

                 Knowledge Vault: 4500万实体,4469种关系,2.7亿三元组

  •        历史:Cyc--->WordNet---->知网---->Wikipedia------>Dbpedia,Yago,freebase
  •        应用:问答、精准搜索、关系搜索、分类浏览、推荐、推理
  •       涉及的领域:Semantic Web、Database、NLP
  •        知识图谱本质上是一种语义网络。其节点代表实体或概念,边代表实体/概念之间的各种语义关系。
  •        三个层面问题:知识体系(表示)---->知识获取----->知识服务
  •       知识图谱概览(基于符号的表示)

               (1)    知识库是一个有向图

                          多关系数据(multi-relational data)

                          节点:实体/概念

                          边:关系/属性

                         关系事实=(head,relation,tail)

  •     知识体系组织形式

               (1)Ontology vs.Knowledge Base

                        Ontology:共享概念化的规范

                       Knowledge:服从于ontology控制的知识单元的载体

               (2)公理:Formal Ontologyvs. Lightweight Ontology

                        Formal Ontology:大量使用公理

                       Lightweight Ontology:很少或不使用公理

               (3)Ontology

                      树状结构,不同层节点之间有严格的IsA关系

                      优点:可以适用于知识推理

                      缺点:无法表示概念的二义性(运动员:体育?人物?)

              (4)Taxonomy

                      树状结构,上下位节点之间非严格的IsA关系

                      优点:可以表示概念的二义性

                      缺点:不适用于推理,无法避免概念冗余(餐厅?美食?机构?地点?)

              (5)Folksonomy

                     类别标签,更加开放

                    优点:能够涵盖更多的概念

                    缺点:如何进行标签管理

            (6)目前的知识资源多是采用Folksonomy与Taxonomy相结合的组织形式。但是能够覆盖的类别还很少

            (7)类别属性定义不统一

                    已有的体系框架:

                        GeoNames

                        DBpedia Ontology

                       TexonConcept Ontology

                       KOS

                       Schema.org:  1) 面对站长,而不是面对知识

                                             2)体系覆盖度不足,局限于英文

                                             3)细致化不足

  • Ontology Matching

              建立体系间的Alignment

                    (1)挖掘概念之间的SameAs关系

                    (2)评测:Ontology Alignment Evaluation Initiative

                                   关键:概念之间相似度的计算

  •   KG的基本概念

                 Node(概念/Concept)、(领域/Domain/Topic)、(实体/实例/Entity/Objects/Instance)

                 Node (值/Value): 实体(Entity)、字符串(String)、  数字(Number)、时间(Date)、枚举(Enumerate)

                 边(关系):Subclass、Type、Relation、Property/Attribute

                关系:Taxonomic Relation vs. Non-taxonomic Relation

                          Taxonomic Relation:is-a/Hypernym-Hyponym

                          Non-taxonomic Relation:概念之间的相互作用

                Node:高阶三元组

                   (1)与时间、地点相关

                   (2)事件

  •   知识分类:百科知识、领域知识、事实性知识、主观性知识、场景知识、语言知识、常识知识
  • 系统架构图

   1.3知识图谱的生命周期

 

      (1) 领域知识建模

             输入:目标领域(医疗、金融)、应用场景

            输出:领域知识本体、领域实体类别体系、 实体属性、 领域语义关系、语义关系之间的关系

            关键技术:Ontology Engineering

     (2)知识获取

            输入:领域知识本体、海量数据:文本、垂直站点、百科

            输出:领域知识(实体集合、实体关系/属性)

           主要技术:信息抽取、文本挖掘

     (3)知识集成

             输入:抽取出来的知识、现有的知识库、知识本体

            输出:知识置信度、  统一知识库

            关键技术:Ontology Matching、  Entity Linking               

     (4)知识存储/查询/推理

             输入:大规模知识库知识

             输出:知识库存储/查询/推理服务

             主要技术:知识表示、知识查询语言、存储/检索引擎、推理引擎                                                            

    (5)总结:知识建模(建模领域知识结构)---->知识获取(获取领域内的事实知识)---->知识集成(估计知识

                    的可信度,将碎片知识组装成知识网络)----->知识存储(提供高性能的知识服务)

  1.4代表性知识图谱

        (1)人工构建知识图谱:  WordNet、Cyc

        (2)基于Wikipedia的知识图谱:Yago、DBPedia、Freebase        

        (3)文本抽取知识图谱:NELL

        (4)WordNet的应用:在自然语言处理中被广泛应用、作为词义消歧的目标知识库、作为高质量的Taxonomy、用于计算语义相似度                                       

        (5)基于Wikipedia的知识库

                  相同的思路  :       从Wikipedia丰富的半结构化信息中挖掘知识:  包括:Infobox,Category,超链接,Table,List…..   

                 不同之处在于:如何处理有歧义的属性映射、如何构建知识库的Taxonomy

                 这些知识库具有相同的数据模型:

                         1)一个知识库包含一个集合 的实体

                         2)实体被划分到不同的类别中

                         3)类别通过上下文关系等关系相互关联

                         4)类别和实体都通过属性和相互之间的关系来描述

                         5)关系可以通过蕴含关系来进行推理

        (6)DBPedia

                  1) 2007年开始,主要目的是构建一个社区,通过社区成员来定义和撰写模板,从维基百科中抽取结构化信息,并将其发布到Web上。

                  2)通过人工的方式构建了Taxonomy(280个类别,覆盖50%的维基百科实体)

                  3)抽取方法:DIEF-Dbpedia Information Extraction Framework

                  4)使用RDF来表示抽取出来的知识。

                  5)支持复杂的结构化query,SPASQL语言查询;支持与web上其他数据集的链接和集成

         (7)Yago(Yet AnotherGreat Ontology)

                  1)德国马普研究所2007年开始的项目

                  2)融合WordNet和Wikipedia

                  3)Yago Taxonomy构建:  使用WordNet的Taxonomy作为基础、将Wikipedia中的类别加入到WordNet中

                  4)Yago的语义关系:

                            人工定义了100多种语义关系

                           抽取方法:主要采用手写的规则抽取

                                              InfoboxHarvesting:信息框

                                              Word-LevelTechniques:重定向页

                                              Category Harvesting:类别信息抽取

                                             Type Extraction:维基类别、WordNet类别

         (8)Freebase

                   1)Metaweb公司2000年开始构建,2010年被Google收购

                   2)从Wikipedia和其他数据源(如IMDB、MusicBrainz)中导入知识

                   3)核心想法:在wikipedia中,人们编辑文章;在Freebase中,人们编辑结构化知识。

                   4)用户是Freebase知识构建的核心

                            编辑实体:创建实体、将实体分到类别、增加/修改属性/关系、上传图片

                            编辑Schema:    定义新类别、定义类别的属性

                             Review:  验证知识的准确性、投票、删除错误知识

                            DataGame:寻找别名、抽取事件日期、使用Yahoo图片搜索、加入图片    

        (9)NELL

                   1)2009年开始的CMU项目

                   2)输入:初始本体(800类别和关系)、每个谓词的一些实例(10-20个种子实例)、web、间歇人工干预

                   3)任务:持续运行、抽取更多知识来补充给定本体、学习如何更好的构建抽取模型

                   4)结构:超过9千万实例(不同置信度)

                   5)抽取步骤: 把名词短语划分到给定类别、 分类名词短语之间的语义关系、 识别新的推理规则,用于发现新的关系实例(PathRank)、

                                            名词短语被映射到概念,动词短语被映射到关系      

      (10)知识图谱

               1)  实体及其之间关系的语义描述:使用形式化知识表示(如RDF、RDFS、OWL)

               2)Entities:真实世界对象和抽象概念

               3)Relationships:将实体按语义关系链接成一张大网

               4)Sematic descriptions:类别和属性

               5)有时包含支持推理的公理知识(如规则)

2.知识图谱的表示与推理

   2.1基于符号的知识表示与推理

  • 知识及知识表示
  • 符号表示知识的方法及实现:Logic、Semantic Net 、Frame、Script、语义网知识表示语言体系
  • Knowledge=Facts+Rules+Control Strategy+(有时)Faiths
  • 知识的类别体系:
        (1)Facts:陈述性知识
        (2)Rules:程序性知识
        (3)Controle Strategy:元知识
  • 知识表示(knowledge representation)
     (1)知识表示同时是认知科学和AI中的科学问题;在认知科学中,KR关注如何存储和处理信息;
              在人工智能中,KR关注如何表示关于世界的信息,并通过常识和事实得出结论
    (2)一个知识表示是事物本身的一个代替,使我们可以通过思考而不是行动来确定事物的后果
    (3)一个知识表示是一个本体约定(ontological commitment)集合

 

  • 知识表示的主要方法
    1. 自然语言
    2. 符号表示方法(logic,sematic Net,Frame,Script,语义网只是表示体系)
    3. 许多其他的方法,如分布式表示方法
  • 知识表示语言的组件
    1. Syntax(句法):知识表示语言中使用到的原子符号,原子符号如何组成合法的语句
    2. Semantics(语义):知识表示中的一个句子在世界上对应的事实,用于决定一个句子的真值。
    3. Inference(推理):如何从已有知识中得到新知识的机制
  • 谓词逻辑(predicate logic)
    1. 关于对象的逻辑,用于表示关于实体对象的知识
    2. 相比命题逻辑,谓词逻辑提供了一套更为灵活且紧凑的知识表示方式,它提供了表示和推理对象属性及不同对象间关系的机制
    3. 对象的表示:
      1. 使用terms来表示对象
      2. Terms是对象的名字,Logical function让我们可以用有限的term来紧凑的表示无限的对象
    4. 命题(Proposition)
      1. Predicate:谓词是一个动词词组,用于描述对象的属性,或是不同对象之间的关系
      2. 命题是谓词+应用于该谓词的一个term元组,表示一个属性或objects之间的关系
      3. 复杂的命题可以通过逻辑连接词来构建
    5. 量词
      1. 通过量词机制,允许声明关于一个集合的对象的知识,而不需要一一枚举它们
    6. Logical KB
      1. 一个逻辑知识库包含:
        1. 用于描述谓词之间关系的公理
        2. 谓词的定义
        3. 事实集合
      2. 用户可以查询特定的知识库
    7. 推理机制
      1. 相等变换
      2. 蕴含推理
      3. 假言推理(三段论)
      4. Universal Elimination
      5. Existential Elimination
      6. Existential Introduction
    8. 用逻辑表示知识的优缺点
      1. 优点:有语义、表达能力强
      2. 缺点:不高效、不可判定性、无法表达过程知识、无法做缺省推理
  • Semantic Net(语义网)
    1. Semantic Net是一个通过语义关系连接的概念网络
    2. Semantic Net将知识表示为相互连接的点和边模式
      1. Node表示实体、属性、事件、值等
      2. Links表示对象之间的语义关系
    3. 通常使用的语义关系
      1. IS-A
      2. Part-of
      3. Modifiles: on ,down,up,bottom,moveto,……
      4. 领域特定的link类型:(医疗:症状、治疗、病因;金融:收购、持有、母公司)
    4. Semantic Net中的推理
      1. Inheritance(继承)
      2. Intersection search(交集搜索)
  • Frame(框架)
    1. Frame表示
      1. 知识通过Frame的形式表示,每一个Frame表示一种典型的原型化场景(a stereotypical situation)
        1. Frame-Based KR类似于面向对象编程,区别在于编码的对象不同
        2. 一个Frame类似于数据库中的数据记录结构或数据库记录
      2. Frame包含slot names和slot filters
        1. 一个Frame的slot集合能够表示与该框架相关的对象
        2. 一个slot可以指向其它的Frame,Procedure,slot
      3. 两类Frame
        1. Class Frame:类似于面向对象编程里面的Class
        2. Individual or Instance Frame:类似于面向对象编程里面的Object
        3. Slot类似于OO里面的variables/methods
      4. 不同的Frame通常被组织成一个层次体系结构
        1. Instance Frame ----instance_of---->Class Frame
        2. Class Frame------subclass_of------>Class Frame
      5. 子类可以从父类继承属性和默认属性值
    2. Frame表示上的推理
      1. 能够推理类别之间和类别与实例之间的ISA关系
      2. 能够使用slots和slot value来推理属性知识
      3. 对象可以继承所有父类的属性
      4. 可以继承原型属性值,同时也可以覆盖原型属性值
    3. Frame表示的优缺点
      1. 优点:
        1. 直接表示领域知识领域
        2. 支持默认推理
        3. 高效
        4. 支持过程知识(slot filter可以是一个过程)
      2. 缺点:
        1. 表达能力受限制
        2. 缺乏标准
        3. 更像一种方法论而不是一种特定的表示
        4. 没有直接与reasoning/inference机制关联
    4. FrameNet--Frame知识库
      1. 围绕框架构建,论元标签在不同框架之间共享
      2. 包含4000多英文谓词,200000人工标注的句子
      3. 包括框架、词元、框架关系、例句及篇章
    5. 汉语框架网(Chinese FrameNet)
      1. 山西大学汉语框架网与语义计算研究室
  • Script(脚本)
    1. Script表示
      1. 脚本与框架类似,有一组槽组成,用来表示特定领域内的一组事件的发生序列
      2. 类似于Frame表示
        1. 使用继承和slots
        2. 描述原型知识(stereotypical knowledge),但是关注事件知识
      3. 基于Conceptual Dependency Theory构建
    2. Script定义
      1. 一个脚本是一个事件序列,包含了一组紧密相关的动作及改变状态的框架
      2. 一个脚本是一个描述特定上下文中的原型事件序列
    3. Script的组成元素
      1. 进入条件:给出脚本中所描述事件的前提条件
      2. 角色:用来表示在脚本所描述事件中可能出现的有关人物的槽
      3. 道具:用来表示在脚本所描述事件中可能出现的有关物体的槽
      4. 场景:描述事件发生的真实顺序。一个事件可以由多个场景组成,而每个场景可以是其它脚本
      5. 结局:给出在脚本所描述事件发生以后所产生的结果
    4. Script的推理
      1. 基于脚本事件因果链的推理
        1. 只有符合特定条件的脚本才会发生
        2. 只有符合结束条件的脚本才会结束
        3. 事件和事件直接的因果链顺序推理
        4. 预测未知事件
    5. Script的特点
      1. 缺点:
        1. 脚本结构与框架结构相比表达能力更受约束
        2. 表示范围更窄
      2. 优点:
        1. 适合于表达预先构思好的特定的知识或顺序性动作及事件,如理解故事情节等
        2. 适用于自然语言理解中的阅读理解等应用
  • Sematic Web知识表示语言
    1. 数据万维网(Web of Data)
      1. 全球开发的知识共享平台
      2. 使用语义网技术
        1. 在Web上发布结构化数据
        2. 在不同数据源中的数据之间建立连接
      3. 特征
        1. Web上的事物拥有唯一 的URI
        2. 事物之间由链接关联
        3. 事物之间链接显式存在并拥有类型
        4. Web上数据的结构显式存在
    2. 语义网信息描述语言
      1. 语义网提供了一套为描述数据而设计的表示语言和工具,用形式化的描述一个知识领域内的概念、术语和关系
      2. HTML描述文档和文档之间的链接
      3. RDF,RDFS,OWL和XML能够描述事物和事物之时间的关系,如人,会议,飞机和飞机组件
    3. 主要组件
      1. 包括一系列的W3C标准和工具:
        1. Resource Description Framework(RDF)
        2. RDF Schema(RDFS)
        3. Web Ontology Language(OWL)
        4. SPARQL, an RDF query language
      1. RDF
        1. RDF是一种表述对象和对象之间关系的简单语言
        2. 使用(subject,predicate,object)三元组的形式来陈述关于对象(使用URI标识的resources)的知识,也就是两个对象之间的带类别链接
        3. RDF是一个通用模型,可以用各种不同的格式来表示,XML,N-Triples,N3,Json-LD等
      2. RDF Schema
        1. RDFS是RDF的一个扩展,提供了一个用于描述RDF resources的属性(properties)和类别(classes)的术语表(vocabulary)
        2. 上述词表被组织成一个带类别的层次体系结构(typed hierarchy)
          1. Class,subClassOf,type:描述类别子类
          2. Property,subPropertyOf:属性层次体系结构
          3. domain,range:定义新术语
        3. 术语表
          1. RDFS提供了定义术语表(vocabularies)的能力 :属性集合和类别集合;与其他术语表中的术语的关
      1. RDF和RDFS
        1. RDF(S)提供了很小的本体约定(ontological commitment)来建模primitives
        2. 一个用于知识表示的词汇表(subClassOf、subPropertyOf、domain、range)
        3. 可以用来定义术语表(vacabulary)
        4. 不能准确描述语义
        5. 缺少推理模型
      2. 本体Ontology
        1. 本体提供了人和机器之间更好的交流机制
        2. 本体通过概念标准化(standardize)和形式化(formalize)词语的意义
        3. 本体的五元组表示O={C,R,F,A,I}
          1. C-概念集合,通常以Taxonomy形式组织
          2. R-关系,描述概念和实例之间语义关系的集合
          3. F-函数,一组特殊的关系,关系中第n个元素的值由其他n-1元素的值确定
          4. A-公理,
          5. I-具体个体
      3. Web Ontology Language=OWL
        1. OWL进一步提供了更多的术语来描述属性和类别
        2. 相比于RDFS的扩展
          1. 构建类别
          2. 构造属性
          3. 属性特征
          4. 属性和类别间关系

2.2基于分布式的知识表示与推理

  • 知识图谱表示学习方法分类
     (1)张量分解
     (2)基于翻译的模型
     (3)神经网络模型
  • 张量表示知识模型
     (1)知识图谱中三元组结构是(头部实体h,关系r,尾部实体
    t),其中r连接头尾实体。
         表示知识图谱中的实体,以
    表示知识图谱中的关系,则可以用一个三维矩阵表示知识图谱。
     (2)
    张量分解得到实体,关系表示
      (3)分解的目标函数
  • 基于翻译的模型TransE
        (1)用向量表示实体和关系。关系事实=(head,relation,tail),对应向量(
    h,r,t)
         (2)
    翻译模型的学习
                  势能函数:对真实的三元组(h,r,t),要求h
    +r=t;错误的不满足该条件
                  目标函数

        (3)生成负样本的方法

                   负样本生成策略
    :
                        1)随机选取实体h
    '(t'),替换(h,r,t)中的h(t),生成负样本(h',r,t)或(h,r,t')
                        2)在选择替换实体的时候,不是完全随机在实体集合中选择,而是在适合关系
    r关系的集合中随机选择
         (4)知识图谱数据问题

                 1)有多种关系“
    1-1”,“1-N”,“N-1”,“N-N"
                 2)解决方案:Trens
    R,TransH,TransD
                 3)实体和关系通常会出现在多个不同的三元组中,类似于一词多义,实体和关系在不同的三元组中常呈现出不同的含义。

                 4)利用协方差描述关系的不确定性
  • 神经网络方法
      (1)神经网络模型
    :Neural Tensor Network、SemanticMatchingEnergyNetwork
      (2)Neural
    Tensor Network
               关系表示
    g(h,r,t)、势能函数表示、实体表示、训练目标和方法、训练集中正样本、负样本、参数、优化方法:L-BFGS
      (3)Semantic
    MatchingEnergyNetwork
           1)评测任务与数据集

                三元组分类

                    任务描述:判定给定的三元组是否是正确的

                    评测标准:这是二分类任务,以分类准确率为评测指标
               
                    数据集:常用的数据集有
    WN11,FB13FB15k
                 链接预测

                    任务描述:挖掘三元组中的实体或关系,然后在实体(关系)集中选择实体(关系)将其补全

                    评测标准:计算正确实体的排名,排名却靠前,模型越优。计算测试集所有三元组头尾部实体的平均排名和排在前1
    0的比例                 数据集:常用数据集有WN18FB15k










  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值