eALS - Element-wise Alternating Least Squares
Project description
eALS - Element-wise Alternating Least Squares
A Python implementation of the element-wise alternating least squares (eALS) for fast online matrix factorization proposed by arXiv:1708.05024.
Prerequisites
- Python >= 3.8
Installation
pip install eals
Usage
import numpy as np
import scipy.sparse as sps
from eals import ElementwiseAlternatingLeastSquares, load_model
# batch training
user_items = sps.csr_matrix([[1, 2, 0, 0], [0, 3, 1, 0], [0, 4, 0, 4]], dtype=np.float32)
model = ElementwiseAlternatingLeastSquares(factors=2)
model.fit(user_items)
# learned latent vectors
model.user_factors
model.item_factors
# online training for new data (user_id, item_id)
model.update_model(1, 0)
# rating matrix and latent vectors will be expanded for a new user or item
model.update_model(0, 5)
# current rating matrix
model.user_items
# save and load the model
model.save("model.joblib")
model = load_model("model.joblib")
See the examples directory for complete examples.
Development
Setup development environment
git clone https://github.com/newspicks/eals.git
cd eals
poetry run pip install -U pip
poetry install
Tests
poetry run pytest
Set USE_NUMBA=0
for faster testing without numba JIT overhead.
USE_NUMBA=0 poetry run pytest
To run tests against all supported Python versions, use tox.
You may need to put the Python version numbers in the .python-version
file.
poetry run tox
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
eals-0.9.3.tar.gz
(9.0 kB
view hashes)
Built Distribution
eals-0.9.3-py3-none-any.whl
(8.8 kB
view hashes)