当前位置: 首页 > news >正文

graphsage解读

传统的图方法都是直推式(transductive)的,学习到的是结构固定的图模型,一旦有新的节点加入,便需要重新训练整个图网络,泛化性不强。GraphSAGE是归纳式(inductive)的,它学习一种映射:通过采样和聚合邻居节点信息来生成当前节点的表征。GraphSAGE可扩展性更强,对于节点分类和链接预测问题的表现也比较突出。

模型结构

1

  1. 采样一跳和二跳的邻居节点
  2. 聚合邻居节点的特征信息
  3. 预测图上下文和当前节点标签信息

算法流程

2

整体上还是非常通俗易懂的。

损失函数

  • 有监督:跟常规的分类任务一样,使用交叉熵损失函数
  • 无监督:根据节点间共现关系来定义损失函数:

JG(zu)=−log⁡(σ(zu⊤zv))−Q⋅Evn∼Pn(v)log⁡(σ(−zu⊤zvn))J_{\mathcal{G}}\left(\mathbf{z}_u\right)=-\log \left(\sigma\left(\mathbf{z}_u^{\top} \mathbf{z}_v\right)\right)-Q \cdot \mathbb{E}_{v_n \sim P_n(v)} \log \left(\sigma\left(-\mathbf{z}_u^{\top} \mathbf{z}_{v_n}\right)\right) JG(zu)=log(σ(zuzv))QEvnPn(v)log(σ(zuzvn))

  • uuu 表示当前节点,而 vvv 是跟它在一条随机路径上共现的节点,两者相似,内积很大,则 −log⁡(σ(zu⊤zv))-\log \left(\sigma\left(\mathbf{z}_u^{\top} \mathbf{z}_v\right)\right)log(σ(zuzv)) 接近0
  • Pn(v)P_n(v)Pn(v) 表示负采样分布,QQQ 为负样本个数,uuuvnv_nvn 负内积很大,则 −Q⋅Evn∼Pn(v)log⁡(σ(−zu⊤zvn))-Q \cdot \mathbb{E}_{v_n \sim P_n(v)} \log \left(\sigma\left(-\mathbf{z}_u^{\top} \mathbf{z}_{v_n}\right)\right)QEvnPn(v)log(σ(zuzvn)) 接近 0

实验结果

3

在三个数据集上大幅领先baseline。


参考

  • 图神经网络10-GraphSAGE论文全面解读
http://www.lryc.cn/news/13415.html

相关文章:

  • 一文带你读懂Dockerfile
  • 用python实现对AES加密的视频数据流解密
  • 网络高可用方案
  • 简单的认识 Vue(vue-cli安装、node安装、开发者工具)
  • 如何写一个 things3 client
  • 人工智能原理复习 | 命题逻辑和谓词演算
  • 前端基础面试题:如何判断对象是否具有某属性?遍历数组的方法有哪些?
  • Docker入门和安装教程
  • 有了java基础,迅速学完Python并做了一份笔记-全套Python,建议收藏
  • LeetCode——51. N 皇后
  • jQuery基本操作
  • 基于蜣螂算法优化Kmeans图像分割-附代码
  • 第二章 Kafka设计原理详解
  • 《NFL橄榄球》:费城老鹰·橄榄1号位
  • 【人工智能AI】四、NoSQL进阶《NoSQL 企业级基础入门与进阶实战》
  • K8S 部署 Jenkins
  • 【人工智能AI】五、NoSQL 应用实践《NoSQL 企业级基础入门与进阶实战》
  • Java爬虫系列 - 爬虫补充内容+ElasticSearch展示数据
  • Typora常用快捷键
  • 开学季好用电容笔有哪些?好用实惠的电容笔推荐
  • C++_复习Recording
  • 【java】Spring Cloud --Spring Cloud 的核心组件
  • 【C++】RBTree——红黑树
  • 【5G RRC】5G系统消息SIB2介绍
  • 自托管提醒平台Noted Reminders
  • LockSupport常用方法源码分析
  • Mybatis Notes
  • MySQL 10:MySQL事务
  • 软件设计(十三)-原码、反码、补码、移码
  • 5.4 BGP地址聚合