ItemCF#

class libreco.algorithms.ItemCF(task, data_info, sim_type='cosine', k_sim=20, store_top_k=True, block_size=None, num_threads=1, min_common=1, mode='invert', seed=42, lower_upper_bound=None)[source]#

Bases: CfBase

Item Collaborative Filtering algorithm. See UserCF / ItemCF for more details.

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

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

  • sim_type ({'cosine', 'pearson', 'jaccard'}, default: 'cosine') – Types for computing similarities.

  • k_sim (int, default: 20) – Number of similar items to use.

  • store_top_k (bool, default: True) – Whether to store top k similar items after training.

  • block_size (int or None, default: None) – Block size for computing similarity matrix. Large block size makes computation faster, but may cause memory issue.

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

  • min_common (int, default: 1) – Number of minimum common items to consider when computing similarities.

  • mode ({'forward', 'invert'}, default: 'invert') – Whether to use forward index or invert index.

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

  • lower_upper_bound (tuple or None, default: None) – Lower and upper score bound for rating task.

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

Make prediction(s) on given user(s) and item(s).

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.

  • cold_start ({'popular'}, default: 'popular') – Cold start strategy, ItemCF can only use ‘popular’ strategy.

  • inner_id (bool, default: False) – Whether to use inner_id defined in libreco. For library users inner_id may never be used.

Returns:

prediction – Predicted scores for each user-item pair.

Return type:

float or array_like

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

Fit CF model on the training data.

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

  • neg_sampling (bool) –

    Whether to perform negative sampling for evaluating data.

    New in version 1.1.0.

  • verbose (int, default: 1) – Print verbosity. If eval_data is provided, setting it to higher than 1 will print evaluation metrics during training.

  • eval_data (TransformedSet object, default: None) – Data object used for evaluating.

  • metrics (list or None, default: None) – List of metrics for evaluating.

  • k (int, default: 10) – Parameter of metrics, e.g. recall at k, ndcg at k

  • eval_batch_size (int, default: 8192) – Batch size for evaluating.

  • eval_user_num (int or None, default: None) – Number of users for evaluating. Setting it to a positive number will sample users randomly from eval data.

classmethod load(path, model_name, data_info, **kwargs)#

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

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

Recommend a list of items for given user(s).

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.

  • cold_start ({'popular'}, default: 'popular') – Cold start strategy, CF models can only use ‘popular’ strategy.

  • inner_id (bool, default: False) – Whether to use inner_id defined in libreco. For library users inner_id may never be used.

  • filter_consumed (bool, default: True) – Whether to filter out items that a user has previously consumed.

  • random_rec (bool, default: False) – Whether to choose items for recommendation based on their prediction scores.

Returns:

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

Return type:

dict[Union[int, str, array_like], numpy.ndarray]

save(path, model_name, **kwargs)#

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