经过大量研究后,我们决定使用Google Cloud基础架构,并在我们的产品推荐系统中使用ALS算法(协同过滤方法 - https://cloud.google.com/solutions/recommendations-using-machine-learning-on-compute-engine#Training-the-models),详细说明如下:
我们有两种类型的客户。第一类是在附近销售产品的公司,第二类是将从这些公司购买产品的消费者
当消费者找到公司时,他/她可以执行以下操作(他可以一次执行多个项目)
2.1。仅查看公司资料
2.2。将公司添加到收藏夹
2.3。开始与公司聊天
2.4。从公司订购
2.5。给公司评级和评论
所以我不明白的是:上面描述的每个项目都被确定为我们数据库中的某个评级列,例如:
查看公司简介:10分
从公司订购:20分
给公司明星或评论:20分
所以每个项目都是同一个用户的单独评级。 在我们的用户 - 公司对数据库中,可能有超过1行 例如:
第1行:user18-company18-10pts(已查看个人资料一次)
第2行:user18-company18-20pts(从公司订购)
第3行:user18-company19-10pts
我对这个算法不确定,是计算该用户对同一家公司的评级的所有评级的总和(我真正想要的是什么),还是只是为用户的评级寻找一行一家公司? (我想要的是这个ALS算法总结该用户 - 公司对的row1和row2)
有谁知道吗?这对我们的推荐系统非常重要。因为我正在寻找的算法需要计算用户的所有评级的总和,以便推荐另一家公司。因为我们的商业模式与电影评级系统不同
由于
答案 0 :(得分:0)
与google的示例(https://cloud.google.com/solutions/recommendations-using-machine-learning-on-compute-engine#Training-the-models一样,查看2个矩阵图表)一样,矩阵应该是每个客户1行,1列是您尝试推荐的公司/产品。
如果您尝试向用户推荐公司(这是我从您的示例中所理解的),那么您应该对每个完整之间的互动进行评分。用户和公司,每个用户只有1行。
考虑到你的3个交互的例子,我从另一个用户(用户21)添加了3个以上的交互:
user18-company18-10pts(查看过的个人资料一次)
user18-company18-20pts(从公司订购)
user18-company19-10pts
user21-company16-20pts(从公司订购)
user21-company16-20pts(给予明星或对公司发表评论)
user21-company18-10pts(查看个人资料一次)
然后,你的矩阵应该是:
第1行,第18:30行(来自用户18的10 + 20)
第1行,colunn 19:10(来自用户18)
第2行,第16列:40(来自用户21的20 + 20)
第2行,第18列:10(来自用户21)