Kaggle-OTTO多目标推荐系统大赛baseline
来源:深度之眼 作者:比赛教研部
编辑:学姐
日前,Kaggle发布了OTTO – Multi-Objective Recommender System多目标推荐系统大赛。要求参赛者:
根据用户会话中的先前事件构建一个多目标推荐系统。

这是一个推荐系统中的序列建模任务,对本领域感兴趣的小伙伴,千万不要错过。
下面是本场比赛的baseline。
赛题分析+baseline
1、赛题链接
https://www.kaggle.com/competitions/otto-recommender-system/overview
2、赛题描述
本次比赛的目标是预测电子商务点击、购物车添加和订单。
根据用户的行为记录来预测用户各种行为下次发生交互的商品,这是一个经典的多目标推荐问题。本次比赛的目标是预测电子商务的点击量、购物车的添加量和订单。你将根据用户Session序列中的行为记录来进行推荐。
3、评价指标
这里我们需要对用户的点击,加购,购买行为进行Top-K推荐,我们需要对每一个User的Session序列给出预测的Top-20的Item结果,其评估指标使用Recall进行评估:

这里我们需要分别对这三种行为分别进行Recall指标计算,最后将三个行为的Recall值进行加权求和,其权值如下:

4、数据介绍
我们将数据完全读入,可以看到数据的组织形式如下:

可以看到数据的组织形式十分的简练,但是在训练集里面一共有2亿条数据,数据包含有四列:['session','aid','ts','type'],记录了session的用户的这三种行为,我们挑选几个Session,来根据时间来可视化一下用户的行为类型。


我们对数据中的三种行为的占比进行可视化:

可以看到,用户的绝大多数行为是点击行为,对于加购和购买行为几乎很少。
bassline分析
Item-CF的思路
由于数据量极其的大,我们这里只使用最简单的基于统计的方法来完成此次baseline,这里我们使用Item-CF的思路,通过统计得出Item-Item的相似度矩阵,然后根据用户的行为,推荐出相似的Item以完成Top-20推荐。
由于数据量实在太大,我们这里只采样3000000个session完成下面的baseline。
在过滤完数据之后,我们来生成Item-Pair,这里要注意,每一个Item-Pair都是由在同一天同一个Session中相邻的Item对构成。
在完成计算Item-Item的相似度之后,我们就可以来根据相似度矩阵来进行推荐了,其推荐函数如下:
这样就可以完成对用户的推荐了,这里要注意,我们对不同行为的推荐结果都是相同的,由于只有点击行为的数据是非常丰富的,对于其他行为,数据是非常少的,所以这里就直接对这三个行为进行了相同的推荐。
可以看到,我们这次的Baseline的代码非常简单,而且效率非常的高,使用Kaggle自带的CPU环境只需要10分钟+就可以完成全流程的跑测,线上得分:0.553,虽然这个得分不是很高,但是这个baseline跑测效率较高,代码结构易懂,其潜力还是很大的~
关注【学姐带你玩AI】公众号,回复“OTTO”领取baseline
扫描二维码👇报名本场新赛
