首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >矩阵分解改进

矩阵分解改进
EN

Data Science用户
提问于 2018-05-02 10:22:21
回答 2查看 139关注 0票数 2

我正在使用SGD矩阵因式分解(python),使用recommendations数据集来提出建议。我有一个网站,让用户给出的反馈,是正面或负面的项目是否是一个好的推荐为一部特定的电影。

我想知道我是否可以在矩阵分解中使用这个反馈。我不能百分之百确定我会怎么做。

例如,我会有一个向量,比如

代码语言:javascript
复制
  m1 m2 m3
m1 0 0  0
m2 5 0 -4
m3 0 0  0

其中,m2-m1是5分,所以举个例子,没有人认为它是负的,5人认为它是好的。另一种为m2-m3为-4,所以推荐效果很差。

任何帮助都将不胜感激。

编辑:答案的回应

我目前正在使用稀疏矩阵的用户项目评级,并使用偏见。

我一直试图添加更多的输入源,并使用以下方法创建包含类型表示的属性矩阵:

代码语言:javascript
复制
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错误。

我一直在关注这篇论文推荐系统的矩阵分解技术

谢谢

EN

回答 2

Data Science用户

发布于 2018-05-02 22:26:55

在我看来,最好使用user-movie矩阵,创建一个更有意义的sparse matrix。通过这样做,如果您已经知道了选择的polarity ( positivenegativeneutral ),您也可能会得到likedislike的一些intensity分数,比如rating。现在,如果您只想将它们分类为likesneutraldislike,您可以分别指定10-1。当你有很多电影和很多用户时,这种方法会有更多的意义。此外,这还可以帮助您建立user-usermovie-usermovie-movie关系。这些关系可能会帮助您了解和探索更多关于recommendation engines的信息。

代码语言:javascript
复制
     m1 m2 m3 m4
u1 -1   0  -1  1
u2  1   1  -1  0
u3  0   0   1  0
u4  -1  1   1   0

如果您想要添加rating而不是只添加polarity,只需添加数字缩放的0-1即可。我亲自编写了hybrid recommendation engines,它同时嵌入了collaborative filteringcontext based filtering模型。我建议你在人际关系方面多做些工作,并尝试探索更多关于likedislike偏见的可能性,电影信息/演员的关联--导演在电影中的影响力和相似性等等。我希望这个解释能有所帮助。

票数 0
EN

Data Science用户

发布于 2019-01-01 10:28:24

有些分解模型是这样的,您可以搜索“基于会话”、“基于篮”、“顺序”等。但他们的表现往往不太好。您还可以使用这些数据创建一个分类或回归模型,然后将其与一些混合模型中的常规用户项分级三胞胎混合起来。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/31110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档