使用DGL进行论文研究
图神经网络及其变体
图卷积网络 (GCN) [研究论文] [教程] [Pytorch 代码] [MXNet 代码]:
图注意力网络 (GAT) [研究论文] [教程] [Pytorch 代码] [MXNet 代码]: GAT 通过在节点的邻域中部署多头注意力机制来扩展 GCN 的功能。这大大增强了模型的容量和表达能力。
关系图卷积网络(Relational-GCN) [研究论文] [教程] [Pytorch代码] [MXNet代码]: 关系图卷积网络允许图中的两个实体之间存在多条边。具有不同关系的边会被以不同的方式编码。
线图神经网络(LGNN) [研究论文] [教程] [Pytorch代码]: 该网络通过检查图结构来专注于社区检测。它使用原始图及其线图伴侣的表示。除了展示算法如何利用多个图之外,此实现还展示了如何明智地混合简单的张量操作和稀疏矩阵张量操作,以及使用DGL进行消息传递。
批量处理多个小图
Tree-LSTM [paper] [tutorial] [PyTorch code]: 句子具有固有的结构,这些结构在将其简单地视为序列时被丢弃。Tree-LSTM 是一个强大的模型,它通过使用先前的句法结构(如解析树)来学习表示。训练中的挑战是,简单地通过将句子填充到最大长度不再有效。不同句子的树具有不同的大小和拓扑结构。DGL 通过将树添加到一个更大的容器图中,然后使用消息传递来探索最大并行性来解决这个问题。批处理是实现这一点的关键 API。
生成模型
DGMG [paper] [tutorial] [PyTorch code]: 该模型属于处理结构生成的家族。图的深度生成模型(DGMG)使用状态机方法。 这也是非常具有挑战性的,因为与Tree-LSTM不同,每个样本都有一个动态的、概率驱动的结构,这在训练之前是不可用的。您可以逐步利用图内和图间的并行性来稳步提高性能。
从图的角度重新审视经典模型
Capsule [paper] [tutorial] [PyTorch code]: 这个新的计算机视觉模型有两个关键思想。首先,增强特征表示,采用向量形式(而不是标量)称为capsule。其次,用动态路由替代最大池化。动态路由的思想是通过非参数化的消息传递将较低层次的capsule集成到一个或多个较高层次的capsule中。一个教程展示了如何使用DGL API实现后者。
Transformer [paper] [tutorial] [PyTorch code] 和 Universal Transformer [paper] [tutorial] [PyTorch code]: 这两个模型用多层多头注意力机制取代了循环神经网络(RNNs),以编码和发现句子中标记之间的结构。这些注意力机制被类似地表述为带有消息传递的图操作。