iiewa's picture
Upload folder using huggingface_hub
2cc98e1 verified
raw
history blame contribute delete
773 Bytes
import numpy as np
from sklearn.base import BaseEstimator
class SimilarityRecommender(BaseEstimator):
def __init__(self,
item_embeddings: np.ndarray,
mask_value: float = -np.inf):
E = np.asarray(item_embeddings, dtype=np.float64)
self.item_embeddings = E / np.linalg.norm(E, axis=1, keepdims=True)
self.N_, self.d_ = self.item_embeddings.shape
self.mask_value = mask_value
def fit(self, X=None, y=None):
return self
def transform(self, X):
X = np.asarray(X, dtype=np.float64)
U = X @ self.item_embeddings
U /= np.linalg.norm(U, axis=1, keepdims=True)
scores = U @ self.item_embeddings.T
scores[X != 0] = self.mask_value
return scores