PyNeuraLogic
pygod
PyNeuraLogic | pygod | |
---|---|---|
7 | 3 | |
267 | 1,211 | |
- | 2.0% | |
8.0 | 8.6 | |
6 days ago | 9 days ago | |
Python | Python | |
MIT License | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PyNeuraLogic
-
[P] PyNeuraLogic - a framework for writing differentiable logic programs
Hi, sure. With this framework, you can write and train deep learning models similarly to PyTorch or TensorFlow. Although the main aim of PyNeuraLogic is on deep relational learning and it uses custom declarative language (implemented in Python). Best fitting use cases are everything where you can utilize relations. One of those use-cases that we are promoting right now is on Graph Neural Networks (GNNs), where you have relations between nodes (such as social networks, molecules). You can then utilize those relations and do regular tasks on graphs, such as link prediction, graph classification, node classification, etc. GNNs quite nicely fit the framework and its language and can be expressed just in one line (as shown in the README). The concrete use-case of PyNeuraLogic on GNNs could then be a molecule classification (example). Other use-cases could be for NLP (we have todo to write an example for it) or knowledge base completion. You could also use it like a regular framework without utilizing relations, but in that case, it might be more efficient to go with PyTorch or TensorFlow.
- Show HN: Evaluate Deep Learning models directly in a database with PyNeuraLogic
-
Why Hypergraphs? (2013)
For an original proposal that do logic inference on Hypergraphs I am using NeuraLogic, through a Python frontend (https://github.com/LukasZahradnik/PyNeuraLogic)
I wonder if this is something the author would have enjoyed…
-
This Week in Python
PyNeuraLogic – PyNeuraLogic lets you use Python to create Differentiable Logic Programs
- GitHub - LukasZahradnik/PyNeuraLogic: PyNeuraLogic lets you use Python to create Differentiable Logic Programs
- Show HN: PyNeuraLogic: Python Differentiable Logic Programs
pygod
-
RAG Using Structured Data: Overview and Important Questions
Ok, using ChatGPT and Bard (the irony lol) I learned a bit more about GNNs:
GNNs are probabilistic and can be trained to learn representations in graph-structured data and handling complex relationships, while classical graph algorithms are specialized for specific graph analysis tasks and operate based on predefined rules/steps.
* Why is PyG it called "Geometric" and not "Topologic" ?
Properties like connectivity, neighborhoods, and even geodesic distances can all be considered topological features of a graph. These features remain unchanged under continuous deformations like stretching or bending, which is the defining characteristic of topological equivalence. In this sense, "PyTorch Topologic" might be a more accurate reflection of the library's focus on analyzing the intrinsic structure and connections within graphs.
However, the term "geometric" still has some merit in the context of PyG. While most GNN operations rely on topological principles, some do incorporate notions of Euclidean geometry, such as:
- Node embeddings: Many GNNs learn low-dimensional vectors for each node, which can be interpreted as points in a vector space, allowing geometric operations like distances and angles to be applied.
- Spectral GNNs: These models leverage the eigenvalues and eigenvectors of the graph Laplacian, which encodes information about the geometric structure and distances between nodes.
- Manifold learning: Certain types of graphs can be seen as low-dimensional representations of high-dimensional manifolds. Applying GNNs in this context involves learning geometric properties on the manifold itself.
Therefore, although topology plays a primary role in understanding and analyzing graphs, geometry can still be relevant in certain contexts and GNN operations.
* Real world applications:
- HuggingFace has a few models [0] around things like computational chemistry [1] or weather forecasting.
- PyGod [2] can be used for Outlier Detection (Anomaly Detection).
- Apparently ULTRA [3] can "infer" (in the knowledge graph sense), that Michael Jackson released some disco music :-p (see the paper).
- RGCN [4] can be used for knowledge graph link prediction (recovery of missing facts, i.e. subject-predicate-object triples) and entity classification (recovery of missing entity attributes).
- GreatX [5] tackles removing inherent noise, "Distribution Shift" and "Adversarial Attacks" (ex: noise purposely introduced to hide a node presence) from networks. Apparently this is a thing and the field is called "Graph Reliability" or "Reliable Deep Graph Learning". The author even has a bunch of "awesome" style lists of links! [6]
- Finally this repo has a nice explanation of how/why to run machine learning algorithms "outside of the DB":
"Pytorch Geometric (PyG) has a whole arsenal of neural network layers and techniques to approach machine learning on graphs (aka graph representation learning, graph machine learning, deep graph learning) and has been used in this repo [7] to learn link patterns, also known as link or edge predictions."
--
0: https://huggingface.co/models?pipeline_tag=graph-ml&sort=tre...
1: https://github.com/Microsoft/Graphormer
2: https://github.com/pygod-team/pygod
3: https://github.com/DeepGraphLearning/ULTRA
4: https://huggingface.co/riship-nv/RGCN
5: https://github.com/EdisonLeeeee/GreatX
6: https://edisonleeeee.github.io/projects.html
7: https://github.com/Orbifold/pyg-link-prediction
- GitHub - pygod-team/pygod: A Python Library for Graph Outlier Detection (Anomaly Detection)
- PyGOD: Library for graph outlier detection (anomaly detection)
What are some alternatives?
reloadium - Hot Reloading and Profiling for Python
pyod - A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection)
chemicalx - A PyTorch and TorchDrug based deep learning library for drug pair scoring. (KDD 2022)
anomaly-detection-resources - Anomaly detection related books, papers, videos, and toolboxes
hatch - Modern, extensible Python project management
kafkaml-anomaly-detection - Project for real-time anomaly detection using Kafka and python
pytorch_geometric - Graph Neural Network Library for PyTorch [Moved to: https://github.com/pyg-team/pytorch_geometric]
ADBench - Official Implement of "ADBench: Anomaly Detection Benchmark", NeurIPS 2022.
gradio - Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!
DGFraud - A Deep Graph-based Toolbox for Fraud Detection
typedb-ml - TypeDB-ML is the Machine Learning integrations library for TypeDB
TabFormer - Code & Data for "Tabular Transformers for Modeling Multivariate Time Series" (ICASSP, 2021)