https://github.com/astrazeneca/ness

Official implementation of "NESS: Node Embeddings from Static Subgraphs"

https://github.com/astrazeneca/ness

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary

Keywords

contrastive-learning graph graph-auto-encoder link-prediction node-embedding self-supervised-learning subgraph
Last synced: 6 months ago · JSON representation

Repository

Official implementation of "NESS: Node Embeddings from Static Subgraphs"

Basic Info
  • Host: GitHub
  • Owner: AstraZeneca
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 762 KB
Statistics
  • Stars: 19
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Topics
contrastive-learning graph graph-auto-encoder link-prediction node-embedding self-supervised-learning subgraph
Created almost 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.md

NESS: Node Embeddings from Static Subgraphs

Author: Talip Ucar (ucabtuc@gmail.com)

Paper: NESS: Node Embeddings from Static Subgraphs

PWC PWC PWC

Table of Contents:

  1. Model
  2. Datasets
  3. Environment
  4. Configuration
  5. Training
  6. Results
  7. Citing this repo

Model

NESS

Supports the following encoder types and their variational counterparts:

  • GNAE, VGNAE
  • GCN, VGCN
  • GAT
  • Linear, VariationalLinear
  • ARGA, ARGVA

Datasets

Following datasets are supported:

  1. cora
  2. citeseer
  3. pubmed
  4. texas
  5. wisconsin
  6. cornell
  7. charmeleon

Note: Config file for Cora is provided. For others, you can copy Cora config file and change its name to the dataset of interest.

Environment

It is tested with Python 3.9. You can set up the environment by following steps:

pip install pipenv # To install pipenv if you don't have it already pipenv install --skip-lock # To install required packages. pipenv shell # To activate virtual env

Configuration

A yaml config file for each dataset (e.g., cora.yaml) must be saved under the "./config/" directory. The name of config file needs to match the name of the dataset.

Training

You can train the model using any supported dataset. python train.py -d cora

Results

Results at the end of training is saved under "./results" directory. Results directory structure:

results
    |
  dataset name  (e.g. cora)      
        |-evaluation 
            |-reconstructions (not used)
            |-clusters (not used)
        |-training
            |-model  (where the models are saved)
            |-plots  (where the plots are saved as png files)
            |-loss   (where the summary of metrics is saved as csv file)

Citing this repo

If you use this work in your own studies, and work, you can cite it by using the following:

@Misc{talip_ucar_2023_NESS, author = {Talip Ucar}, title = {{Pytorch implementation of "NESS: Node Embeddings from Static Subgraphs"}}, howpublished = {\url{https://github.com/AstraZeneca/NESS}}, month = May, year = {since 2023} }

Owner

  • Name: AstraZeneca
  • Login: AstraZeneca
  • Kind: organization
  • Location: Global

Data and AI: Unlocking new science insights

GitHub Events

Total
  • Watch event: 6
Last Year
  • Watch event: 6

Dependencies

requirements.txt pypi
  • Cython ==0.29.32
  • Deprecated ==1.2.13
  • Flask ==2.2.2
  • GPUtil ==1.4.0
  • HeapDict ==1.0.1
  • Pillow ==9.2.0
  • PyGSP ==0.5.1
  • PySocks ==1.7.1
  • Pygments ==2.14.0
  • Werkzeug ==2.2.2
  • aiosignal ==1.3.1
  • anndata ==0.8.0
  • arboreto ==0.1.6
  • attrs ==22.1.0
  • autopage ==0.5.1
  • bio ==1.5.6
  • biopython ==1.81
  • biothings-client ==0.2.6
  • biotite ==0.37.0
  • black ==22.3.0
  • bokeh ==2.4.3
  • cdt ==0.6.0
  • certifi ==2022.6.15
  • cfgv ==3.3.1
  • charset-normalizer ==2.1.0
  • class-resolver ==0.3.10
  • click ==8.0.4
  • click-default-group ==1.2.2
  • cliff ==3.10.1
  • cloudpickle ==2.1.0
  • cmaes ==0.8.2
  • cmake ==3.24.0
  • cmd2 ==2.4.2
  • colorlog ==6.6.0
  • conditional-independence ==0.1a6
  • cycler ==0.11.0
  • dask ==2023.3.1
  • databricks-cli ==0.17.1
  • dataclasses ==0.6
  • dataclasses-json ==0.5.7
  • datatable ==1.0.0
  • decorator ==5.1.1
  • distlib ==0.3.6
  • distributed ==2023.3.1
  • docdata ==0.0.3
  • docker ==5.0.3
  • et-xmlfile ==1.1.0
  • filelock ==3.8.0
  • fonttools ==4.34.4
  • frozendict ==2.3.6
  • frozenlist ==1.3.3
  • fsspec ==2023.3.0
  • future ==0.18.3
  • gdown ==4.6.6
  • gies ==0.0.1
  • gprofiler-official ==1.0.0
  • graphical-model-learning ==0.1a8
  • graphical-models ==0.1a19
  • graphtools ==1.5.3
  • graphviz ==0.20.1
  • grpcio ==1.50.0
  • gunicorn ==20.1.0
  • h5py ==3.8.0
  • identify ==2.5.21
  • idna ==3.3
  • igraph ==0.10.4
  • ilock ==1.0.3
  • ipdb ==0.13.13
  • isort ==5.10.1
  • itsdangerous ==2.1.2
  • joblib ==1.1.0
  • jsonschema ==4.17.0
  • kiwisolver ==1.4.4
  • lazypredict ==0.2.12
  • lightgbm ==3.3.3
  • littleballoffur ==2.1.12
  • littleutils ==0.2.2
  • llvmlite ==0.39.1
  • locket ==1.0.0
  • lz4 ==4.3.2
  • magic-impute ==3.0.0
  • marshmallow ==3.17.0
  • marshmallow-enum ==1.5.1
  • matplotlib ==3.5.2
  • more-click ==0.1.1
  • more-itertools ==8.14.0
  • msgpack ==1.0.4
  • mygene ==3.2.2
  • mypy-extensions ==0.4.3
  • natsort ==8.3.1
  • networkit ==7.1
  • networkx ==2.8.5
  • nodeenv ==1.7.0
  • numba ==0.56.4
  • numexpr ==2.8.4
  • numpy ==1.23.1
  • openpyxl ==3.1.2
  • optuna ==2.10.1
  • outdated ==0.2.2
  • packaging ==21.3
  • pandas ==1.3.5
  • partd ==1.3.0
  • patsy ==0.5.3
  • pbr ==5.9.0
  • pexpect ==4.8.0
  • pgmpy ==0.1.21
  • platformdirs ==2.5.4
  • plotly ==5.12.0
  • pooch ==1.7.0
  • portalocker ==2.7.0
  • pre-commit ==2.19.0
  • pre-commit-hooks ==4.2.0
  • prettytable ==3.3.0
  • progressbar2 ==4.2.0
  • prometheus-flask-exporter ==0.20.3
  • protobuf ==3.20.1
  • psutil ==5.9.4
  • ptyprocess ==0.7.0
  • pyarrow ==11.0.0
  • pydot ==1.4.2
  • pygam ==0.8.0
  • pykeen ==1.9.0
  • pynndescent ==0.5.8
  • pyparsing ==3.0.9
  • pyperclip ==1.8.2
  • pyrsistent ==0.19.2
  • pystow ==0.4.6
  • python-igraph ==0.10.4
  • python-louvain ==0.16
  • python-utils ==3.5.2
  • pytz ==2022.1
  • querystring-parser ==1.2.4
  • rdkit-pypi ==2022.3.4
  • requests ==2.28.1
  • rexmex ==0.1.0
  • scanpy ==1.9.3
  • scikit-learn ==1.1.2
  • scikit-multilearn ==0.2.0
  • scipy ==1.9.0
  • scprep ==1.2.2
  • seaborn ==0.11.2
  • session-info ==1.0.0
  • six ==1.16.0
  • sklearn ==0.0
  • skorch ==0.12.0
  • skrebate ==0.62
  • slingpy ==0.2.12
  • sortedcontainers ==2.4.0
  • sqlparse ==0.4.2
  • statsmodels ==0.13.5
  • stdlib-list ==0.8.0
  • stevedore ==4.0.0
  • tabulate ==0.8.10
  • tasklogger ==1.2.0
  • tblib ==1.7.0
  • texttable ==1.6.4
  • threadpoolctl ==3.1.0
  • tokenizers ==0.13.2
  • toml ==0.10.2
  • toolz ==0.12.0
  • torch ==1.11.0
  • torch-cluster ==1.6.0
  • torch-geometric ==2.0.4
  • torch-max-mem ==0.0.2
  • torch-ppr ==0.0.8
  • torch-scatter ==2.0.9
  • torch-sparse ==0.6.14
  • torchaudio ==0.11.0
  • torchvision ==0.12.0
  • tqdm ==4.64.0
  • typing ==3.7.4.3
  • typing-inspect ==0.7.1
  • typing_extensions ==4.3.0
  • urllib3 ==1.26.11
  • virtualenv ==20.16.7
  • wcwidth ==0.2.5
  • wrapt ==1.15.0
  • xxhash ==3.2.0
  • zict ==2.2.0
  • zipp ==3.8.1