PySparks mllib 包提供了 train() 和 trainimplicit() 方法,分别用于在显式和隐式数据上训练推荐模型。
我想训练一个关于隐式数据的模型。更具体地说,项目购买数据。由于在我的情况下,用户多次购买一件商品的情况非常罕见,因此“评分”或“偏好”始终为 1。所以我的数据集如下所示:
u1, i1, 1
u1, i2, 1
u2, i2, 1
u2, i3, 1
...
un, im, 1
其中 u 代表用户,i 代表项目。
我确实有很多关于用户人口统计、位置等的特性以及项目特性。但我不能将用户或项目特征合并到pyspark.mllib.als.train
或pyspark.mllib.als.trainimplicit
方法中。
或者,我考虑过使用 fastFM 或 libfm。两者都是 Factorization Machines 的包,它实现了 ALS 求解器和框架推荐作为回归/分类问题。使用这些案例,我可以将训练数据中的用户、项目和更多特征包含为X
. 但是,预测变量y
将只是一个向量(我没有明确的评级只购买)。
我该如何解决这个问题?