1 深度图生成模型基础
图生成的应用:药物发现、材料设计、社交网络建模
图生成的意义:理解图的表达、预测图的演变、实现图的模拟、检测图的异常
图生成的发展:(1)根据现实世界构建图(2)传统图生成(3)深度图生成
之前学习的图编码是一个 encoding 的过程,而图生成是一个 decoding 的过程
图生成的目标:给定来自 $p_{data}(G)$ 的图采样,构建模型 $p_{model}(G)$ 学习图的分布
图生成的的过程
- 基于最大似然估计,让 $p_{model}(x;\theta)$ 尽可能接近 $p_{data}(x)$(密度估计);即找到最优的参数 $\theta$,使得似然估计值最大,也就是观测图数据 $x$ 最有可能成为模型生成样本的情况
- 通过引入随机噪声 $z\sim N(0,1)$,从已训练模型 $f$ 中采样生成图 $x_i=f(z_i;\theta)$
深度图生成模型:使用深度神经网络来构建图采样函数 $f$ 的模型
2 GraphRNN 基于递归的图生成
GraphRNN 通过自回归的方式实现图的生成,递归的每一步是节点/边的添加
递归生成的两种方式:
- 节点(node-level)生成:每一次迭代时,添加一个新的节点
- 边(edge-level)生成:每一次迭代时,在两个已存在的节点间增加边
通过以上方式,可以将图生成问题转化为序列生成问题
GraphRNN 通过两种类型的 RNN 来实现图的生成:
- Node-level RNN 生成新的节点,作为 Edge-level RNN 的初始状态
- Edge-level RNN 顺序预测新节点,是否会连接到其他已存在的节点
- 在下一轮迭代中,Edge-level RNN 隐藏状态会传递给 Node-level RNN
- 用序列开始标记(SOS)作为初始输入,SOS 一般为值全为 0/1 的向量
- 用序列结束标记(EOS)作为额外的 RNN 输出,来标识序列生成的停止
3 图生成的简化和评价
GraphRNN 的问题: (1)任何一个新生成的节点都看你连接到之前的任意节点 (2)边生成步骤太多(边依赖复杂),需要生成完整的邻接矩阵
GraphRNN 的简化:广度优先搜索(BFS)节点排序
- 上图中,节点 4 生成时没有连接到节点 1;因此在 BFS 排序的前提下,节点 1 所有的邻居节点已经被遍历;所以在节点 5 生成时,不需要考虑节点 5 和节点 1 之间的边生成
- BFS 节点排序,能减少节点的可能排序,并且大幅减少需要的边生成步骤
GraphRNN 需要构建的邻接矩阵也得到简化:
图生成的评价(1)视觉相似度(2)图统计值的相似度
4 GCPN 基于强化学习的图生成
以分子图生成为例,说明 GCPN 模型:
分子图生成问题的 3 个特点:
- 优化给定的目标,比如尽可能提高药物相似度
- 需要遵守基本规则,比如化学分子的有效性规则(基本物理定律)
- 训练数据来自现实中的模拟分子图数据集
思路:使用强化学习来引导模型的复杂训练过程
GCPN 是一种结合了图表示学习和强化学习的模型,其训练过程如下:
- GCPN 通过图神经网络(GNN)捕获图结构信息,并参与两个阶段的训练
- 在有监督学习阶段,GCPN 主要通过模仿图数据集来实现图序列的顺序生成
- 在强化学习阶段,GCPN 则根据奖励函数来鼓励模型的规则约束和模型优化
GraphRNN vs GCPN:
- 二者都通过拟合训练集的分布,来实现图生成过程;但 GraphRNN 使用的是 RNN 模型,而 GCPN 则基于 GNN 的节点嵌入预测图生成的动作序列
- 从图生成的效果来看,GCPN 的表现更好,但也需要更长的计算时间
- 此外,GCPN 还通过强化学习进一步指导模型,并能检验生成分子图的化学有效性