All Projects → tonyduan → matrix-completion

tonyduan / matrix-completion

Licence: EPL-1.0 license
Lightweight Python library for in-memory matrix completion.

Programming Languages

python
139335 projects - #7 most used programming language
perl
6916 projects
shell
77523 projects

Projects that are alternatives of or similar to matrix-completion

Librec
LibRec: A Leading Java Library for Recommender Systems, see
Stars: ✭ 3,045 (+3139.36%)
Mutual labels:  collaborative-filtering, matrix-factorization
Rsparse
Fast and accurate machine learning on sparse matrices - matrix factorizations, regression, classification, top-N recommendations.
Stars: ✭ 145 (+54.26%)
Mutual labels:  collaborative-filtering, matrix-factorization
Daisyrec
A developing recommender system in pytorch. Algorithm: KNN, LFM, SLIM, NeuMF, FM, DeepFM, VAE and so on, which aims to fair comparison for recommender system benchmarks
Stars: ✭ 280 (+197.87%)
Mutual labels:  collaborative-filtering, matrix-factorization
Implicit
Fast Python Collaborative Filtering for Implicit Feedback Datasets
Stars: ✭ 2,569 (+2632.98%)
Mutual labels:  collaborative-filtering, matrix-factorization
Recoder
Large scale training of factorization models for Collaborative Filtering with PyTorch
Stars: ✭ 46 (-51.06%)
Mutual labels:  collaborative-filtering, matrix-factorization
GCMC
Code for Graph Convolutional Matrix Factorization for Bipartite Edge Prediction
Stars: ✭ 48 (-48.94%)
Mutual labels:  collaborative-filtering, matrix-completion
Recsys2019 deeplearning evaluation
This is the repository of our article published in RecSys 2019 "Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches" and of several follow-up studies.
Stars: ✭ 780 (+729.79%)
Mutual labels:  collaborative-filtering, matrix-factorization
recommender system with Python
recommender system tutorial with Python
Stars: ✭ 106 (+12.77%)
Mutual labels:  collaborative-filtering, matrix-factorization
Recotour
A tour through recommendation algorithms in python [IN PROGRESS]
Stars: ✭ 140 (+48.94%)
Mutual labels:  collaborative-filtering, matrix-factorization
Deeprec
An Open-source Toolkit for Deep Learning based Recommendation with Tensorflow.
Stars: ✭ 954 (+914.89%)
Mutual labels:  collaborative-filtering, matrix-factorization
Metarec
PyTorch Implementations For A Series Of Deep Learning-Based Recommendation Models (IN PROGRESS)
Stars: ✭ 120 (+27.66%)
Mutual labels:  collaborative-filtering, matrix-factorization
Polara
Recommender system and evaluation framework for top-n recommendations tasks that respects polarity of feedbacks. Fast, flexible and easy to use. Written in python, boosted by scientific python stack.
Stars: ✭ 205 (+118.09%)
Mutual labels:  collaborative-filtering, matrix-factorization
Awesome-Machine-Learning-Papers
📖Notes and remarks on Machine Learning related papers
Stars: ✭ 35 (-62.77%)
Mutual labels:  collaborative-filtering, matrix-factorization
Neural Collaborative Filtering
pytorch version of neural collaborative filtering
Stars: ✭ 263 (+179.79%)
Mutual labels:  collaborative-filtering, matrix-factorization
Recommendation-System-Baseline
Some common recommendation system baseline, with description and link.
Stars: ✭ 34 (-63.83%)
Mutual labels:  collaborative-filtering, matrix-factorization
Cornac
A Comparative Framework for Multimodal Recommender Systems
Stars: ✭ 308 (+227.66%)
Mutual labels:  collaborative-filtering, matrix-factorization
Quick-Data-Science-Experiments-2017
Quick-Data-Science-Experiments
Stars: ✭ 19 (-79.79%)
Mutual labels:  collaborative-filtering, matrix-factorization
Recommendation.jl
Building recommender systems in Julia
Stars: ✭ 42 (-55.32%)
Mutual labels:  collaborative-filtering, matrix-factorization
Mrsr
MRSR - Matlab Recommender Systems Research is a software framework for evaluating collaborative filtering recommender systems in Matlab.
Stars: ✭ 13 (-86.17%)
Mutual labels:  collaborative-filtering, matrix-factorization
Elliot
Comprehensive and Rigorous Framework for Reproducible Recommender Systems Evaluation
Stars: ✭ 49 (-47.87%)
Mutual labels:  collaborative-filtering, matrix-factorization

Lightweight Python library for in-memory matrix completion

Last update: June 2020, v0.0.2.


Python code for a few approaches at low-dimensional matrix completion.

These methods operate in-memory and do not scale beyond size 1000 x 1000 or so.

Installation

pip3 install matrix-completion

Methods

  1. Nuclear norm minimization (very slow) [1]
  2. Singular value thresholding [2]
  3. Alternating least squares [3,4]
  4. Biased alternating least squares [5]

Usage

import numpy as np
from matrix_completion import svt_solve, calc_unobserved_rmse

U = np.random.randn(20, 5)
V = np.random.randn(15, 5)
R = np.random.randn(20, 15) + np.dot(U, V.T)

mask = np.round(np.random.rand(20, 15))
R_hat = svt_solve(R, mask)

print("RMSE:", calc_unobserved_rmse(U, V, R_hat, mask))

Note that here, the mask is a matrix with entries either 1 (indicating observed) or 0 (indicating missing).

See the examples/ directory for more details.

References

[1] Emmanuel Candès and Benjamin Recht. 2012. Exact matrix completion via convex optimization. Commun. ACM 55, 6 (June 2012), 111-119. DOI: https://doi.org/10.1145/2184319.2184343

[2] Jian-Feng Cai, Emmanuel J. Candès, and Zuowei Shen. 2010. A Singular Value Thresholding Algorithm for Matrix Completion. SIAM J. on Optimization 20, 4 (March 2010), 1956-1982. DOI=http://dx.doi.org/10.1137/080738970

[3] Yifan Hu, Yehuda Koren, and Chris Volinsky. 2008. Collaborative Filtering for Implicit Feedback Datasets. In Proceedings of the 2008 Eighth IEEE International Conference on Data Mining (ICDM '08). IEEE Computer Society, Washington, DC, USA, 263-272. DOI=http://dx.doi.org/10.1109/ICDM.2008.22

[4] Ruslan Salakhutdinov and Andriy Mnih. 2007. Probabilistic Matrix Factorization. In Proceedings of the 20th International Conference on Neural Information Processing Systems (NIPS'07), J. C. Platt, D. Koller, Y. Singer, and S. T. Roweis (Eds.). Curran Associates Inc., USA, 1257-1264.

[5] Paterek, Arkadiusz. “Improving regularized singular value decomposition for collaborative filtering.” (2007).

Citation

@software{tonyduan_matrix_completion_github,
	title = {Lightweight Python library for in-memory matrix completion.},
	copyright = {EPL-1.0 License},
	url = {https://github.com/tonyduan/matrix-completion},
	author = {Duan, Tony},
	year = {2020},
	version = {0.0.2},
}

License

This code is available under the Eclipse Public License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].