使用图神经网络(GNN)寻找最短路径
在本文中,我们将展示具有关注读写功能的图形网络如何执行最短路径计算。经过最少的培训后,该网络可以100%的准确率执行此任务。
引言
在Octavian,我们相信图是表示复杂知识的强大媒介(例如BenevolentAI使用它们来代表药物研究和知识)。
神经网络是一种创造人类无法表达的函数的方法。人们使用大型数据集对网络进行训练。对于神经网络可以处理的模型,我门使用示例的方法训练神经网络拟合输入和输出的关系.
我门需要能够从图结构中进行学习的神经网络,这些神经网络学习有效的归纳偏置用以可靠的学习处理图中的函数.在这个基础上,我门建立了一个强大的神经图系统.
在这里我门提出了一个’面向读写的图网络’,一个可以有效处理最短路径的简单的网络.它是如何组合不同神经网络组件以使系统易于学习经典图算法的一个例子。
这个网络本身是一个新的运算系统,但更重要的是,网络是进一步研究神经图计算的基础。
代码在这里 https://github.com/Octavian-ai/shortest-path
问题陈述
考虑一个问题“站A和B之间最短路径的长度是多少?
如果考虑一个图中任意两点的最短路径呢?
我们想要通过训练神经网络返回整数的答案.
相关工作
机器学习图表是一个年轻但不断发展的领域。
详细的请参见综述文章Graph Neural Networks: A Review of Methods and Applications or our introduction
用于计算最短路径的经典算法是A-star,Dijkstra和Bellman Ford算法。
这些方法有效并且可以广泛的被应用。 Dijkstra与我们的用例最相似,即在没有路径成本启发的情况下找到两个特定节点之间的最短路径。
最早的基于神经的最短路径解决方案的工作是通过通信和分组路由来驱动的,这样的近似算法比经典算法速度更快。 这些操作与当今的神经网络完全不同,它们使用迭代反向传播来解决特定图形上的最短路径。 该领域的工作示例包括 Neural networks for routing communication traffic (1988), A Neural Network for Shortest Path Computation (2000) 和 Neural Network for Optimization of Routing in Communication Networks (2006).
本工作建立了一个可以在未知结构图中工作的模型,与前文提到的只能解决某个图中问题的方法形成鲜明的对比.另外,我门寻求为从输入输出对中寻找解决复杂图问题运算提供基础.
最近一个突破性的解决方法在 Differentiable neural computers, 它通过将图形作为连接元组序列并使用读写存储器学习逐步算法来实现这一点。训练的过程以一个学习计划的形式提供,逐步的提高图和问题的规模.
相比之下,我们的解决方案在更大的路径(长度9对4)上表现更好(100%对55.3%),不需要计划学习,不需要训练LSTM控制器,参数更少,网络更简单组件更少。虽然我们还没有找到任何其他公布的解决方案来解决这个问题,但是有很多类似技术被用于不同的问题。几个相关的例子:
• Commonsense Knowledge Aware Conversation Generation with Graph Attention 使用注意力来读出知识图
• Deeply learning molecular structure-property relationships using attention- and gate-augmented gra