返回信息流以前学的一直都是机器学习相关内容,最近要做推荐系统的大作业,是关于新闻推荐的,给了30天的新闻点击情况,然后前20天作为训练集,后10天作为测试集。我有一点不理解的是,在对模型进行测试的话,如果按照机器学习的测试方法来看,我们在训练时根本无法获得后10天新闻的用户点击情况。所以这种情况下感觉协同过滤算法基本都无法使用。所以我想问我可以将测试数据分片,比如说测试第25天的数据时认为模型了解了前24天的数据(比如说将测试集前4天的点击加入item-user矩阵之类的)?因为觉得实际使用时就是这样,但是这种情况机器学习又不允许,所以有没有了解的同学可以说下?
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #17546同步于 2015/12/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
关于推荐系统测试的问题
hyx2011
2015/12/10镜像同步19 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
可以从多个方面入手吧。一个是可以考虑基于内容的推荐,虽然在协同过滤大肆其道的今天,很少听到它,但确实可以用上,需要根据用户对新闻的历史阅读形成兴趣,然后和新的新闻进行match匹配,匹配度高的即可推荐。 二个是如果还是协同过滤的话,是需要有历史数据的,你这种情况就是所谓的cold-start问题,即有的物品或人没有浏览历史。lz可以看看你现在的场景下,cold-start问题严重不,就是很多新闻新出现,根本没有历史可循,如果严重的话,建议采用基于内容的推荐吧,甚至可以把cf和content-based结合等。建议搜索下news recommendation,大把论文。
那肯定不行啊!最后10天是你的测试数据,你是不能用测试集来调整自己模型的,这是大忌。
你可以这样做,把前20天的数据,自己划分为15天,5天。前15天用来训练模型,后5天作为测试集,来评判自己的模型好不好。
最后再把前20天的数据放在一起,预测最后10天的点击情况。
但是,我也有一个问题,怎么才能预测最后10天的点击情况呢?
对于一个用户,每一天可以点击的新闻假如有n个领域,从这n个领域中,推荐0至n个给用户,那么最后预测10天的数据,解空间应该在n的10次方
这么大的解空间,怎么才能推荐呢?
确实有很多的论文,我也看了很多,包括Google的那两篇。但是问题是训练集中的数据只有内容和点击,大部分论文训练集中都包括一些其他feature的。。。。
【 在 moodyt (【意涵团】徒子不登|信意涵得offer) 的大作中提到: 】
: 可以从多个方面入手吧。一个是可以考虑基于内容的推荐,虽然在协同过滤大肆其道的今天,很少听到它,但确实可以用上,需要根据用户对新闻的历史阅读形成兴趣,然后和新的新...
因为感觉新闻推荐必然有这种问题啊。。。。item的冷启动问题太恐怖了,这样协同过滤完全没法用啊
【 在 o0o0o (小OO) 的大作中提到: 】
: 那肯定不行啊!最后10天是你的测试数据,你是不能用测试集来调整自己模型的,这是大忌。
: 你可以这样做,把前20天的数据,自己划分为15天,5天。前15天用来训练模型,后5天作为测试集,来评判自己的模型好不好。
: 最后再把前20天的数据放在一起,预测最后10天的点击情况。
: ...................
从可行性的角度出发,那你可以考虑content-based啊,这也是能做的,可以考虑分词和话题抽取这些,经典的lda模型就可以。
从该问题情况出发,个人认为一个是这个推荐中的数据集不够,会影响推荐准确率,如果是这样,做推荐没啥意义,不能为了推荐而推荐,建议可考虑推翻lz已有的数据集和场景,利用公开数据集做news的推荐,改进方法。
【 在 hyx2011 的大作中提到: 】
: 确实有很多的论文,我也看了很多,包括Google的那两篇。但是问题是训练集中的数据只有内容和点击,大部分论文训练集中都包括一些其他feature的。。。。
【 在 hyx2011 的大作中提到: 】
: 因为感觉新闻推荐必然有这种问题啊。。。。item的冷启动问题太恐怖了,这样协同过滤完全没法用啊
对啊,我也很困惑。
如果不考虑协同过滤,这其实就是一个预测问题,根据用户现在20天的点击数据,预测用户未来10天会点击什么新闻。
要预测的结果是一个时间序列,解空间太大了!
对于这种时间序列的预测,我还没找到好的方法,搜论文也没怎么搜到。
一般的推荐,都是推荐用户喜欢什么,评判标准就是用户到底有没有点击你推荐的东西
但是,这种推荐用户未来10天每一天的新闻,感觉很挠头
课堂大作业,并不能换数据集。。。。。。。
【 在 moodyt 的大作中提到: 】
: 从可行性的角度出发,那你可以考虑content-based啊,这也是能做的,可以考虑分词和话题抽取这些,经典的lda模型就可以。
: 从该问题情况出发,个人认为一个是这个推荐中的数据集不够,会影响推荐准确率,如果是这样,做推荐没啥意义,不能为了推荐而推荐,建议可考虑推翻lz已有的数据集和场景,利用公开数据集做news的推荐,改进方法。