秒懂算法 | 基于图神经网络的推荐算法

简介: 图神经网络(Graph Neural Networks,GNN)是近几年兴起的学科,用来作推荐算法自然效果也相当好,但是要学会基于图神经网络的推荐算法之前,需要对图神经网络自身有个了解。

image.png


图卷积网络(Graph Convolutional Networks,GCN)提出于2017年。GCN 的出现标志着图神经网络的出现。深度学习最常用的网络结构是CNN 和RNN。GCN 与CNN 不仅名字相似,其实理解起来也很类似,都是特征提取器。不同的是,CNN 提取的是张量数据特征,而GCN 提出的是图结构数据特征。

01、计算过程

其实GCN 的公式本身非常简单,初期研究者为了从数学上严谨地推导该公式是有效的,所以涉及诸如傅里叶变换,以及拉普拉斯算子等知识。其实对于使用者而言,可以绕开那些知识并且毫无影响地理解GCN。

以下是GCN 网络层的基础公式,具体如下:

image.png


其中,

image.png


指第1层的输入特征,自然是指输出特征。指线性变换矩阵。是非线性激活函数,如ReLU 和Sigmoid等,所以重点是那些A 和D是什么。

首先说

image.png


,通常邻接矩阵用A 表示,在A 上加个波浪线的叫作“有自连的邻接矩阵”,以下简称自连邻接矩阵。定义如下:

image.png


其中,I 是单位矩阵(单位矩阵的对角线为1,其余均为0),A 是邻接矩阵。因为对于邻接矩阵的定义是矩阵中的值为对应位置节点与节点之间的关系,而矩阵中对角线的位置是节点与自身的关系,但是节点与自身并无边相连,所以邻接矩阵中的对角线自然都为0,但是如果接受这一设定进行下游计算,则无法在邻接矩阵中区分“自身节点”与“无连接节点”,所以将A 加上一个单位矩阵I 得到A~,便能使对角线为1,就好比添加了自连的设定,如图1所示。

image.png


■ 图1 GCN无向无权图示意图


image.png


是自连矩阵的度矩阵,定义如下:

image.png


如果仍然用上述图例中的数据:

image.png


image.png


所以:

image.png


image.png


是在自连度矩阵的基础上开平方根取逆。求矩阵的平方根和逆的过程其实很复杂,好在只是一个对角矩阵,所以此处直接可以通过给每个元素开平方根取倒数的方式得到。在无向无权图中,度矩阵描述的是节点度的数量; 若是有向图,则是出度的数量; 若是有权图,则是目标节点与每个邻居连接边的权重和,而对于自连度矩阵,是在度矩阵的基础上加一个单位矩阵,即每个节点度的数量加1。

GCN公式中的

image.png


其实都是从邻接矩阵计算而来的,所以甚至可以把这些看作一个常量。模型需要学习的仅仅是这个权重矩阵。

正如之前所讲,GCN 神经网络层的计算过程很简单,如果懂了那个公式,则只需构建一张图,统计出邻接矩阵,直接代入公式即可实现GCN 网络。

02、公式的物理原理

下面来理解一下GCN 公式的物理原理。首先来看

image.png


这一计算的意义,如图2所示。

image.png


■ 图2 运行Git检查工具

相信大家了解矩阵间点乘的运算规则,即线性变化的计算过程。在自连邻接矩阵满足图2的数据场景时,下一层第1个节点的向量表示是当前层节点h1、h2、h3、h5 这些节点向量表示的和。这一过程的可视化意义如图3所示。

image.png


■ 图3 GCN计算过程图解(2)

这一操作就像在卷积神经网络中进行卷积操作,然后进行一个求和池化(Sum Pooling)。这其实是一条消息传递的过程,Sum Pooling是一种消息聚合的操作,当然也可以采取平均、Max等池化操作。总之经消息传递的操作后,下一层的节点1就聚集了它一阶邻居与自身的信息,这就很有效地保留了图结构承载的信息。

接下来看度矩阵D 在这里起到的作用。节点的度代表着它一阶邻居的数量,所以乘以度矩阵的逆会稀释掉度很大的节点的重要度。这其实很好理解,例如保险经理张三的好友有2000个,当然你也是其中的一个,而你幼时的青梅竹马小红加上你仅有的10个好友,则张三与小红对于定义你的权重自然就不该一样。

image.png


这一计算的可视化意义如下:

没错,这是一个加权求和操作,度越大权重就越低。图4中每条边权重分母左边的数字4是节点1自身度的逆平方根。

image.png


■ 图4 GCN计算过程图解(3)

上述内容可简单地理解GCN 公式的计算意义,当然也可结合具体业务场景自定义消息传递的计算方式。

图神经网络之所以有效,是因为它很好地利用了图结构的信息。它的起点是别人的终点。本身无监督统计图数据信息已经可以给预测带来很高的准确率。此时只需一点少量的标注数据进行有监督的训练就可以媲美大数据训练的神经网络模型。

目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
166 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
3月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
387 55
|
6天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
79 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
11天前
|
机器学习/深度学习 数据采集 算法
基于WOA鲸鱼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB 2022a实现时间序列预测,采用CNN-GRU-SAM网络结构,结合鲸鱼优化算法(WOA)优化网络参数。核心代码含操作视频,运行效果无水印。算法通过卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征,全连接层整合输出。数据预处理后,使用WOA迭代优化,最终输出最优预测结果。
|
5天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
24天前
|
算法 安全 大数据
【算法合规新时代】企业如何把握“清朗·网络平台算法典型问题治理”专项行动?
在数字化时代,算法推动社会发展,但也带来了信息茧房、大数据杀熟等问题。中央网信办发布《关于开展“清朗·网络平台算法典型问题治理”专项行动的通知》,针对六大算法问题进行整治,明确企业需落实算法安全主体责任,建立健全审核与管理制度,并对算法进行全面审查和备案。企业应积极自查自纠,确保算法合规透明,防范风险,迎接新机遇。
|
3月前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
218 80
|
3天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目使用MATLAB 2022a实现时间序列预测算法,完整程序无水印。核心代码包含详细中文注释和操作视频。算法基于CNN-LSTM-SAM网络,融合卷积层、LSTM层与自注意力机制,适用于金融市场、气象预报等领域。通过数据归一化、种群初始化、适应度计算及参数优化等步骤,有效处理非线性时间序列,输出精准预测结果。
|
16天前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
|
16天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。

热门文章

最新文章