Meta Structures in Knowledge Graphs 阅读笔记

Meta Structures in Knowledge Graphs 阅读笔记

作者:Valeria Fionda and Giuseppe Pirr`o
论文地址:https://iswc2017.semanticweb.org/wp-content/uploads/papers/MainProceedings/272.pdf

Abstract

元结构,也就是模式级图,它是通过抽象知识图谱中一组实体链接信息而来的。文章抽象了数据层的信息,构建了元结构。将元结构的计算问题形式化,设计了基于自动机的算法,用来发现和输入实体链接的子图。提出了基于元结构的相关性度量——Layered-Tuple-Relevance(LTR),用来检索(子图中)和输入实体相关的实体。

Introduction

基于知识图谱可以做信息检索、推荐、聚类、实体消歧等,支撑这些应用最基本的任务就是要抽取实体之间的链接结构,比如路径或图。在数据层面,链接结构能够反映出语义关联信息,通常使用模式信息(类型、域和范围)来抽象链接结构。目前大多数的研究主要关注一对实体之间的连接结构,例如元路径,这就很容易导致了如下几个问题:
(1)这些路径很难获取复杂的关系
(2)输入为一对实体,导致了数据层和模式层不能进行关联
(3)枚举所有的路径,需要的计算量很大
虽然也有一些方法用来获取更强大的链接结构,但是没用应用在知识发现任务中。

  • 运行实例
    文章首先在构建的MEKoNG可视化工具上实现了一个实例,如下:

在这里插入图片描述
该实例的主要任务是:
(1)检索并研究元结构及其实例
(2)检索出与输入实体最相关的5个实体
输入实体元组(A. Aho, J. Hopcroft, D. Knuth),检索出了元结构,如图(a),抽象出的元结构实例如图(b)。基于元结构,还可以评估实体之间的相关性,总的操作就是使用源实体替代元结构中的节点,选取剩下节点中的一个作为目标实体。如图(c)中,A. Aho and J. Hopcroft 作为种子实体替代图(a)中最左侧的两个节点,把剩下来的一个Scientist 节点作为目标实体,最后检索出了5个最相关的实体,并使用了LTR相关性度量进行了排列。

根据已构建的知识图谱,如何发现我们需要的元结构呢?文章先将这个问题形式化,再通过算法发现元结构实例,最后抽象出了元结构实例。

形式化

将知识图谱表示为有向节点和边标签图G= (V, E),含有两个节点映射函数, ϕ i \phi_i ϕi:V—> L v L_v Lv,给每个节点分配一个唯一的id; ϕ t \phi_t ϕt:V—> 2 L s 2^{L_s} 2Ls,给每个节点分配一组 L s L_s Ls中的 类型。一个边映射函数 ψ \psi ψ:E—> L e L_e Le,将每个边关联到 L e L_e Le中的一个类型。
定义1:知识图谱模式层
给定一个知识图谱G以及他的映射函数 ϕ t \phi_t ϕt:V—> 2 L s 2^{L_s} 2Ls ψ \psi ψ:E—> L e L_e Le,G的模式层 T G T_G TG由节点类型和边类型组成的有向图,即, T G T_G TG= ( L s L_s Ls, L e L_e Le)。一个模式层例子如下图:
在这里插入图片描述
可以看出元路径只是能够获取实体之间简单的关系,而元结构就不同了,可以获取更加复杂的实体关系。
将元结构的表示泛化,将输入实体延伸到任意长度,见下:
定义2:m元结构
给定一个知识图谱模式层 T G T_G TG= ( L s L_s Ls, L e L_e Le),实体元组t=( e 1 e_1 e1,…, e m e_m em),则,t的m元结构表示成一个图S = (N, M, T s T_s Ts),其中N ⊑ \sqsubseteq L s L_s Ls,为实体类型节点集合,M为边的集合, T s T_s Ts = ( T 1 T_1 T1,…, T m T_m Tm) ⊑ \sqsubseteq N,为实体类型集合,每一个对应输入实体。对于任意边(u, v) ∈ \in M,则(u,v) ∈ \in L e L_e Le.
定义3:m元结构实例
已知m元结构S = (N, M, T s T_s Ts),实体元组t=( e 1 e_1 e1,…, e m e_m em),知识图谱G,则m元结构实例是知识图谱G的一个实例s = ( N s N_s Ns, M s M_s Ms),存在一个映射 h s h_s hs: N s N_s Ns—>N,满足以下约束:(1)对于任意实体v ∈ \in N s N_s Ns,它的类型h(v) ∈ \in ϕ t \phi_t ϕt(v).(2)对于任意边(u,v) ∈ \in ( ∉ \notin /) M s M_s Ms,则( h s ( u ) h_s{(u)} hs(u), h s ( v ) h_s{(v)} hs(v) ∈ \in ( ∉ \notin /) M

构建元结构实例

设定一个搜索范围h,限定输入实体元组t 中实体连接的图形部分,如果不加以限定或者过大的话,检索出来的m元结构实例就是知识图谱G,也就达不到效果了。现有的计算m元结构实例的方法,主要是计算链接t中实体长度最大等于h的路径,然后再合并路径构建m元结构实例。这样一来,路径就是指数式子,存储空间和运行时间也是指数式,显然这个方法不好。
从而提出了基于自动机理论计算m元结构实例的算法。元组自动机 A t A_t At如下:
在这里插入图片描述
该算法包括两个步骤:
(1)构建有向标签图G × A t A_t At,见算法1,通过自动机 A t A_t At,在图G上执行优化深度优先搜搜构建
(2)去除掉知识图谱G中不是m元结构实例(算法1构建)的部分,具体见算法3
在这里插入图片描述
在这里插入图片描述
首先创建元组自动机 A t A_t At = (Q , ∑ \sum , q 0 q_0 q0, q m − 1 q_{m-1} qm1, δ \delta δ
其中L:
Q:状态集合
∑ \sum :alphabet
q 0 q_0 q0: initial state
q m − 1 q_{m-1} qm1:the set of final states
δ \delta δ:transition function
A t A_t At的大小和输入实体元组大小成线性关系,即 ∣ A t ∣ \left | A_t \right | At = O(m)。
图G × A t A_t At的节点是V× Q × {0,…,h}的子集。只有仅当(i)G 包含由p标记的边(v, v ′ v^{'} v)( v ′ v^{'} v,v)); (ii)转移函数δ包含三元组(q,[ v ′ v^{'} v], q ′ q^{'} q),以及(iii)在深度d访问了节点v,那么图G × A t A_t At包含从节点(v ,q, d)到( v ′ v^{'} v, q ′ q^{'} q, d+1)的边,用p标记,其中p ∈ \in L e L_e Le。如果转换函数δ不包含三元组(q,[ v ′ v^{'} v], q ′ q^{'} q),就将边p加入到G × A t A_t At中,然后进行遍历,将节点/边加入到G × A t A_t At中,具体见算法1的6—11行。
在这里插入图片描述
算法3通过G × A t A_t At构建m元结构实例s,其基本思想就是从空的m元结构实例开始,从后往前将节点和边添加到实例s中,见算法3(5,7,8行)。

抽象元结构实例

在复杂和真正的知识图谱中,节点可以属于多个类,文章中将节点类型设置为类型层级中的最低层级的一级。

基于m元结构的相关性度量(LTR)

已知知识图谱G = (V, E), m元结构S,包括Q个节点,则,至多包含Q-1个不同实体的元组和目标实体 e Q e_Q eQ之间的相关性定义如下:
在这里插入图片描述
其中:
f:相关性度量
s:m元结构S的一个实例
LTR将m元结构S划分成两个部分 S l S_l Sl, S r S_r Sr S l S_l Sl是S的一个子图,由去除目标实体 e Q e_Q eQ以及和该实体连接的边得到。 S r S_r Sr表示目标实体和其相邻实体构成的子图。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41104835/article/details/88741418
今日推荐