【知识图谱】(task2)知识图谱表示

note

  • 知识图谱的符号表示方法:
    • 属性图是工业界最常见的图谱建模方法,属性图数据库充分利用图结构特点做了性能优化,实用度高,但不支持符号推理。
    • RDF是W3C推动的语义数据交换标准与规范,有更严格的语义逻辑基础,支持推理,并兼容更复杂的本体表示语言OWL。
    • 在三元组无法满足语义表示需要时,OWL作为一种完备的本体语言,提供了更多可供选用的语义表达构件。
  • 描述逻辑可以为知识图谱的表示与建模提供理论基础。描述逻辑之于知识图谱,好比关系代数之于关系数据库;在知识图谱的深度利用中,如复杂语义的表达、规则引擎的构建、推理的实现,会对更有丰富表达能力的知识表示方法有更多的需求。
  • 图模型是更加接近于人脑认知和自然语言的数据模型,RDF作为一种知识图谱表示框架的参考标准,向上对接OWL等更丰富的语义表示和推理能力,向下对接简化后的属性图数据库以及图计算引擎,仍然是最值得重视的知识图谱表示框架。
  • 知识(图谱)的表示学习是符号表示与神经网络相结合比较自然且有前景的方向。知识的向量表示有利于刻画那些隐含不明确的知识,同时基于神经网络和表示学习实现的推理一定程度上可以解决传统符号推理所面临的鲁棒性不高不容易扩展等众多问题。

零、回顾上一节

知识图谱技术要素:

在这里插入图片描述

一、知识表示

知识表示:KR,knowledge representation,即KR时用易于计算机处理的方式来表示人脑的知识方法。
在这里插入图片描述

二、AI历史的知识表示

基于离散符号的知识表示(非主流了,简单了解下),共同缺点是知识的获取主要依靠专家和人工:
在这里插入图片描述

  • 基于连续向量的知识表示:tensor,各种embedding的学习。
  • 隐式知识、弱逻辑约束、不易解释、对接NN神经网络。
  • 知识的向量表示,促进多种模态的融合

在这里插入图片描述

三、知识图谱的符号表示方法

在这里插入图片描述

3.1 属性图

  • 属性图是图数据库Neo4J实现的图结构表示模型,在工业界有广泛应用。
  • 属性图的优点是表达方式非常灵活,例如,它允许为边增加属性,非常便于表示多元关系。
  • 属性图的存储充分利用图的结构进行优化,因而在查询计算方面具有较高优势。
  • 属性图的缺点是缺乏工业标准规范的支持,由于不关注更深层的语义表达,也不支持符号逻辑推理。

在这里插入图片描述

  • 在属性图的术语中,属性图是由 顶点(Vertex),边(Edge),标签(Label),关系类型还有属性(Property)组成的有向图。
  • 顶点也称为 节点(Node),边也称为 关系
    (Relationship)。在属性图中,节点和关系是最重要的实体。节点上包含属性,属性可以以任何键值形式存在。

3.2 RDF:Triple-based Assertion model

RDF: resource description framework 支持推理,也兼容更复杂的本体表示语言OWL。
RDF是国际万维网联盟W3C推动的面向Web的语义数据标准。
基于RDFS的简单推理:
在这里插入图片描述

3.3 OWL:Web Ontologies

三元组如果无法满足语义表示需求时,可以使用OWL。OWL的表达构件:等价性声明、声明属性的传递性、两个属性互反、属性的函数性、属性的对称性等,如下举例所示:
在这里插入图片描述
OWL语言家族:
在这里插入图片描述

四、知识图谱的向量表示

4.1 知识图谱嵌入模型

词向量最初我们会使用one-hot encoding每个词,但是词语义其实可符号化,由被使用场景的上下文确定(即词的分布式向量表示),像skip-gram一样根据中心词预测上下文,学习词向量。而相似词的embedding是靠近的:
在这里插入图片描述
知识图谱嵌入模型有两大类:翻译距离模型和语义匹配模型。翻译距离模型是将tail向量视为由head向量经过relation向量的翻译距离得到的。我们先来介绍第一类中最基础的TransE模型:

(1)先假设headrelationtail向量都是二维向量。对每个三元组(h, r, t)构建如下目标函数进行优化,采用负例采样,用正负例的差距作为损失函数,从而学出实体和关系的embedding。 f r ( h , t ) = ∥ h + r − t ∥ L 1 / L 2 f_r(h, t)=\|h+r-t\|_{L_1 / L_2} fr(h,t)=h+rtL1/L2
在这里插入图片描述
我们这里通过Freebase开源知识图谱数据训练TransE模型,其中torch版的模型定义:

class TransE( nn.Module ):

    def __init__( self, n_entitys, n_relations, dim = 128, margin = 1 ):
        super( ).__init__( )
        self.margin = margin # hinge_loss中的差距
        self.n_entitys = n_entitys #实体的数量
        self.n_relations = n_relations #关系的数量
        self.dim = dim #embedding的长度

        # 随机初始化实体的embedding
        self.e = nn.Embedding( self.n_entitys, dim, max_norm = 1 )
        # 随机初始化关系的embedding
        self.r = nn.Embedding( self.n_relations, dim, max_norm = 1 )

    def forward( self, X ):
        x_pos, x_neg = X
        y_pos = self.predict( x_pos )
        y_neg = self.predict( x_neg )
        return self.hinge_loss( y_pos, y_neg )

    def predict( self, x ):
        h, r, t = x
        h = self.e( h )
        r = self.r( r )
        t = self.e( t )
        score = h + r - t
        return torch.sum( score**2, dim = 1 )**0.5

    def hinge_loss( self, y_pos, y_neg ):
        dis = y_pos - y_neg + self.margin
        return torch.sum( torch.relu( dis ) )

TransE模型对于多对一、一对一、一对多关系的处理能力不够强。
(2)知识图谱嵌入模型DistMult
在这里插入图片描述

4.2 推理问题

评估向量实体的好坏,最简单的就是测试三元组(h, r, t),如通过h和r预测t,计算和真实t的距离。
在这里插入图片描述

时间安排

任务 任务信息 截止时间
- 12月12日正式开始
Task01: CP1知识图谱概论(2天) 12月12-13日 周二
Task02: CP2知识图谱表示 + CP3知识图谱的存储和查询(上)(6天) 12月14-19日 周六
Task03: CP3知识图谱的存储和查询(下)(3天) 12月20-22日 周二
Task04: CP4知识图谱的抽取和构建(3天) 12月23-25日 周五
Task05: CP5知识图谱推理(4天) 12月26-29日 周二

Reference

[1] 推荐系统前沿与实践. 李东胜等
[2] 自然语言处理cs224n-2021–Lecture15: 知识图谱
[3] 东南大学《知识图谱》研究生课程课件
[4] 2022年中国知识图谱行业研究报告
[5] 浙江大学慕课:知识图谱导论.陈华钧老师
[6] https://conceptnet.io/
[7] KG paper:https://github.com/km1994/nlp_paper_study_kg
[8] 北大gStore - a graph based RDF triple store
[9] Natural Language Processing Demystified
[10] 玩转Neo4j知识图谱和图数据挖掘
[11] TransE模型学习笔记
[12] 知识图谱嵌入:TransE代码及解析(初学者也能看懂)

猜你喜欢

转载自blog.csdn.net/qq_35812205/article/details/128259336
今日推荐