如何使用spark ALS进行多行为隐式反馈建议

时间:2017-02-20 11:15:05

标签: apache-spark pyspark spark-dataframe apache-spark-mllib recommendation-engine

我想将spark ALS用于多行为隐式反馈建议。有几种隐式用户行为数据,例如浏览,购物车,交易等。

我已经检查了大量ALS隐式反馈建议的在线资源,但几乎所有这些资源都只使用单一数据源,在购物案例中,交易数据。

我很想知道是否只需要交易数据或利用各种数据获得更好的结果?

2 个答案:

答案 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,也许我应该调整我的参数。