All Projects → GemsLab → REGAL

GemsLab / REGAL

Licence: MIT license
Representation learning-based graph alignment based on implicit matrix factorization and structural embeddings

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to REGAL

FEATHER
The reference implementation of FEATHER from the CIKM '20 paper "Characteristic Functions on Graphs: Birds of a Feather, from Statistical Descriptors to Parametric Models".
Stars: ✭ 34 (-56.41%)
Mutual labels:  representation-learning, network-embedding, node-embedding
resolutions-2019
A list of data mining and machine learning papers that I implemented in 2019.
Stars: ✭ 19 (-75.64%)
Mutual labels:  network-embedding, node-embedding
RolX
An alternative implementation of Recursive Feature and Role Extraction (KDD11 & KDD12)
Stars: ✭ 52 (-33.33%)
Mutual labels:  matrix-factorization, node-embedding
FSCNMF
An implementation of "Fusing Structure and Content via Non-negative Matrix Factorization for Embedding Information Networks".
Stars: ✭ 16 (-79.49%)
Mutual labels:  network-embedding, node-embedding
Awesome Network Embedding
A curated list of network embedding techniques.
Stars: ✭ 2,379 (+2950%)
Mutual labels:  representation-learning, network-embedding
ethereum-privacy
Profiling and Deanonymizing Ethereum Users
Stars: ✭ 37 (-52.56%)
Mutual labels:  representation-learning, network-embedding
Awesome Graph Classification
A collection of important graph embedding, classification and representation learning papers with implementations.
Stars: ✭ 4,309 (+5424.36%)
Mutual labels:  network-embedding, node-embedding
M-NMF
An implementation of "Community Preserving Network Embedding" (AAAI 2017)
Stars: ✭ 119 (+52.56%)
Mutual labels:  matrix-factorization, representation-learning
Smore
SMORe: Modularize Graph Embedding for Recommendation
Stars: ✭ 307 (+293.59%)
Mutual labels:  matrix-factorization, representation-learning
LayoutGMN-pytorch
Pytorch implementation of LayoutGMN.
Stars: ✭ 30 (-61.54%)
Mutual labels:  graph-matching
causal-ml
Must-read papers and resources related to causal inference and machine (deep) learning
Stars: ✭ 387 (+396.15%)
Mutual labels:  representation-learning
keras-aquarium
a small collection of models implemented in keras, including matrix factorization(recommendation system), topic modeling, text classification, etc. Runs on tensorflow.
Stars: ✭ 14 (-82.05%)
Mutual labels:  matrix-factorization
ecs
Build your own Game-Engine based on the Entity Component System concept in Golang.
Stars: ✭ 68 (-12.82%)
Mutual labels:  scalability
OpenANE
OpenANE: the first Open source framework specialized in Attributed Network Embedding. The related paper was accepted by Neurocomputing. https://doi.org/10.1016/j.neucom.2020.05.080
Stars: ✭ 39 (-50%)
Mutual labels:  network-embedding
hazelcast-csharp-client
Hazelcast .NET Client
Stars: ✭ 98 (+25.64%)
Mutual labels:  scalability
async-container
Scalable multi-thread multi-process containers for Ruby.
Stars: ✭ 58 (-25.64%)
Mutual labels:  scalability
Learning-From-Rules
Implementation of experiments in paper "Learning from Rules Generalizing Labeled Exemplars" to appear in ICLR2020 (https://openreview.net/forum?id=SkeuexBtDr)
Stars: ✭ 46 (-41.03%)
Mutual labels:  representation-learning
FUSION
PyTorch code for NeurIPSW 2020 paper (4th Workshop on Meta-Learning) "Few-Shot Unsupervised Continual Learning through Meta-Examples"
Stars: ✭ 18 (-76.92%)
Mutual labels:  representation-learning
nebula
A distributed, fast open-source graph database featuring horizontal scalability and high availability
Stars: ✭ 8,196 (+10407.69%)
Mutual labels:  scalability
MTL-AQA
What and How Well You Performed? A Multitask Learning Approach to Action Quality Assessment [CVPR 2019]
Stars: ✭ 38 (-51.28%)
Mutual labels:  representation-learning

This repository contains a Python implementation of methods presented in the following paper:

Mark Heimann, Haoming Shen, Tara Safavi, and Danai Koutra. REGAL: Representation Learning-based Graph Alignment. International Conference on Information and Knowledge Management (CIKM), 2018.

Paper: https://gemslab.github.io/papers/heimann-2018-regal.pdf

Please consider citing this paper if you find the code helpful.

@inproceedings{DBLP:conf/cikm/HeimannSSK18,
  author    = {Mark Heimann and
               Haoming Shen and
               Tara Safavi and
               Danai Koutra},
  title     = {{REGAL:} Representation Learning-based Graph Alignment},
  booktitle = {Proceedings of the 27th {ACM} International Conference on Information
               and Knowledge Management, {CIKM} 2018, Torino, Italy, October 22-26,
               2018},
  pages     = {117--126},
  publisher = {{ACM}},
  year      = {2018},
}

Included is code for REGAL, our node embedding framework for network alignment, and its component node embedding method xNetMF.
This is only a reference implementation; without doubt it can be much improved, but we hope it is helpful!

DEPENDENCIES

numpy, scipy, networkx (all may be installed with pip) Tested with Python 3.8.5 and Python 2.7.16

EXAMPLE

  • Align (unattributed): python regal.py
  • Align (with attributes): python regal.py --attributes data/attributes/attr1-2vals-prob0.000000
  • Embedding only: python xnetmf.py
  • (example runs on data/arenas990-1 dataset, one of the trials of the Arenas email network with 1% noise)

INSTRUCTIONS - xNetMF embeddings only

  • Import config (see config for details about the options on the following objects)
  • Initialize a Graph object with adjacency matrix and any other optional information (e.g. node attributes)
  • Initialize a RepMethod object, with whatever hyperparameter settings you wish to use (defaults are preset)
  • Call get_representations() in xnetmf.py with these two objects as arguments

INSTRUCTIONS - REGAL alignments from xNetMF embeddings

  • Combine two graphs with adjacency matrices A1, A2, into combined matrix: [A1 0; 0 A2]
  • Save this graph as an edgelist file (recommended: NetworkX write_edgelist() method) as DATA_combined_edges.txt (the "combined_edges.txt" part is optional, but regal.py will look for what is before the first underscore)
  • Save a dictionary of the true alignments {node in graph 1 : counterpart in graph 2} as a pickle in DATA_edges-mapping-permutation.txt in the same folder (regal.py will look for this file) (note: the formulation in the paper allows graphs of different sizes to be aligned, but this code is written for graphs of the same size. It should be possible to modify the scoring in alignments.py to handle this, if desired)
  • Pass the path to the DATA_combined_edges.txt file as a command line argument to regal.py with the --input flag
  • Specify a file to save embeddings to with an --output flag
  • OPTIONAL (for REGAL or xNetMF): save attributes for each node as (n_nodes x n_attributes) .npy matrix
  • See parse_args() regal.py for more details
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].