Skip to main content

embedding-based item nearest neighborhoods extraction

Project description

DeepNeighbor


Logo

Embedding-based Retrieval for ANN Search and Recommendations!
View Demo · Report Bug · Request Feature

Python Versions PyPI Version license GitHub repo size Open Source? Yes!

Downloads GitHub Issues Maintenance Ask Me Anything ! made-with-python


DeepNeighbor is a High-level,Flexible and Extendible package for embedding-based information retrieval from user-item interaction logs. Just as the name suggested, 'deep' means deep learning models to get user/item embeddings, while 'neighbor' means approximate nearest neighbor search in the embedding space.
It mainly has two parts : Embed step and Search step by the following codes:

model = Embed(data_path); model.train(),which generates embeddings for users and items (Deep),
model.search(), which looks for Approximate nearest neighbor for seed user/item (Neighbor) .

Install

pip install deepneighbor

How To Use

from deepneighbor import Embed

model = Embed(data,model='gat')
model.train()
model.search(seed = 'Louis', k=10)

Input format

The input data for the Embed() should be a (*.csv or *.txt ) file path (e.g. '\data\data.csv')with two columns in order: 'user' and 'item'. For each user, the item are recommended to be ordered by time.

Models & parameters in Embed()

  • Word2Vec w2v
  • Factorization Machines fm
  • Deep Semantic Similarity Model
  • Siamese Network with triple loss
  • Deepwalk
  • Graph convolutional network
  • Neural Graph Collaborative Filtering algorithm ngcf
  • Matrix factorization mf
  • Graph attention network gat

Model Parameters

deepwalk

model = Embed(data, model = 'deepwalk')
model.train(window_size=5,
            workers=1,
            iter=1
            dimensions=128)
  • window_size Skip-gram window size.
  • workersUse these many worker threads to train the model (=faster training with multicore machines).
  • iter Number of iterations (epochs) over the corpus.
  • dimensions Dimensions for the node embeddings

graph attention network

model = Embed(data, model = 'gat')
model.train(window_size=5,
            learning_rate=0.01,
            epochs = 10,
            dimensions = 128,
            num_of_walks=80,
            beta=0.5,
            gamma=0.5,)
  • window_size Skip-gram window size.
  • learning_rate learning rate for optimizing graph attention network
  • epochs Number of gradient descent iterations.
  • dimensions Dimensions for the embeddings for each node (user/item)
  • num_of_walksNumber of random walks.
  • beta and gammaRegularization parameter.

How To Search

model.search(seed, k)

  • seed The Driver for the algorithms
  • k Number of Nearest Neighbors.

Examples

Open Colab to run the example with facebook data.

Contact

Please contact louiswang524@gmail.com for collaboration or providing feedbacks.

License

This project is under MIT License, please see here for details.

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

deepneighbor-0.3.1.tar.gz (11.7 kB view hashes)

Uploaded Source

Built Distribution

deepneighbor-0.3.1-py3-none-any.whl (14.9 kB view hashes)

Uploaded Python 3

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