返回列表

2nd place solution - colum2131 Part

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

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

第二名解决方案 - colum2131 部分

作者: colum2131 | 比赛排名: 第2名

非常感谢主办方组织了这场有趣而激烈的比赛,同时也感谢我的队友们:@no9more9ria10@tomyanabe@tkm2261@yukia18

这是 LB 0.949(含泄露 LB 0.971)第二名解决方案的一部分。

简要总结

其他部分:

Stack-part 1: 匹配项的二分类

利用上一阶段生成的候选匹配项,我们集成了三个模型:GBDT (XGBoost, lightGBM) 和 BERT (xlm-roberta-base)。
对于这种 ID 对(例如 src_id, dst_id),GBDT 主要使用编辑距离特征,而 BERT 使用特定列创建的文本。这些模型用于判断该 ID 对是否匹配。

GBDT

特征

XGBoost 的特征由 colum2131 (@columbia2131) 创建,lightGBM 的特征由 ria (@no9more9ria10) 创建。
虽然每个特征有一些差异,但 XGBoost 的特征如下所示:

  • 独立生成的 src_id 和 dst_id 特征
    • 纬度 / 经度
    • 国家(使用序数编码)
    • 类别(使用序数编码)
  • 依赖 src_id 和 dst_id 生成的特征
    • 编辑距离(名称、类别、地址、城市、州、邮编、网址、电话)
      • gesh
      • leven
      • jaro
      • simple_ratio (RapidFuzz)
      • partial_ratio (RapidFuzz)
      • token_set_ratio (RapidFuzz)
      • token_sort_ratio (RapidFuzz)
      • token_ratio (RapidFuzz)
      • partial_token_ratio (RapidFuzz)
      • wratio (RapidFuzz)
      • qratio (RapidFuzz)
    • 使用 .split(“ ” 或 “, ”) 的集合相似度(名称、类别)
      • jaccard
      • dice
      • sympson
    • 由 tf-idf 编码的向量的余弦相似度(名称、类别、地址、全部)
      • tfidf(ngram_range=(1, 1), analyzer=‘word’)
      • tfidf(ngram_range=(1, 3), analyzer=‘char’)
  • 其他
    • transformer 预测的概率

建模

训练数据的交叉验证特意进行了分割以产生泄露。
具体来说,我们没有使用 GroupKFold(n_splits=2, group=‘point_of_interest’) 的折叠方式,而是使用 GroupKFold(n_splits=5, group=‘src_id’) 创建了新的折叠。
这种泄露提高了 CV 和 Public LB,因为训练数据和测试数据包含共同的记录。
我们推测纬度和经度变量以及序数类别

同比赛其他方案