首页 > 其他分享 >GNN-learning-notes

GNN-learning-notes

时间:2023-04-08 10:01:40浏览次数:76  
标签:notes GAT GCN learning tilde zhihu GNN 节点

GNN 学习笔记

Datetime: 2023-04-01T16:28+08:00

Categories: MachineLearning

目录

初学者一定要看:【GNN 入门】综述篇 - 知乎用户 MxLVSX 的文章 - zhihu.com,包括频域和空域、任务类型、经典模型。

最早的 GNN,介于迭代不动点:https://zhuanlan.zhihu.com/p/76290138

GCN

  • GCN 的运行过程
  • GCN 训练的参数
  • GCN 的局限性:Transductive

简单的理解可以参考 何时能懂你的心——图卷积神经网络(GCN)

复杂的理论可以参考:

  1. 如何理解 Graph Convolutional Network(GCN)? - superbrother 的回答 - zhihu.com
  2. 【GNN】万字长文带你入门 GCN - 阿泽的文章 - zhihu.com

GCN 核心是那一行公式,我比较关心怎么使用这个东西。。。因为理论实在是过于复杂。

notation:

  • A: 邻接矩阵(Adjacent Matrix),节点如果没有自己指向自己的边(自环),对角线就是 0。一般来说,分子、人与人之间的社交网络,都没有自环的。
  • D: 度矩阵(Degree Matrix),\(\tilde{D}_{ii} = \sum{j\tilde{A}_{ij}}\),对角矩阵
  • H:隐藏层,对于输入层,H 就是 X
  • N: 样本个数
  • h: 隐藏层 H 矩阵大小为 N * h

\[\tilde{A} = A + I\\ \tilde{D}_{ii} = \sum{j\tilde{A}_{ij}}\\ H^{l+1} = \sigma(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}H^{(l)}W^{(l)}) \]

将 \(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}\) 记为 \(\hat{A}\)

\(\hat{A}\) 表示了图本身的结构,一旦图的结构确定,\(\hat{A}\) 也就确定。

然后可以在想象一下 GCN 是怎样跑起来的,一个表示节点隐藏特征的 H 矩阵,N * h,被 \(\hat{A}\) 左乘,然后有一个对应的 W 右乘。过一个 ReLU 或者 Softmax,就结束了。

GCN 训练的参数什么是?就是 W

GCN 网络中就只有一个模型参数 W 需要定义。

—— 怎么搭好一个 GCN?只需这四步 - 眼睛里进砖头了的文章 - 知乎

GCN 的官方样例是「半监督」图节点预测。就是说:
在一个图上面,有的节点有 label,有的节点没有,
对 labeled 的节点划分训练集和测试集,对训练集的节点,聚合信息,这个过程中,使用到了 unlabelled 的节点。

下面是一些个人看法:

我觉得 GCN 是在训练每一层的权重矩阵 W,
这个 W 还依赖于图的结构,也就是邻接矩阵 A,因为 W 是跟在 A 的后面的乘起来的,不同的 A,或许 W 的表示不一样。

\(W^{(l)}\) 的大小为 \(h^{(l)} \times h^{(l+1)}\),在 DGL 等模型中定义一个卷积层,使用的参数估计就是 W 的大小。

所以有说法:为什么 GCN 是 Transductive 的?

GraphSAGE

【Graph Neural Network】GraphSAGE: 算法原理,实现和应用

  1. 通过聚合函数 \(agg_k\) 得到邻居节点的隐藏层信息 \(h^k_{N(v)}\)
  2. 拼接 \(h^k_{N(v)}\) 和 \(h^{(k-1)}_v\),左乘 \(W^k\),过一个 \(\sigma\),得到当前节点的 \(h^k_v\)
  3. \(h_v^k \leftarrow h_v^k/||h_v^k||_2\)
  4. 重复上述 1、2、3 步

需要挑选好聚合函数 \(agg_k\),然后模型就是在训练多个 \(W_k\),每一层聚合,都要指定 \(W_k\) 的大小。

Graph Attention Network

  • 使用 \(W\) embedding
  • multi-head 机制

向往的 GAT(图注意力网络的原理、实现及计算复杂度)

本应该叫做「GAN」,但是「GAN」已经是别的模型的名字,所以叫做「GAT」。

对于一层 GAT,我觉得重点是学习一个 \(W\),\(Wh_i\) 表示把当前节点特征隐藏状态 \(h_i\) embed 到一个其他维度的空间,两个节点映射后的特征 concat 后,是一个 vector,和 \(\vec{a}\) 点乘即可得到标量,记为 \(e_{ij}\)。

\[e_{i j}=a\left(\left[W h_{i} \| W h_{j}\right]\right), j \in \mathcal{N}_{i} \]

然后就很稀疏平常,

  1. \(LeakyReLU(e_{ij})\) 加上 Softmax 求邻居节点对当前节点的权重,
  2. 加权求和得到新的 \(h_i\)

最后使用 multi-head 机制,在一个 layer 里,复制粘贴多个 1、2 步骤,训练多个 \(W\),记为 \(W^k\),把这些 \(h_i^k\) 拼起来,过一个激活函数,做一个最后的 output。

对了,在 DGL 这个机器学习库里,用 GAT 要加自环,千万不要忘记了。

---- 完 ----

标签:notes,GAT,GCN,learning,tilde,zhihu,GNN,节点
From: https://www.cnblogs.com/ticlab/p/17298001.html

相关文章

  • 【论文笔记 - InstructPix2Pix】InstructPix2Pix: Learning to Follow Image Editing
    InstructPix2Pix和Pix2Pix是两码事。Pix2Pix使用的是GAN,而InstructPix2Pix使用的是Diffusion。这个名字的由来可能出于两个方面,一方面InstructPix2Pix允许在image-translation的时候引入文本Instruction,另一方面InstructPix2Pix和Pix2Pix一样使用了成对的数据进行训练。鉴于目前图......
  • FATE Machine Learning
    OFFICE280FATEMachineLearningCRISTIáNBRAVOOFFICE280Thisweek…FairnessDefinitionofFairnessConfoundingTransparencyandExplainabilityShapleyValuesLecturewillcover…FairMLBook,Chapters1,2and3.https://fairmlbook.org/pdf/fairmlbook.pdfShap......
  • Machine Learning
    介绍1.工业界的应用推荐商品机器客服穿戴传感器账号盗刷预测汽油无人驾驶预测房价2.ML工作流程及相应难点problemformulationcollect&processdatatrain&tunemodelsdeploymodlesmonitor3.challenges好的数据(高质量的数据)隐私数据模型的训练监控模型公......
  • 【Deep Learning】DDPM
    DDPM1.大致流程1.1宏观流程1.2训练过程1.3推理过程2.对比GAN2.1GAN流程2.2相比GAN优点训练过程更稳定,损失函数指向性更强(loss数值大小指示训练效果好坏)3.详细流程3.1扩散阶段如下图,X0为初始干净图像,XT由X0逐步添加噪声所得到具体到一次Xt-1到Xt的扩散......
  • Online Continual Learning with Maximally Interfered Retrieval---阅读笔记
    OnlineContinualLearningwithMaximallyInterferedRetrieval---阅读笔记摘要:本文主要提出了一种可控的样本采集策略的重放方法。我们检索受干扰最大的样本,即它们的预测将受到预测参数更新的最大负面影响。1Introduction人工神经网络在完成个体狭窄任务方面的性能已经超......
  • 06.Sentiment Analysis Based on Deep Learning: A Comparative Study
    SentimentAnalysisBasedonDeepLearning:AComparativeStudy深度学习的情感分析的比较研究目前在社交网络中的情绪分析已经成为了解用户意见的有力手段,并有着广泛应用。然而情感分析的效率和准确性受到自然语言处理中遇到的挑战和障碍本问综述了采用深度学习解决情感分析......
  • Learning Blender: A Hands-On Guide to Creating 3D Animation(2nd Edition)
    参考1:https://www.doc88.com/p-9975664843996.html(书)参考2:https://www.bilibili.com/video/BV1wW411i7nY(视频)......
  • mini spring learning
    https://www.pexels.com/zh-cn/photo/768089/http://www.implements.fun:8080/tag/minispringpackagecom.minis.beans.factory;importcom.minis.beans.BeansException;publicinterfaceBeanFactory{ObjectgetBean(Stringname)throwsBeansException; boole......
  • About Interviews and Learning------Learning journals 5
     Thisweek,weproducedagroupassignment,aninterviewvideooncultural appropriation andappreciation,fromwhichwecanalwayslearnsomethinguseful。Ifthereisanythingtolearnfromit,Ithinkitisstillabouthowtoexpressandorgani......
  • 计算机视觉中的主动学习(Active Learning)介绍
    前言 ActiveLearning主动学习是机器学习(ML)的一个研究领域,旨在通过以智能方式查询管道的下一个数据来降低构建新机器学习解决方案的成本和时间。在开发新的AI解决方案和处理图像、音频或文本等非结构化数据时,我们通常需要人工对数据进行注释,然后才能使用它们来训练我们的模......