def recommendNext(self, user_id, current_loc):
# indices should start from zero
indices = user_id - 1
# U x Z
Theta = self.Theta[indices]
# Z x I
Phi = self.Phi
beta = self.beta
# U x I
dists = np.exp(-0.5 * beta * np.square(cdist(current_loc, self.loc_info)))
# Equation (8)
# Z x U x I
P_izu = np.expand_dims(np.exp(Phi), axis = 1) * np.expand_dims(dists, axis = 0)
P_izu = P_izu / np.expand_dims(np.sum(P_izu, axis = 2), axis = 2)
# Equation (9)
# U x I
P_iu = np.expand_dims(Theta.T, axis = 2) * P_izu
P_iu = np.sum(P_iu, axis = 0)
return P_iu
评论列表
文章目录