第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 会话特征
- 检索特征