def _compute_similarity_matrix(self, knn): for e in range(self.epochs): self.iteration() s_tmp = [] for i in tqdm(range(self.n_items)): mat = self.sm[i, :] s_tmp.append(utils.knn(mat, knn)) s = sparse.vstack(s_tmp, format='csr') s.setdiag(0) self.sm = s
def _compute_similarity_matrix(self, icm, knn): s_tmp = [] n_items = icm.shape[0] m = icm.tocsr() m_t = m.T.tocsr() for i in tqdm(range(n_items)): mat = m[i, :].dot(m_t) s_tmp.append(utils.knn(mat, knn)) s = sparse.vstack(s_tmp, format='csr') s.setdiag(0) return s
def _compute_similarity_matrix(self, knn): s_tmp = [] user_factors, item_factors = self.ALS() n_items = item_factors.shape[0] item_factors = sparse.csr_matrix(item_factors) item_factors_T = item_factors.T for i in tqdm(range(n_items)): mat = item_factors[i, :].dot(item_factors_T) s_tmp.append(utils.knn(mat, knn)) s = sparse.vstack(s_tmp, format='csr') s.setdiag(0) return s
def _compute_similarity_matrix(self, icm, knn): s_tmp = [] ucm = self.urm.T n_items = icm.shape[0] m1 = icm.tocsr() m1_t = m1.T.tocsr() m2 = ucm.tocsr() m2_t = m2.T.tocsr() for i in tqdm(range(n_items)): cfb_i = m1[i, :].dot(m1_t) cf_i = m2[i, :].dot(m2_t) mat = self.cbf_weight*cfb_i + self.cf_weight*cf_i s_tmp.append(utils.knn(mat, knn)) s = sparse.vstack(s_tmp, format='csr') s.setdiag(0) return s