杭州全球人工智能技术创新大赛-商品标题实体识别一等奖方案(top3)

赛题分析

数据样例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DJSKj6gV-1679987692789)(F:\weixin\imgs\image-20230328101644700.png)]

标签:52种类型,均脱敏

数据:

  • 标注样本4w条
  • 无标注样本100w条
  • 测试集每阶段各1w条

数据分析:

  • 输入多样化(汉字、字母、数字、空格等)
  • 实体类型与商品类型相关
  • 实体无嵌套现象
  • 实体样本为长尾分布

赛题难点:

  • 解决输入中多类型符号表示
  • 解决语言模型在电商领域适应性
  • 充分利用无标注数据增强单模型效果

整体设计

方案框架:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7KlbCAk1-1679987692789)(F:\weixin\imgs\image-20230328102125073.png)]

1、模型输入

  • 将输入转为小写,减少未登录词影响
  • 将空格转为特殊符号“|”

2、预训练

  • 赛题给定104w样本+Multi-CPR 100w样本
  • 使用MLM进行增量预训练

3、微调

  • Nezha + global pointer
  • 原始训练集 + 清洗训练集 + 100w伪标签样本

预训练

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BYmO4Tho-1679987692790)(F:\weixin\imgs\image-20230328102451069.png)]

  1. **训练数据:**204w无标签数据

  2. **初始化权重:**nezha-wwm-base

  3. **预训练任务:**MLM

  4. 参数设置:

    lr:2e-5

    max length:128(动态padding)

    batch size:128

    epoch:5

    mlm probability:0.15

微调

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wq06C8pT-1679987692790)(F:\weixin\imgs\image-20230328102529589.png)]

  • 通过伪标签蒸馏策略,充分利用无标注数据增强单模型效果
  • K折融合减少伪标签噪声
  • 清洗样本减少标注噪声

创新

领域预训练

  1. MLM (Masked Language Model):遮蔽词语言模型
  2. WWM (Whole Word Mask):全词遮蔽
  3. Ngram Mask:词片段遮蔽
MLM WWM Ngram Mask CPR data 初赛指标
0.8101
0.8116
0.8108
0.8113
0.8120
0.8124
0.8125

结论:在数据量大的情况下简单的MLM足以有很好的效果。

伪标签+数据清洗

  • 通过K折伪标的方式对单模型蒸馏,使单模型性能逼近多模型,方便落地;
  • 通过修改伪标签损失比例进一步减少伪标噪声的影响;
  • K折清洗缓解标注噪声对模型的影响,也可作为一种数据增强手段。
模型 伪标数据量 损失比例 数据 复赛指标
nezha base - - 原始 0.8154
nezha base 50w - 原始 0.8161
nezha base 100w - 原始 0.8164
nezha base 100w 清洗 0.8166
nezha base 100w 0.45 清洗 0.8172
nezha base 100w 0.5 清洗 0.8174
nezha base 100w 0.5 清洗+原始 0.8175

损失计算方式

1、批次内包含标注样本和伪标样本:
L = ( 1 − α ) ∗ l o s s ( l a b e l e d ) + α ∗ l o s s ( p s e u d o ) L=(1-α)*loss(labeled)+α*loss(pseudo) L=(1α)loss(labeled)+αloss(pseudo)
2、批次内只包含标注样本:
L = l o s s ( l a b e l e d ) L=loss(labeled) L=loss(labeled)
3、批次内只包含伪标样本:
L = α ∗ l o s s ( p s e u d o ) L=α*loss(pseudo) L=αloss(pseudo)

训练策略

swa(随机权重平均)

  • 平均最后五次验证checkpoint权重,避免陷入局部最优,提升模型泛化能力;
  • 性能约提升2-3万分点。

动态融合nezha后三层输出

  • 性能约提升2万分点。

差分学习率+逐层降低学习率

  • 放大任务层学习率;
  • 将nezha参数按照layer分为3组,越靠近任务层的组学习率越大

对抗训练

  • 使用AWP(Adversarial Weight Perturbation)增强模型的抗干扰能力,相比FGM提升1.4k左右。

模型优势

  • 选择global pointer作为下游任务层,性能、训练速度、推理速度都优于CRF结构,更适应落地需求;
  • 使用 预训练 加 伪标签蒸馏 的方式,充分利用无标注样本来提升单模型效果,使得单模型性能逼近多模型;
  • 多种优化策略,增强模型在实际场景中的鲁棒性。

总结

创新性

  • 使用分层学习率、对抗训练、swa等技术,增加模型拟合性能和鲁棒性;
  • 采用预训练和伪标签结合的方式,在有限的场景下提高单模型的性能;
  • 通过多折交叉清洗,在避免引入人工的前提下减少数据噪声的影响。

思考和展望

  • 在伪标签构造部分直接选取了所有样本,之后可以尝试使用预测分数过滤掉部分置信度低的预测样本,提高训练效率;
  • 可以使用模型蒸馏的方式对模型进一步压缩;
  • 引入领域词典等额外特征增强模型的效果。

公众号:自然语言处理及深度学习

猜你喜欢

转载自blog.csdn.net/yjh_SE007/article/details/129816936