PGL七日打卡营心得
更多干货内容尽在: 图神经网络7日打卡营
空手道俱乐部图
这个**「空手道」**图表示什么?Wayne W. Zachary 在 1970 到 1972 年这三年中研究的一个空手道俱乐部的社交网络。该网络包含了这个空手道俱乐部的 34 个成员,成员对之间的连接表示他们在俱乐部之外也有联系。在研究期间,管理员 JohnA 与教练 Mr.Hi(化名)之间出现了冲突,导致俱乐部一分为二。一半成员围绕 Mr.Hi 形成了一个新的俱乐部,另一半则找了一个新教练或放弃了空手道。基于收集到的数据,除了其中一个成员,Zachary 正确分配了所有成员在分裂之后所进入的分组。
图的基本表示方法
图 G=(V, E) 由下列要素构成:
- 一组节点(也称为 verticle)V=1,…,n
- 一组边 E⊆V×V
- 边 (i,j) ∈ E 连接了节点 i 和 j
- i 和 j 被称为相邻节点(neighbor)
- 节点的度(degree)是指相邻节点的数量
学习内容:
一、图学习初印象
图学习概述、入门路线
作业:安装环境,跑通 example 代码。
二、图游走类模型
DeepWalk、node2vec、metapath2vec、metapath2vec 变种模型
DeepWalk 算法原理
虽然DeepWalk是KDD 2014的工作,但却是我们了解Graph Embedding无法绕过的一个方法。
我们都知道在NLP任务中,word2vec是一种常用的word embedding方法,word2vec通过语料库中的句子序列来描述词与词的共现关系,进而学习到词语的向量表示。
DeepWalk的思想类似word2vec,使用图中节点与节点的共现关系来学习节点的向量表示。那么关键的问题就是如何来描述节点与节点的共现关系,DeepWalk给出的方法是使用随机游走(RandomWalk)的方式在图中进行节点采样。
RandomWalk是一种可重复访问已访问节点的深度优先遍历算法。给定当前访问起始节点,从其邻居中随机采样节点作为下一个访问节点,重复此过程,直到访问序列长度满足预设条件。
获取足够数量的节点访问序列后,使用skip-gram model 进行向量学习。
三、图神经网络算法(一)
GCN、GAT、消息传递机制
1. 图卷积网络(Graph Convolution Networks,GCNs)
图卷积网络将卷积运算从传统数据(例如图像)推广到图数据。其核心思想是学习一个函数映射 f ( . ) f\left(.\right ) f(.) ,通过该映射图中的节点 v i v_{i} vi可以聚合它自己的特征 x i x_{i} xi与它的邻居特征 x j x_{j} xj( j ∈ N ( v i ) j\in N(v_{i}) j∈N(vi))来生成节点 v i v_{i} vi 的新表示。图卷积网络是许多复杂图神经网络模型的基础,包括基于自动编码器的模型、生成模型和时空网络等。下图直观地展示了图神经网络学习节点表示的步骤。
GCN方法又可以分为两大类,基于谱(spectral-based)和基于空间(spatial-based)。基于谱的方法从图信号处理的角度引入滤波器来定义图卷积,其中图卷积操作被解释为从图信号中去除噪声。基于空间的方法将图卷积表示为从邻域聚合特征信息,当图卷积网络的算法在节点层次运行时,图池化模块可以与图卷积层交错,将图粗化为高级子结构。如下图所示,这种架构设计可用于提取图的各级表示和执行图分类任务。
四、图神经网络算法(二)
图采样技术、图聚合技术
聚合函数
伪代码第5行可以使用不同聚合函数,本小节介绍五种满足排序不变量的聚合函数:平均、GCN归纳式、LSTM、pooling聚合器。(因为邻居没有顺序,聚合函数需要满足排序不变量的特性,即输入顺序不会影响函数结果)
a.平均聚合:先对邻居embedding中每个维度取平均,然后与目标节点embedding拼接后进行非线性转换。
b. 归纳式聚合:直接对目标节点和所有邻居emebdding中每个维度取平均(替换伪代码中第5、6行),后再非线性转换:
c. LSTM聚合:LSTM函数不符合“排序不变量”的性质,需要先对邻居随机排序,然后将随机的邻居序列embedding作为LSTM输入。
d. Pooling聚合器:先对每个邻居节点上一层embedding进行非线性转换(等价单个全连接层,每一维度代表在某方面的表示(如信用情况)),再按维度应用 max/mean pooling,捕获邻居集上在某方面的突出的/综合的表现 以此表示目标节点embedding。
五、图神经网络进阶模型讲解
ERNIESage、UniMP
实践:ERNIESage代码讲解