GithubHelp home page GithubHelp logo

faizanahemad / hybrid-weighted-embedding-recommender Goto Github PK

View Code? Open in Web Editor NEW
16.0 2.0 3.0 1.02 MB

A Hybrid Recommendation system which uses Content embeddings and augments them with collaborative features. Weighted Combination of embeddings enables solving cold start with fast training and serving

License: MIT License

Python 99.67% Shell 0.33%
recommender-system recommendation-system deep-learning tensorflow hybrid-recommender-system embeddings

hybrid-weighted-embedding-recommender's Introduction

Hybrid-Weighted-Embedding-Recommendation

A Hybrid Recommendation system which uses Content embeddings and augments them with collaborative features. Weighted Combination of embeddings enables solving cold start with fast training and serving

TODO:

  • Improve docs
  • Multi-item types
  • Users-Multiple_item_types-Other-things enabled graph
  • No users and items just unique str ids
  • de-couple affinity vectors from rating vectors
  • Proper example of how to build and test an external dataset with ML-100K
    • Example of using content data and not using it
  • Make system independent of content so recsys with no content can be used.
  • Make a section in readme of how to reproduce
  • From Factorization meets the neighborhood paper take section 6 - evaluation of a top-K recommender and implement its metric system
  • Priming of GCN vectors can be done by unbiased svd instead of word2vec
  • Positive, Negative and Anchor can be weighed separately
  • Validation module, try predicting link prediction accuracy by taking test links and mixing fake links in same proportion

TODO:

  • Paper: Figure out sections and relevant papers to take content arrangement hints.

  • Figure out latex template codes for relevant conferences.

    • AMLC
    • ICLR/AAAI/NIPS/ICML/IEEE/ACM kdd, sigkdd, recsys
  • ML-20M

  • ML-100K/ML-1M/ML-20M vanilla, feat, text-feat

  • Ablation Study

    • Resnet Arch vs Normal Arch
    • Text Features, other features, no features/ no content
    • No/Gaussian noise
    • Node2vec, triplet vectors input

Environment Setup

Add .condarc to your home dir with below contents

auto_update_conda: False
channels:
  - defaults
  - anaconda
  - conda-forge
always_yes: True
add_pip_as_python_dependency: True
use_pip: True
create_default_packages:
  - pip
  - ipython
  - jupyter
  - nb_conda
  - setuptools
  - wheel

conda update conda

conda create -n hybrid-recsys python=3.7.4

conda activate hybrid-recsys

Install Fasttext

wget https://github.com/facebookresearch/fastText/archive/v0.9.1.zip
unzip v0.9.1.zip
cd fastText-0.9.1 && make -j4 && pip install .

Install Tensorflow 2.0 from here

pip install --upgrade pip
pip install tensorflow

pip install -r requirements.txt

Experiments

  • Content Based
  • Content + Collaborative with extra features
  • Content + Collaborative with extra features with alpha tree

TODO

Innovation

  • Heterogenous Features via Deep Networks

  • Weighted Triplet Loss

  • Embedding Compression

    • We train in a higher Dimensional Space, After training we use autoencoders to reduce dimensionality.
    • Since our task involves cosine distance, after auto-enc step we do another step where we use triplet loss with Distances calculated from initial bigger embeddings. This is similar to TSNE.
    • the two steps can be combined into one encoder-decoder-triplet architecture where decoder loss and triplet loss are weighted and added.
  • Combine Collaborative and Content Based Approach by

    • building content embeddings first
    • enhancing them with collaborative relations
    • Balancing between them using a weighted scheme to solve cold start problem
  • Multiple hybrid embeddings for sellers at different life-cycle stages. Multiple alpha

References

Interesting Papers

Datasets and Downloads

Misc References

Triplet Loss

Dimensionality Reduction

Metrics

Trouble-Shooting

Tools

Code

hybrid-weighted-embedding-recommender's People

Contributors

dependabot[bot] avatar faizanahemad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hybrid-weighted-embedding-recommender's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.