1. 首页 > 科技快讯 >

图立方和知识图谱有什么区别?如何学习?

图立方和知识图谱的区别和联系与区别

图网络,即Natural Graph,是基于世界各实体之间的自然关系表示而得到的图,他们的节点一般是某个特定网络中的实体(人、物理机、分子)。例如:社交网络、通信网络、蛋白质网络。

图立方和知识图谱有什么区别?如何学习?图立方和知识图谱有什么区别?如何学习?


知识图谱,即Knowledge Graph,它一般是由知识或信息组织而成的图,它是专门被用来构建知识库并支持决策的。因此知识图谱中的节点可以直接是抽象名词,或者是世界知识或语言知识。

二、异同点

① 二者都是由节点和边组成的图。但是图网络中的实体都是客观存在的,是对真实世界关系的一种呈现;知识图谱主要是把客观世界潜在的知识结构呈现出来,实体可以是抽象的名词。

② 二者都是异质信息网络,但是任务不同。KG是一种知识量丰富的异质信息网络(Heterogeneous Information Network, HIN),它更关注建模实现对关系、节点的表示,模型学习的重点是节点之间的关系,以更好地存储、抽取、推理知识。NG建模任务更关注节点的表示,模型学习的重点是图网络的结构,以达到对节点分类、聚类、链接预测的目的。

三、图网络表示学习(Graph Embedding) VS 知识图谱表示学习(Knowledge Graph Embedding)

也可以称图嵌入学习,分为图网络嵌入graph embedding以及知识图谱嵌入knowledge graph embedding。从起源看,这两个任务中火的方法DeepWalk和TransE,都是受到了word2vec启发提出来的,只是前者是受到了word2vec处理文本序列、由中心词预测上下文的启发;而后者受到了word2vec能自动发现implicit relation (也就是大家常说的 king - man = queen - woman)的启发。

两者的相同之处是目标一致,都旨在对研究对象建立分布式表示。不同之处在于,知识表示重在如何处理实体间的显式关系上;而网络表示重在如何充分考虑节点在网络中的复杂结构信息(如community等)。

1)学习目标不同

网络表示比较注重在嵌入式空间中保留网络的拓扑结构信息,知识图谱的表示在保留结构信息的基础上,也同样注重于关系的重要性,以及它们的头尾关系。知识图谱表示学习更偏向关系建模,在保留结构信息的基础上强调关系和头尾关系,强调的是节点和关系的表示,节点和关系同样重要,因此,知识图谱表示学习中往往指明了关系,比如水果和猕猴桃之间是所属关系。

2)学习方法不同

网络表示学习通常包括三种:基于矩阵分解的模型,比如SVD;基于随机游走的模型,比如DeepWalk;基于深度神经网络的模型,包括CNN、RNN等;此外还有同质网络、异质网络的区分,还有属性网络、融合伴随信息的网络等。

与此不同的是,典型的知识图谱表示算法包括trans系列的算法,如TransE、TransR、TransH等,通过这个三元组去刻画实体和关系的向量表示。

Metapath2vec的前世今生

近看到的一些文章会提到Metapath2vec。于是乎抽了点时间整理了一下从word2vec方法发展到metapath2vec的路径。比较单纯的算是知识总结。本文尽量阐述思想,不过度使用公式表达。

本文中可能会涉及到的比较重要的知识,及其出处:

word2vec: Efficient Estimation of Word Representations in Vector Space

论文地址:

word2vec: word2vec Parameter Learning Explained

论文地址:

Random walk:Random Walk: A Modern Introduction

书籍地址:

Deepwalk:DeepWalk: Online Learning of Social Representations

论文地址:

node2vec:node2vec: Scalable Feature Learning for Networks

论文地址:

综述:LEARNING REPRESENTATIONS OF GRAPH DATA: A SURVEY

论文地址:

在深度学习的应用过程中,Embedding 这样一种将离散变量转变为连续向量的方式为神经网络在各方面的应用带来了极大的扩展。该技术目前主要有两种应用,NLP 中常用的 word embedding 以及用于类别数据的 entity embedding。这一章节中,我们所有的探讨都围绕以下两个问题:

上面说了,Embedding 是一个将离散变量转为连续向量表示的一个方式。在神经网络中,embedding是非常有用的,因为它不光可以减少离散变量的空间维数,同时还可以有意义的表示该变量。

我们可以总结一下,embedding 有以下 3 个主要目的:

要了解 embedding 的优点,我们可以对应 One-hot 编码来观察。One-hot 编码是一种普通常见的表示离散数据的表示,首先我们计算出需要表示的离散或类别变量的总个数 N,然后对于每个变量,我们就可以用 N-1 个 0 和单个 1 组成的 vector 来表示每个类别。这样做有两个很明显的缺点:

因此,考虑到这两个问题,表示类别变量的理想解决方案则是我们是否可以通过较少的维度表示出每个类别,并且还可以一定的表现出不同类别变量之间的关系,这也就是embedding 出现的目的。而为了更好的表示类别实体,我们还可以是用一个 embedding neural network 和 supervised 任务来进行学习训练,以找到适合的表示以及挖掘其内在联系。

neural network embedding中早的应用之一就是word2vec。

Word2Vec是从大量文本语料中以无监督的方式学习语义知识的一种模型,它被大量地用在自然语言处理(NLP)中。那么它是如何帮助我们做自然语言处理呢?Word2Vec其实就是通过学习文本来 用词向量的方式表征词的语义信息 ,即 通过一个嵌入空间使得语义上相似的单词在该空间内距离很近 。Embedding其实就是一个映射,将单词从原先所属的空间映射到新的空间中,也就是把原先词所在空间嵌入到一个新的空间中去。

举个例子:

有四个词:man, woman, king, queen.我们通常是希望这四个词的embedding结果有相近的(距离)关系。man和woman的距离比man和queen的距离小,类似地,man和king的距离与woman和queen的距离相无几,但比man和queen的距离以及woman和king的距离更小。

Word2Vec模型中,主要有Skip-Gram和CBOW两种模型,从直观上理解,Skip-Gram是给定input word来预测上下文。而CBOW是给定上下文,来预测input word。如下图所示。

下图表达的是CBOW的网络结构,这里是输入是多个单词,一般是 求和然后平均再进行计算 ,终的损失函数保持不变。

下图表示skip-gram的网络结构,输入一个词,预测周边的词。

正如我们所看到的,如果想要计算相关的模型,对于我们来说,计算代价是很大的。因此有了hierarchical softmax和negative sampling两个方法。这里稍微提一下hierarchical softmax这个方法,其本质是将一个N分类问题,通过建立树模型,变成一个log(N)次二分类问题。今天的重点在negative sampling。

负采样的思想更简单直接:in order to deal with the difficulty of hing too many output vectors that need to be updated per iteration , we only update a sample of them .

这就是此思想核心的部分,它的实现过程则是如下面的例子:

当训练样本 ( input word: "fox",output word: "quick") 来训练我们的神经网络时,“ fox”和“quick”都是经过one-hot编码的。如果vocabulary大小为10000时,在输出层,我们 期望对应“quick”单词的那个神经元结点输出1,其余9999个都应该输出0 。这9999个我们期望输出为0的神经元结点所对应的单词我们称为“negative” word。使用负采样时,我们将随机选择 一小部分的negative words(比如选5个negative words)来更新对应的权重 。我们也会 对我们的“positive” word进行权重更新 (在我们上面的例子中,这个单词指的是”quick“)。

下面请出今天的一号主角, 负采样目标函数表达式 :

因此,这个目标函数可以理解为两方面的限制:

word2vec是将词变成向量,顾名思义,node2vec其实就是将复杂网络中的节点变成向量。其核心思想为: 生成随机游走,对随机游走采样得到(节点,上下文)的组合,然后用处理词向量的方法对这样的组合建模 得到网络节点的表示。

Deepwalk和node2vec的思想是高度一致的。相比于deepwalk,node2vec在生成随机游走过程中做了一些创新。这里我们不对两者进行深入比较,但由此提出一个结论,也请出今天的二号主角, 这一类编码方式的核心结构 :我个人把它看做是“上、下”结构

上 :想尽一切办法,在你的网络中进行游走,并采集成序,具体什么游走策略取决于你想采集到什么信息。

下 :将采集好的序当作文本,后续与处理词向量的方法相似。

下面以node2vec为例,简单介绍一下这个过程。

采序的目的很单纯:

当然,你采序的思想反映了你希望获取到什么样的信息。论文原文中提到关于广度优先或者深度优先的采序方式在本质上就表达了对不同累心信息的重视。 BFS倾向于在初始节点的周围游走,可以反映出一个节点的邻居的微观特性;而DFS一般会跑的离初始节点越来越远,可以反映出一个节点邻居的宏观特性。 因此!因此!因此! 采序策略是直接反应操作者对哪部分信息更加重视!(二号主角再度出现)

node2vec原文中提出的随机游走策略,实际上就是 综合BFS与DFS的策略 。下面我们细细品一哈。

上图表示我们 刚刚从已经采集了t到v ,那么下一个临幸的对象应该是谁?原文作者,给出了以下的转移概率:

释一下这个分布:

参数p、q的意义分别如下:

返回概率p:

出入参数q:

当p=1,q=1时,游走方式就等同于DeepWalk中的随机游走 。

再一次,采序策略是 直接反应操作者对哪部分信息更加重视! (二号主角再度出现)!

这部分我们只挑重点的说,原文作者通过扩展skipgram,定义了目标函数:

到此,我们已经基本了解到了embedding方法中,这一类方法的结构特点(所谓“上、下”)。但是之前接触的方法均是 处理同质网络的方法 ,而metapath2vec恰恰是可以处理异质网络的一个方法。

Metapath2vec是Yuxiao Dong等于2017年提出的一种用于异构信息网络(Heterogeneous Information Network, HIN)的顶点嵌入方法。metapath2vec使用基于meta-path的random walks来构建每个顶点的异构邻域,然后用Skip-Gram模型来完成顶点的嵌入。在metapath2vec的基础上,作者还提出了metapath2vec++来同时实现异构网络中的结构和语义关联的建模。

这里说说metapath的贡献:

下面我们看看metapath2vec是怎么样实现对异质网络编码的。

对于一个异质网络 ,目标是学习到 维的表达式,其中 的长度远小于邻接矩阵边长,并且同时保持图的结构信息与语义关系。

这部分划重点 :虽然顶点的类型不同,但是 不同类型的顶点的表征向量映射到同一个维度空间 。由于网络异构性的存在,传统的基于同构网络的顶点嵌入表征方法很难有效地直接应用在异构网络上。

metapath2vec方法,着重强调对采序过程的改进。其训练过程方面的改进并不明显。

meta-path-based random walk

该随机游走方式可以同时 捕获不同类型顶点之间语义关系和结构关系 ,促进了异构网络结构向metapath2vec的Skip-Gram模型的转换。

此处有个 小技巧 。一般来说metapath的定义都是 对称 的,比如:一个meta-path的scheme可以是"o-a-p-v-p-a-o"。

这个时候可以将这一小节的内容对比上面4.1 采序中的内容,可以发现metapath的第一个核心贡献:采序策略。

顾名思义,通过化条件概率来学习异质网络的顶点特征。

这个时候再次请出我们的一号主角,原始skip-gram的负采样下的目标函数:

有没有发现区别。本质上的区别非常细微。甚至可以说没有区别。因此,这部分主要的贡献在“采序”升级。

上面我看到了metapath2vec对“上”部分的升级。下面我们看看metapath2vec++是怎么对“下”进行升级的。

主要两点:

首先,softmax函数根据不同类型的顶点的上下文 进行归一化,即是:

这里的目标函数和我们的一号主角虽然也没有本质区别。但是!但是!但是!异质网络的异质信息不仅仅在采序中体现出来,也在目标函数中被体现出来。我把metapath2vec的目标函数和metapath2vec++的目标函数放在一起比较看看:

这里也就引出了metapath2vec++在“训练”目标上的升级。

实验效果说明,下图是原论文中的截图。类别聚类准确率:

论文阅读:Relation Structure-Aware Heterogeneous Information Network Embedding

在文献阅读的基础上加入了自己的理解,为文献阅读笔记,如有错误望不吝指出。

现存的HIN表征算法通常一个模型用到底,没有对不同关系进行区分,这不可避免地会影响网络表征的能力。

Contribution 1. 是第一个来探索HIN中关系区别的工作,并且提出了两种标准将HIN关系归类为两种,ARs (one centered by another) 和 IRs (peer to peer)。

Contribution 2. 提出了RHINE算法,为两类不同的关系都各自建立了模型,并且可以很容易联合在一起优化。

<1> ARs (Affiliation Relations,one-centered-by-another)

这类关系描述一个节点以另外一个节点为中心,一般指隶属关系,如PC关系,paper属于某个会议,这类关系的特征是一类节点度大一类节点度小,即多对一的关系。

<2> IRs (Interaction Relations,peer-to-peer)

这类关系一般指两个节点是对等关系,两个节点之间存在互动关系,如AP关系,作者写了一篇论文,这类关系的特征是两类节点的度不多,即一对一关系。

<1> 基于度的度量指标

给定节点关系元组(u, r, v),以下公式度量其关系类别。

其中,t_u 表示节点类型,d_tu为平均度,即网络中存在的关系r总数 / 节点类型为t_u 的节点总数。

D(r) 越大表示两类节点的平均度异越大,即该关系r更可能是ARs,反之D(r) 越小则表示两类节点的平均度不多,即该关系r更可能是IRs。

<2> 基于网络稀疏度的度量指标

给定节点关系元组(u, r, v),以下公式度量其关系类别。

S(r) 越大表示两类节点间的联系(边)更紧密,即该关系更可能是多对一的ARs,反之S(r) 越小则表示两类节点间的联系(边)没那么紧密,即该关系r更可能是一对一的IRs。

如上图(b)所示,传统HIN算法将一个模型用于捕获网络中的所有关系以此来做网络嵌入。而RHINE不同,如上图(c)所示,RHINE算法分别为两类关系建立模型。

<1> 为ARs关系建立模型:

对于ARs关系s,(p, s, q),小化p、q在向量空间中的欧式距离,计算如下:

理由: 对于ARs关系,一个节点隶属于另一个节点则它们俩共享相类似的性质,自然应该在表示空间中的距离更加相近,而欧式距离可以直接反映向量空间中两个向量的直线距离。

使用 margin-based loss 作为损失函数,建立模型如下:

P_AR 是正样本关系三元组,P'_AR 是负样本关系三元组。

该函数的作用是使得正样本中节点对的向量尽可能相近,使得负样本中节点对的向量尽可能远离。

<2> 为IRs关系建立模型:

对于IRs关系r,(u, r, v),小化u、v在向量空间中的平移距离(曼哈顿距离),计算如下:

理由: 对于IRs关系,两个节点是对等结构的关系,可能作者认为IRs关系没有ARs关系联系那么强,因此采用曼哈顿距离建模,并且是小化X_u+Y_r 与 X_v 的异。

使用 margin-based loss 作为损失函数,建立模型如下:

<3> 终总的目标函数如下:

<1> 数据集:

<2> 对比算法:

① DeepWalk

② LINE

③ PTE

④ ESim

⑤ HIN2Vec

⑥ Metapath2vec

<3> 节点聚类任务:

聚类算法: K-means

评测指标: NMI

实验结果:

在所有数据集上都优于对比算法。

<4> 链路预测任务:

评测指标: AUC,F1 score

实验结果:

在所有数据集上都优于对比算法。

<5> 节点分类任务:

分类算法: Logistic classifier

评测指标: Micro-F1,Macro-F1

实验结果:

在大部分数据集上都优于对比算法,其中AMiner数据集上性能不如HIN2Vec,原因是对于过度捕获了PR、APR关系,因为作者写了一篇论文可能引用多篇不同领域的文献,因此引入了误。

<6> 验证模型策略的有效性实验

实验算法:

RHINE_Eu: 只利用欧式距离来做嵌入,不区分关系类型。

RHINE_Tr: 只利用曼哈顿距离来做嵌入,不区分关系类型。

RHINE_RE: ARs关系采用曼哈顿距离,IRs关系采用欧式距离。

RHINE: 即论文所提算法,ARs关系采用欧式距离,IRs关系采用曼哈顿距离。

实验结果:

论文所提策略是有效的,图中效果的。

<7> 可视化实验(仅对论文节点)

实验结果:

RHINE算法不但能清晰看出四类节点,并且类簇之间的边界也是非常清晰的。

<8> 参数分析

如图(a)所示,表征向量维度在100以后趋于稳定,论文中向量维度选择为100。

如图(b)所示,负样本数在3之后趋于稳定,论文中负样本数选择为3。

1、Relation Structure-Aware Heterogeneous Information Network Embedding. Yuanfu Lu, Chuan Shi, Linmei Hu, Zhiyuan Liu. AAAI 2019.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息