本文是对《Less Can Be More: Unsupervised Graph Pruning for Large-scale Dynamic Graphs》一文的总结,如有侵权即刻删除。
朋友们,我们在github创建了一个图学习笔记库,总结了相关文章的论文、代码和我个人的中文笔记,能够帮助大家更加便捷地找到对应论文,欢迎star~
Chinese-Reading-Notes-of-Graph-Learning
更多相关文章,请移步:文献阅读总结:网络表示学习/图学习
Title
《Less Can Be More: Unsupervised Graph Pruning for Large-scale Dynamic Graphs》
——arXiv 2023
Author: 李金膛
总结
文章提出了STEP算法,用来解决大规模图学习中的存储空间占用问题。文章指出,当前方法在处理大规模图数据时,往往将其切分为多个子图,而存储这些子图会带来额外的内存占用问题。因此一些研究者开始研究对大规模图的剪枝,以减少内存占用。然而,目前对大规模图的剪枝还停留在静态图上,没有关注图上的动态信息,且很少适用于无监督场景。STEP算法主要关注于时序图数据,并能够在无监督场景下训练运行。其实际效果如下:
1 问题定义
文章中使用的图数据为时序图,即连续时间动态图(Continous-Time Dynamic Graphs,CTDG),这与离散时间动态图的主要区别在于,按照事件/交互到来的先后顺序存储数据成邻接表的形式,而非图结构。
图剪枝的目的在于,删除图中冗余或不必要的边,在不影响模型效果的情况下能够尽可能地提升训练效率和减小内存需求。
STEP模型可分为三部分:(1)图嵌入网络;(2)图采样网络;(3)无图的剪枝网络。
2 图嵌入网络
模型在剪枝前,需要生成节点嵌入来实现剪枝概率的计算。节点嵌入的生成使用的是常见的GNN结构,即基于图上消息传递的信息聚合方式:
该模型结构可以参考GraphSAGE,假设共有K层,那么最后一层的输出即为节点嵌入。
应当注意,STEP模型关注的是图上的剪枝问题,即裁剪去多余的边,那么在得到节点嵌入后就可以进一步计算得到边的嵌入:
边的嵌入由四部分拼接而来,节点i和j的嵌入,边上的原始特征,边上的时间信息。其中,这一时间信息并非直接利用时间戳,而是通过计算时间差值得到:
3 图采样网络
在得到边的嵌入后,可以根据其嵌入来计算相应的裁剪概率。文章认为一条边(交互)的裁剪概率主要考虑两方面,首先是冗余程度(redundancy),此外是相关程度(relevance)。
关于冗余度的计算,可以理解为一条边与其他边越相似,意味着越能被其他边代替,就越冗余。
而在计算相关度时,文章首先计算了全图的表征,即:
通过衡量边与全图表征的相关程度,就能来判断这条边在整个图中是否重要:
而后,该条边的裁剪概率可计算如下:
此外,文章还指出,以往的裁剪概率都是一个离散的值,即有多大的可能性会被抛弃。然而,这种概率值是不可微的,即无法随着模型优化。因此,文章对该概率进行了进一步改进,使得其可微:
4 无图的剪枝网络
文章还指出,上述模块虽然能够很好地对现有图结构进行裁剪,但对于新到来的节点交互,显得不够灵活。因此,文章提出了无图的剪枝网络,即不需要依赖图结构就能决定该条边是否应当裁剪。具体来说,其裁剪概率会根据边的原始特征和交互时间差来计算得到:
5 损失函数
模型的损失函数可以分为三部分,首先是主损失函数,对比损失。该部分用来缩小原始图数据得到的全图嵌入和裁剪图数据得到的全图嵌入之间的差距:
其次,是自蒸馏损失,该损失用来优化无图的剪枝网络模块,用图采样模块计算出的概率与其预测的概率进行比对,来使得剪枝更加有效:
最后是正则化项。文章指出尽管假设图结构遵循伯努利分布,并利用具体分布来近似采样过程,但在训练过程中并不总是保证这样的约束,即得到的分布可能会偏离期望的伯努利分布。因此,文章提出了伯努利矩匹配,通过将分布均值和方差与离散概率分布伯努利(𝑞)进行匹配来拟合采样边的分布:
最终的损失函数即由以上三部分构成: