lenskit.algorithms.als#
LensKit ALS implementations.
- class lenskit.algorithms.als.BiasedMF(features, *, epochs=10, reg=0.1, damping=5, bias=True, rng_spec=None, save_user_features=True)#
Bases:
ALSBase
Biased matrix factorization trained with alternating least squares [ZWSP08]. This is a prediction-oriented algorithm suitable for explicit feedback data, using the alternating least squares approach to compute \(P\) and \(Q\) to minimize the regularized squared reconstruction error of the ratings matrix.
See the base class
MFPredictor
for documentation on the estimated parameters you can extract from a trained model.- Parameters:
features (int) – the number of features to train epochs: the number of
reg (float | tuple[float, float]) – the regularization factor; can also be a tuple
`` (ureg, ireg) – specify separate user and item regularization terms.
damping (float) – damping factor for the underlying bias. bias: the bias model.
True (If) – damping
damping
.epochs (int)
reg
bias (Bias | None)
rng_spec (Optional[SeedLike])
save_user_features (bool)
:param fits a
Bias
with: dampingdamping
. :param rng_spec: Random number generator or state (seeseedbank.numpy_rng()
). :param progress: atqdm.tqdm()
-compatible progress bar function- property logger#
Overridden in implementation to provide the logger.
- prepare_data(data)#
Prepare data for training this model. This takes in the ratings, and is supposed to do two things:
Normalize or transform the rating/interaction data, as needed, for training.
Store any parameters learned from the normalization (e.g. means) in the appropriate member variables.
Return the training data object to use for model training.
- Parameters:
data (Dataset)
- initial_params(nrows, ncols)#
Compute initial parameter values of the specified shape.
- als_half_epoch(epoch, context)#
Run one half of an ALS training epoch.
- Parameters:
epoch (int)
context (TrainContext)
- new_user_embedding(user, ratings)#
Generate an embedding for a user given their current ratings.
- class lenskit.algorithms.als.ImplicitMF(features, *, epochs=20, reg=0.1, weight=40, use_ratings=False, rng_spec=None, save_user_features=True)#
Bases:
ALSBase
Implicit matrix factorization trained with alternating least squares [HKV08]. This algorithm outputs ‘predictions’, but they are not on a meaningful scale. If its input data contains
rating
values, these will be used as the ‘confidence’ values; otherwise, confidence will be 1 for every rated item.See the base class
MFPredictor
for documentation on the estimated parameters you can extract from a trained model.With weight \(w\), this function decomposes the matrix \(\mathbb{1}^* + Rw\), where \(\mathbb{1}^*\) is an \(m \times n\) matrix of all 1s.
Changed in version 2024.1:
ImplicitMF
no longer supports multiple training methods. It always uses Cholesky decomposition now.Changed in version 0.14: By default,
ImplicitMF
ignores arating
column if one is present in the training data. This can be changed through theuse_ratings
option.Changed in version 0.13: In versions prior to 0.13,
ImplicitMF
used the rating column if it was present. In 0.13, we added an option to control whether or not the rating column is used; it initially defaulted toTrue
, but with a warning. In 0.14 it defaults toFalse
.- Parameters:
features (int) – The number of features to train
epochs (int) – The number of iterations to train
reg (float | tuple[float, float]) – The regularization factor
weight (float) – The scaling weight for positive samples (\(\alpha\) in [HKV08]).
use_ratings (bool) – Whether to use the rating column, if present. Defaults to
False
; whenTrue
, the values from therating
column are used, and multipled byweight
; ifFalse
, ImplicitMF treats every rated user-item pair as having a rating of 1.rng_spec (Optional[SeedLike]) – Random number generator or state (see
numpy_rng()
).progress – a
tqdm.tqdm()
-compatible progress bar functionsave_user_features (bool)
- property logger#
Overridden in implementation to provide the logger.
- fit(data, **kwargs)#
Run ALS to train a model.
- Parameters:
ratings – the ratings data frame.
data (Dataset)
- Returns:
The algorithm (for chaining).
- prepare_data(data)#
Prepare data for training this model. This takes in the ratings, and is supposed to do two things:
Normalize or transform the rating/interaction data, as needed, for training.
Store any parameters learned from the normalization (e.g. means) in the appropriate member variables.
Return the training data object to use for model training.
- Parameters:
data (Dataset)
- Return type:
- initial_params(nrows, ncols)#
Compute initial parameter values of the specified shape.
- als_half_epoch(epoch, context)#
Run one half of an ALS training epoch.
- Parameters:
epoch (int)
context (TrainContext)
- Return type:
Modules