CandidateRankingModel

class rectools.models.ranking.candidate_ranking.CandidateRankingModel(candidate_generators: List[CandidateGenerator], splitter: Splitter, reranker: Reranker, sampler: Optional[NegativeSamplerBase] = None, feature_collector: Optional[CandidateFeatureCollector] = None, verbose: int = 0)[source]

Bases: ModelBase

Candidate Ranking Model for recommendation systems.

Inherited-members

Parameters

Methods

dumps()

Serialize model to bytes.

fit(dataset, *args, **kwargs)

Fit model.

fit_partial(dataset, *args, **kwargs)

Fit model.

from_config(config)

Create model from config.

from_params(params[, sep])

Create model from parameters.

get_config([mode, simple_types])

Return model config.

get_full_candidates_with_targets(...)

Prepare candidates with target values set from first-stage candidate generators.

get_params([simple_types, sep])

Return model parameters.

get_train_with_targets_for_reranker(dataset)

Prepare training data for the reranker.

load(f)

Load model from file.

loads(data)

Load model from bytes.

recommend(users, dataset, k, filter_viewed)

Generate k recommendations for specified users using the dataset.

recommend_to_items(target_items, dataset, k)

Recommend items for target items.

save(f)

Save model to file.

split_to_history_dataset_and_train_targets(...)

Split interactions into history and train sets for first-stage and second-stage model training.

Attributes

recommends_for_cold

recommends_for_warm

require_recommend_context

Indicates whether recommendation context is required for predictions.

get_full_candidates_with_targets(train_targets: DataFrame, history_dataset: Dataset) DataFrame[source]

Prepare candidates with target values set from first-stage candidate generators.

Parameters
  • train_targets (pd.DataFrame) – DataFrame containing training targets.

  • history_dataset (Dataset) – The dataset to fit the candidate generators on.

Returns

DataFrame with target values set.

Return type

pd.DataFrame

get_train_with_targets_for_reranker(dataset: Dataset) DataFrame[source]

Prepare training data for the reranker.

Parameters

dataset (Dataset) – The dataset to prepare training data from.

Returns

DataFrame containing training data with targets and 2 extra columns: Columns.User, Columns.Item.

Return type

pd.DataFrame

recommend(users: Union[Sequence[Hashable], ndarray], dataset: Dataset, k: int, filter_viewed: bool, items_to_recommend: Optional[Union[Sequence[Hashable], ndarray]] = None, add_rank_col: bool = True, on_unsupported_targets: Literal['ignore', 'warn', 'raise'] = 'raise', context: Optional[DataFrame] = None, force_fit_candidate_generators: bool = False) DataFrame[source]

Generate k recommendations for specified users using the dataset.

Parameters
  • users (ExternalIds) – List of user ids for whom recommendations are generated.

  • dataset (Dataset) – Dataset containing user-item interaction data and possibly additional features.

  • k (int) – The number of recommendations to generate for each user.

  • filter_viewed (bool) – If true, viewed items will be excluded from the recommendations.

  • items_to_recommend (ExternalIds, optional, default None) – List of item ids from which recommendations should be generated. If not provided, it will include all items available in the dataset.

  • add_rank_col (bool, default True) – If true, a rank column is added to the returned DataFrame. The rank column shows the position of the item in the sorted order of predictions.

  • on_unsupported_targets (ErrorBehaviour, default "raise") – Controls the behavior when a target is encountered during prediction, for which the Model makes no prediction. If “raise”, a ValueError is raised. If “warn”, it outputs a warning, and if “ignore”, it silently continues.

  • context (pd.DataFrame, optional, default None) – Is not supported for this model. If provided, it will be ignored.

  • force_fit_candidate_generators (bool, default False) – If true, the candidate generators are fitted even if they are already fitted.

Returns

DataFrame with the recommended items for users.

Return type

pd.DataFrame

split_to_history_dataset_and_train_targets(dataset: Dataset, splitter: Splitter) Tuple[Dataset, DataFrame, Dict[str, Any]][source]

Split interactions into history and train sets for first-stage and second-stage model training.

Parameters
  • dataset (Dataset) – The dataset to split.

  • splitter (Splitter) – The splitter to use for splitting the dataset.

Returns

Tuple containing the history dataset, train targets, and fold information.

Return type

Dataset, pd.DataFrame, dict(str -> any)