天池新闻推荐入门推荐赛(baseline代码学习)

datawhale的新闻推荐赛事

1.数据和任务

新闻数据来自某新闻APP平台的用户交互数据,包括30万用户,近300万次点击,共36万多篇不同的新闻文章,同时每篇新闻文章有对应的embedding向量表示。

训练集:20万用户的点击日志数据

测试集A:5万用户的点击日志数据

测试集B:5万用户的点击日志数据

官方给出的数据

分别看看各个csv的前十行是什么样子

文件1是关于文章的信息,有四列,分别代表文章id,种类id,,文章创建时间和单词个数。

 文件2是各个文章的embedding,每篇文章的向量是250维度。

文件3是提交示例,对于每一个用户按照可能点击率概率大小依次分布

文件4、5分别是测试集和训练集,列分别代表用户id,点击文章id,点击的时间,点击环境,点击设备组,点击操作系统,点击所在国家,点击地区,点击人类型。

评价推荐算法的目标函数:

假如article1就是真实的用户点击文章,也就是article1命中, 则s(user1,1)=1, s(user1,2-4)都是0, 如果article2是用户点击的文章, 则s(user,2)=1/2,s(user,1,3,4,5)都是0。也就是score(user)=命中第几条的倒数。如果都没中, 则score(user1)=0。

即越早命中得分越高。

2.代码思路

1.调出所需要的包(略)

2.节约内存函数

传入df,目的是压缩df的内存,返回一个压缩前的大小,压缩后的大小,以及压缩所需要的时间。

3.读取采样或者全量数据

第一个函数是随机采样出来一小部分,并且去除重复数据,用作测试。

第二个函数比较重要,读取点击数据,这里分成线上和线下,如果是为了获取线上提交结果应该将测试集中的点击数据合并到总的数据中

接下来说明是线下测试,读取文件夹的数据。

4.获取用户-文章-点击时间字典

根据点击时间获取用户的点击文章序列   {user1: [(item1, time1), (item2, time2)..]...}的格式

5.获取点击最多的topk个文章

获取热门的文章

6.itemcf的物品相似度计算

利用文章的embedding计算文章的相似度,并考虑时间因素,计算出相似性矩阵并保存到本地。

接着将前文的全量数据集输入这个函数里,进行文章之间的相似度计算。

7.召回(baseline里用到的是最简单的基于内容的推荐,可以换成其他的召回+精排策略替代)

召回一定数量的文章,不够数量的话用点击数量比较多的热门文章补齐。

对于具体的用户,从已经得知到的用户点击文章的序列字典,文章相似性矩阵,要召回的文章数量,热门的文章(用作补全)得到一个用户可能点击概率最大的K个项目的一个列表。

之后便是设置一系列的参数,从召回的十篇文章中选取五篇进行生成提交的文件csv。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leo2vec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值