CS224W 图机器学习12:深度图生成模型

1 深度图生成模型基础

图生成的应用:药物发现、材料设计、社交网络建模

图生成的意义:理解图的表达、预测图的演变、实现图的模拟、检测图的异常

图生成的发展:(1)根据现实世界构建图(2)传统图生成(3)深度图生成

之前学习的图编码是一个 encoding 的过程,而图生成是一个 decoding 的过程

图生成的目标:给定来自 $p_{data}(G)$ 的图采样,构建模型 $p_{model}(G)$ 学习图的分布

图生成的的过程

  1. 基于最大似然估计,让 $p_{model}(x;\theta)$ 尽可能接近 $p_{data}(x)$(密度估计);即找到最优的参数 $\theta$,使得似然估计值最大,也就是观测图数据 $x$ 最有可能成为模型生成样本的情况
  2. 通过引入随机噪声 $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 个特点:

  1. 优化给定的目标,比如尽可能提高药物相似度
  2. 需要遵守基本规则,比如化学分子的有效性规则(基本物理定律)
  3. 训练数据来自现实中的模拟分子图数据集

思路:使用强化学习来引导模型的复杂训练过程

GCPN 是一种结合了图表示学习和强化学习的模型,其训练过程如下:

  • GCPN 通过图神经网络(GNN)捕获图结构信息,并参与两个阶段的训练
  • 在有监督学习阶段,GCPN 主要通过模仿图数据集来实现图序列的顺序生成
  • 在强化学习阶段,GCPN 则根据奖励函数来鼓励模型的规则约束和模型优化

GraphRNN vs GCPN:

  • 二者都通过拟合训练集的分布,来实现图生成过程;但 GraphRNN 使用的是 RNN 模型,而 GCPN 则基于 GNN 的节点嵌入预测图生成的动作序列
  • 从图生成的效果来看,GCPN 的表现更好,但也需要更长的计算时间
  • 此外,GCPN 还通过强化学习进一步指导模型,并能检验生成分子图的化学有效性

往年同期文章