PKUMOD 石瑶
深度图生成任务旨在利用同分布的图数据集,学习得到其概率分布并能够进行反复采样,得到新图。深度图生成器(Deep graph generator, DGG)主要应用分为真实图生成以及目标驱动的图生成两部分,前者目标为生成与给定图尽可能相似的图,多用于社交网络等场景,后者目标为优化给定目标或约束,主要场景为药物分子生成等。
DGG主要面临以下几个挑战:可扩展性,大多数模型的生成规模以百为单位,仅可以满足分子图的需求;节点表示顺序,O(n!)种表示,会影响objective function的计算;图中复杂的依赖关系;模型的可解释性;动态图的生成;有条件的图生成任务。根据使用的方法,现有研究可以分为五类:自回归模型;自编码器模型;基于强化学习的模型;生成对抗模型;流模型。其中,自回归模型可以学习到节点之间更复杂的关系,后四种方法可以针对特定目标/限制进行设计,常用于分子生成。针对社交网络等大规模真实图,自回归模型可能是更好的选择,但与此同时,自回归模型极大地受限于可扩展性问题,难以应用于真实场景。
针对深度自回归模型可扩展性的探索,本文将其分为两部分:Recurrent models;Non-recurrent models,分别进行介绍。
1. Recurrent models
1.1 GraphRNN(ICML 2018)
GraphRNN利用node-level和edge-level的RNN顺序添加点和边到图中:
由于edge-level RNN的步数与图大小直接相关,过长的序列会影响RNN的效果以及可扩展性,作者使用BFS node ordering解决该问题,将步数限制在一定范围内。
1.2 Graphgen (WWW 2020)
Graphgen将图转换为有序边序列进行训练,生成时直接生成边序列,并转换为图:
其中转换的方法为《gSpan: Graph-Based Substructure Pattern Mining》中提出的minimum DFS code,可以保证序列表示的唯一性,并利用label信息对转换过程进行剪枝优化。
2. Non-recurrent models
2.1 GRAN (NeuraIPS 2019)
GRAN每步生成一组节点及改组节点对应的边,组越大,效率越高,但也会牺牲效率。
为了给出augmented edges(即虚线)对应的概率,作者使用GNN进行带attention的消息传播,可以有效减少对于节点顺序的依赖,最后使用K个不同的伯努利分布来加强边之间相关性的建模:
2.2 BiGG (ICML 2020)
针对真实图的稀疏性特点,作者同GraphRNN一样使用了edge和node两个level的方法,分别使用二叉树和树状数组进行建模,显著提高了生成效率。
在edge-level,生成一条边的优化思路如下:
针对顶点u的所有边,可以进行如下优化,一次性生成:
具体生成方法如下,其中使用了Tree LSTM:
对于node level,作者使用树状数组以解决序列过长的问题:
实验结果表明在小规模图上算法的效果更优:
3.总结
Recurrent方法中,GraphRNN通过BFS node ordering解决了边序列过长的问题,但未解决点序列过长的问题;Graphgen使用DFS code解决了node ordering的问题,但对于大规模图而言代价过高,且同样存在序列过长的问题。此外,此类方法的生成图规模无法控制,只能从训练集中学到,进一步限制了图规模的扩展。Non-recurrent方法中,GRAN使用的GNN会限制其可扩展性,BiGG的两个树结构模型可以较为有效地提升效率,可以在100分钟内生成10万个点的图。该类方法可以指定图的大小,用更复杂的结构去学习图分布。