我在学习实现推荐系统的教程时,发现大多数教程只考虑了一个变量(排名)。
我想实现一个基于物品的推荐系统,该系统可以处理多个变量。
例如:假设一个物品(酒吧)有以下变量(数值范围从-10到+10,用于表达相反的极性)
- 价格(便宜到昂贵) - 环境(休闲到高档) - 年龄范围(年轻到成年)
现在我想根据用户历史记录中注册的酒吧列表来推荐物品(酒吧)。
这种“多维度推荐系统”是否可以使用Mahout或其他框架实现?
回答:
你想要的是多模态、多指标、多变量的——通用推荐系统。它可以处理所有这些数据。我们已经在真实数据集上进行了测试,由于我们称之为“次要指标”的原因,精度测试得到了显著提升。
你的直觉很好。可以看看通用推荐系统:blog.actionml.com,查看其中一篇文章的幻灯片。代码在这里:https://github.com/actionml/template-scala-parallel-universal-recommendation/tree/v0.3.0 它基于新版的Spark Mahout构建:http://mahout.apache.org/users/algorithms/intro-cooccurrence-spark.html