图神经网络 (GNN) 是一种深度学习模型,旨在处理表示为图的数据,图由节点(实体)和边(关系)组成。与处理网格状数据(例如,图像)或序列(例如,文本)的传统神经网络不同,GNN 处理不规则的非欧几里德结构。这使得它们适用于实体之间关系至关重要的任务,例如社交网络、分子化学或推荐系统。 GNN 通过在图上传播信息来学习,根据其邻居更新节点表示,从而使模型能够捕获局部和全局结构模式。
GNN 通过一种称为消息传递的机制运行。在每一层中,节点聚合来自其邻居的特征,将此信息与自身结合,并更新其嵌入(向量表示)。例如,在社交网络图中,用户节点可能会聚合来自朋友的数据以预测兴趣。诸如图卷积网络 (GCN) 之类的常见架构使用加权聚合,而图注意力网络 (GAT) 应用注意力机制来优先考虑有影响力的邻居。堆叠多个层允许 GNN 捕获更高阶的关系——比如两个跃点之外的间接连接。然而,深度 GNN 可能会面临过度平滑的问题,即节点特征变得过于相似,因此实际实现通常使用浅层架构或跳跃连接。
开发人员将 GNN 应用于各种问题。例如,在推荐系统中,用户-项目交互形成二分图,GNN 通过分析连通性来预测未观察到的偏好。在化学中,分子被建模为以原子为节点、键为边的图;GNN 预测毒性等属性。 PyTorch Geometric 和 DGL 等框架通过用于消息传递和图批处理的预构建层简化了实现。一个典型的工作流程包括定义图结构(邻接矩阵、节点特征)、选择 GNN 变体以及针对节点分类(例如,将用户标记为欺诈者)或链接预测(例如,建议友谊)等任务进行训练。挑战包括扩展到大型图(数十亿个节点)和处理连接随时间变化的动态图。