一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
Hello,非常感谢你的关注~ 我是机器学习与风控,一名末流985的本硕,无顶会、无大厂核心部门实习,拥有多个比赛的竞赛经历,秋招刷了leetcode500题,在秋招提前批中收获字节跳动,腾讯,阿里,美团等大厂offer,最终选择入职字节风控,从事与黑产对抗的工作。我会定期分享我的春招、秋招亲身求职体验;算法岗日常工作;数据挖掘比赛,经典图模型等日常学习等有料也有趣的内容~秋招到了,欢迎各位私信找我内推!!!部门缺少开发,算法等岗位验证缺人。
对一个经典的图神经网络综述进行学习。记录其中的要点。
图神经网络的动机来自哪里?
CNN具有多角度抽取局部空间特征并且把他们压缩成高唯表示的能力。然而,CNN只能操作规则的欧几里德数据,如图像(2D网格)和文本(1D序列),而这些数据结构可以视为图形的实例。随着我们更深入地了解CNN和图表,我们找到了CNN的密钥:本地连接,共享权重和多层使用。这些对于解决图域的问题也非常重要,因为
- 图是最典型的局部连接结构。
- 与传统的谱图理论相比,共享权重降低了计算成本。
- 多层结构是处理分层模式的关键,它捕获各种大小的特征。因此,可以直接考虑找到CNN到图的概括。
- graph embedding :图表示学习学习节点表示。deepwalk等方式。首先,编码器中的节点之间不共享参数,这导致计算效率低,因为这意味着参数的数量随着节点的数量线性增长。其次,直接嵌入方法缺乏泛化能力。
图神经网络值得研究的原因:1)忽略了输入顺序。2)使用边信息 3)推理
我们研究了该领域的各种模型,并提供了统一的表示,以在不同的模型中呈现不同的传播步骤。通过识别相应的聚合器和更新器,可以使用我们的表示轻松区分不同的模型。
早期的图神经网络模型
最早的GNN:在图中,每个节点由其特征和相关节点自然定义。 GNN的目标是学习嵌入hv ,其包含每个节点的邻域信息。 把节点特征和邻居特征,边的特征,节点潜入作为输入,输出o。通过堆叠多层达到一个稳态。
补充:不动点假设。
用F表示若干个f堆叠得到的一个函数,也称为全局更新函数,那么图上所有结点的状态更新公式可以写成:
经过F变换后的新空间一定比原先的空间要小,原先的空间被压缩了。想象这种压缩的过程不断进行,最终就会把原空间中的所有点映射到一个点上。这就可以类比于不断更新的隐藏状态参数,经历数次的迭代得到趋于稳定的H值之后将它看作是最后映射成为的不动点。与现代GNN区别,F的参数是一个堆叠,每一层都一样的。
总结来说就是不断地利用当前时刻邻居结点的隐藏状态作为部分输入来生成下一时刻中心结点的隐藏状态,直到每个结点的隐藏状态变化幅度很小,整个图的信息流动趋于平稳。至此,每个结点都“知晓”了其邻居的信息。状态更新公式仅描述了如何获取每个结点的隐藏状态。