我如何处理 MLlib 的 Spark ALS 生成的模型中的新 users/items?
How can I handle new users/items in model generated by Spark ALS from MLlib?
当前,当新用户到来时,我无法更新我的推荐系统,这显然与未添加用户和项目矩阵有关。
我在哪里可以找到这个以及如何做到这一点?谢谢
model.userFactors
model.itemFactors
计算项目特征和用户特征时,模型仅准备为已知项目和用户推荐。如果你有新的user/item,你必须应对冷启动的问题。
但是有两件事 - 使推荐对新 users/items 起作用,另一件事是更新模型(特征矩阵)接近在线。
为了为 new/anonymous 用户准备推荐,在构建模型时不在输入数据中,您必须准备它的特征向量。该方法是根据已经看到的项目的特征(或您正在考虑的任何类型的交互 'like')准备它,例如从用户喜欢的项目中计算每个特征的平均值。或查看Oryx 代码以获取building anonymous user feature vector
的方法
通过使用折叠技术更新您的模型近在线(我写近,因为面对现实,真正的在线更新是不可能的),例如:
Online-Updating Regularized Kernel Matrix Factorization Models for Large-Scale Recommender Systems.
欧 你可以看看代码:
- MyMediaLite
- Oryx - 使用 Lambda 架构范例构建的框架。它应该有新 users/items.
折叠的更新
当前,当新用户到来时,我无法更新我的推荐系统,这显然与未添加用户和项目矩阵有关。 我在哪里可以找到这个以及如何做到这一点?谢谢
model.userFactors model.itemFactors
计算项目特征和用户特征时,模型仅准备为已知项目和用户推荐。如果你有新的user/item,你必须应对冷启动的问题。
但是有两件事 - 使推荐对新 users/items 起作用,另一件事是更新模型(特征矩阵)接近在线。
为了为 new/anonymous 用户准备推荐,在构建模型时不在输入数据中,您必须准备它的特征向量。该方法是根据已经看到的项目的特征(或您正在考虑的任何类型的交互 'like')准备它,例如从用户喜欢的项目中计算每个特征的平均值。或查看Oryx 代码以获取building anonymous user feature vector
的方法通过使用折叠技术更新您的模型近在线(我写近,因为面对现实,真正的在线更新是不可能的),例如: Online-Updating Regularized Kernel Matrix Factorization Models for Large-Scale Recommender Systems. 欧 你可以看看代码:
- MyMediaLite
- Oryx - 使用 Lambda 架构范例构建的框架。它应该有新 users/items. 折叠的更新