我想将spark ALS用于多行为隐式反馈建议。有几种隐式用户行为数据,例如浏览,购物车,交易等。
我已经检查了大量ALS隐式反馈建议的在线资源,但几乎所有这些资源都只使用单一数据源,在购物案例中,交易数据。
我很想知道是否只需要交易数据或利用各种数据获得更好的结果?
答案 0 :(得分:0)
将ALS用于多种行为没有通用的,有原则的方式。有时使用不同的行为来改变隐含评级 - 例如,查看项目可能值0.1,在多个会话中查看可能值0.3,将其放入购物车0.5,购买1.0。但这感觉有些笨拙,并且不容易提供一种方法来利用你可能拥有的所有数据。
对于可以扩展到处理大量不同功能的更有原则的方法,我会看一下Universal Recommender。免责声明:我从未使用它,我认为这听起来很有希望。
答案 1 :(得分:0)
是的,您最好使用所有交易数据和用户数据。您使用ALS获取用户向量和交易向量,然后计算交易和用户的相似性,如果用户或交易没有向量,我们就无法获得下一个推荐的相似性。 我对ALS进行了测试,并使用了用户和交易的相似性来训练我的模型,它给了我很大的惊喜,auc跟随:
2018-06-05 21:25:28,138 INFO [21:25:28] [58] test-auc:0.968764 train-auc:0.972966
2018-06-05 21:25:28,442 INFO [21:25:28] [59] test-auc:0.968865 train-auc:0.973075
因为我使用所有交易和用户信息来训练模型。但是rmse是3.6,也许我应该调整我的参数。