竞赛题目 (离线赛与平台赛题目一样,只是数据量不一样,离线2000w+数据,平台11亿+数据)
在真实的业务场景下,我们往往需要对所有商品的一个子集构建个性化推荐模型。在完成这件任务的过程中,我们不仅需要利用用户在这个商品子集上的行为数据,往往还需要利用更丰富的用户行为数据。定义如下的符号:
U——用户集合
I——商品全集
P——商品子集,P ⊆ I
D——用户对商品全集的行为数据集合
商品子集都是偏服务类的商品,涵盖阿里巴巴集团十个主要的商品大类,例如汽车售后服务、摄影服务、餐饮、电影等,其特色是线上购买、线下服务。
那么我们的目标是利用D来构造U中用户对P中商品的推荐模型。
数据说明
本场比赛提供20000用户的完整行为数据以及百万级的商品信息。竞赛数据包含两个部分。
第一部分是用户在商品全集上的移动端行为数据(D),表名为tianchi_fresh_comp_train_user_2w,包含如下字段:
字段 | 字段说明 | 提取说明 |
user_id | 用户标识 | 抽样&字段脱敏 |
item_id | 商品标识 | 字段脱敏 |
behavior_type | 用户对商品的行为类型 | 包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4。 |
user_geohash | 用户位置的空间标识,可以为空 | 由经纬度通过保密的算法生成 |
item_category | 商品分类标识 | 字段脱敏 |
time | 行为时间 | 精确到小时级别 |
第二个部分是商品子集(P),表名为tianchi_fresh_comp_train_item_2w,包含如下字段:
字段 | 字段说明 | 提取说明 |
item_id | 商品标识 | 抽样&字段脱敏 |
item_ geohash | 商品位置的空间标识,可以为空 | 由经纬度通过保密的算法生成 |
item_category | 商品分类标识 | 字段脱敏 |
训练数据包含了抽样出来的一定量用户在一个月时间(11.18~12.18)之内的移动端行为数据(D),评分数据是这些用户在这个一个月之后的一天(12.19)对商品子集(P)的购买数据。参赛者要使用训练数据建立推荐模型,并输出用户在接下来一天对商品子集购买行为的预测结果。
有了新想法我先在离线赛上实验,成绩有提升我才去平台赛,后来就以平台赛为主了。
不过也遇到一些问题,在hive里运行一点问题没有的SQL语句,到了ODPS里就不能用,有很多限制,毕竟数据量大了好几个数量级,处理起来很费资源,不能那么随意的写SQL了。
刚开始没理解题意,我还纳闷为啥给两张表
U——用户集合
I——商品全集
P——商品子集,P ⊆ I
D——用户对商品全集的行为数据集合
我们的目标是利用D来构造U中用户对P中商品的推荐模型
让我们预测的是用户会购买商品子集里的哪些商品,不是所有的商品
刚开始没理解题意,提交的结果F1值极低,去掉非P中商品之后,F1值咔咔的上去了
平台赛
快进前50了!
借鉴了李强大神团队的PPT,用了GBDT迭代决策树
--odps sql
--********************************************************************--
--author:断线纸鸢自由
--create time:2016-04-12 15:12:09
--********************************************************************
describe tianchi_data.tianchi_fresh_comp_train_user_online;
Create table tianchi_fresh_comp_train_item as
select * from tianchi_data.tianchi_fresh_comp_train_item_online;
Create table tianchi_fresh_comp_train_user as
select * from tianchi_data.tianchi_fresh_comp_train_user_online;
。。。。。。
最终成绩是8/3602
离线赛
day3.hql
create external table tianchi_fresh_comp_train_item(item_id string,item_geohash string,item_category string)
row format delimited fields terminated by ','
location '/tianchilxitem';
create external table tianchi_fresh_comp_train_user(user_id string,item_id string,behavior_type bigint,user_geohash string,item_category string,time string)
row format delimited fields terminated by ','
location '/tianchilx';
hive> source /home/guo/day3.hql;
PS:
准确率(Accuracy),精确率(Precision),召回率(Recall)和F1-Measure