返回列表

15th Place Solution

532. OTTO – Multi-Objective Recommender System | otto-recommender-system

开始: 2022-11-01 结束: 2023-01-31 商品推荐 数据算法赛
第15名解决方案

第15名解决方案

作者: ADAM. (Grandmaster) | 排名: 15/2512

首先,我要感谢组织者以及那些分享知识和想法的人。特别感谢 @carnozhao 提供了优秀的 numba notebook。如果没有他,我肯定会放弃这次比赛,每天躺在床上享受我的新年假期(哈哈)。

方法概述

  • 检索 & 重排序 两阶段模型
  • 本地交叉验证:在第3周数据上训练 / 在第4周数据上验证
  • 检索召回率 (Recall@20):0.585(公开LB)/0.585(私有LB)
  • 重排序模型:具有182个特征的 lightgbm ranker。(单模型得分 0.601(公开LB)/0.600(私有LB))
  • 集成:5个 lightgbm ranker,使用相同的特征,但在负采样和模型训练中使用不同的种子。(得分 0.601(公开LB)/0.601(私有LB))

检索/候选阶段

  • 每个会话100个候选。(候选数从 50 -> 100,提升了 0.0007。没有时间和内存测试200个。)
    • 历史 aids。
    • 基于 @carnozhao notebook 的 i2i2i。
    • 最热门的 aids 以补足100个候选。
  • 在第4周数据上的本地CV [LB 0.585]
候选数量 点击 加购 下单 总和
20 0.5397 0.4220 0.6580 0.5754
50 0.6223 0.4838 0.69498 0.6243
100 0.6745 0.5265 0.7188 0.6567
  • i2i 的主要修改
    • 顺序权重:交互中相邻的 aids 具有更大的权重。(会话1包含 a,b,c aids,b,c 的权重为 1,a,c 的权重为 1/2。)在 i2i 相似度和 u2i 推荐中都使用了这些权重。我在这里没有使用时间权重,因为我注意到大多数交互都在1小时以内。
    • 归一化 i2i 相似度字典:热门 aids 与其他 aids 的 i2i 分数较大。这在 u2i 阶段是不公平的。只需使用热门 aids 的 i2i 分数的平均值进行归一化。

重排序模型

具有182个特征的 lightgbm ranker。负样本比例为 0.2。(单模型得分 0.601(公开LB)/0.600(私有LB))

  • 会话特征(添加更多会话特征对我无效)
    • 事件计数 / 类型计数
    • aid_nunique / type aid_nunique
    • 首次时间、最后时间、时间范围
  • Aids 特征
    • 来自(1周,2周)的各种计数/nunique
    • 小时特征,用于检测一周内仅存在1-2小时的某些“促销”aids。
    • buy2cart, buy2order, cart2order 的比率
    • 重新加购、重新下单、重新点击的比率
    • aids 的首次和最后时间
  • Aid X 会话特征
    • 各种计数,订单衰减计数
    • 时间差
  • 检索特征
    • 重访排名/分数
    • i2i 排名/分数
同比赛其他方案