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, < 3.11
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 add the Python versions in the tox.ini
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.6.tar.gz
(8.7 kB
view hashes)
Built Distribution
eals-0.9.6-py3-none-any.whl
(8.5 kB
view hashes)