BaseNmslibRecommender

class rectools.tools.ann.BaseNmslibRecommender(item_vectors: np.ndarray, 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: object

Class implements base constructor parameters, pickling protocol and sort-truncate logic for UserToItemAnnRecommender and ItemToItemAnnRecommender.

Parameters
  • item_vectors (ndarray) – Ndarray of item latent features of size (N, K), where N is the number if items and K is the number of features.

  • item_id_map (dict(hashable, int) | rectools.datasets.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). In this case nmslib index query. 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, str)), default None) – NMSLIB query time parameters. See nmslib documentation. In case of None defaults to reasonable parameters.

  • create_index_params (optional(dict(str, str)), 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.

Inherited-members

Parameters
  • item_vectors (np.ndarray) –

  • 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.

fit(verbose: bool = False) T[source]

Create and fit nmslib index.

Parameters
  • verbose (bool) – Verbosity switch, see NMSLIB documentation.

  • self (T) –

Returns

Returns self.

Return type

BaseNmslibRecommender