UserToItemAnnRecommender
- class rectools.tools.ann.UserToItemAnnRecommender(user_vectors: np.ndarray, item_vectors: np.ndarray, user_id_map: tp.Union[IdMap, tp.Dict[ExternalId, InternalId]], item_id_map: tp.Union[IdMap, tp.Dict[ExternalId, InternalId]], index_top_k: int = 0, index_init_params: tp.Optional[tp.Dict[str, str]] = None, index_query_time_params: tp.Optional[tp.Dict[str, int]] = None, create_index_params: tp.Optional[tp.Dict[str, int]] = None, index: tp.Optional[nmslib.FloatIndex] = None)[source]
Bases:
BaseNmslibRecommender
Class implements user to item ANN recommender.
- Parameters
user_vectors (ndarray) – Ndarray of user latent features of size
(M, K)
, where M is the number of items and K is the number of features.item_vectors (ndarray) – Ndarray of item latent features of size
(N, K)
, where N is the number of items and K is the number of features.user_id_map (dict(hashable, int) | rectools.dataset.IdMap) – Mappings from external user ids to internal user ids used by recommender. Values must be positive integers.
item_id_map (dict(hashable, int) | rectools.dataset.IdMap) – Mappings from external item ids to internal item ids used by recommender. Values must be positive integers.
index_top_k (int, default 0) – Number of items to return per knn query (in addition to top_n passed to get_item_list_for_user, get_item_list_for_user_batch, get_item_list_for_item or get_item_list_for_item_batch). This might be important in order to account for filters. See self.index.knnQueryBatch in `_compute_sorted_similar’
index_init_params (optional(dict(str, str)), default None) – NMSLIB initialization parameters. See nmslib documentation. In case of None defaults to reasonable parameters.
index_query_time_params (optional(dict(str, int)), default None) – NMSLIB query time parameters. See nmslib documentation. In case of None defaults to reasonable parameters.
create_index_params (optional(dict(str, int)), default None) – NMSLIB index creation parameters. See nmslib documentation. In case of None defaults to reasonable parameters.
index (FloatIndex, optional) – Optional instance of FloatIndex. Exists for outside initialization.
- get_item_list_for_user()[source]
Part of public API. Given user id and item ids, calculates recommendations via index query.
- Parameters
user_id (Hashable) –
top_n (int) –
item_ids (Optional[Union[Sequence[Hashable], ndarray]]) –
- Return type
Union[Sequence[Hashable], ndarray]
- get_item_list_for_user_batch()[source]
Part of public API. Does what get_item_list_for_user, except it takes a batch of user ids and a batch of item sets.
- Parameters
user_ids (Union[Sequence[Hashable], ndarray]) –
top_n (int) –
item_ids (Optional[Sequence[Union[Sequence[Hashable], ndarray]]]) –
- Return type
Sequence[Union[Sequence[Hashable], ndarray]]
See also
- Inherited-members
- Parameters
user_vectors (np.ndarray) –
item_vectors (np.ndarray) –
user_id_map (tp.Union[IdMap, tp.Dict[ExternalId, InternalId]]) –
item_id_map (tp.Union[IdMap, tp.Dict[ExternalId, InternalId]]) –
index_top_k (int) –
index_init_params (tp.Optional[tp.Dict[str, str]]) –
index_query_time_params (tp.Optional[tp.Dict[str, int]]) –
create_index_params (tp.Optional[tp.Dict[str, int]]) –
index (tp.Optional[nmslib.FloatIndex]) –
Methods
fit
([verbose])Create and fit nmslib index.
get_item_list_for_user
(user_id, top_n[, ...])Calculate top n recommendations for a given user id.
get_item_list_for_user_batch
(user_ids, top_n)Calculate top-n recommendations for given user ids and item lists.
- get_item_list_for_user(user_id: Hashable, top_n: int, item_ids: Optional[Union[Sequence[Hashable], ndarray]] = None) Union[Sequence[Hashable], ndarray] [source]
Calculate top n recommendations for a given user id.
- Parameters
user_id (hashable) – User id used by external systems.
top_n (int) – How many items to return.
item_ids (optional(sequence(hashable)), default None) – A set of item ids from which to recommend. In case of None this function recommends without constraints.
- Returns
Sorted sequence of external ids
- Return type
sequence(hashable)
- get_item_list_for_user_batch(user_ids: Union[Sequence[Hashable], ndarray], top_n: int, item_ids: Optional[Sequence[Union[Sequence[Hashable], ndarray]]] = None) Sequence[Union[Sequence[Hashable], ndarray]] [source]
Calculate top-n recommendations for given user ids and item lists. Item lists define which items are allowed to be recommended.
- Parameters
user_ids (sequence(hashable)) – List of user ids used by external systems.
top_n (int) – How many items to return.
item_ids (optional(sequence(sequence(hashable))), default None) – List of lists of allowed items for each user id from user_ids in that exact order. In case of None this function recommends without constraints.
- Returns
Sequence of sorted sequences of external ids.
- Return type
sequence(sequence(hashable))