知识图谱推理

知识推理分类 (https://zhuanlan.zhihu.com/p/78744231?from_voters_page=true)
    基于逻辑的推理
    基于规则的推理
    基于分布式的推理

一,逻辑推理与本体推理
    1. 背景:OWL语言逻辑基础——描述逻辑
    2. 核心算法:Tableaux算法
    3. 相关工具: FaCT++、Racer、Pellet、Hermit
    4. 本体推理的局限:
        (1)仅支持本体公理上的推理
        (2)无法定义自己的推理过程

二,基于规则的推理
    1. 基于逻辑编程的方法
        原理:逻辑编程是种编程典范,它设定答案须符合的规则来解决问题,而非设定步骤来解决问题。即:
        事实+规则=结果
        编写方法:Prolog语言 (SWI-Prolog )
    2. 基于逻辑编程改写的方法——Datalog
        Datalog是Prolog的一种适应于知识库的改进形式语言。Datalog是一种数据查询语言语法与Prolog相似
        Datalog优缺点:
            简单容易学习
            克服Prolog语言的缺点:表示方法不够规范,不宜在计算机中使用和处理;
            适合于处理具有大容量的数据和知识;
            可以改善递归查询算法。
    3. Jena
        Jena是一个开源的Java语义网框架,提供了RDFS、OWL和通用规则推理机
    4. 基于一阶查询重写的方法
        常见思路:以Datalog为中间语言,先将SPARQL语言转化为Datalog,然后再将Datalog重写为SQL
    5. AMIE
        AMIE算法的全称是基于不完备知识库的关联规则挖掘算法(Association Rule Mining under Incomplete Evidence),
        通过依次学习预测每种关系的规则:对于每种关系,从规则体为空的规则开始,通过三种操作扩展规则体部分,保留支持度大于阈值的候选(闭式)规则。

 三,基于分布式的推理. 分布式推理
    将实体向量表示(Embedding)在低维稠密向量空间中,然后进行计算和推理。
    5.1 经典翻译模型:Trans系列
        TransE
        TransH
        TransR
        TransD
    5.2 张量分解的模型
        张量分解算法是将整个知识图谱看作一个大的张量,通过张量分解技术分解为很多个小的张量片,即将高维的知识图谱进行降维处理
        经典算法:RESCAL
    5.3 距离模型:
        经典算法:SE模型
    5.4 其他模型:双线性模型,单层神经网络模型
    5.5 开源工具:OpenKE

四,路径推理
    1. 基本原理:
        根据知识图谱图形结构的特点,利用实体间的路径关系进行推理计算,其实质是摒弃人为编写规则的模式,让机器借助模式识别等方式自助的学习规则和特征
    2. 经典算法:PRA(Path Ranking Algorithm)
        2.1 前身:Page Rank
        2.2 PRA的主要原理:
            通过随机游走来学习知识图谱的关系特征,能够定量计算两个节点之间是否有关系,存在关系的概率有多大。
        2.3 PRA的改进:SFE模型
        2.4 其他算法:
            Adamic Adar algorithm、Common Neighbors algorithm 、Preferential Attachment algorithm等

五、 总结
    工业上:逻辑、规则、PRA
    学术上:分布式(知识表示)


##-------------------------------------------------------------------------------

逻辑包括形式逻辑和数理逻辑(符号逻辑)
    形式逻辑包括归纳逻辑与演绎逻辑

    命题逻辑、一阶逻辑、高阶逻辑、模态逻辑、时态逻辑、空间逻辑、认知逻辑、描述逻辑、概率逻辑、逻辑程序、答题程序、过程规则、模糊逻辑……数理逻辑
    形式逻辑(普通逻辑)、数理逻辑、哲学逻辑、模糊逻辑、非形式逻辑、辩证逻辑、制约逻辑等。


一阶逻辑在知识图谱的知识推演中作用,如何获取一阶逻辑? https://www.zhihu.com/question/37457849
  漆桂林:
    简单的本体推理(DL-Lite)对于知识图谱还是有用的
    另外,关系的functionality声明也可以用于检测不一致。
    通过subclass, domain, range,可以对知识图谱做补全。用关联规则挖掘就可以做出来了,见AMIE的工作。

  鲍捷:
    推理的成本很高,所以在工业界的实践中,逐渐就把推理废弃了。
    大部分的推理任务,是可以转化为图上的查询的。
    推理机是很强大,但是大多数工程师掌握不了。
    所以SPARQL rules或者neo4j的查询也就够用了。
    一阶逻辑系统在实战中也比较难以驾驭,通常会用描述逻辑或者逻辑编程logic programming。基于过程语义的规则系统比较实用,如 RIF PRD。


##-------------------------------------------------------------------------------
Neo4j中推理:
    1,关系的传递性
        规则:
            if:
                实体1-[依赖]-实体2
                实体2-[依赖]-实体3
            then:
                实体1-[依赖]-实体3
        inference.py中已经实现

    2,关系的逆反
        规则:
            if:
                姚明-[Wife]-叶莉
            then:
                叶莉-[Husband]-姚明

    3,常识规则
        规则:if A->B && B->C then A->C
            if:
                实体1-[关系1]-实体2
                实体2-[关系2]-实体3
            then:
                实体1-[关系3]-实体3

        示例:
            create (n:Human {name:"姚沁蕾"})
            create (y:Human {name:"叶莉"})
            create (m:Human {name:"姚明"})
            merge p = (n)<-[:Father]-(m)-[:Wife]->(y)-[:Mother]->(n) return p

            match (a)-[:Wife]->(b)-[:Mother]->(c)
            return (a)-[]-(c)

            match (n:Human) detach delete n;

##------------------------------------------------------------------------------
OWL中的属性特性
    1,传递属性(Transitive)
        P(x,y) 与 P(y,z) 蕴含 P(x,z),
        locatedIn是传递属性。
    2,对称属性(Symmetric)
        P(x,y)当且仅当P(y,x),
        siblings是对称属性
    3,逆(owl:inverseOf)
        P1(x,y) 当且仅当P2(y,x)
        P1是wife,P2是husband

    4,函数型属性(Functional)
        P(x,y) 与P(x,z) 蕴含 y = z
    5,反函数型的(InverseFunctional)
        P(y,x) 与 P(z,x) 蕴含 y = z


类(Class 概念)
    描述:
        Equivalent To(等价)-------
        SubClass Of(子类)-------
        General class axioms(通用类公理)
        Subclass Of(Anonymous Ancestor)(继承匿名的类)继承父类的关联关系,匿名类定义在父类中,被子类继承,是子类的必要条件
        Instances(实例)类所包含的个体
        Target for Key(关键字),描述类的行为和属性
        Disjoint With(不相交)------- 互斥的类,不存在一个个体同时属于两个 Disjoint class
        Disjoint Union Of(不相交的类集合)互斥的类的集合,一个类的所有子类都不相交


关系(Object Property)
    Characteristics:特性:
        Functional(函数型)
        InverseFunctional(反函数型)
        Transitive(传递性)-------
        Symmetric(对称性)-------
        Asymmetric(非对称性)
        Reflexive(自反性)
        Irreflexive(反自反性)
    Description:描述:
        Equivalent to(等价)
        Subproperty of(子属性)
        Inverse of(逆)-------
        Domains(定义域)
        Ranges(值域)
        Disjoint With(不相交)
        Superproperty Of(父属性)


属性(Data Property)
    Characteristics:特性:
        Functional(函数型)
    Description:描述:
        Equivalent to(等价)
        Subproperty of(子属性)
        Domains(定义域)
        Ranges(值域)
        Disjoint With(不相交)


实例(instances)
    Description:描述:
        Type(类型)
        Same Individual As(相同的实体)
        Different Individual(不同的实体)
    property assertions(属性断言)
        Object property assertions:对象关联声明,通过事物关联其它个体
        Data property assertions:数据关联声明,设置个体数据关联
        Negative object property assertions:否定对象关联声明
        Negative data property assertions:否定数据关联声明

参考:

https://zhuanlan.zhihu.com/p/78744231?from_voters_page=true 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值