返回列表

9th place solution

498. Foursquare - Location Matching | foursquare-location-matching

开始: 2022-04-14 结束: 2022-07-07 商品理解 数据算法赛
第9名解决方案

第9名解决方案

作者:taksai (Grandmaster) | 比赛排名:第9名

设置

通过 2折交叉验证 (2fold CV) 进行本地评估
按 POI (兴趣点) 进行 GroupKFold 分组

第一步:候选选择

  • 为每个 ID 选择 400 个候选
    • 基于经纬度的 KNN:350 个候选
    • 基于经纬度 + 名称 TFIDF 的 KNN:50 个候选
  • 最大 IoU:0.994,共 4.2 亿个候选对

第二步:轻量级模型建模

  • 使用 CatBoost 配合 TFIDF 相似度特征
    • 特征 (40个特征)
      • 基于 TFIDF 的文本相似度
      • 文本的原始值 & 差分整数值
      • 经纬度的原始值 & 差分值
    • 阈值为 0.005
    • 最大 IoU:0.987,300 万个候选对

第三步:完整建模

  • CatBoost 和 LightGBM
    • CatBoost 对每段文本进行文本编码
      • 文本编码带来了 0.010 的提升
    • 特征 (第二步的 40 个 + 100 个特征)
    • 文本相似度计算使用了 gesh, LCS, leven, jaccard 等 12 种方法
    • ID 计数,匹配 ID 数
    • 对 ['name', 'name_match'], ['categories', 'categories_match'] 每对进行目标编码 (Target Encoding) (2折)

第四步:后处理

  • 计算节点预测值:取邻居预测值的平均,按预测值排序
    • 阈值:0.4

分数

  • 最终 CV:0.905 (2折 CV)
  • 线上得分 (LB):
    • CatBoost (cb): 0.925
    • cb + 后处理 (pp): 0.930
    • cb + lgb + pp: 0.933
    • cb + lgb + pp + 训练所有数据 (1折): 0.943
    • cb + lgb + pp + 所有数据 + 5个模型集成: 0.945
    • cb + lgb + pp + 所有数据 + 集成 + 增加迭代次数 (过拟合): 0.948
同比赛其他方案