一个图数据怎么输入到图神经网络中?

图数据怎么输入到图神经网络

这个问题首先拆解一下,图数据如何用数学表示?

可以使用邻接矩阵A和节点集V表示,每个节点有m个特征,总共有绝对值V个节点,每个节点的m个特征比如婚姻状况,年龄,学历,收入,这就是四个特征,每个节点自己有m个特征。

节点自己也会和其它节点产生连接,和节点自己产生连接的节点称为节点自己的邻域,用N(v)表示,就是v节点的邻域,与节点v相连的所有节点的集合。

节点属性特征如果没有的话,可以全部设置为1,当然也可以设为独热向量,独热向量就是只有一个特征是1,其它都是0,比如哪个省的人,山西省的人的话,那就是山西这个特征是1,其它都是0。

分析:邻接矩阵A涵盖了这张图所有的节点信息和节点连接信息。

上面这些图应用场景都可以使用邻接矩阵来表示图数据信息

分析:5个节点,每个节点含两个属性特征,就是5行5列的邻接矩阵和每个节点对应的特征,能不能把每一行作为一个样本,就像传统机器学习一样,把B这个节点对应的特征输入到神经网络中去进行学习,比如B可能是一个欺诈的用户,让神经网络努力预测它是欺诈,如果它是一个正常用户,就让神经网络努力预测它是正常,通过这种方式构造交叉熵损失函数,通过反向传播梯度下降去迭代优化神经网络里面的权重,进而训练得到这个神经网络,再来一个样本,神经网络就会根据已经训练好的权重预测出是什么类别。

这是很正常的想法,也符合机器学习中样本之间独立同分布的假设,A节点和B节点好像向量没有什么关系,就好像一朵一朵鸢尾花,一个一个的波士顿房价的数据,独立的,同分布的。分别用这些样本训练神经网络,划分训练集测试集,去训练就可以了。

全连接神经网络要求输入维度是固定的,比如说对于第一层神经网络,第一层神经网络第一个神经元对输入的7个特征,每一个特征都有一个权重,第一个特征乘以第一个权重,一直加到第七个特征乘以第七个权重,得到一个加权求和,再加上自己的偏置项,再经过非线性激活函数,输入给下一层,每一个神经元都和上一层的所有神经元密集相连,所以叫做全连接神经网络。

但这种想法有问题

(1)参数量非常大,第一个节点有7个特征,第一个神经元就有7个权重,对应7个特征,如果做全中国所有人的社交网络,比如14亿个人,每一个节点(每一个人)就有14亿零2个特征,输入到神经网络中,光第一个神经元就有14亿零2个权重,所以参数量会爆炸,就会导致过拟合。

(2)如果这个时候来了一个新节点,比如一个新宝宝出生了,这个全中国的人口变成了14亿零1,矩阵的行和列就发生了变化,没法泛化到新节点,需要按8个特征,8个权重,重新设计神经网络的结构,重新训练才可以,没有归纳式学习的能力,没法泛化到新节点

(3)最大的问题是不具备变换不变性

现在是按ABCDE的节点顺序命名的,如果换一个顺序呢?

比如左边和右边是同一个图,但是ABCDE顺序不一样,邻接矩阵也会面目全非,而之前神经网络就是第一个权重就是对应第一个特征,第七个权重就是对应第七个特征。

现在矩阵可以打乱,表示的还是同一张图,这个时候神经元是不知道的,才不管输入的是什么顺序,只管按训练的顺序去读取的,所以不具备变换不变性。

发现一旦换了节点顺序,就面目全非了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值