复杂图嵌入
复杂图更适合于现实的应用
大部分针对复杂图设计的方法和针对简单图的算法是相似的。
异质图

异质图除了边和节点的集合外,还包含两个映射函数。因为在异质图中,节点和边的种类是有不同的,这个映射函数就是将节点和边映射到他们的类型上去。
在上图的例子中,有三种类型的节点和三种类型的边。在异质图上做嵌入,和在简单图中做嵌入最本质的区别就是,如何针对异质图来设计不同的游走方法(在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的子图
信息提取的一些原则/方法:
- 如果 V 1 V_1 V1 中的两个节点共享至少一个邻居,则这两个节点在生成子图中相连
一些小想法:在网络入侵检测中,如果两个源ip的目标ip是同一个,那么他们的关系可以在信息提取中成为相连的邻居;或者如果样本使用的协议是同一个,那他们之间存在连接… - 新边的权重是两条原图中的边的乘积(如果共享多个邻居,则需要在这些邻居上求和)
通过生成两类节点的简单图,就可以从中提取各自的共现信息,再通过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(e∣v(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(e∣v(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) ∏e∈Ep(e∣v(1),v(2))=∏e∈Eσ(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

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

被折叠的 条评论
为什么被折叠?



