[Task01] 零基础入门推荐系统 - 新闻推荐

先前推荐系统这块在工作中比较少接触到,一直想找机会去了解下,最近碰巧Datawhale举办了一个学习小组就报名参加了,本着学习分享的目的,将会记录下本次打卡学习的过程哈哈。

赛题解析

由于“目标客户”是没接触推荐系统的小白,所以本次我们参加的比赛也是一个比较中规中矩的天池推荐系统赛题 —— 新闻推荐。简单来说,就是根据用户过往的新闻点击行为,从而来预测下一次用户将会点击的新闻是哪一篇。

数据集分成4部分,分别是用户点击日志的train和test_a、新闻文章信息以及新闻文章embedding向量表示。

在这里,门外汉的我对于新闻文章embedding向量表示觉得陌生,于是一顿Google操作猛如虎啊,大概有了下面的内容:

推荐系统分召回和排序,召回为将每个用户找出他可能喜欢的物品的候选集,排序是对候选集按照用户的喜爱程度进行排序,最终得出给用户推荐的结果。

在推荐系统的召回阶段,需要对每个用户和每个被推荐物品做数学层面的表示,目前比较主流的方法是通过向量,也就是Embedding表示。

总结embedding有以下三个作用:

  • 通过计算用户和物品或物品和物品的Embedding相似度,来缩小推荐候选库的范围。
  • 实现高维稀疏特征向量向低维稠密特征向量的转换。
  • 训练好的embedding可以当作输入深度学习模型的特征。

我们打开看下新闻文章embedding向量表示的数据长什么样子:
[Task01] 零基础入门推荐系统 - 新闻推荐_第1张图片

数据集初探

要想做好模型,对于特征的理解是很重要,今天就先来简单认识一下这些基础变量,混个眼熟。

字段名称 字段描述
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向量表示

整个比赛用到的数据集,涉及的字段都在上面了,初步看还是蛮好理解的特征,没有特别绕的。

评分方式

这里的打分公式叫 MRR,即 Mean Reciprocal Rank,公式如是:
s c o r e ( u s e r ) = ∑ k = 1 k T ( u s e r , k ) k score(user)=\displaystyle\sum^{k}_{k=1}\frac{T(user,k)}{k} score(user)=k=1kkT(user,k)
简单解释一下, 我们最终会对测试集的每一名user的最后一条新闻浏览文章ID进行预测,需要按概率给出5个推荐结果,然后预测结果命中该user的最后一条新闻浏览文章ID则获得1分T(user,k)=1; 否则T(user,k)=0 。

如果我们是第1个推荐的结果,就命中的话,则得到1分,如果是第5个推荐结果名字,则得1/5分,如果5个都不命中,则0分。

而我们的最终得分为所有这些score(user)的平均值。

Baseline

[Task01] 零基础入门推荐系统 - 新闻推荐_第2张图片

你可能感兴趣的:([Task01] 零基础入门推荐系统 - 新闻推荐)