Skip to main content

Fast implementation of node2vec

Project description

Downloads PyPI version DOI

fastnode2vec

Really fast implementation of node2vec based on numba and gensim. Memory usage is linear and scales with your data unlike most other implementations. The algorithm is described in this blog post.

API

Node2Vec inherits from gensim's Word2Vec, all its APi is valid.

from fastnode2vec import Graph, Node2Vec

graph = Graph([("a", "b"), ("b", "c"), ("c", "a"), ("a", "d")],
              directed=False, weighted=False)

# or
graph = Graph([("a", "b", 1), ("b", "c", 2), ("c", "a", 3), ("a", "d", 4)],
              directed=False, weighted=True)

n2v = Node2Vec(graph, dim=10, walk_length=100, context=10, p=2.0, q=0.5, workers=2)

n2v.train(epochs=100)

print(n2v.wv["a"])

CLI

Usage: fastnode2vec [OPTIONS] FILENAME

Options:
  --directed
  --weighted
  --dim INTEGER          [required]
  --p FLOAT
  --q FLOAT
  --walk-length INTEGER  [required]
  --context INTEGER
  --epochs INTEGER       [required]
  --workers INTEGER
  --batch-walks INTEGER
  --debug PATH
  --output PATH
  --help                 Show this message and exit.

Compute embeddings of the Gnutella peer-to-peer network:

wget https://snap.stanford.edu/data/p2p-Gnutella08.txt.gz
fastnode2vec p2p-Gnutella08.txt.gz --dim 16 --walk-length 100 --epochs 10 --workers 2

Load embeddings produced by the CLI

Just use the Word2Vec API.

from gensim.models import KeyedVectors

wv = KeyedVectors.load("p2p-Gnutella08.txt.gz.wv", mmap='r')

Citing

If you have used this software in a scientific publication, please cite it using the following BibLaTeX code:

@software{fastnode2vec,
  author       = {Louis Abraham},
  title        = {fastnode2vec},
  year         = 2020,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.3902632},
  url          = {https://github.com/louisabraham/fastnode2vec}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastnode2vec-0.0.7.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

fastnode2vec-0.0.7-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file fastnode2vec-0.0.7.tar.gz.

File metadata

  • Download URL: fastnode2vec-0.0.7.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.8

File hashes

Hashes for fastnode2vec-0.0.7.tar.gz
Algorithm Hash digest
SHA256 d34deb7a54cd7e654f04f318826b84fad6f982be2965d2adb19cd3230aa9e2b0
MD5 708fcbe25189cca11381319af139be55
BLAKE2b-256 f4e8c508246e1982355366d2d321627ad3b4b8861cb249c99fd1b4b4f48f9d2b

See more details on using hashes here.

File details

Details for the file fastnode2vec-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for fastnode2vec-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 01a53d87b2515c89459f783cbb949ac9f7a58d85f065d6825556d2b4e1127439
MD5 add00c4e4098616c978c2fb8aa0ab73b
BLAKE2b-256 059734e0970b7279064cfc18c38cc1ebfac05767699e2f5e8b1e62f65d29d990

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page