532. OTTO – Multi-Objective Recommender System | otto-recommender-system
与其他受益于 @radek1 和 @cdeotte 的参赛者一样,我们感谢他们对本次比赛的巨大贡献。我们还要感谢组织者和 Kaggle,我希望本次比赛中发生的一切最终能有一个令人满意的结局。
我们的解决方案是两个团队先前解决方案的组合版本。在团队合并之前,我们的训练-验证集划分、召回方法、特征集和重排序模型都不尽相同。我们不仅简单地对独立的提交文件进行集成,还交换了特征以进一步提高效果。
在这里,我们用小写字母表示一个提交版本 (a, b, ...),它可以是一个重排序器的5折集成,也可以是两个或更多提交的集成。S1 和 S2 分别是公共验证数据集划分和私有重新生成的验证数据集划分。R1 和 R2 是两种不同的召回方法。F1 和 F2 是两个不同的特征集,F'1 和 F'2 是重要的特征子集。XGB 和 CBT 分别表示 XGBoost 二分类器和 CatBoost 排序器。"+" 表示分数集成,意味着我们对多个模型的原始输出取平均值来对候选者进行重排序。"&" 表示索引集成,意味着我们为前20个候选者分配从 1.00 到 0.05(步长为 0.05)的索引分数,然后使用索引分数的总和对候选者进行重排序。"*" 表示集成过程中的权重。
我们的最终解决方案 i 如下:
| 数据划分 | 召回方法 | 特征集 | 模型 | 重要特征集 | |
|---|---|---|---|---|---|
| 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 |
该召回方法基于公共共现矩阵 Notebook 开发(包含4个矩阵:点击、加购、下单和买2买),并使用 Numba 进行了优化。具体的数值将随代码一同发布。
占位符 (PLACEHOLDER)