返回列表

23th place solution

487. H&M Personalized Fashion Recommendations | h-and-m-personalized-fashion-recommendations

开始: 2022-02-07 结束: 2022-05-09 商品推荐 数据算法赛
第23名方案

第23名方案

作者: kuto (Master) | 比赛排名: 23rd

祝贺所有的获胜者,非常感谢主办方举办了如此有趣的比赛!
也要感谢我的队友 @zakopur0@irrohas@negoto@dehokanta
这次比赛对我们来说非常艰难。我将在这里分享我们团队 ZKMRD 的解决方案。

摘要

Solution Summary

候选集

我们通过多种策略为每位客户和每周生成商品候选集。

  • 最热门商品
  • 过去购买过的商品
  • 基于用户的协同过滤
  • 基于物品的协同过滤
  • 不同颜色

特征工程

这是我们在最后两周能够提高分数的一个重要原因。

客户静态属性

  • customers.csv 中的基本属性

客户动态属性

  • 购买次数
  • 最后购买标志
  • 距离上次购买的天数/周数
  • 购买商品的价格/折扣
  • 平均销售渠道
  • 按商品分段的购买率
  • 复购率

商品静态属性

  • articles.csv 中的基本属性
  • Bert 句向量

商品动态属性

  • 趋势值
  • 每周热门排名
  • 购买次数(1天前、2天前、上周..)
  • 按分段(年龄、商品组)统计的购买次数
  • 按分段(年龄、商品组)统计的热门排名
  • 平均销售渠道

协同过滤 (CF) 特征

  • 基于物品的 CF 分数
  • LightGCN(基于 GCN 的 CF 模型)的分数/排名

数据集

创建一个好的数据集很难,但在 @paweljankiewicz@lihaorocky 的评论帮助下,我们成功了。非常感谢。

关于数据集的关键点:

  • 仅使用生成的候选样本,而非所有正样本
  • 使用在候选集中至少有一个正样本的客户
  • 从候选集中移除当前非在售商品

模型

我们团队使用了 LGBMRanker 模型。
设置非常简单,没有什么特别的。

交叉验证 (CV)

CV 策略如上图所示。

  • 创建特征和候选集:来自训练集的过去一周
  • 训练:100w-103w
  • 验证:104w

在创建提交文件时,我们使用 100-104w 作为训练集。

后处理

我们对所有模型应用了两种后处理方法。

  1. 使用基于年龄的最热门商品作为冷启动客户的预测。
  2. 从偏好线下购买的客户中移除低线下销售比率的商品。

模型融合

融合了由不同候选集和特征生成的 6 个模型预测结果。
模型融合对我们的模型很有效。LB 分数提高了约 0.001。

同比赛其他方案