我们正在考虑为我们全新的学习管理系统构建推荐系统。有很多用户和项目(学习模块)加入,但还没有评级 - 典型的冷启动问题。
首先,我们正在考虑使用项目属性(标签、类别等)使用简单的基于项目的相似性。这个想法是随着评分的开始切换到更强大的协同过滤。
问题:
- 这是一个好方法吗?是否有推荐的 ML 模式来处理这种冷启动条件?
- 要实现基于项目的相似性,哪种算法是正确的?说,余弦相似度。但是,请注意没有“矩阵”。我们应该尝试使用标准的 ML 算法还是推出我们自己的算法?
我们正在考虑为我们全新的学习管理系统构建推荐系统。有很多用户和项目(学习模块)加入,但还没有评级 - 典型的冷启动问题。
首先,我们正在考虑使用项目属性(标签、类别等)使用简单的基于项目的相似性。这个想法是随着评分的开始切换到更强大的协同过滤。
问题:
你的方法很好。我将从无监督学习算法开始,例如“k-最近邻分类器”。如果您的团队不了解 ML,我建议您阅读本教程http://www.astroml.org/sklearn_tutorial/general_concepts.html。它使用 python 和一个名为 scikit-learn 的优秀库。从那里您可以学习 Andrew 的 NG 课程 ( https://www.coursera.org/learn/machine-learning/ ),尽管它不涵盖任何推荐系统。
我通常使用 Pearson 相关算法(https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient),这足以解决我的问题。这种方法的问题在于它是线性的。我读过 Orange 数据挖掘工具提供了许多相关性度量。使用它,您可以找到最适合您的数据的一个。我建议不要使用您自己的算法。
有一个较早的问题提供了有关此问题的更多信息:如何实现推荐引擎?