上一篇博文 http://diaorui.net/?p=419 意外的火了。如果你还没看过,请先去看看再回来看这篇。
后来今晚看啥@汪冠春 与我取得了联系。他和百度的多个技术人员一起对比赛进行了调整。赛前的准备工作不太充分,希望弥补后还能顺利吧。
百度学院的迅速响应和公开真实数据的精神是值得赞一个的~
调整后的比赛包括两个问题:
1, 传统的预测评分问题。给定一个只包括活跃用户的真实评分(而不包括“喜欢”),要求预测其他评分,仍然是RMSE作为评价指标。这部分数据包括大约1万用户、大约8000电影(评分的Sparsity约为0.2)。
2, 基于社交、标签和喜欢数据的开放性问题。给定用户喜欢的电影数据,社交数据,电影标签数据,要求自己挖掘一些有意思的话题,写成报告。这部分数据包括约15万用户和约1.7万电影。
数据集下载地址 http://pan.baidu.com/share/link?shareid=340221&uk=2000006609
这组数据应该没有人工干扰。我之前配合他们提了一些改进建议。后因收到邀请,我再简单总结一下新数据集的特点,可能会对参赛选手有帮助。
所有内容我尽量不写的太细节以免误导。
分析:
1) training_set.txt中共有9722个用户和7889个电影,以及1262741个评分。这一次只选用了一部分比较热门的用户,以及他们的打分,不含“喜欢”数据。应该说数据集是比较小的。这样一来如果在自己的电脑测试会相对容易。
2) 用户编号、电影编号都进行了Hash处理,这样如果真要寻找源数据,工作量会比较大。实际上为了避免完全变成与原数据的对照比赛,我在上一篇博文中没有发布我爬到的数据,当时也没有去提交爬到的结果。
3) 排行榜只是对部分数据进行测评,因此请务必注意不要过拟合。我猜测最后前十名成绩会很接近,其中会存在过拟合,请不要为了挤入排行榜的前十而过拟合。
4) 问题2的数据可以考虑用来解决问题1,其中个人猜测 user_history.txt 可能是最有希望有效的,但是如果能很好的探索标签和社交对推荐的作用,问题2也许会有很高的加分?所以建议在进入前十后,去尝试使用标签和社交。但是这两块个人感觉很难用于提高RMSE,也是最有挑战性的。
5) 分数现在只有整数分1,2,3,4,5, 和原数据不同,请留意。需要预测的分数真实值也是整数分,当然我们只要预测实数分就可以了,简单取整肯定会导致RMSE变大。不过知道答案是整数,也许有人能用上。
测试:
1) 如果全4分,RMSE大约0.84
2) 如果只使用用户平均分和电影平均分,RMSE大约0.66
3) 如果只使用基本的SVD,RMSE大约0.62
虽然还是和预期有差距,但前三项这至少和之前的数据已经很不一样了。分数整体偏高也有可能是因为今晚看啥是基于推荐的网站。
4)现在的数据绘制log-log曲线仍然不完全是直线,但百度给出的解释是这次只选择了部分热门用户的数据用于比赛。所以打分少的用户显得偏少。
5) 用户、电影的平均分分布图,看上去比较正常,利用图中特点可能会对改进模型有帮助。