前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDD Cup 2022 | 文本相关性的多任务预训练解法

KDD Cup 2022 | 文本相关性的多任务预训练解法

作者头像
NewBeeNLP
发布2022-11-11 11:01:51
6060
发布2022-11-11 11:01:51
举报
文章被收录于专栏:NewBeeNLP

作者 | 崔轩阁 整理 | NewBeeNLP

大家好,这里是NewBeeNLP。KDD除了正常论文投稿之外,还会召一些业界公司协办KDD Cup比赛,如果能在KDD Cup数据竞赛中获得Top 10,就能中稿KDD Cup Workshop会议,所以KDD Cup还是挺值得参加的。今天我们分享来自一份文本相关性赛题的Top方案。

0.赛题介绍

KDD Cup 2022,Amazon Product Search。Query-SKU相关性识别赛题。今年是Amazon文本相关性,Baidu风电预测两道赛题。

然而从Google H5-Index指标来看,"数据挖掘和分析"领域的会议引用量偏低。猜测是因为很多工作都不放源码,让其他人根本没法Follow :)

Google H5-Index @ DataMining

这篇文章,分为三个部分:数据描述,介绍个人方案,摘录Top3方案。内容会比较简略,直接展现有效、核心的策略。

1. Amazon Product Search赛题描述

ProductSearch 赛题数据介绍

输入数据Query: 分词后,99%长度小于20;

输入数据Product: 包含标题、品牌、颜色、卖点介绍、商品描述。bulletpoint,desc字段分词后的数据较长

评估数据集: 没有在训练集中出现过的Queries,以及部分没有出现过的Products数据。

Task1: NDCG排序任务

Task2: 4分类任务。识别为Exact、Substitute(可替代的商品)、Complement(配件类型商品)、Irrelevanct

Task3: 2分类任务。识别Query-Prodcut是否构成可替代商品。举例: Query=毛衣 SKU=羊毛

Amazon提供的数据量级在200w,包含三种语言,英语、日语、西班牙语,访问连接在[1]。

2. 个人方案

这是传统的文本匹配问题,在我们看来,这场比赛主要有两个挑战点:

Q1. 如何提高那些训练集中"看不见"的Queries的搜索质量?

A1: 我们需要更加 "通用" 的Embedding表征。

Q2.商品侧,products拥有非常丰富的文本信息,如何才能充分表征这些信息?

A2: 对于Bert-Like的模型,随着max_length参数增长,训练耗时快速增长到难以承受。 我们需要一个额外的语义单元来捕捉所有的文本信息。

代码语言:javascript
复制
+-----------+---------------------------+-------------------+-----------+
|  SubTask  |         Methods           |       Metric      |  Ranking  |
+-----------+---------------------------+-------------------+-----------+
|   task1   |  ensemble 6 large models  |    ndcg=0.9025    |    5th    |
+-----------+---------------------------+-------------------+-----------+
|   task2   |    only 1 large model     |  micro f1=0.8194  |    7th    |
+-----------+---------------------------+-------------------+-----------+
|   task3   |    only 1 large model     |  micro f1=0.8686  |    8th    |
+-----------+---------------------------+-------------------+-----------+
A1-方案设计

受到一些多任务预训练工作的启发[2],我们采用的MLM Task,分类Task,对比学习Task。

预训练策略 & 效果;最有价值策略: Product2Query

最主要的收益的来源于Product2Query任务,核心思路: 从商品侧截取一部分文本作为Query,此类样本作为正样本,负样本则是随机构造。这个策略是检索比赛中的常见策略之一[2],这里我们拿来作为预训练任务。

备注: 我们借鉴Span-Bert论文截取策略,使得Query长度满足泊松分布(数据真实分布)。其中日语单独设置泊松分布的参数,详细步骤参见论文Appendix部分。

A2-方案设计

Tri-gram分词粒度的思路来源于,KDD'21 两篇的业界论文[3,4]

微调阶段策略 & 效果;最有价值策略: 细粒度分词EmbeddingLayer

在微调阶段,我们使用Poly1-Loss,FGM、R-Drop、EMA等等策略,提升了模型训练的稳定性。由于本次比赛的数据量较大,我们没有采用PGD、FreeLB、Smart更复杂的对抗训练策略,不过这些有效策略的代码实现可以在这里[5]找到。

置信学习效果。Task1胜出,Task2、Task3落败

值得一提的是,我们使用"置信学习"[6],来尝试剔除~4%的噪声数据,在Task1取到正向效果。在论文Experiments部分,我们使用数据集的"困难度"角度对此进行解释。

段落总结: 我们使用数据增强、多任务预训练和几种微调方法来提高我们模型的泛化性和鲁棒性。

3. 其它Top方案

方案来源: 比赛讨论区: https://www.aicrowd.com/challenges/esci-challenge-for-improving-product-search/discussion[1] Papers录取结果: ESCI Challenge for Improving Product Search[2]

4.论文+代码

  • Paper: ESCI Challenge for Improving Product Search[3] (TBD)
  • Code: https://github.com/cuixuage/KDDCup2022-ESCI[4]
  • Discussion: https://discourse.aicrowd.com/t/solution-zhichunroad-5th-task1-7th-task2-and-8th-task3/8006[5]
  • Video: TBD

本文参考资料

[1]

https://www.aicrowd.com/challenges/esci-challenge-for-improving-product-search/discussion: https://link.zhihu.com/?target=https%3A//www.aicrowd.com/challenges/esci-challenge-for-improving-product-search/discussion

[2]

ESCI Challenge for Improving Product Search: https://link.zhihu.com/?target=https%3A//amazonkddcup.github.io/

[3]

ESCI Challenge for Improving Product Search: https://amazonkddcup.github.io/

[4]

https://github.com/cuixuage/KDDCup2022-ESCI: https://github.com/cuixuage/KDDCup2022-ESCI

[5]

https://discourse.aicrowd.com/t/solution-zhichunroad-5th-task1-7th-task2-and-8th-task3/8006: https://discourse.aicrowd.com/t/solution-zhichunroad-5th-task1-7th-task2-and-8th-task3/8006

[6]

Shopping Queries Dataset: A Large-Scale ESCI Benchmark for Improving Product Search: https://arxiv.org/abs/2206.06588

[7]

阿里灵杰电商搜索召回2022比赛: https://github.com/muyuuuu/E-commerce-Search-Recall

[8]

蘑菇先生:KDD'21 | 淘宝搜索中语义向量检索技术: https://zhuanlan.zhihu.com/p/409390150

[9]

蘑菇先生:KDD'21 | 揭秘Facebook升级版语义搜索技术: https://zhuanlan.zhihu.com/p/415516966

[10]

Poly1-Loss 分类损失函数: https://aijishu.com/a/1060000000321354

[11]

[SemEval 2022比赛,SemEval 2022 Task2: 对抗训练和对比学习: https://zhuanlan.zhihu.com/p/488455448

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NewBeeNLP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0.赛题介绍
  • 1. Amazon Product Search赛题描述
  • 2. 个人方案
    • A1-方案设计
      • A2-方案设计
      • 3. 其它Top方案
      • 4.论文+代码
        • 本文参考资料
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档