08-GNN 图机器学习之图神经网络
Posted combfish
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08-GNN 图机器学习之图神经网络相关的知识,希望对你有一定的参考价值。
图神经网络
![技术图片](https://image.cha138.com/20210623/90998eecd7a545bc99e5ec3ff5deea0e.jpg)
node embedding
回顾了之前node2vec的例子以及深度学习卷积的一些基础
浅层encoder的局限性:
参数数量O(v):节点间没有共享参数,每个节点有自己的embedding
不能表征未见过的节点
没有综合考虑节点特征
![技术图片](https://image.cha138.com/20210623/11b2a0b45218447191be8ffd1854592d.jpg)
本节学习图神经网络,多层的非线性的
![技术图片](https://image.cha138.com/20210623/68ed9c1d8ac349e883f5fcfe61089273.jpg)
![技术图片](https://image.cha138.com/20210623/bc0ae34a9beb42d9884989c2309570a1.jpg)
那么,在图中,如何做卷积?
如果输入是邻接矩阵,那么模型不能适配各种规模的网络;对节点的顺序也没有敏感性
![技术图片](https://image.cha138.com/20210623/b676256581404897a5513fce50cf47b8.jpg)
图的深度学习基础
![技术图片](https://image.cha138.com/20210623/1ca6e52144ef4a1d98d30aeb6af44ec9.jpg)
![技术图片](https://image.cha138.com/20210623/68125e41a2a0438492cd5c6ff3552602.jpg)
起初,对于一个图G
V:节点集合
A:邻接矩阵
X:节点的特征向量
![技术图片](https://image.cha138.com/20210623/282829bd4e074a9785bcd9e4ea70523b.jpg)
图卷机网络
思路:图的邻居定义计算图
信息传播→计算节点特征
![技术图片](https://image.cha138.com/20210623/e87523b58b5e4288a6b9cd96db86f96a.jpg)
邻居聚合:局部网络邻居
intuition:节点通过神经网络,从邻居聚合信息
深度模型:多层结构
模型可以是任意深度的:
节点在每一层都有embedding
第0层的embedding是输入特征x
第k层的embedding得到的信息是通过经过k跳的节点而得
![技术图片](https://image.cha138.com/20210623/b523c9d4f7f84cc89f2fd9622ff2a8de.jpg)
关键的区分在于信息通过不同的层是如何聚合的?
![技术图片](https://image.cha138.com/20210623/ae18cbc6d9a644039c3f634d4bec2456.jpg)
基础的方法:平均+神经网络
![技术图片](https://image.cha138.com/20210623/f078f2dc6dbe445b866585e6438b0fe5.jpg)
第0层初始化为节点的特征
公式如下
相似的节点有相似的embedding
![技术图片](https://image.cha138.com/20210623/a0a881505b554205a49e41bb7dadfb8b.jpg)
监督学习:训练模型用于节点分类
例如,药品是否有毒
![技术图片](https://image.cha138.com/20210623/c49dac83d189408b80ec724f471f80bc.jpg)
![技术图片](https://image.cha138.com/20210623/2d71a9171a0b4f8aa1842642dc7dc375.jpg)
模型设计:
定义邻居聚合函数;定义loss函数;训练:生成节点的embedding
![技术图片](https://image.cha138.com/20210623/4af3ac3a1d334887917372ce28e49a77.jpg)
聚合参数是所有节点共享的
因此可为未见过的节点生成embedding;甚至是为相近的全新网络生成embedding
![技术图片](https://image.cha138.com/20210623/3fd9be84adc7499392f448134c961707.jpg)
![技术图片](https://image.cha138.com/20210623/ded4d710ce2e489785612e7bf243bc24.jpg)
图卷积网络和GraphSAGE
![技术图片](https://image.cha138.com/20210623/165aeef2c817413bad1aadceadbec4dc.jpg)
有比平均更好的聚合方法吗?
![技术图片](https://image.cha138.com/20210623/0ca432fb1b6c4c9f8bc3b0365c9622a5.jpg)
对每一层的embedding进行L2正则化
![技术图片](https://image.cha138.com/20210623/498f3470f760411593f27904d81baaa0.jpg)
不相加而是拼接
![技术图片](https://image.cha138.com/20210623/be54cbde4fce4d2b8f7282ceebd7e0e9.jpg)
3中聚合方法:平均;池化;LSTM
![技术图片](https://image.cha138.com/20210623/d21b22298bea4aeab1ef7e5e55c3013e.jpg)
小结:
![技术图片](https://image.cha138.com/20210623/c3e0c773fe88433e807a481e926b8b9b.jpg)
高效的实现
通过对稀疏矩阵的操作
![技术图片](https://image.cha138.com/20210623/3521dafab3a64bacad118f8673d5c95c.jpg)
更多的图卷积网络
![技术图片](https://image.cha138.com/20210623/6c016b0fffb94ea5a60383f39286ef68.jpg)
Graph Attention Network (GAT)
![技术图片](https://image.cha138.com/20210623/f2ba073d5856451faec30d42b864c9c1.jpg)
![技术图片](https://image.cha138.com/20210623/1a2e83c0a5234df3bc1be50c34171d1c.jpg)
每个节点的贡献力是否可以使用权重来区分
![技术图片](https://image.cha138.com/20210623/87057b1a9cd1457fb7505f74e6da9263.jpg)
![技术图片](https://image.cha138.com/20210623/f913a0c898cc4f0d9d1d0041eda33e63.jpg)
![技术图片](https://image.cha138.com/20210623/f28b49742ed44a8db2a16967e315563a.jpg)
![技术图片](https://image.cha138.com/20210623/ee3cf9d4ad954203b2087b22d4297175.jpg)
例子:
引用网络
应用例子
![技术图片](https://image.cha138.com/20210623/12d604c81c3440658bdf52e5810c1890.jpg)
拼趣:Pinterest采用的是瀑布流的形式展现图片内容,无需用户翻页,新的图片不断自动加载在页面底端,让用户不断的发现新的图片。
Pinterest堪称图片版的Twitter,网民可以将感兴趣的图片在Pinterest保存,其他网友可以关注,也可以转发图片。索尼等许多公司也在Pinterest建立了主页,用图片营销旗下的产品和服务。
![技术图片](https://image.cha138.com/20210623/5882c9bee1a94d7f869b75bc2dac1c18.jpg)
![技术图片](https://image.cha138.com/20210623/2eb5e2efa0a44c3789136c4718a60533.jpg)
![技术图片](https://image.cha138.com/20210623/a776abc2ba1d47f8abfe15288f2b22ea.jpg)
为每个节点生成一个embedding
从相邻的节点借用信息
![技术图片](https://image.cha138.com/20210623/769509ddd7df423baa1931ac14dcfac3.jpg)
![技术图片](https://image.cha138.com/20210623/87e09fb58cbd4aafbf1175bdf8d1dbb0.jpg)
给用户推荐相关的pins
![技术图片](https://image.cha138.com/20210623/acb1adb2faed44c892a0118bc5fc5905.jpg)
![技术图片](https://image.cha138.com/20210623/a7f7888c22f4428a8650771139553883.jpg)
![技术图片](https://image.cha138.com/20210623/69d3824139ad4e679eca156daac6f4ef.jpg)
![技术图片](https://image.cha138.com/20210623/d7f10b36127e4892ad10cb00ebd0572a.jpg)
使用小贴士
数据预处理是非常重要的:正则化;变量规模的初始化;网络数据的清洗
训练优化器
relu可以获得较好的成效
输出层不需要激活函数
每一层需要偏置
GCN的层在64或128已经很好了,不需要过深
![技术图片](https://image.cha138.com/20210623/fe2c4eb8b68c467b9af8b04767826b5f.jpg)
模型:
在训练集上需要过拟合!!
仔细检查loss函数
仔细检查可视化
![技术图片](https://image.cha138.com/20210623/56852dea44f64cf1b0be9aa89e0e5921.jpg)
以上是关于08-GNN 图机器学习之图神经网络的主要内容,如果未能解决你的问题,请参考以下文章