返回介绍

数学基础

统计学习

深度学习

工具

Scala

三十六、DCNN [2016]

发布于 2023-07-17 23:38:24 字数 57285 浏览 0 评论 0 收藏 0

  1. 与结构化数据打交道是一种挑战。一方面,找到正确的方式来表达和利用数据中的结构可以改善预测性能;另一方面,找到这样的 representation 可能是困难的,而且在模型中添加结构会大大增加预测的复杂性。

    论文 《Diffusion-Convolutional Neural Networks》 的目标是为通用的结构化数据设计一个灵活的模型,在提高预测性能的同时避免复杂性的增加。为了实现这一目标,作者引入 "diffusion-convolution"操作,将卷积神经网络扩展到通用的图结构数据。简而言之,diffusion-convolution 操作不是像标准卷积操作那样在网格结构的输入中扫描一个 "正方形",而是通过在图结构的输入中扫描每个节点的diffusion process 来建立一个 latent representation

    这个模型的动机是这样的:封装了 graph diffusionrepresentation 可以为预测提供一个比 graph 本身更好的 basisgraph diffusion 可以表示为一系列的矩阵幂次从而包含上下文信息,并且可以在多项式时间内计算,以及可以在 GPU 上有效实现。

    在论文 《Diffusion-Convolutional Neural Networks》 中,作者提出了 diffusion-convolutional neural network: DCNN ,并探讨了它们在图数据的各种分类任务中的表现。许多技术在分类任务中包括结构信息,如概率关系模型 probabilistic relational model 和核方法 kernel methodDCNN 提供了一种补充方法,在节点分类任务的预测性能上有了明显的改善。

    DCNN 的主要优势:

    • 准确性:在实验中,DCNN 在节点分类任务中的表现明显优于其他方法,在图分类任务中的表现与baseline方法相当。
    • 灵活性。DCNN提供了一种灵活的图数据表示方法,可以编码节点特征、边特征、以及单纯的结构信息,只需进行少量的预处理。DCNN 可用于图数据的各种分类任务,包括节点分类和图分类。
    • 速度快。DCNN 的预测可以表示为一系列的多项式时间的张量运算,并且该模型可以使用现有的库在GPU上有效地实现。
  2. 相关工作:

    • 其它 graph-based 神经网络方法:其他研究者已经研究了如何将 CNN 从网格结构扩展到更普遍的图结构数据。

      • 《Spectral networks and locally connected networks on graphs》 提出了一种与层次聚类 hierarchical clustering 相联系的空间方法,其中网络的层是通过节点集合的 hierarchical partitioning 来定义的。在同一篇论文中,作者提出了一种谱方法,将卷积的概念扩展到 graph spectra
      • 后来,《Deep Convolutional Networks on Graph-Structured Data》将这些技术应用于这样的数据:图并不是立即出现但是必须被推断。

      属于空间类别的 DCNN 与这项工作不同,因为 DCNN 的参数化 parameterization 使模型可以迁移:在一个图上学习的 DCNN 可以应用于另一个图。

    • 概率关系模型:DCNN 也与概率关系模型 probabilistic relational model: PRM 有着密切的联系。概率关系模型是一族 graphical model ,能够代表关系数据的分布(《Probabilistic Graphical Models: Principles and Techniques》)。与概率关系模型相比,DCNN 是确定性的,这使得 DCNN 能够避免指数爆炸(指数爆炸阻碍了概率关系模型的学习和推断)。

      我们的研究结果表明:DCNN的表现优于部分观察的条件随机场conditional random field: CRF ,即半监督学习的 SOTA 概率关系模型。此外,DCNN 以相当低的计算成本提供这种性能。学习DCNN 和部分观测的 CRF 的参数需要数值上最小化一个非凸目标:对于 DCNN 来说是反向传播误差,对于 CRF 来说是负的边际对数似然。

      • 在实践中,部分观测的 CRF 的边际对数似然是使用对比分区函数 contrast-of-partition-function 方法来计算的,这需要运行两次循环的信念传播belief propagation :一次是在整个图上,一次是在固定观测标签的情况下。这种算法,以及数值优化中的每个 step ,具有指数级的时间复杂度O(|Et|×ntCt)$ O(|\mathcal E_t|\times n_t^{C_t}) $ ,其中Ct$ C_t $ 是Gt$ \mathcal G_t $ 中最大团 maximal clique 的大小。
      • 相比之下,DCNN 的学习程序只需要对训练数据中的每个实例进行一次前向传播和反向传播。复杂度由 graph definition matrixA$ \mathbf A $ 和 graph design matrixV$ \mathbf V $ 之间的矩阵乘法所支配,整体的多项式复杂度为O(nt2×d)$ O(n_t^2\times d) $ 。

      其中,nt$ n_t $ 为第t$ t $ 个图Gt$ \mathcal G_t $ 的节点数量,|Et|$ |\mathcal E_t| $ 为图Gt$ \mathcal G_t $ 的边数量,d$ d $ 为输入特征维度。

    • 核方法:核方法kernel method 定义了节点之间(即 kernel on graph )或图之间(即 graph kernel )的相似性度量,这些相似性可以作为通过核技巧 kernel trick 进行预测的基础。graph kernel 的性能可以通过将图分解为子结构,将这些子结构视为句子中的一个词,并拟合一个 word-embedding 模型来获得矢量化来提高。

      DCNNkernel on graphexponential diffusion 族有联系。exponential diffusion graph kernelKED$ \mathbf K_\text{ED} $ 是一个矩阵幂级数的和:

      KED=j=0αjAjj!=exp(αA)

      Zt=f(W(c)(Pt()Xt))$ \mathbf Z_t = f\left(\mathbf W^{(c)}\odot\left(\mathbf P_t^{(*)}\mathbf X_t\right)\right) $ 中给出的 diffusion-convolution activation 也是由幂级数构造的。然而,它和KED$ \mathbf K_\text{ED} $ 有几个重要的区别:

      • 首先,Zt$ \mathbf Z_t $ 中的权重是通过反向传播学习的,而 kernel representation 不是从数据中学习的。
      • 其次,diffusion-convolution representation是由节点特征和图结构来建立的,而 exponential diffusion kernel 则仅由图结构来建立。
      • 最后,这两种 representation 有不同的维度:KED$ \mathbf K_\text{ED} $ 是一个nt×nt$ n_t\times n_t $ 的 kernel matrix ,而Zt$ \mathbf Z_t $ 是一个nt×K×d$ n_t\times K\times d $ 的张量,不符合 kernel 的定义。其中K$ K $ 为最大的 K-hop 邻域。

36.1 模型

  1. DCNN 模型建立在扩散核 diffusion kernel 的思想上:基于两个节点之间的所有路径来衡量两个节点的邻近关系,其中路径越短权重越高。

    术语 “扩散卷积” 表明网络的三个思想:特征学习feature learning、参数共享、不变性。

    • DCNN 的核心是抽取图结构数据的特征。
    • DCNN 也用到参数共享,其中共享是发生在扩散搜索深度上diffusion search depth,而不是CNN 的网格位置上。
    • DCNN 关于节点索引不变,即两个同构输入图的扩散卷积的 representation 将是相同的。

    CNN 不同,DCNN 没有池化操作。

  2. 考虑我们有T$ T $ 个图G={Gt}t=1T$ \mathbb G=\{\mathcal G_t\}_{t=1}^T $ ,第t$ t $ 个图为Gt=(Vt,Et)$ \mathcal G_t=(\mathcal V_t,\mathcal E_t) $ ,它可以是有向图也可以是无向图、可以是带权重也可以是不带权重的图。其中:

    • Vt={vt,1,,vt,nt}$ \mathcal V_t=\{v_{t,1},\cdots,v_{t,n_t}\} $ 为第t$ t $ 个图的nt$ n_t $ 个节点集合,Et$ \mathcal E_t $ 为第t$ t $ 个图的边集合。
    • AtRnt×nt$ \mathbf A_t\in \mathbb R^{n_t\times n_t} $ 为第t$ t $ 个图的邻接矩阵;Dt=diag(Dt,i)$ \mathbf D_t=\text{diag}(D_{t,i}) $ 为对应的 degree 矩阵,其中Dt,i=jAt,i,j$ D_{t,i} = \sum_{j}A_{t,i,j} $ 。
    • Pt=Dt1At$ \mathbf P_t=\mathbf D_t^{-1}\mathbf A_t $ 为转移概率矩阵,Pt,i,j$ P_{t,i,j} $ 表示在第t$ t $ 个图中节点vt,i$ v_{t,i} $ 经过一步转移到节点vt,j$ v_{t,j} $ 的概率。
    • 节点vt,iVt$ v_{t,i}\in \mathcal V_t $ 关联一个输入特征向量xt,iRd$ \mathbf{\vec x}_{t,i}\in \mathbb R^{d} $ 。第t$ t $ 个图的所有节点的输入特征向量构成输入特征矩阵XtRnt×d$ \mathbf X_t\in \mathbb R^{n_t\times d} $ 。
    • 对于节点分类任务,每个节点vt,i$ v_{t,i} $ 关联一个标签yt,i$ y_{t,i} $ ;对于图分类任务,每个图Gt$ \mathcal G_t $ 关联一个标签yt$ y_t $ 。
  3. 定义K$ K $ 阶转移概率矩阵为Pt(K)Rnt×nt$ \mathbf P_t^{(K)}\in \mathbb R^{n_t\times n_t} $ ,它就是Pt$ \mathbf P_t $ 的K$ K $ 次幂:

    Pt(K)=PtPtK

    Pt(K)$ \mathbf P_t^{(K)} $ 的元素Pt,i,j(K)$ P_{t,i,j}^{(K)} $ 表示节点vt,i$ v_{t,i} $ 经过K$ K $ 步随机游走到达节点vt,j$ v_{t,j} $ 的概率。

    Pt()Rnt×K×nt$ \mathbf P_t^{(*)}\in \mathbb R^{n_t\times K\times n_t} $ 包含从1K$ 1\cdots K $ 阶的转移概率矩阵,其中:Pt,i,k,j()=Pt,i,j(k)$ P^{(*)}_{t,i,k,j}=P^{(k)}_{t,i,j} $ 。Pt()$ \mathbf P_t^{(*)} $ 包含所有从节点vt,i$ v_{t,i} $ 到节点vt,j$ v_{t,j} $ 的、不超过K$ K $ 步的随机游走概率。

    定义扩散卷积为:

    Zt,i,k,s=f(Wk,s(c)×j=1ntPt,i,k,j()Xt,j,s)

    其中:i$ i $ 表示节点vt,i$ v_{t,i} $ ;j$ j $ 表示节点vt,j$ v_{t,j} $ ;k$ k $ 表示 k-hops$ s $ 表示特征维度。

    因此节点vt,i$ v_{t,i} $ 得到的 representation 是对图Gt$ \mathcal G_t $ 中所有节点、所有维度上加权和得到,加权的权重由两部分组成:

    • 节点之间的转移概率Pt,i,j(k)$ P^{(k)}_{t,i,j} $ ,它刻画了两个节点之间路径的重要性。
    • 指定维度、指定路径长度的权重Wk,s(c)$ W^{(c)}_{k,s} $ ,它在相同维度且相同路径长度的所有位置上共享,即在扩散搜索深度上共享。

    以张量形式表示为:

    Zt=f(W(c)(Pt()Xt))

    其中:

    • W(c)RK×d$ \mathbf W^{(c)}\in \mathbb R^{K\times d} $ 为待学习的参数矩阵。
    • $ \odot $ 为逐元素的乘积。
    • ZtRnt×K×d$ \mathbf Z_t\in \mathbb R^{n_t\times K\times d} $ 为学到的节点 representation 张量。

    可以看到,模型只有O(K×d)$ O(K\times d) $ 个参数,与输入图的规模无关。并且学到的参数可以迁移:在一个图上学到的 DCNN 可以应用到另一个图。

    这里的核心是W(c)RK×d$ \mathbf W^{(c)}\in \mathbb R^{K\times d} $ ,它定义了指定路径深度、指定维度的权重。而节点的聚合权重是由k$ k $ 阶转移概率矩阵来决定。

  4. DCNN 可以用于节点分类或者图分类。

    • 节点分类:一旦得到Zt$ \mathbf Z_t $ ,则我们可以后续接 dense 层和 softmax 输出层来进行节点分类。

    • 图分类:如果将图Gt$ \mathcal G_t $ 中所有节点的激活值取平均,则得到 graph-levelrepresentation

      Rt=f(W(c)(1Pt()Xtnt))

      其中:1R1×nt$ \mathbf{\vec 1}^\top\in \mathbb R^{1\times n_t} $ 为全 1 的行向量;RtRK×d$ \mathbf R_t\in \mathbb R^{ K\times d } $ 为图Gt$ \mathcal G_t $ 的 representation 张量。

      一旦得到Rt$ \mathbf R_t $ ,则我们可以后续接 dense 层和 softmax 输出层来进行图分类。

    注意:Zt,Rt$ \mathbf Z_t,\mathbf R_t $ 给出了K$ K $ 个 hoprepresentation,在接入 dense 层之前可以把这K$ K $ 个 representation 拼接或者相加从而得到 final representation

  5. 对于没有节点特征的图,可以人工构造节点特征:

    • 可以为每个节点构造一个取值为 1.0bias feature
    • 可以使用节点的结构统计信息,如pagerank 值、节点degree 等。
  6. DCNN 局限性:

    • 可扩展性scalabilityDCNN 被实现为对稠密张量的一系列运算。存储P()$ \mathbf P^{(*)} $ 需要O(nt2K)$ O(n_t^2K) $ 的内存,对于较大的图(如百万级甚至更大的图)可能会导致 out-of-memory:OOM 错误。

      可以通过随机游走来近似k$ k $ 阶转移概率矩阵从而降低计算复杂度和内存需求。

    • 局部性localityDCNN 旨在捕获图结构数据中的局部行为。我们是从每个节点开始的、最高 K 阶的扩散过程来构建representation,因此可能无法对长程依赖或者其它非局部行为进行编码。

  7. DCNN 的训练:通过 mini-batch 随机梯度下降来学习。

  8. 可以证明:如果两个图G1,G2$ \mathcal G_1,\mathcal G_2 $ 是同构的,则它们的 diffusion-convolutional representation 是相同的;如果两个图G1,G2$ \mathcal G_1,\mathcal G_2 $ 是非同构的,则它们的 diffusion-convolutional representation 是不同的。

    证明见原始论文。

36.2 实验

  1. 实验配置:

    • 使用 AdaGrad 算法进行梯度提升,学习率为 0.05

    • 从均值为0、方差为 0.01 的正态分布随机采样来初始化所有权重。

    • 选择双曲正切 tanh 函数作为非线性激活函数f()$ f(\cdot) $ 。

    • 选择多分类 hinge loss 作为损失函数。假设一共C$ C $ 个类别,样本i$ i $ 的真实类别为yi$ y_i $ ,模型预测为各类别的概率为piRC$ \mathbf{\vec p}_i\in \mathbb R^C $ 。则样本i$ i $ 的损失为:

      Li=cyi,1cC{0,if(pyipc)ϵϵ(pyipc),if(pyipc)<ϵ=cyi,1cCmax(0,ϵ(pyipc))

      其中ϵ>0$ \epsilon\gt0 $ 为间隔阈值。

36.2.1 节点分类

  1. 数据集:Cora,Pubmed 论文引用数据集,每个节点代表一篇论文,边代表论文之间的引用关系,标签为论文的主题subject 。这里我们将引文网络视为无向图。

    • Cora 数据集包含 2708 篇论文、5429 条边。每篇论文都分配一个标签,标签来自 7 个可能的机器学习主题。每篇论文都由一个向量表示,向量的每一位对应于是否存在从词典中抽取的 1433 个术语是否存在。
    • Pubmed 数据集包含关于糖尿病的 19717 篇论文、44338 条边。论文被分配到三个类别之一。每篇论文都由一个 TFIDF 向量来表示,其中词典大小为 500 (即论文的特征向量维度为 500)。
  2. 这里集合G$ \mathbb G $ 由单个输入图G$ \mathcal G $ 组成,输入图的节点随机划分为训练集、验证集、测试集,每个集合具有相同数量的节点。在训练期间,模型可以看到所有节点的特征、所有边、以及训练集和验证集的标签。

    我们报告了测试集分类准确率以及 micro-F1macro-F1 ,每个指标为多次实验计算得到的均值。

    我们还提供了 CORAPubmed 数据集的 learning curve,其中验证集和测试集分别包含 10% 的节点,训练集包含剩余节点的 10% ~ 100%

  3. baseline 方法:

    • l1logisticl2logistic:分别代表 L1 正则化的逻辑回归、L2 正则化的逻辑回归。逻辑回归模型的输入仅仅是节点的特征(并未使用图结构),并使用验证集对正则化参数进行调优。
    • KEDKLED:分别代表图上的 exponential diffusion kernelLaplacian exponential diffusion kernel 。这些 kernel model 将图结构作为输入(并未使用节点特征)。
    • CRF-LBP:表示使用循环信念传播loopy belief propagation:LBP进行推断的、部分观测partially-observed 的条件随机场conditional random field:CRF。该模型的结果来自前人论文的实验结果。
  4. 下表给出了实验结果,可以看到:DCNNK=2 )提供了最佳性能。

    • 下图的 (a),(b) 给出了learning curve,可以看到:在 Cora 数据集上,无论可用的训练数据量如何,DCNN 通常都优于baseline 方法。

    • (c) 给出 hop 数量的影响。可以看到:随着 hop 数从 0-hop 逐渐增加的过程中,性能先增加然后稳定,在 3-hop 达到收敛。

36.2.2 图分类

  1. 数据集:我们采用 NCI1、NCI109、MUTAG、PTC、ENZYMES 等标准的图分类数据集。

    • NCI1、NCI109 数据集由代表化合物的 41004127 个图组成,每个图都标有它是否具有抑制一组人类肿瘤细胞系生长的能力。图中每个节点分类有 37 个(对于 NCI1 )或 38 个(对于 NCI109) 可能的标记之一。
    • MUTAG 数据集包含 188 个硝基化合物,被标记为芳族或非芳族化合物。节点包含7 个特征。
    • PTC 包含 344 个化合物,被标记为是否对于大鼠致癌。节点包含 19 个特征。
    • ENZYMES 包含 600 个蛋白质的图,每个节点包含3 个特征。

    输入的图集合随机拆分为训练集、验证集、测试集,每个集合包含数量相等的图,我们报告测试集的准确率、micro-F1macro-F1 。每个指标为多次实验计算得到的均值。

  2. baseline 方法:

    • l1logisticl2logistic:分别代表 L1 正则化的逻辑回归、L2 正则化的逻辑回归,它们仅利用节点特征。
    • deepwl :表示 Weisfeiler-Lehman (WL) subtree deep graph kernel ,它仅利用图结构。
  3. 下表给出了实验结果,可以看到:和节点分类实验相反,没有明确的最佳模型在所有数据集、所有指标上最优。

    我们还提供了 MUTAG(图 (a))和 ENZYMES(图 (b)) 数据集的learning curve ,其中验证集和测试集都分别包含 10% 的图、训练集包含剩余图的 10% ~ 100% 。从下图 (c) 可以看到:扩大hop 数量并没有明显的好处。

    这些结果表明:尽管扩散卷积可以得到节点的有效表示,但是它们在 summarize 整个图的representation 方面做得很差。可以寻找一种方法来更有效地聚合节点来改善graph-levelrepresentation,这留待以后工作。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文