图学习GNN笔记

目录

      • 第一部分:预测分析中的图学习
        • 4.3 案例研究:图上的学习
        • 机器学习生命周期
      • 第二部分:图特征学习
        • 特征表示与嵌入
        • 为什么难以学习?
      • 第三部分:节点嵌入
        • 嵌入节点
        • 设置
        • 学习节点嵌入
        • 浅层编码
        • 如何定义节点相似性?
      • 第四部分:随机游走方法
        • 随机游走嵌入
        • 为什么随机游走?
        • 随机游走优化
        • 负采样
      • 数学公式解释
      • 第五部分:图神经网络
        • 图神经网络基础
        • 邻域聚合
        • 训练模型
        • 归纳能力
      • 第六部分:图卷积网络(GCNs)
        • GCNs 基础
        • 批量实现
      • 第七部分:GraphSAGE
        • GraphSAGE 思想
        • GraphSAGE 变体
      • 第八部分:门控图神经网络
        • 门控图神经网络
        • 数学表达
      • 第九部分:子图嵌入
        • 子图嵌入
      • 第十部分:应用
        • 推荐系统
        • 计算生物学
        • 实践洞察
      • 数学公式解释(续)
      • 第十一部分:图神经网络的实际应用案例
        • Pinterest推荐系统(RW-GCNs)
          • 随机游走和邻居采样
          • 生产者-消费者训练流程
          • 课程学习
          • MapReduce推理
          • RW-GCN性能
        • Decagon:多药物副作用预测
          • 数据:异构图
          • 神经网络架构:编码器
          • 边缘预测
          • 实验设置
          • 预测性能
      • 第十二部分:实用洞察和未来方向
        • 图SAGE TensorFlow示例
        • 未来方向
      • 数学公式解释(续)

第一部分:预测分析中的图学习

4.3 案例研究:图上的学习
  • 为什么是网络?

    • 网络是描述和建模复杂系统的通用语言。
    • 许多数据本质上就是网络,例如社交网络、经济网络、生物医学网络和信息网络。
    • 网络在不同领域之间的共通性,如计算机科学、社会科学、物理学、经济学、统计学和生物学。
    • 数据可用性增加,计算挑战也随之增加。
  • 机器学习与网络

    • 网络中的经典机器学习任务包括节点分类、链接预测、社区检测和网络相似性度量。
机器学习生命周期
  • 从原始数据到结构化数据,再到学习模型,最后到自动预测任务。

第二部分:图特征学习

特征表示与嵌入
  • 目标是为机器学习任务高效地学习图网络中节点的独立特征。
  • 例如,Zachary的空手道俱乐部网络,输入是网络结构,输出是节点的特征表示。
为什么难以学习?
  • 现代深度学习工具箱主要设计用于简单序列或网格。
  • 网络结构更加复杂,没有固定的节点排序或参考点,通常是动态的,并且具有多模态特征。

第三部分:节点嵌入

嵌入节点
  • 直觉是找到节点在d维空间中的嵌入,使得图中“相似”的节点在嵌入空间中彼此接近。
设置
  • 假设我们有一个图G,V是顶点集,A是邻接矩阵。
  • 目标是编码节点,使得嵌入空间中的相似性(例如,点积)近似于原始网络中的相似性。
学习节点嵌入
  1. 定义一个编码器(即从节点到嵌入的映射)。
  2. 定义一个节点相似性函数(即在原始网络中的相似性度量)。
  3. 优化编码器的参数。
浅层编码
  • 最简单的编码方法是编码查找,每个节点被分配一个独特的嵌入向量。
如何定义节点相似性?
  • 关键区别在于“浅层”方法如何定义节点相似性。

第四部分:随机游走方法

随机游走嵌入
  • 估计在随机游走中节点u和v共同出现的概率,并优化嵌入以编码这些随机游走统计数据。
为什么随机游走?
  • 表达性:灵活的随机定义节点相似性,结合了局部和高阶邻域信息。
  • 效率:不需要在训练时考虑所有节点对,只需要考虑在随机游走中共同出现的节点对。
随机游走优化
  • 从每个节点开始运行短随机游走,并收集在随机游走中访问的节点集合。
  • 优化嵌入以最大化随机游走共同出现的概率。
负采样
  • 解决方法是负采样,即不是针对所有节点进行归一化,而是只针对k个随机的“负样本”进行归一化。

数学公式解释

  1. 相似性度量
    [
    \text{similarity}(u, v) \approx \mathbf{z}_u \cdot \mathbf{z}_v
    ]
    这里,(\mathbf{z}_u) 和 (\mathbf{z}_v) 分别是节点u和v的嵌入向量,点积表示它们在嵌入空间中的相似性。

  2. 随机游走优化
    L = − ∑ u ∈ V , v ∈ N R ( u ) log ⁡ P ( v ∣ z u ) \mathcal{L} = -\sum_{u \in \mathcal{V}, v \in \mathcal{N}_R(u)} \log P(v | \mathbf{z}_u) L=uV,vNR(u)logP(vzu)
    这里, P ( v ∣ z u ) P(v | \mathbf{z}_u) P(vzu)是给定节点u的嵌入向量,预测节点v出现的概率。

  3. 负采样
    log ⁡ ( σ ( z u ⋅ z v ) ) → log ⁡ ( σ ( z u ⋅ z v + ) ) − ∑ i = 1 k log ⁡ ( σ ( z u ⋅ z v i − ) ) \log(\sigma(\mathbf{z}_u \cdot \mathbf{z}_v)) \rightarrow \log(\sigma(\mathbf{z}_u \cdot \mathbf{z}_v^+)) - \sum_{i=1}^k \log(\sigma(\mathbf{z}_u \cdot \mathbf{z}_{v_i}^-)) log(σ(zuzv))log(σ(zuzv+))i=1klog(σ(zuzvi))
    这里, z v + \mathbf{z}_v^+ zv+ 是正样本, z v i − \mathbf{z}_{v_i}^- zvi 是负样本, σ \sigma σ 是sigmoid函数。

第五部分:图神经网络

图神经网络基础
  • 图神经网络(GNNs)基于局部邻域聚合的思想,其中节点基于其邻居的信息更新自己的嵌入。
邻域聚合
  • 核心思想是节点从其邻居那里聚合信息,并使用神经网络进行处理。
训练模型
  • 定义一个损失函数在嵌入上, ( L ( z u ) ) ( L(\mathbf{z}_u) ) (L(zu)) ,并使用随机梯度下降来训练聚合参数。
归纳能力
  • GNNs共享相同的聚合参数,并且能够泛化到未见过的节点。

第六部分:图卷积网络(GCNs)

GCNs 基础
  • GCNs是邻域聚合思想的变体,其中节点使用相同的变换矩阵来更新自己和邻居的嵌入。
批量实现
  • GCNs可以高效地使用稀疏批次操作实现,具有 ( O ( ∣ E ∣ ) ) ( O(|\mathcal{E}|) ) (O(E)) 的时间复杂度。

第七部分:GraphSAGE

GraphSAGE 思想
  • GraphSAGE提出了一种更一般化的邻居聚合方法,允许使用任何可微函数来聚合邻居向量。
GraphSAGE 变体
  • 包括均值(Mean)和池化(Pool)等不同的聚合函数,以及LSTM等更复杂的聚合模型。

第八部分:门控图神经网络

门控图神经网络
  • 为了构建多层的邻域聚合模型,门控图神经网络借鉴了现代循环神经网络的技术。
数学表达
  • 使用门控循环单元(GRU)来更新节点状态:
    h k = GRU ( h k − 1 , AGG ( h k − 1 , N ( u ) ) ) \mathbf{h}_k = \text{GRU}(\mathbf{h}_{k-1}, \text{AGG}(\mathbf{h}_{k-1}, \mathbf{N}(\mathbf{u}))) hk=GRU(hk1,AGG(hk1,N(u)))
    其中,(\text{AGG})是聚合函数,(\mathbf{N}(\mathbf{u}))是节点u的邻居集合。

第九部分:子图嵌入

子图嵌入
  • 除了节点级别的嵌入,还可以考虑子图嵌入,例如通过求和或平均节点嵌入,或者引入一个“虚拟节点”来代表整个子图。

第十部分:应用

推荐系统
  • 使用GraphSAGE为基础的模型在Pinterest上向数百万用户推荐内容。
计算生物学
  • 使用图神经网络预测多药物副作用。
实践洞察
  • 提供代码库和框架,以及未来发展方向。

数学公式解释(续)

  1. GCNs的聚合步骤
    h ( k ) = σ ( W k h ( k − 1 ) + b k ) \mathbf{h}^{(k)} = \sigma(\mathbf{W}^k \mathbf{h}^{(k-1)} + \mathbf{b}^k) h(k)=σ(Wkh(k1)+bk)
    其中,(\mathbf{h}{(k)})是第k层的节点嵌入,(\mathbf{W}k)和(\mathbf{b}^k)是可学习的权重和偏置。

  2. GraphSAGE的聚合函数
    h v ( k ) = AGG ( { h u ( k − 1 ) , u ∈ N ( v ) } ) \mathbf{h}_v^{(k)} = \text{AGG}\left(\left\{\mathbf{h}_u^{(k-1)}, u \in \mathcal{N}(v)\right\}\right) hv(k)=AGG({hu(k1),uN(v)})
    h v ( k ) = W k [ h v ( k − 1 ) , AGG ( h u ( k − 1 ) ) ] \mathbf{h}_v^{(k)} = \mathbf{W}^k \left[\mathbf{h}_v^{(k-1)}, \text{AGG}(\mathbf{h}_u^{(k-1)})\right] hv(k)=Wk[hv(k1),AGG(hu(k1))]
    这里,(\text{AGG})是一个聚合函数,可以是均值、池化或LSTM等。

  3. 门控图神经网络的更新
    h k = GRU ( h k − 1 , W h k − 1 A ) \mathbf{h}_k = \text{GRU}(\mathbf{h}_{k-1}, \mathbf{W} \mathbf{h}_{k-1} \mathbf{A}) hk=GRU(hk1,Whk1A)
    这里,(\mathbf{A})是邻接矩阵,(\mathbf{W})是变换矩阵。

这些公式和方法展示了图神经网络在实际应用中的广泛性和有效性,以及如何通过这些技术来解决复杂的推荐和生物信息学问题。

第十一部分:图神经网络的实际应用案例

Pinterest推荐系统(RW-GCNs)
  • RW-GCNs:利用随机游走和图卷积网络(Graph Convolutional Networks)来构建一个大规模的推荐系统,用于向Pinterest上的数百万用户提供个性化推荐。
随机游走和邻居采样
  • 通过随机游走来近似节点的PageRank得分,从而采样得到每个节点的邻居节点。
  • 这种方法可以有效地为高阶节点找到最相关的节点(项目)。
生产者-消费者训练流程
  • 选择一批pins(内容),运行随机游走,构建它们的计算图,进行多层聚合,然后在GPU上进行损失计算和反向传播。
课程学习
  • 通过逐渐增加更难的负样本来提高训练的效果。
MapReduce推理
  • 通过共享计算来避免在推理时重复计算,从而高效地推断出在训练期间未见过的节点的表示。
RW-GCN性能
  • 与标准GraphSAGE模型相比,推荐质量提高了72%。
Decagon:多药物副作用预测
  • Decagon:使用图卷积网络来预测多药物副作用。
数据:异构图
  • 结合药物、基因和患者数据,构建一个包含药物-基因相互作用和药物副作用的异构图。
神经网络架构:编码器
  • 输入图和额外的节点特征,输出节点嵌入。
边缘预测
  • 给定查询药物对及其嵌入,预测候选的多药物副作用。
实验设置
  • 使用分子数据(蛋白质-蛋白质相互作用和药物靶标关系)和患者数据(个体药物副作用,药物组合的多药物副作用)来训练模型。
预测性能
  • Decagon在AUROC、AUPRC和AP@50等指标上相较于基线模型有显著提升。

第十二部分:实用洞察和未来方向

图SAGE TensorFlow示例
  • 展示了如何使用GraphSAGE进行监督节点分类任务的关键步骤,包括预处理网络和训练数据,以及运行GraphSAGE。
未来方向
  • 子图嵌入:探索更好的池化策略,处理大规模图,学习“粗化”表示。
  • 动态图:预测图的演化,异常检测(例如,欺诈)。
  • 组合应用:通过图嵌入实现高效的SAT求解器,学习条款和文字的嵌入。
  • 强化学习:允许代理使用节点嵌入信息来做出决策。

数学公式解释(续)

  1. RW-GCNs的损失函数
    L = max ⁡ ( 0 , margin − pair similarity ) \mathcal{L} = \max(0, \text{margin} - \text{pair similarity}) L=max(0,marginpair similarity)
    其中,pair similarity是用户日志中连续点击的pins的嵌入相似度,margin是一个超参数。

  2. Decagon的预测性能指标

    • AUROC:Area Under the Receiver Operating Characteristic curve,接收者操作特征曲线下的面积。
    • AUPRC:Area Under the Precision-Recall Curve,精确率-召回率曲线下的面积。
    • AP@50:Average Precision at top 50 predictions,前50个预测的平均精确率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/63016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python从入门到入狱

Python是从入门到入狱?这个充满调侃意味的说法在程序员圈子里流传甚广。表面看,它似乎是在嘲笑这门语言从简单易学到深陷麻烦的巨大反差,实际上却隐藏着很多值得深思的问题。要解读这个话题,得从Python的特点、使用场景以及潜在风…

Linux获取文件属性

目录 stat函数 获取文件属性 获取文件权限 实现“head -n 文件名”命令的功能 编程实现“ls -l 文件名”功能 stat/fstat/lstat的区别? stat函数 int stat(const char *path, struct stat *buf); 功能:获取文件属性 参数: path&…

线程信号量 Linux环境 C语言实现

既可以解决多个同类共享资源的互斥问题&#xff0c;也可以解决简易的同步问题 头文件&#xff1a;#include <semaphore.h> 类型&#xff1a;sem_t 初始化&#xff1a;int sem_init(sem_t *sem, int pshared, unsigned int value); //程序中第一次对指定信号量调用p、v操…

如何使用k8s安装minio呢

话不多说&#xff0c;直接干货。 创建 minio-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: miniolabels:app: minio spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioimage: reg…

设计模式:17、单件模式(单例模式)

目录 0、定义 1、单件模式的一个角色 2、单件模式的UML类图 3、示例代码 0、定义 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 1、单件模式的一个角色 单件类&#xff08;Singleton&#xff09;:单件类只可以创建出一个实例。 2、单件模式的UML类…

前端常用缓存技术深度剖析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

任务管理法宝:甘特图详解

在项目管理中&#xff0c;如何清晰、直观地展示项目的进度和任务分配&#xff1f; 甘特图作为一种经典的项目管理工具&#xff0c;提供了有效的解决方案。无论是团队合作还是个人项目管理&#xff0c;甘特图都能帮助你轻松追踪各项任务的进展。今天&#xff0c;我们将详细介绍…

leetcode 62.不同路径

1.题目要求: 2.解题思路: 利用动态规划去解此题 3.题目代码: class Solution { public:int uniquePaths(int m, int n) {//创建dp数组vector<vector<int>> dp;dp.resize(m);for(int i 0;i < dp.size();i){dp[i].resize(n);}//确定dp数组的含义//初始化for(i…

电子应用设计方案-38:智能语音系统方案设计

智能语音系统方案设计 一、引言 智能语音系统作为一种便捷、自然的人机交互方式&#xff0c;正逐渐在各个领域得到广泛应用。本方案旨在设计一个高效、准确、功能丰富的智能语音系统。 二、系统概述 1. 系统目标 - 实现高准确率的语音识别和自然流畅的语音合成。 - 支持多种语…

UE5 C++ 不规则按钮识别,复选框不规则识别 UPIrregularWidgets

插件名称&#xff1a;UPIrregularWidgets 插件包含以下功能 你可以点击任何图片&#xff0c;而不仅限于矩形图片。 UPButton、UPCheckbox 基于原始的 Button、Checkbox 扩展。 复选框增加了不规则图像识别功能&#xff0c;复选框增加了悬停事件。 欢迎来到我的博客 记录学习过…

计算机中各部件的选购

目录 1.主板的选购 2.CPU的选购 3.CPU散热器的选购 4.内存的选购 5.硬盘的选购 6.光驱的选购 7.光盘的选购 8.键盘的选购 9.鼠标的选购 10.扫描仪的选购 11.摄像头的选购 12.显卡的选购 13.显示器的选购 14.打印机的选购 15.声卡的选购 16.网卡的选购 17.交换…

第32天:安全开发-JavaEE应用Servlet路由技术JDBCMybatis数据库生命周期

时间轴&#xff1a; 32天主要学习内容&#xff1a; 1、JavaEE-HTTP-Servlet技术 2、JavaEE-数据库-JDBC&Mybatis java技术使用历史&#xff08;2023 &#xff09;&#xff1a; JavaEE-HTTP-Servlet&路由&周期: java学习范围&#xff1a; 3、Java: 功能:数据…

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写)

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器&#xff08;模块化编写&#xff09; 1. 实验要求2. 功能分析3. 模块设计4. 波形图4.1 按键消抖模块4.2 按键控制蜂鸣器模块 5.代码编写5.1 rtl代码5.2 测试代码 6. 代码仿真7. 添加约束文件并分析综合 在上期的内容中&…

k8s,声明式API对象理解

命令式API 比如&#xff1a; 先kubectl create&#xff0c;再replace的操作&#xff0c;我们称为命令式配置文件操作 kubectl replace的执行过程&#xff0c;是使用新的YAML文件中的API对象&#xff0c;替换原有的API对象&#xff1b;而kubectl apply&#xff0c;则是执行了一…

了解Xcode在iOS开发中的作用和功能有哪些

Xcode是什么&#xff1f;它在iOS开发中的作用和功能有哪些&#xff1f; 一、Xcode是什么&#xff1f; Xcode是苹果公司针对macOS平台开发的一款集成开发环境&#xff08;Integrated Development Environment&#xff0c;简称IDE&#xff09;。它主要用于开发iOS、iPadOS、mac…

【金猿CIO展】复旦大学附属中山医院计算机网络中心副主任张俊钦:推进数据安全风险评估,防范化解数据安全风险,筑牢医疗数据安全防线...

‍ 张俊钦 本文由复旦大学附属中山医院计算机网络中心副主任张俊钦撰写并投递参与“数据猿年度金猿策划活动——2024大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 数据要素时代&#xff0c;医疗数据已成为医院运营与决策的重要基石…

案例研究|HYPER PaaS低代码工具携手DataEase嵌入式版,服务工业制造企业数智化转型

杭州星瀚智磐科技有限公司&#xff08;以下简称为“星瀚智磐”&#xff09;成立于2021年&#xff0c;是一家专注于低代码平台研发的高科技企业。星瀚智磐的核心产品HYPER PaaS低代码工具主要为制造业用户提供数字化解决方案。HYPER PaaS基于低代码平台简单的拖拉拽操作&#xf…

Python 队列的使用:掌握先进先出的数据结构

Python 队列的使用&#xff1a;掌握先进先出的数据结构 队列是一种先进先出&#xff08;FIFO&#xff09;的数据结构&#xff0c;它在多种编程场景中都非常有用&#xff0c;比如任务调度、事件处理等。在Python中&#xff0c;我们可以通过标准库中的queue模块来实现队列。本文…

2-2-18-13 QNX系统架构之原生网络(Qnet)

阅读前言 本文以QNX系统官方的文档英文原版资料为参考&#xff0c;翻译和逐句校对后&#xff0c;对QNX操作系统的相关概念进行了深度整理&#xff0c;旨在帮助想要了解QNX的读者及开发者可以快速阅读&#xff0c;而不必查看晦涩难懂的英文原文&#xff0c;这些文章将会作为一个…

Ubuntu系统上mysql服务部署

前段时间搞了一个mysql服务端的部署&#xff0c;在Ubuntu系统上&#xff0c;中间也踩了许多坑&#xff0c;特此记录下。 下载 官网&#xff1a;MySQL :: MySQL Community Downloads 这个里面有不同系统的安装包&#xff0c;根据自己的系统选择&#xff0c;我选了 MySQL Com…