• Stars
    star
    160
  • Rank 234,703 (Top 5 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created about 8 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Tensorflow implementation of Collaborative Metric Learning (CML)

CollMetric

A Tensorflow implementation of Collaborative Metric Learning (CML):

Cheng-Kang Hsieh, Longqi Yang, Yin Cui, Tsung-Yi Lin, Serge Belongie, and Deborah Estrin. 2017. Collaborative Metric Learning. In Proceedings of the 26th International Conference on World Wide Web (WWW '17) (perm_link, pdf)

** Note: the original Theano implementation is deprecated and is kept in the old_experiment_code branch

Features

  • Produces embedding that accurately captures the user-item, user-user, and item-item similarity.
  • Allows the exploitation of item features (e.g. tags, text, image features).
  • Outperforms state-of-the-art recommendation algorithms on a wide range of tasks
  • Enjoys an extremely efficient Top-K search using Fast KNN algorithms.

Utility Features

  • Parallel negative sampler that can sample the user-item pairs when the model is being trained on GPU
  • Fast recall evaluation based on Tensorflow

Requirements

  • python3
  • tensorflow
  • scipy
  • scikit-learn

Usage

# install requirements
pip3 install -r requirements.txt
# run demo tensorflow model
python3 CML.py

Known Issue

  • AdaGrad does not seem to work on GPU. Try using AdamOptimizer instead
  • the WithFeature version does not seems to perform as well as the Theano version. It is being investigated. (The performance is actually slightly better (with AdamOptimizer) than the number reported in the paper now!)

Visuals

An illustration of embbeding learning procedue of CML

CML

Flickr photo recommendation embedding produced by CML (compared to original ImageNet features)

Embedding

TODO

  • Model Comparison.
  • TensorBoard visualization