文章A Survey on Embedding Dynamic Graphs 2021

上来直奔最关键的地方,嵌入方法,不是纯翻译,只讲重要的地方,需要有一些基础,遇到某些我认为重要的概念会进行解释。

  1. 嵌入类型

针对动态图的嵌入实际上是有两种分类,时序嵌入Temporal Embedding 和拓扑结构嵌入Topological Embedding

1.1时序嵌入

1.1.1 沿时间嵌入

讲人话就是每个点/边/子图都映射为一个低维向量

如下图,每一个节点的每一个时间戳都被映射

1.1.2时间分组嵌入

很明显,就是把时间戳长度扩大并没有本质差别,将t0,t1整合为一个T1......,如此这般这样做的好处大概是可以减小计算量?还有个整体时间嵌入 each node/edge/substructure/graph at every time t ∈ T is represented as a single vector in 如图d。本质没差别,一起说了。

1.2拓扑嵌入

就是按边,按节点,子图结构沿时间嵌入。

  1. 嵌入技术

此部分主要分几类:矩阵分解方法、机器学习方法、基于随机游走的方法、基于边重建优化的方法、图核方法(自己翻译的具体见下面)、

2.1 矩阵/张量分解方法

先介绍一下,主要有两种思路,一种是沿时间顺序,去对去接近度矩阵进行分解,另一种是采取三维的张量,前两维是关于节点接近度的,最后一维是关于时间的。由此就存在了矩阵分解和张量分解两种方式。

2.1.1矩阵分解

优化损失函数:

使用Laplacian Eigenmaps 算法可以用来降维

算法思想大致如上,通过优化这个损失函数,来得到嵌入y。而对于时序图嵌入需要做一些改动如下,

这个公式的意思是,利用∆t来限制时间戳长度,是两个连续时间戳所贡献的损失函数值,是对于某一个时间戳上,它的损失函数值(例如在t1时刻,某个节点\边\子图的嵌入,通过对应目标函数计算的损失值),即对于你想要嵌入的目标,会考虑它在所有时间尺度上的嵌入+连续时间上的影响,同时优化到最优。

另有一种损失优化方案:

与上面的优化限制方式不同,此方案通过初始图得到一个接近度矩阵S(0),然后随着时间戳进行优化,每次去优化计算限制如下

通过矩阵的模的大小来保证,我的理解是,将每次迭代更新保证在一个小范围内,综述上说跟据矩阵扰动理论来的,本人不了解。大概综合思想也是想保证嵌入向量跟原来的图差异尽可能小。

时序矩阵分解:

这个方法是分解一个时间依赖的接近度矩阵S(t),如下,其中h为一个element-wise非线性操作,U是常量矩阵,代表着节点的属性之类的信息,V(t)是一个时间依赖矩阵(我理解是一个自变量是时间,映射到矩阵的一个函数)。模式有了,接下来的问题就是如何设计U与V。都是|V|*k维矩阵,K维需要嵌入维度

存在一种名为DBMM的方式来设计V,用一个转置矩阵T来限制,如下条件,保证

后面沿着这个思路探索,又提出将V(t)作为一个多项式函数:

其中的W是V|*k维矩阵,是通过学习得到的。这样就实际上可以得到了两个嵌入向量,一个是U的行为代表的常量项嵌入,一个是V的行代表的时间变化嵌入向量。

两者结合起来,就是一个完整的嵌入思路。

2.1.2张量分解

所谓张量就是高阶的向量(二维向量就是矩阵,三维可以想象成魔方),动态的图嵌入通常是用三维的来表示,目前以及有很多张量的提取结构信息的方法了,这个动态图嵌入通常是用CANDECOMP/PARAFAC (CP)族的方法进行分解,也有用Tucker分解方法的。基本原理就很简单,分解就完事了,但是第一种算的快,有效率,第二种就不太行了,费时间。

3.1 基于深度学习的方法

深度学习方法,在很多领域都大有用武之地,对于静态图的深度学习方式很多,如GCN,SDNE之类。在动态图学习领域大致可以分为两大类:编码-解码结构和生成模型。编码-解码比较好理解,生成模型我理解是从样本出现的概率训练一个模型,如果这个模型能让样本出现的概率最大,那么用这个模型去生成的embedding就相当可信。

3.1 Encoder-Decoder Architecture

这种模式的方法,主要是针对于重建原始数据,或者针对性解决问题会采用,例如分类问题。

首先是传统autoencoder:这种基本上就是对图的每一个快照都使用一次类似于对静态图的那种嵌入,例如对每个快照都使用SDNE算法。

3.1.1 传统方式

对于DynGEM他对于每一个时间戳的快照都有一个对应的编码器,并且,两个连续时间戳的编码器会共享参数(说是这样可以处理节点数量增加的情况)。LDANE,在上面方法的基础上,它在损失函数上加一项,边缘排序损失项(margin-based ranking loss term)用于保证两个相似的节点的嵌入在嵌入空间中,会比两个不相似的节点更接近。他们都是依靠RNN进行优化。DyGGNN用到的是GGNN去捕获拓扑结构并用LSTM去编码。

3.1.2 Dynamic Autoencoders

这种方法的思想是把嵌入问题,看作是一个时序图重建问题。这个怎么理解呢?我认为,就是通过一个encoder去找到一个embedding,然后利用这个embedding去重建时序上的图,然后拿这个重建的图和实际时序上接下来出现的图做对比,如果二者越相近,那么就侧面反映了这个embedding的效果越好。需要注意的一点是,这种方法,输入是一个图,输出是一个重建图。

以上的方法基本都大差不差,要么是用图卷积学习,要么是用各种RNN以及其变体。讲个结构稍微有点改动的EvolveGCN,他是怎么搞的呢?他是先对每一个快照都会用一个GCN去对应,去学拓扑结构嵌入,注意这里除了第一个GCN的参数是设置的,其他都是学习来的,它会用一个GRU或LSTM去学习GCN的参数,输入就是上一个时间戳的参数,输出就是下一个隐藏层的参数。这样一来就建立的不同时间戳上GCN的时序联系。

3.1.2 Discriminator Networks

这种是任务驱动型方法,但是我不知道为什么这篇综述会把他单独分为一类。都是GCN,LSTMs那一套东西,加点注意力机制各种组合,可能我还理解不到位,回头找几篇这个上面的论文看一下,细细研究一下。

3.2 Generative Models

这个思路有两个大类:一、用变分编码的方式,把输入当初在隐藏空间中的分布。二、用GAN的思路去走

3.2.1Based on Variational Autoencoders

这个的思路是,用原始数据点,去生成一个分布(通常是多重高斯分布)。即默认这个原始数据,是遵循一个默认分布的,然后去学习这个分布的参数,然后你需要预测的embedding,就在这个分布里面去采用。总体来说就类似,把一个节点的各种特征作为高维空间的坐标,生成分布之后,就去高维空间里找。

所有的这个思路都是来自于VGAE算法,对每个快照进行处理。基本都是按照VAE过程演化,有的加了一个时间顺滑项,有的把GCN和LSTM组合起来。BurstGraph框架也是基于这个思想,这个框架是研究图中突发性的改变,把邻接矩阵分成标准邻接矩阵和突发邻接矩阵,然后分别处理,GraphSAGE作为编码器,标准与突发分布一个解码器。具体的等我看了论文再把论文内容详细补上。

3.2.1 GAN的方式

GraphGAN就是采用GAN方式,一个生成网络去近似图的分布,一个判别器去识别节点对的链接性。就是一个产生图的边,一个去分辨图的边。DynGraphGAN用GCN去捕获拓扑信息,用CNN去学习时间演化,用两个节点的嵌入的内积,再取sigmoid作为这条边在某个t时刻的出现的概率,从而去评估整个图的概率分布。GCN-GAN算法激素生成网络带一个GCN,LSTM层,一个全连接层。以上所有的GAN方式的方法,都是在一个图上学习的,生成器去生成一个虚假的快照,去骗判别器。这种方式的限制在于,它只擅长生成节点数相同的快照,也就貌似对有新增节点的动态图效果不好。

4.1 基于随机游走的方法

这部分主要还是依赖随机游走结合skip-gram。

4.1.1 对每个快照都进行随机游走

这个思路就是对每个快照都进行随机游走,得到相应的嵌入之后,再统一整合融入时序信息。前两个就是node2vec或deepwalk之后,直接将向量进行简单串联就OK。第三个利用高斯先验初始化,再用动态伯努利嵌入随时间学习embedding。后面两个都是node2vec找静态嵌入,利用 Orthogonal Procrustes优化。

4.1.2Evolving Random Walks

对于每一个快照都随机游走是个很耗时间的任务,这种方法,只对初始图进行静态的embedding。而且都依据一个思想: 只有少数节点会受到网络演化的影响。Dynnode2vec,对于每个时间戳只在演化节点上生成节点序列,然后丢进dynamic Skip-Gram model。EvoNRL会先用NODE2vec,对初始图进行嵌入,并且记住初始图的边,一旦发现有新的边,再更新随机游走,产生新的节点序列,同样丢进dynamic Skip-Gram model

4.1.3Temporal Random Walk Methods

上面的随机游走都是分别处理各个快照,然后使其产生时序上的联系。这种方法是直接的产生时序联系在随机游走产生的序列中。实际应用中采用CTDNE框架,这个框架设计了一种无偏的时序邻居节点选择和有偏的时序邻居节点选择。在此范式基础上发展了T-EDGE,多了一个加权。 STWalk2对时间与空间(对每个快照)提出了游走方式,对利用skip-gram对将两种学习的嵌入向量结合进行训练然后得出最后的node嵌入。LSTM-node2vec训练一个LSTM autoencoder用采集的节点序列,初始node2vec 的输入层权重在时间 t 为每个快照训练的 LSTM 编码器。

另一种扩散问题跟随机游走也很像,但是本人目前还没了解过,也有用这种思维去做的,主要就是生成序列的方式不同,一种类似扩散,一种类似游走。

动态图嵌入研究现状,方向(综述研读)相关推荐

  1. 图嵌入(一)--综述

    转自:https://zhuanlan.zhihu.com/p/62629465 最近在学习Embedding相关的知识的时候看到了一篇关于图嵌入的综述,觉得写的不错便把文章中的一部分翻译了出来.因自 ...

  2. 图嵌入综述 (arxiv 1709.07604) 译文五、六、七

    应用 图嵌入有益于各种图分析应用,因为向量表示可以在时间和空间上高效处理. 在本节中,我们将图嵌入的应用分类为节点相关,边相关和图相关. 节点相关应用 节点分类 节点分类是基于从标记节点习得的规则,为 ...

  3. 图嵌入综述 (arxiv 1709.07604) 译文第三章

    原文:A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications (arxiv 1709.0760 ...

  4. 图嵌入综述 (arxiv 1709.07604) 译文第一、二章

    原文:A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications (arxiv 1709.0760 ...

  5. 「基于GNN的图分类研究」最新2022综述

    图数据广泛存在于现实世界中, 可以自然地表示复合对象及其元素之间的复杂关联. 对图数据的分类是一 个非常重要且极具挑战的问题, 在生物/化学信息学等领域有许多关键应用, 如分子属性判断, 新药发现等. ...

  6. 图嵌入综述 (arxiv 1709.07604) 译文 4.1 ~ 4.2

    原文:A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications (arxiv 1709.0760 ...

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

    复杂图嵌入 复杂图更适合于现实的应用 大部分针对复杂图设计的方法和针对简单图的算法是相似的. 复杂图简介 异质图 异质图除了边和节点的集合外,还包含两个映射函数.因为在异质图中,节点和边的种类是有不同 ...

  8. 校园请假信息管理系统的背景分析,所涉及问题在国内外的研究现状综述

    校园请假信息管理系统是为了方便学生进行请假申请,方便学校对请假信息进行管理而设计的一种信息管理系统.该系统可以提高请假效率,降低学生请假的时间成本,同时可以有效减轻教师.辅导员等管理人员的工作压力.本 ...

  9. 主流图嵌入模型的原理和应用

    作者:蒋铭和全聪,腾讯 PCG 应用研究员 本文梳理了近几年主流的图嵌入(Graph Embedding)模型,并辅以相应的工业界应用,旨在通过算法原理+业务应用的方式更好地帮助大家了解这一领域的发展 ...

最新文章

  1. html右键禁用和web页面中添加加入qq群的方式
  2. 【深度学习】单位高斯化
  3. Spring容器与上下文理解
  4. 【渝粤题库】陕西师范大学229011 商业银行信贷管理Ⅰ 作业(高起专)
  5. mysql小鲸鱼_杀死一只小鲸鱼
  6. C++新特性探究(9.1):functor仿函数探究
  7. CentOS下ELK 7.2生产安全部署
  8. linux应用编程之进程间同步
  9. 配置Kafka集群和zookeeper集群
  10. 考勤管理系统详细功能分析
  11. 智能家居弱电布线设计注意事项
  12. 修改Apache配置文件httpd.conf,引入PHP模块;后无法启动
  13. echarts 自定义甘特图
  14. cmake使用boost库
  15. Domain Adaptation and Adaptive Information Fusion for Object Detection on Foggy Days
  16. 改oracle 密码,如何修改oracle用户密码
  17. java实现在线预览word,excel,ppt文档
  18. PCIe扫盲——PCIe错误源详解(一)
  19. javascript教程完整版,JavaScript视频教程
  20. 计算机控制版面交换鼠标左右键,鼠标左右键怎么互换呢?左右键互换设置方法...

热门文章

  1. bp神经网络预测模型优点,bp神经网络缺点及克服
  2. how2heap2.31学习(2)
  3. Linux TimeZone设置
  4. python训练营朋友圈广告如何发_如何发朋友圈广告?三个实操案例
  5. 《Deep Surface Light Fields》论文调研
  6. JAM计数法-蓝桥杯
  7. org.apache.maven.plugins:maven-resources-plugin:2.4.3Received fatal alert: protocol_version
  8. echarts中国地图在vue中的使用
  9. 基于腾讯云COS+CI图文音视频解决方案
  10. 最大子数组和js解法