文章目录[隐藏]
Part1 赛题背景
提高中小商家的数字化经营能力,是我国数字经济做强做优做大的关键基础,也是推动数字技术与实体经济深度融合的关键路径之一。
中小商家通过分发数字消费券,提升其数字化经营的收益率和效率,是其数字化经营能力的重要标志之一,但同时也面临着长尾客户及消费券数量多、非结构化数据异质性强等挑战。
本赛道将重点考察图学习、个性化推荐、序列建模等机器学习能力。主办方提供一定量级的匿名化处理后的、中小商家在数字化经营中的常见情景数据——消费券/购物券的分发与核销数据,要求选手设计出能帮助中小商家提高其券/包分发效率的方法。
Part2 数据说明
本赛题会向选手提供一段时间内消费券向用户展示和被用户领取的数据,并要求选手预测在这段时间以后用户对消费券的领取行为。
为了尽可能还原真实的工业数据环境,本赛题还会向选手提供用户和消费券的基础特征、用户间关系以及消费券知识图谱等数据,同时确保这些数据的采集和构造都是发生在待预测时间段之前。详细的数据说明如下:
消费券展示/领取 (train)
包含一段时间内消费券向用户展示和被用户领取的数据,每行表示一次展示。
列名 | 涵义 |
---|---|
id | 仅作为数据的标识,内容为从 0 开始编号的索引值 |
log_time | 展示时间索引,按展示时间戳从早到晚排序后,从 0 开始编号的索引值 |
user_id | 用户标识,从 0 开始编号的索引值 |
item_id | 消费券标识,从 0 开始编号的索引值 |
label | 本次展示的消费券被用户领取时为 1,否则为 0 |
dt | 本次展示对应日期的天级相对时间(如 0 代表第一天的数据) |
用户基础特征 (user_feat)
包含所有用户的基础特征,每行表示一位用户。
列名 | 涵义 |
---|---|
user_id | 用户标识,从 0 开始编号的索引值 |
gender | 性别(含性别未知) |
age | 年龄(已对实际年龄做分档处理) |
occupation | 用户职业的索引 |
entity_cnt | 用户历史行为的标签及频次,标签由业务专家产出,能反映用户的行为类型(例如喝咖啡、打车等)。标签经过脱敏处理为从 0 开始编号的索引值。 数据格式为 k1:v1,k2:v2,...,kn:vn,其中 ki 为标签标识, vi 为经过缩放处理的频次。 |
消费券基础特征 (item_feat)
包含所有消费券的基础特征,每行表示一张消费券。
列名 | 涵义 |
---|---|
item_id | 消费券标识,从 0 开始编号的索引值 |
category_l1_name | 消费券所属一级类目,从 0 开始编号的索引值 |
category_l2_name | 消费券所属二级类目,从 0 开始编号的索引值 |
category_l3_name | 消费券所属三级类目,从 0 开始编号的索引值 |
voucher_benefit_floor_amount | 消费券使用门槛,即使用时原订单需要支付的最低金额(满减优惠券),或商品原价格(商品优惠券)(单位:分)。 |
voucher_benefit_amount | 消费券优惠金额(单位:分) |
用户间关系 (uu_graph)
包含上述用户间的社交关系,每行表示一个关系。
列名 | 涵义 |
---|---|
left_user_id | 用户标识,从 0 开始编号的索引值(与用户基础特征表对齐) |
right_user_id | 用户标识,从 0 开始编号的索引值(与用户基础特征表对齐) |
消费券图谱 (mkt_kg_graph)
描述消费券与其他实体(小程序、商家、品牌)关联的知识图谱,每行表示图谱中的一条边。
列名 | 涵义 |
---|---|
source_entity_id | 起始实体标识,每种类型实体的标识都是从 0 开始编号的索引值。其中消费券标识与消费券基础特征中的券 ID 为统一 ID 体系。 |
target_entity_id | 终止实体标识,每种类型实体的标识都是从 0 开始编号的索引值。其中消费券标识与消费券基础特征中的券 ID 为统一 ID 体系。 |
source_entity_type | 起始实体类型,包括消费券、小程序、商家、品牌共 4 种类型实体 |
target_entity_type | 终止实体类型,包括消费券、小程序、商家、品牌共 4 种类型实体 |
注:实体类型+实体标识是知识图谱中每个节点的唯一标识。
A/B 榜测试数据 (test)
A/B 榜使用的测试数据是“消费券展示/领取”数据表中时间段之后发生的消费券展示记录,每行包含一个用户标识和一个消费券标识,表示向该用户展示了该消费券(相同的记录已去重),选手需要对每行数据进行预测,即预测该用户是否会领取该消费券。其中 A 榜和 B 榜会分别从中随机选取部分数据计算对应榜单的指标。
列名 | 涵义 |
---|---|
id | 仅作为数据的标识,内容为从 0 开始编号的索引值 |
user_id | 用户标识,从 0 开始编号的索引值 |
item_id | 消费券标识,从 0 开始编号的索引值 |
Part3 数据分析
首先我们可以完成以下角度进行分析:
- 训练集与测试集用户重叠情况
- 训练集每个字段类型,与标签的关系
- 数据集中图结构的存在规律
由于篇幅原因,我们这里只展示部分分析逻辑。首先我们对消费券历史使用情况与标签进行联合分析,发现热门的item更加容易被下单。
对于消费券的类型,我们也与标签进行了联合分析,发现热门category的item更加容易被下单。
对于消费券本身,其优惠金额越多更容易被使用。 这里后续建议转换为优惠比例,更加有区分性。
对于用户与用户之间的关系图,可以直接展示为无向图。从图中可以发现用户是划分为组,且组与组之间区分比较明显。
对于消费券和应用之间的关系图,也可以展示为无向图。从图中看出热门APP关联的消费券更多,建议从APP提取消费券特征。
Part4 建模思路
通过上述的数据建模和分析,我们可以得到以下的建模建议,供大家参考:
模型选择
赛题训练/测试数据,用户和消费券属性,大部分为结构的字段,因此树模型是优选的模型。
当然由于数据也包含图结构,也可以考虑尝试图网络,但主要的模型应该还是树模型。
特征工程
在对字段进行基础编码后,赛题很多信息需要额外做图结构的特征工程,建议考虑以下特征提取:
- 用户与优惠券历史消费情况
- 用户关联用户的消费券消费情况
- 用户关联APP的消费券绑定情况
这里可以手动进行图结构的特征提取,也可以考虑直接使用图嵌入的方式提取特征。当然也可以原始数据中的消费券序列加入进行建模。
模型验证
由于赛题给定了用户和时间轴,比赛也要求不能使用历史的消费进行特征提取,最终划分验证集逻辑需要自己划分。
比赛链接:https://www.atecup.cn/atecHomeDetails