标签:一层 嵌入 Graph 矩阵 Differentiable Pooling 池化 聚类 节点
来源: KDD’18, 2018
论文: https://arxiv.org/abs/1806.08804
本文提出了一个层级池化的方法。在每一层,应用两个GNN,一个生成该层级的节点嵌入,一个将不同类别的节点聚类成不同的簇。这一层的输出即为下一层的输入。
1 问题与挑战
- 从节点嵌入到图嵌入的常用方法有:简单地汇总或平均最后一层中的所有节点嵌入,引入一个连接到图中所有节点的“虚拟节点”,或使用在集合上运行的深度学习体系结构聚合节点嵌入
- 问题:这些方法都是扁平(flat)的,即在图分类任务的时候,先为所有节点生成嵌入,然后将所有的节点一口气聚合为图嵌入。这种方法忽略了层级结构,但是在诸如有原子基团的分子等任务中,是有层级结构的。这种扁平的池化方法可能会损害模型性能
- 其他解决方法:将CNN架构应用于所有节点嵌入的拼接(如DGCNN),但这需要指定(或学习)节点上的规范顺序,这通常非常困难,相当于求解图同构
- 执行分层池化的问题:1)没有自然的网格结构;2)不同图的节点数和边数都不同
2 提出方法:DiffPool
使用分配矩阵的聚合方法
- 使用一个分配矩阵(assignment matrix)进行图的池化操作。公式(3)表示,下一层的特征矩阵是上一层的聚类;公式(4)表示,下一层的临界矩阵,是上一层的临界矩阵,根据聚类方式调整过来的,下一层临界矩阵的每一个元素的大小,都对应着不同簇之间连接的强弱
-
- A为临界矩阵,X为特征矩阵,Z为特征使用GNN矩阵聚合后的结果
标签:一层,嵌入,Graph,矩阵,Differentiable,Pooling,池化,聚类,节点 来源: https://blog.csdn.net/tagagi/article/details/121580318
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。