首页 > 其他分享 >GPT-GNN: Generative Pre-Training of Graph Neural Networks

GPT-GNN: Generative Pre-Training of Graph Neural Networks

时间:2023-10-24 16:34:04浏览次数:49  
标签:Pre Training Attr Neural 结点 Edge GPT mathcal GNN

目录

Hu Z., Dong Y., Wang K., Chang K. and Sun Y. GPT-GNN: Generative pre-training of graph neural networks. KDD, 2020.

比较早的一篇图预训练模型.

符号说明

  • \(G = (\mathcal{V}, \mathcal{E}, \mathcal{X})\), 某个图, 其中 \(\mathcal{X}\) 表示结点的属性空间.
  • \(X, E\), node attributes, edges.

GPT-GNN

  • GPT-GNN 的思路就是模仿 GPT 采取自回归的生成任务 (结点属性和边) 来预训练:

    \[\log p_{\theta}(X, E) = \sum_{i=1}^{|\mathcal{V}|} \log p_{\theta}(X_i, E_i | X_{<i}, E_{< i}), \]

    这里 \(X_i, E_i\) 分别表示结点 \(i\) 的属性和它上的边, \(X_{<i}\) 表示序号在 \(i\) 之前的结点, \(E_{<i}\) 表示 \(X_{<i}\) 的子图的边.

  • 注: 为了采用自回归的方式, 需要将图序列化, 即序号为结点编号, 在训练中, 作者随机选择顺序 (相当于希望忽视顺序信息).

  • 一个主要问题是如何建模:

    \[p_{\theta}(X_i, E_i | X_{<i}, E_{< i}), \]

    毕竟 \(X_i, E_i\) 不是独立的.

  • 作者采取如下的拆分:

  • 所以整个过程可以拆分为:

    1. 根据先前的 \(X_{<i}, E_{<i}\) 和(当前结点)观测到的边 \(E_{i,o}\) 预测 \(i\) 的属性 \(X_i\);
    2. 有了 \(X_i\) 再去预测 \(i\) 的边.
  • 为了高效计算, 作者将两个任务独立开来考虑:

    1. Attribute Generation Nodes: 知道边但 mask 掉属性;
    2. Edge Generation Nodes: 知道属性但 mask 掉边.
  • 假设我们对两种类型分别编码得到: \(h^{Attr}\) 和 \(h^{Edge}\), 我们的损失为:

    \[\mathcal{L}_i^{Attr} = Distance(Dec^{Attr}(h_i^{Attr}), X_i), \\ \mathcal{L}_i^{Edge} = -\sum_{j^+ \in E_{i, \lnot o}} \log \frac{ \exp(Dec^{Edge}(h_i^{Edge}, h_{j^+}^{Edge})) }{ \sum_{j \in S_i^- \cup \{j^+\}} \exp(Dec^{Edge}(h_i^{Edge}, h_{j}^{Edge})) }. \]

代码

[official]

标签:Pre,Training,Attr,Neural,结点,Edge,GPT,mathcal,GNN
From: https://www.cnblogs.com/MTandHJ/p/17785151.html

相关文章

  • 2023-10-24 Too many re-renders. React limits the number of renders to prevent an
    React报错:Toomanyre-renders.Reactlimitsthenumberofrenderstopreventaninfiniteloop. 重新渲染过多。React限制渲染次数,以防止出现无限循环。解决方案:查看你最近写的代码,比如我写了一个函数组件,我在函数组件里面写了直接执行的任务,这将导致状态变化,react会重新渲......
  • 利用docker安装wordpress
    ubuntu系统没有docker直接snapinstalldocker拉取wordpress镜像dockerpullwordpress:php7.3创建mysql数据文件夹mkdir-p/data/wordpress/运行mysql5.7镜像,没有会直接拉取dockerrun-d--namemy_mysql--restartalways-eMYSQL_ROOT_PASSWORD=redhat-eMYSQL_D......
  • Premiere CC2018 Mac汉化版「Pr 常用视频编辑软件」附汉化补丁
    Premierecc2018mac版是Adobe公司开发的一款可以在Mac系统上运行的常用视频编辑软件。作为行业数一数二的视频编辑软件,Prcc2018mac版提供了剪辑、调色、采集、美化音频、字幕添加、输出、DVD刻录的一整套流程,并且与其他的Adobe软件高效集成,使用户可以在编辑、制作、以及工作流上......
  • Adobe Prelude CC2021 for Mac「Pl」汉化版下载附安装激活步骤
    AdobePrelude是一款非常实用的视频处理工具,在办公软件中我们都知道本公司的产品那就是非常好用,而且这款视频处理工具也很不错,而且这款视频处理工具也很不错,它能快速有效地帮助大家进行办公软件的开发。软件地址:看置顶贴AdobePrelude2021Mac版软件特点:1、全新快速入门体验新的启......
  • DevExpress WinForms地图组件 - 轻松集成地图功能到应用程序
    DevExpressWinForms地图控件允许您在WinForms应用程序中合并地图服务,您可以选择现有的地图资源,如如Bing或OpenStreetMap,或者在公司网络中创建自己的地图数据服务器。DevExpressWinForms地图控件完全支持矢量和笛卡尔坐标地图。DevExpressWinForms有180+组件和UI库,能为Windows......
  • 从零用VitePress搭建博客教程(7) -– 如何用Github Actions自动化部署到Github Pages?
    接上一节:从零用VitePress搭建博客教程(6)-–第三方组件库的使用和VitePress搭建组件库文档 我们搭建完成vitePress后,那么接下来就是如何部署到线上服务器,这里使用GithubPages,免得自己购买服务器,当然你也可以自己购买服务器来部署(比如阿里云服务器)。在部署之前,我们先简单了解......
  • Hello-FPGA CoaXPress 2.0 FPGA HOST IP Core PCIe Demo User Manual
     目录1说明42设备连接73VIVADOFPGA工程84调试说明9图1‑1资料目录4图1‑2VIVADO工程目录结构5图1‑3VS软件工程目录5图1‑4CXPHOSTPCIeBlockDesign5图1‑5VS工程6图1‑6CXPcamera6图1‑7KC705搭载Hello-FPGACoaXPress2.0FMC子......
  • Prefast
    C++代码静态分析工具-Prefast......
  • 从零用VitePress搭建博客教程(6) -– 第三方组件库的使用和VitePress搭建组件库文档
    接上一节:从零用VitePress搭建博客教程(5)-如何自定义页面模板、给页面添加独有的className和使页面标题变成侧边目录?九、第三方组件库的使用我们经常看见UI组件库的文档,这里我们就用element-plus第三方组件库为例子,搭建组件库文档examples:作为组件库示例目录,我们以Button组件......
  • How to use regular expression to match a special meta tag in html string using j
    HowtouseregularexpressiontomatchaspecialmetataginhtmlstringusingjavascriptAllInOnemetatagerror❌consthtml=`<!DOCTYPEhtml><htmllang="en"><head><metaname="twitter:card"content......