返回列表

5th place (yet) solution (Carno & 2U & Jiahong's part)

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

开始: 2022-11-01 结束: 2023-01-31 商品推荐 数据算法赛
第5名解决方案 (Carno & 2U & Jiahong的部分)

第5名解决方案 (Carno & 2U & Jiahong的部分)

作者: Carno Zhao, Try Harder, EEHITer, Ryan, ToYou2U
发布时间: 2023-02-01

与其他受益于 @radek1@cdeotte 的参赛者一样,我们感谢他们对本次比赛的巨大贡献。我们还要感谢组织者和 Kaggle,我希望本次比赛中发生的一切最终能有一个令人满意的结局。

太长不看版 (TL; DR)

我们的解决方案是两个团队先前解决方案的组合版本。在团队合并之前,我们的训练-验证集划分、召回方法、特征集和重排序模型都不尽相同。我们不仅简单地对独立的提交文件进行集成,还交换了特征以进一步提高效果。

集成方法

在这里,我们用小写字母表示一个提交版本 (a, b, ...),它可以是一个重排序器的5折集成,也可以是两个或更多提交的集成。S1S2 分别是公共验证数据集划分和私有重新生成的验证数据集划分。R1R2 是两种不同的召回方法。F1F2 是两个不同的特征集,F'1F'2 是重要的特征子集。XGBCBT 分别表示 XGBoost 二分类器和 CatBoost 排序器。"+" 表示分数集成,意味着我们对多个模型的原始输出取平均值来对候选者进行重排序。"&" 表示索引集成,意味着我们为前20个候选者分配从 1.00 到 0.05(步长为 0.05)的索引分数,然后使用索引分数的总和对候选者进行重排序。"*" 表示集成过程中的权重。

我们的最终解决方案 i 如下:

  • c = a * 0.45 & b * 0.575
  • d = d1 * 0.5 + d2 * 0.5
  • e = e1 * 0.5 + e2 * 0.5
  • g = c * 0.5 & d * 0.4 & e * 0.6
  • h = (c * 0.5 & d * 0.5) & f * 0.5
  • i = g * 0.6 & h * 0.5
数据划分 召回方法 特征集 模型 重要特征集
a S1 R1 F1 CBT F1', F1''
b S2 R2 F2 XGB F2'
d1, d2 S2 R1 F1+F2' XBG, CBT
e1, e2 S2 R2 F2+F1' XBG, CBT
f S2 R2 F2+F1'' CBT

召回方法

R1

该召回方法基于公共共现矩阵 Notebook 开发(包含4个矩阵:点击、加购、下单和买2买),并使用 Numba 进行了优化。具体的数值将随代码一同发布。

R2

占位符 (PLACEHOLDER)

特征集

F1

同比赛其他方案