algorithm - 冷启动的推荐方法和算法

标签 algorithm machine-learning recommendation-engine cold-start

我们正在考虑为我们全新的学习管理系统构建推荐系统。有大量用户和项目(学习模块)已加入,但还没有评级 - 典型的冷启动问题。

首先,我们正在考虑使用使用项目属性(标签、类别等)的简单的基于项目的相似性。这个想法是在评分开始出现时切换到更强大的协同过滤。

问题:

  1. 这是一个好方法吗?是否有推荐的 ML 模式来处理这种冷启动条件?
  2. 要实现基于项目的相似性,哪种算法是正确的?说,余弦相似度。但是,请注意没有“矩阵”。我们应该尝试使用标准的 ML 算法还是自己动手?

最佳答案

  1. 你的方法很好。我将从无监督学习算法开始,例如“k-最近邻分类器”。如果您的团队对 ML 一无所知,我建议您阅读本教程 http://www.astroml.org/sklearn_tutorial/general_concepts.html .它使用 python 和一个名为 scikit-learn 的很棒的库。从那里你可以学习 Andrew 的 NG 类(class)(https://www.coursera.org/learn/machine-learning/),尽管它不包括任何推荐系统。

  2. 我通常使用 Pearson 相关算法 ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ),这足以解决我的问题。这种方法的问题在于它是线性的。我读到 Orange 数据挖掘工具提供了许多相关性度量。使用它,您可以找到最适合您的数据的那个。我建议不要使用您自己的算法。

有一个较旧的问题提供了有关此事的更多信息:How can I implement a recommendation engine?

关于algorithm - 冷启动的推荐方法和算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32199333/

相关文章:

java - java中给定压缩文本的lzw解压算法

algorithm - 上界不必要地相交

python - 预测推荐系统中的缺失值

python - Lightfm : handling user and item cold-start

c++ - 如何在 C++ 排序期间监视/显示进度

ruby - 如何将整数数组总结为范围数组?

machine-learning - 优化 RapidMiner 中的决策树参数

python - 利用L2距离差进行人脸识别

tensorflow - 深度学习基本思想

java - mhout 中的谷本系数仅返回 1.0 作为预测值