返回列表

Public 13th / Private 16th solution 💪

432. Shopee - Price Match Guarantee | shopee-product-matching

开始: 2021-03-09 结束: 2021-05-10 商品理解 数据算法赛
Public 13th / Private 16th solution 💪

Public 13th / Private 16th 解决方案 💪

作者: Changyi (vicioussong) | 比赛: Shopee - Price Match Guarantee | 排名: 公开榜 13th / 私有榜 16th

Shopee 是我第一个从头到尾完整参加的 Kaggle 比赛,也是我投入精力最多的一场比赛。在这个挑战中,图像、文本和后处理都是取得好成绩的重要因素,因此很难同时优化所有这些方面。幸运的是,我的队友 @meliao@ywenlu@dandingclam@mathurinache 提供了巨大的帮助。

同时,祝贺 @ywenlu 晋升为 Competition Master(竞赛大师)!

1. 总结

我们的主要解决方案基于 Chris 的著名基线和 Ragnar 的 ArcFace 训练 Notebook。
我们花费了超过一半的时间专注于优化单一图像模型和 TF-IDF,但分数卡在 0.740 左右。

直到比赛结束前两周,我们终于发现了后处理的重要性。因为我们通过观察本地匹配发现,有近 4000 行数据没有匹配到任何其他产品,而这种情况在目标(测试集)中是不存在的。

借助后处理,我们仅使用一个 B3 模型和 TF-IDF 就达到了 0.763 的分数。随后我们集成了其他模型,在公开榜上达到了 0.771。

架构图

2. 图像模型

基于 Ragnar 的分层数据集,我们使用 1/3 的数据进行训练,并在另外 2/3 的数据上检查验证损失。这帮助我们快速识别有用的增强方法和参数。我在这里发布了我的结果:Shopee Image Benchmark

以下是我们在最终阶段使用的模型:

模型 图像尺寸 数据增强 验证损失
efficientnet b3 512 central_crop
random_crop
random_flip_left_right
14.2
eca_nfnet_l1 512 RandomResizedCrop
CenterCrop
RandomBrightnessContrast
OneOfBlur
14.31
efficientnet b4 cosine LR 384 central_crop
random_crop
random_flip_left_right
random_hue
random_saturation
random_contrast
random_brightness
14.34
efficientnet b4 456 central_crop
random_crop
random_flip_left_right
random_flip_up_down
random_hue
random_saturation
random_contrast
random_brightness
mosaic_augmentation
14.3

3. 文本模型

3.1 TF-IDF

预处理

  • 移除表情符号、标点符号、电商停用词(如 'ready', 'stock', 'free', 'gift', 'jaring', 'sabun', 'siap', 'kirim', 'diskon',我花了 3 个小时手动识别它们)
  • 使用英语和印尼语词形还原器进行词形还原(印尼语词形还原器可在此处找到 shopee_simplemma,来源:
同比赛其他方案