Graph Neural Networks (GNN)(一):Spatial-GNN

1. 想法

CNN 中的卷积核(e.g., 3 * 3)算某一个像素点的 feature 的时候,可以看成把这个像素点周围的像素点的特征按照一定的权重加权求和。

卷积操作类似于内积,即把卷积核里的每个权重和对应像素点值相乘,最后相加,得到的结果就是这个点的新的特征。

Spatial-GNN 想要把这种卷积操作直接推广到 Graph 上。

2. 做法

将某个节点周围的领域节点特征收集起来,进行某一种操作,然后更新这个节点的特征。
图片来源:李宏毅老师 2020 课程:
在这里插入图片描述

上面我觉得直接把 i 看成 0 来理解会好一些,假设第 0 层的图和特征如上面图左边所示。

为了更新 h 3 0 h^{0}_{3} h30 (也就是第 0 层的 3 号节点)的节点特征,那么类似的我们需要将它周围的节点的特征聚合(aggregate)起来,然后进行某种操作,来更新这个节点的特征。类似于卷积中除了对周围像素操作职位,也对自己本身做了操作,因此 Spatial-GNN 通常也会结合自己本身的特征来更新下一次的特征。

这里在我读过的论文里面总结得最好的论文是 GIN《HOW POWERFUL ARE GRAPH NEURAL NETWORKS?》

a v ( k ) = a_{v}^{(k)}= av(k)= AGGREGATE ( k ) ( { h u ( k − 1 ) : u ∈ N ( v ) } ) , h v ( k ) = C O M B I N E ( k ) ( h v ( k − 1 ) , a v ( k ) ) ^{(k)}\left(\left\{h_{u}^{(k-1)}: u \in \mathcal{N}(v)\right\}\right), \quad h_{v}^{(k)}=\mathrm{COMBINE}^{(k)}\left(h_{v}^{(k-1)}, a_{v}^{(k)}\right) (k)({ hu(k1):uN(v)}),hv(k)=COMBINE(k)(hv(k1),av(k))

k k k 代表第 k k k 层网络,经过 k k k 层网络的某一节点会收集到他 k k k 跳邻居的节点信息。
AGGREGATE 操作就是将收集到的节点的特征进行聚合,聚合方案的不同是导致这一类方法不同模型的主要原因。同样的 COMBINE 操作就是讲聚合的特征和自己节点这一层的特征结合起来,形成新的特征。这样就可以经过 k k k 层网络之后,每个节点就会根据自己周围的拓扑结构和特征,得到新的特征,可以更好的用于下游任务。

当然对于图分类的任务,需要整个图的特征:

h G = READOUT ⁡ ( { h v ( K ) ∣ v ∈ G } ) h_{G}=\operatorname{READOUT}\left(\left\{h_{v}^{(K)} | v \in G\right\}\right) hG=READOUT({ hv(K)vG})

其中 K K K 是最后一层的网络,这里表示将最后一层所有节点的特征进行某种 READOUT 操作,就得到整个图的特征。当然也可以把前面所有层的特征一起进行操作,甚至加权都是可以的。比如 GIN 中就用到了所有层的特征。

3. 经典例子:

接下来就是这一类方法的经典例子:这里面有大名鼎鼎的 GAT 和 GraphSage。

3.1 NN4G

论文《Neural Network for Graphs: A Contextual Constructive Approach》

<
### 图神经网络与LSTM结合的技术和应用 #### 技术背景 图神经网络Graph Neural Networks, GNNs)是种专门用于处理图结构数据的深度学习框架,能够捕捉节点之间的复杂关系。而长短时记忆网络(Long Short-Term Memory, LSTM)则擅长于建模序列数据中的时间依赖性。两者的结合可以充分利用GNN空间特性和LSTM的时间特性,在动态图数据分析领域展现出强大的能力。 当GNN与LSTM相结合时,通常会采用以下几种方式实现: 1. **基于时间步的动态图嵌入** 动态图是指随着时间推移不断变化的图结构。在这种场景下,可以在每个时间步先通过GNN提取当前时刻的图表示,再将这些表示输入到LSTM中以捕获时间维度上的模式[^2]。 2. **联合优化机制** 可以设计种端到端架构,其中GNN负责从静态或动态图中抽取空间特征,而LSTM专注于对这些特征随时间的变化进行建模。这种架构允许两者协同工作并共同训练,从而提升整体性能。 3. **多尺度融合策略** 对于某些复杂的任务来说,可能不仅需要关注局部区域内的交互作用还需要考虑更广范围的影响因素。此时可以通过引入多层次的信息传递过程以及相应的注意力机制来增强表达能力。 #### 应用案例分析 以下是几个典型的应用方向及其具体实施细节: - **交通流量预测** 利用道路网络构建拓扑连接关系形成张无向加权图,并把每条路段视为个节点;然后借助历史车流速度记录作为节点属性值送入模型当中去完成未来段时间内各处通行状况估计的任务。在这里面,GNN部分用来描述地理位置相近之间存在的关联效应,LSTM则是为了记住过去几天甚至几周以来所积累下来的趋势规律以便更好地做出短期或者长期规划决策支持服务等方面贡献价值. ```python import torch from torch_geometric.nn import GCNConv from torch.nn import LSTM class SpatioTemporalModel(torch.nn.Module): def __init__(self, input_dim, hidden_dim_gnn, hidden_dim_lstm, num_classes): super(SpatioTemporalModel, self).__init__() # Spatial component using GNN self.gnn = GCNConv(input_dim, hidden_dim_gnn) # Temporal component using LSTM self.lstm = LSTM(hidden_dim_gnn, hidden_dim_lstm, batch_first=True) # Output layer self.fc = torch.nn.Linear(hidden_dim_lstm, num_classes) def forward(self, x, edge_index, time_steps): spatial_features = [] for t in range(time_steps.size(0)): out = self.gnn(x[t], edge_index) # Apply GNN at each timestamp spatial_features.append(out.unsqueeze(0)) temporal_input = torch.cat(spatial_features, dim=0).transpose(0, 1) lstm_out, _ = self.lstm(temporal_input) output = self.fc(lstm_out[:, -1, :]) # Use the last step's output return output ``` - **社交网络传播分析** 社交媒体平台上用户发布的内容往往伴随着转发评论点赞等系列行为动作轨迹构成了张高度活跃且瞬息万变的关系网路环境之下如何快速精准定位热点话题传播路径成为了研究重点之。因此我们可以尝试运用上述提到的方法论体系来进行探索实践操作流程如下所示: 首先定义好目标群体范围内个体间相互影响程度指标参数集合X={xi| i∈V} ,接着依据实际需求选取合适的相似度衡量标准d() 来确定边权重wuv=f(d(u,v)) 最终得到完整的带标签有向有权图形式表述D=(V,E,W,Y). --- #### 局限性讨论 尽管如此优秀的组合方案具备诸多优势特点但仍存在些不足之处有待改进完善比如计算资源消耗较大难以满足实时在线业务要求等问题亟待解决另外针对不同类型应用场景还需进步细化调整相应配置参数才能达到最佳效果表现水平等等.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值