图神经网络是一种专门为处理图结构数据而设计的深度学习模型。它解决的核心问题可以概括为:如何有效地让神经网络理解并利用实体之间复杂的关联关系?
传统神经网络(如CNN、RNN)假设数据存在于规则的网格(如像素网格、时间序列)中,但现实世界中许多数据本质上是非欧几里得的,即由节点(实体)和边(关系)构成的图。GNN的出现,就是为了解决在这种不规则、关系化的数据结构上进行机器学习的难题。
GNN主要解决的四类核心任务:
1、节点级任务
目标:预测图中每个节点的属性或类别。
核心思想:通过聚合邻居节点的信息,为每个节点生成一个包含其局部图结构信息的向量表示(嵌入)。
典型应用:
- 社交网络用户分类:在社交图中,预测用户的职业、兴趣或是否为异常账号。节点是用户,边是好友关系。GNN可以利用“朋友的朋友”的信息来更好地判断。
- 论文引用网络中的主题分类:在论文引用图中,预测每篇论文的研究领域。节点是论文,边是引用关系。一篇论文的类别会受到其引用的和被引用的论文影响。
- 蛋白质功能预测:在蛋白质相互作用网络中,预测特定蛋白质的功能。
2、边级任务
目标:预测图中节点之间边的属性或是否存在边。
核心思想:结合两个相关节点的信息,来预测它们之间连接的状况。
典型应用:
- 链接预测:在社交网络中,预测哪些用户可能成为朋友(推荐好友);在知识图谱中,预测两个实体之间缺失的关系。
- 推荐系统:用户-商品交互图可以看作一个二分图。GNN可以预测用户和商品之间是否存在“购买”或“喜欢”的边,从而实现精准的商品推荐。
- 药物相互作用预测:预测两种分子(节点)之间是否会发生作用(边),对于新药研发至关重要。
3、图级任务
目标:对整个图进行预测或分类,生成一个全局的图表示。
核心思想:通过读出机制聚合图中所有节点的信息,形成一个代表整张图的向量。
典型应用:
- 分子属性预测:将分子表示为图(原子是节点,化学键是边),预测分子的毒性、溶解度或药物活性。这是GNN在化学领域最成功的应用之一。
- 社交网络社区检测:判断一个社交子图是否代表一个特定的社区或群体。
- 程序代码分析:将代码的抽象语法树或控制流图作为输入,预测代码是否含有漏洞或属于哪种功能。
4、图生成与演化任务
目标:生成新的、合理的图结构,或预测图的动态变化。
典型应用:
- 分子生成:生成具有特定属性(如高药物活性)的新型分子结构图。
- 知识图谱补全:生成新的实体和关系,以扩展知识图谱。
- 交通流量预测:将道路网络建模为图,预测未来各条道路(边)的流量变化。