LukasZahradnik/PyNeuraLogic
PyNeuraLogic lets you use Python to create Differentiable Logic Programs
解决的问题
PyNeuraLogic 通过允许用户使用可微逻辑程序定义模型,解决了标准图神经网络 (GNN) 的局限性。这使得创建高度表达的关系学习模型成为可能,这些模型可以处理超图、嵌套图和关系数据库等复杂结构,而这些结构在传统的黑盒 GNN 框架中通常难以表示。
工作原理
它使用声明式逻辑编程范式,用户可以定义逻辑变量和关系。通过 NeuraLogic 后端,这些逻辑程序的推理过程变得可微,使其等同于深度学习中的前向传播。这使得系统可以学习与规则相关的数值参数(权重)。后端引擎会自动创建底层的可微计算图,无需手动进行张量对齐。
适用对象
从事关系机器学习、GNN 和神经符号集成(neural-symbolic integration)的研究人员和开发人员,他们需要比标准 GNN 框架提供更高的表达能力。
亮点
- 可微逻辑程序:编写可作为神经网络层运行的逻辑规则。
- 超越 GNN:支持超图、关系数据库和复杂的关系模式匹配。
- 高性能:基准测试表明,在分子学习等某些应用中,它可能比流行的 GNN 框架更快。
- 预定义模块:包括对 GCNConv, SAGEConv, GINConv, RGCNConv, Transformers, LSTMs 和 GRUs 的内置支持。