我正在使用 SGD 矩阵分解 (python) 使用 movielens 数据集来提出建议。我有一个网站,允许用户就某项目是否是对特定电影的好推荐提供正面或负面的反馈。
我想知道是否可以在矩阵分解中使用此反馈。我不是 100% 确定我将如何进行。
所以例如我会有一个像
m1 m2 m3
m1 0 0 0
m2 5 0 -4
m3 0 0 0
其中 m2-m1 的得分为 5,因此在没有人将其评为负面的示例案例中,有 5 个人认为它很好。m2-m3 的另一个是-4,所以建议很差。
任何帮助将不胜感激。
编辑:来自答案的回应
我目前正在对用户项目评分使用稀疏矩阵,并且正在使用偏差。
我一直在尝试添加其他输入源,并使用以下内容创建包含流派表示的属性矩阵:
for genre in item_genres:
genres[genre] = 1
self.attribute_item_matrix[i] = sum(list(genres.values()))
pred = self.global_mean + self.bias_user[u] + self.bias_item[i] +np.dot(self.P[u, :],(self.Q[:, i]+self.attribute_item_matrix[i]))
但是,我认为这是不正确的,因为它最终会失败并导致 nan 错误。
我一直在关注这篇论文《推荐系统的矩阵分解技术》
谢谢