【Datawhale组队学习】零基础入门推荐系统 - 新闻推荐【Task 01】

【Datawhale组队学习】零基础入门推荐系统 - 新闻推荐

  • 【Datawhale组队学习】零基础入门推荐系统 - 新闻推荐
    • Task 01: 赛题理解+Baseline

【Datawhale组队学习】零基础入门推荐系统 - 新闻推荐

参加了Datawhale第19期的组队学习之零基础入门推荐系统 - 新闻推荐,分享任务1的学习经历。

Task 01: 赛题理解+Baseline

1、到github上下载code,https://github.com/datawhalechina/team-learning-rs;
2、运行“赛题理解+Baseline.ipynb”;
3、运行过程中,from tqdm import tqdm出现找到不tqdm包的错误。

解决步骤:
1、打开Anaconda Prompt命令行窗口;
2、输入pip install tqdm,报以下错误,提示找不到匹配的下载镜像;
【Datawhale组队学习】零基础入门推荐系统 - 新闻推荐【Task 01】_第1张图片
3、使用pip config list查看pip当前源,发现错误来源于上一次安装pytorch时设定的特定的镜像;
4、修改pip当前源:搜索找到pip.ini文件,将该文件里原来安装pytorch的清华镜像修改为阿里镜像,保存pop.ini。
在这里插入图片描述
【Datawhale组队学习】零基础入门推荐系统 - 新闻推荐【Task 01】_第2张图片
5、再输入pip install tqdm,安装成功。
【Datawhale组队学习】零基础入门推荐系统 - 新闻推荐【Task 01】_第3张图片
3、登录阿里云-天池大数据竞赛-学习赛https://tianchi.aliyun.com/competition/gameList/ coupleList里的“零基础入门推荐系统 - 新闻推荐新人赛”,下载数据。
在这里插入图片描述
这个md文件需要安装MarkdownPad 2后才能打开,打开后是4个数据文件的下载链接。
【Datawhale组队学习】零基础入门推荐系统 - 新闻推荐【Task 01】_第4张图片
点击链接,可完成4个数据文件的下载。4个文件的说明如下:
train_click_log.csv:训练集用户点击日志;testA_click_log.csv:测试集用户点击日志
articles.csv:新闻文章信息数据表;articles_emb.csv:新闻文章embedding向量表示;
sample_submit.csv:提交样例文件
文件主要字段的描述如下:
user_id,用户id
click_article_id,点击文章id click_timestamp,点击时间戳
click_environment,点击环境 click_deviceGroup,点击设备组
click_os,点击操作系统 click_country,点击城市
click_region,点击地区 click_referrer_type,点击来源类型
article_id,文章id,与click_article_id相对应
category_id,文章类型id created_at_ts,文章创建时间戳
words_count,文章字数 emb_1,emb_2,…,emb_249,文章embedding向量表示

理解赛题:
1、赛题简介:根据用户历史浏览点击新闻文章的数据信息预测用户未来的点击行为, 即用户的最后一次点击的新闻文章。
2、理解数据:数据来自某新闻APP平台的用户交互数据,包括30万用户,近300万次点击,共36万多篇不同的新闻文章,同时每篇新闻文章有对应的embedding向量表示。为了保证比赛的公平性,从中抽取20万用户的点击日志数据作为训练集,5万用户的点击日志数据作为测试集A,5万用户的点击日志数据作为测试集B。
我的问题:1)为什么要分为测试集A和测试集B?
2)文章embedding向量表示什么?

3、理解评估指标:
1)提交.csv中的每行为:(user_id, article1, article2, article3, article4, article5),其中user_id为用户id, article_1, article_2, article_3, article_4, article_5为预测该用户点击新闻文章Top5的article_id依概率从高到低排序。
2)评价公式: s c o r e ( u s e r _ i d ) = ∑ i = 1 5 s ( u s e r _ i d , k ) k score(user\_id)=\sum_{i=1}^5\frac{s(user\_id,k)}{k} score(user_id)=i=15ks(user_id,k)

根据该user_id的真实点击结果,若真实点击结果等于article1(即命中), 则s(user_id,1)=1, s(user1,2-4)都是0,该用户的score(user_id)=1, 按照这种计算方法,areticle1、2、3、4、5命中的得分score分别为1、1/2, 1/3, 1/4, 1/5
**我的理解:**所有用户的真实点击结果未公开,score不用我们计算,提交后系统会计算出测试集B中所有用户得分的平均值MRR(Mean Reciprocal Rank)来排名。
理解分析:
1)该用户点击新闻文章Top5的article_id的概率如何计算?
2)Baseline中应用了2个关键的算法:一是文章与文章之间的相似性矩阵计算,一是基于文章协同过滤的召回。这2个算法还需要反复去理解。
3)最耗时的2个部分:一是计算文章的相似性矩阵,一是给25万个用户根据物品的协同过滤推荐文章。是否有加速的方法,值得好好考虑。

你可能感兴趣的:(推荐系统,机器学习,推荐系统,python,深度学习,人工智能)