摘要
GNN是指基于图的神经网络,它是一种特殊的深度学习模型,主要用于处理具有复杂结构的数据。它使用神经网络来处理具有复杂结构的数据,比如图形、文本和时序等。GNN可以将具有复杂结构的数据转换为有用的特征,从而为模型的训练提供有用的信息。本周对GNN进行初步的学习,学习GNN的一些应用以及模型。重点关注了GNN背后的一些数学原理,例如傅里叶级数、傅里叶变换等等。
Abstract
GNN refers to graph based neural networks, which are a special deep learning model mainly used for processing data with complex structures. Using neural networks of GNN to process data with complex structures, such as graphics, text, and time series. We can transform data with complex structures into useful features, providing useful information for model training with GNN. This week, I conduct a preliminary study on GNN, learn some applications and models of GNN,and focus on some mathematical principles behind GNN, such as Fourier series, Fourier transform, and so on.
GNN
应用举例:
Classification(分类)、Generation(生成)等
分类
分子是否突变
分子结构生成 graphVAE
寻找凶手
GNN Roadmap:
GNN常见模型
Spatial-based Convolution
NN4G
• layer0做的是简单的embedding
aggregation
Readout
DCNN (Diffusion - CNN)
• 第n层看离当前节点距离n的节点信息
把每一层的feature叠加起来(concat)
对每个节点进行分类
MoNET (Mixture Model Network)
• deg(x) 表示x的出入度数
• u(x,y) 自定义的距离计算方式
GraphSAGE
Graph Signal Processing and Spectral-based GNN
向量空间
• 任何信号都是由基础信号的加权和组成
• 单个基础信号的权重可以由信号点乘该基础信号求得
• 基础信号都是正交的
傅里叶级数
基础信号是sin,cos:
傅里叶变换
Spectral Graph Theory
• N是节点的个数
• A是邻接矩阵
• 只考虑无向图 (A是对称矩阵)
• D邻居数量
• f节点上的signal(具体问题具体含义,如温度等)
• Graph拉普拉斯L=D-A , 对称矩阵、半正定矩阵(所有特征值大于等于0)
• 特征分解, 是frequency;
是正交基,且长度为1
示例
不同频率下的基
离散傅里叶基,帮助理解频率的概念
如果把L作用在f上,如下图,可以发现:Lf 某种程度上表示某个节点与邻居的能量差
可以归纳为如下:
能量的话要算平方(要去补一下信号处理)
代表了节点之间的能量差异
如果把替换成特征向量
,可以发现,最终就是特征值
如何做filtering?
时域→频域→与filter相乘→时域
首先是时域转频域,下面的x就是上面的f,其实就是分析每个正交基上的投影,在每个频率下的成分有多大
那么怎么转回去呢,先看下普通的信号处理,每个时刻把每个频率下成分大小叠加起来
图傅里叶也是一样的,就得到了节点信息
整个过程如下,我们要学习的是
ChebNet
减少了计算量
结论:先根据递归把x转换成 ,然后
是要学习的参数,k代表k-localized
GCN
Chebnet的基础上k=1
节点的特征经过线性变换w,然后所有的邻居求和取平均,加上b,最后经过激活函数
总结
GNN是非常强大的工具,已经在路线规划、欺诈检测、网络优化和药物研究等领域得到广泛的应用。只要有相关实体的图形, GNN就可以帮助从现有数据中获得最大的价值。