如何处理Spark ALS从MLlib生成的模型中的新用户/项目?

时间:2016-04-19 15:50:51

标签: apache-spark machine-learning recommendation-engine collaborative-filtering

目前,当新用户到来时,我无法更新我的推荐系统,该推荐系统显然与未添加用户和项目矩阵有关。 我在哪里可以找到这个以及如何做到这一点?感谢

model.userFactors model.itemFactors

1 个答案:

答案 0 :(得分:9)

计算商品功能和用户功能时,仅准备模型以推荐已知商品和用户。如果您有新的用户/项目,则必须处理冷启动问题。

但是有两件事 - 使建议适用于新用户/项目,而另外一件事就是在线附近更新模型(特征矩阵)。

为了准备新建/匿名用户的建议,建立模型时输入数据不在输入数据中,你必须准备它的特征向量。该方法是根据已经看到的项目的特征(或者您正在考虑的任何类型的交互作为'喜欢')来准备它,例如,从用户喜欢的项目中计算每个要素的平均值。或者查看building anonymous user feature vector

方法的Oryx代码

通过使用折叠技术来更新您的模型近在线(我写近,因为面对它,真正的在线更新是不可能的),例如: Online-Updating Regularized Kernel Matrix Factorization Models for Large-Scale Recommender Systems. 你可以看看代码:

  • MyMediaLite
  • Oryx - 使用Lambda Architecture范例构建框架。它应该有新用户/项目折叠的更新。