Swing#

class libreco.algorithms.Swing(task, data_info, top_k=20, alpha=1.0, max_cache_num=100000000, num_threads=1, seed=42)[source]#

Bases: Base

Swing algorithm.

Caution

  • Swing can only be used in ranking task.

Parameters:
  • task ({'ranking'}) – Recommendation task. See Task.

  • data_info (DataInfo object) – Object that contains useful information for training and inference.

  • top_k (int, default: 20) – Number of items to consider during recommendation.

  • alpha (float, default: 1.0) – Smoothing coefficient.

  • max_cache_num (int, default: 100,000,000) – Maximum cached item number during swing score computing.

  • num_threads (int, default: 1) – Number of threads to use.

  • seed (int, default: 42) – Random seed.

fit(train_data, neg_sampling, verbose=1, eval_data=None, metrics=None, k=10, eval_batch_size=8192, eval_user_num=None)[source]#

Fit model on the training data.

Parameters:
  • train_data (TransformedSet object) – Data object used for training.

  • neg_sampling (bool) – Whether to perform negative sampling for training or evaluating data.

predict(user, item, cold_start='popular', inner_id=False)[source]#

Predict score for given user and item.

Parameters:
  • user (int or str or array_like) – User id or batch of user ids.

  • item (int or str or array_like) – Item id or batch of item ids.

Returns:

prediction – Predicted scores for each user-item pair.

Return type:

float or numpy.ndarray

recommend_user(user, n_rec, cold_start='popular', inner_id=False, filter_consumed=True, random_rec=False)[source]#

Recommend a list of items for given user.

Parameters:
  • user (int or str or array_like) – User id or batch of user ids to recommend.

  • n_rec (int) – Number of recommendations to return.

Returns:

recommendation – Recommendation result with user ids as keys and array_like recommended items as values.

Return type:

dict of {Union[int, str, array_like] : numpy.ndarray}

save(path, model_name, **kwargs)[source]#

Save model for inference or retraining.

Parameters:
  • path (str) – File folder path to save model.

  • model_name (str) – Name of the saved model file.

See also

load

classmethod load(path, model_name, data_info, **kwargs)[source]#

Load saved model for inference.

Parameters:
  • path (str) – File folder path to save model.

  • model_name (str) – Name of the saved model file.

  • data_info (DataInfo object) – Object that contains some useful information.

Returns:

model – Loaded model.

Return type:

type(cls)

See also

save

rebuild_model(path, model_name)[source]#

Assign the saved model variables to the newly initialized model.

This method is used before retraining the new model, in order to avoid training from scratch every time we get some new data.

Parameters:
  • path (str) – File folder path for the saved model variables.

  • model_name (str) – Name of the saved model file.