可以在 Keras 中训练 Hypergraphs 吗?

数据挖掘 Python 喀拉斯 图表
2022-02-03 18:48:03

我知道香草Keras不支持图形操作。

例如,基于 Keras API的Spektral库提供了一些层来处理简单的图形。但是,它不支持具有多节点连接的图(即超图)。

有没有办法在超图输入数据上训练深度学习模型?

1个回答

据我所知,超图的深度学习仍然是一个相对较新的领域,所以我认为超图没有现成的解决方案。我确实找到了这个 repo,它在 keras 中实现了一些模型,以配合最近的一篇关于超图学习的论文,但它几乎不是一个库。

您还可以查看这篇论文,其中引用了两种将超图转换为图的技术:

值得注意的是,以前的方法 [用于超图学习] 通常将超边分解为成对关系,其中分解方法可以分为两类:显式和隐式。例如,给定一个超边 (v_1,v_2,v_3),显式方法会将其直接分解为三个边,(v1,v2),(v2,v3),(v1,v3),而隐式方法会添加一个隐藏节点e表示分解前的超边,即(v1,e),(v2,e),(v3,e).

如果您可以这样做,那么除了 Spektral 之外还有一些选择:

Deep Graph Library提供了与 Tensorflow.keras 兼容的 API,尽管他们的文档似乎更倾向于 PyTorch。

还有Graph Nets,它建立在 Tensorflow.keras 之上,尽管目前它还很简单。