最近在整理一些以往的比赛经验,下面这篇文章是我在DataCastle 参加“猜你喜欢”推荐算法大赛获得冠军的思路分享。
我是Yes,boy! ,来自东北大学计算机学院。在猜你喜欢推荐系统竞赛中,很幸运取得第一名的成绩,下面我简单介绍下我的思路。
本次比赛的赛题背景是给出了约3400万条数据,包含一个商品网站站内顾客在某一时刻对某一个商品的打分值,分值范围为1至5分。目的是通过对这些数据的学习和训练,准确预测未来某时刻某个用户对某个商品的评分。
通过背景可知这是一个关于推荐系统的研究问题。而推荐系统在预测准确度上有不同的研究方向,一种是基于TopN的研究,即主要是给用户一个个性化的推荐列表,一般通过准确率度量推荐的优劣;一种是基于评分预测的研究, 它的度量方式一般是RMSE或者MAE 。在本次比赛就是通过RMSE来评价预测的好坏。那么我们接下来要使用的方法就集中在优化评分预测的RMSE上。
在具体做的过程中,我觉得有几点需要注意的:
1. 分析数据,了解数据的大致规律
2. 方法先尝试简单方法,再尝试复杂方法;对复杂方法,要一点点的调整
基于此,我由简及繁使用了三类模型:
1. 基于聚类的推荐
2. 基于协同过滤的推荐
3. 基于模型学习的推荐
在这三类中,每一类又包含很多方法,不能绝对的说哪一类模型最好,依照具体的数据形式、数据内容而定。
第一类的模型我大概使用到的方法:
1. 全局均值
2. 物品均值
3. 用户均值
4. 用户分类-物品均值
5. 物品分类-用户均值
6. 用户活跃度