图深度学习——复杂图嵌入:异质图,二分图,多维图,超图,符号图,动态图

本文介绍了复杂图在现实应用中的优势,重点讲解了异质图的特性,包括Meta-Path模式的定义与发现,以及如何通过metapath2vec进行嵌入。此外,涵盖了二分图、多维图和超图的处理方法,以及动态图中的时序随机游走和动态图嵌入技术。

复杂图嵌入

复杂图更适合于现实的应用

大部分针对复杂图设计的方法和针对简单图的算法是相似的。

复杂图简介

异质图

在这里插入图片描述
异质图除了边和节点的集合外,还包含两个映射函数。因为在异质图中,节点和边的种类是有不同的,这个映射函数就是将节点和边映射到他们的类型上去。

在上图的例子中,有三种类型的节点和三种类型的边。在异质图上做嵌入,和在简单图中做嵌入最本质的区别就是,如何针对异质图来设计不同的游走方法(在DeepWalk中的随机游走)

Meta-Path模式

  • mate-path不是一种路径,而是一种随机游走的模式
  • 不同的meta-path模式捕捉不同的语义信息
  • meta-path模式一般需要利用专业知识来预先定义好
  • 定义不同的meta-path模式可以进行不同的随机游走,产生不同的途径

在这里插入图片描述
怎么去发现meta-path模式?需要通过预先定义或自动挖掘方法

meta-path 就定义了图上的随机游走方式。进行随机游走必须符合meta-path定义的模式

基于Meta-Path的随机游走

一般选用多个预先定义好的Meta-path模式来生成随机游走,这样可以产生一系列随机游走序列。
在这里插入图片描述

异质图嵌入:metapath2vec

基于metapath 的随机游走产生序列,再与DeepWalk相同的处理方法来进行图嵌入操作。
在这里插入图片描述

二分图

在这里插入图片描述

二分图的节点被分为两个不相交的子集,每一个子集内没有边。

信息提取器

二分图的信息提取器有三种:

  • 基于边的信息
  • 通过二分图生成关于节点集合1的子图
  • 通过二分图生成关于节点集合2的子图

信息提取的一些原则/方法:

  1. 如果 V 1 V_1 V1 中的两个节点共享至少一个邻居,则这两个节点在生成子图中相连
    一些小想法:在网络入侵检测中,如果两个源ip的目标ip是同一个,那么他们的关系可以在信息提取中成为相连的邻居;或者如果样本使用的协议是同一个,那他们之间存在连接…
  2. 新边的权重是两条原图中的边的乘积(如果共享多个邻居,则需要在这些邻居上求和)

通过生成两类节点的简单图,就可以从中提取各自的共现信息,再通过DeepWalk就可以得到各自简单图中各个节点的嵌入表示。

在这里插入图片描述

边的信息的重构器和目标函数

边的表示: e = ( v ( 1 ) , v ( 2 ) ) e=\left(v^{(1)}, v^{(2)}\right) e=(v(1),v(2)),在重构器中就是通过给定两个节点去预测是否存在边: p ( e ∣ v ( 1 ) , v ( 2 ) ) p\left(e \mid v^{(1)}, v^{(2)}\right) p(ev(1),v(2)),使这个存在边的概率最大化。对概率建模的方式是通过相似性(sigmoid函数?逻辑回归?):

p ( e ∣ v ( 1 ) , v ( 2 ) ) = σ ( f ( v ( 1 ) ) ⊤ f ( v ( 2 ) ) ) p\left(e \mid v^{(1)}, v^{(2)}\right)=\sigma\left(f\left(v^{(1)}\right)^{\top} f\left(v^{(2)}\right)\right) p(ev(1),v(2))=σ(f(v(1))f(v(2)))

考虑所有边的概率,公式表示:

∏ e ∈ E p ( e ∣ v ( 1 ) , v ( 2 ) ) = ∏ e ∈ E σ ( f ( v ( 1 ) ) ⊤ f ( v ( 2 ) ) ) \prod_{e \in \mathcal{E}} p\left(e \mid v^{(1)}, v^{(2)}\right)=\prod_{e \in \mathcal{E}} \sigma\left(f\left(v^{(1)}\right)^{\top} f\left(v^{(2)}\right)\right) eEp(ev(1),v(2))=eEσ(f(v(1))f(v(2)))

抽取的信息和重构信息尽可能接近,即,重构边的信息尽可能预测正确观察到的边的信息(共现信息),就是要对所有边重构的概率最大化,通常是最小化上式的对数的相反数
在这里插入图片描述

多维图

同一对节点之间可以同时存在多种不同的关系
在这里插入图片描述

又一些小想法:网络中的访问、请求和数据交互是否也可以以多维图的形式表示?

多维图和异质图差别: 多维图上的节点之间同时存在多种不同的关系,异质图虽然也存在多种不同的边,但是在其中的节点之间只会存在一条边(一种关系)

多维图中有多个维度,每一个维度上的节点都是一样的(节点的集合是一样的),但是每一个维度上节点的关系是不一样的,即多个维度表示多种节点之间的关系。

多维图映射函数

对于每一个节点 i i i 都有一个通用的映射函数,对于不同维度的节点又会有各自维度特定的映射函数。例如,在维度为3的多维图中,会存在4个映射函数,一个通用映射函数和三个不同维度的特定映射函数。

通用映射函数:捕捉各个维度共享的信息
维度特定映射函数:捕捉各个维度特有的信息

在这里插入图片描述

一个节点在某一维度的特定表示:

u i blue  = f ( v i ) + f blue  ( v i ) \mathbf{u}_{i}^{\text {blue }}=f\left(v_{i}\right)+f_{\text {blue }}\left(v_{i}\right) ui

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值