2022微信大数据挑战赛复盘,rank60+菜鸟

Posted 名字不如叫摸鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022微信大数据挑战赛复盘,rank60+菜鸟相关的知识,希望对你有一定的参考价值。

2022微信大数据挑战赛复盘,rank60+菜鸟

说明

之前比赛结束一直想着要写个复盘总结一下来着,一直摸,一摸鱼就是半年。。。。。以下总结主要用于个人日后复习,如题本人rank60+的菜鸟一个,对赛题感兴趣的朋友,推荐去学习前top30的开源以及决赛答辩PPT。

初赛

模型选择

根据郭大的周星星,选取visual bert作为baseline

trick

  1. EMA
  2. SWA
  3. PGD
  4. multi-drop
  5. K折
  6. class balance weights

implement details

  1. visual bert中将video embeddings与text embeddings拼接前,需对由backbone生成的video embeddings进行一次线性变换;
  2. 预测是用EMA的模型预测,不知道为什么,群里很多新手犯了这个错误;
  3. PGD略优于FGM;
  4. R-Drop性能优于multi-drop,但训练耗时太长了,后续没采用。还一个问题是,当所有random seed固定时,R-Drop不就没用了吗?那模型怎么复现?(当时使用R-Drop时取消了固定)。我不太确定是不是我理解有问题,欢迎大佬们指教;
  5. 初赛没有推理时间限制,于是跑了个10折,然后进行融模,每一折可以取不同seed,效果会更好;
  6. 赛题数据中,数据分布是极端不平衡的,最多的有13w+,最少的只有19。尝试过多种imbalance loss and sample,但效果都不理想,不如直接交叉熵。直接按数量取倒数的话,类之间权重差距过大也会导致性能下降。于是我们尝试用指数函数对权重因子进行缩放,大概有一个多点的收益。其中决赛答辩中的一位大佬也采用的类似的想法,但做法优雅的多,建议取学习一下;
  7. 文本数据需要仔细处理,不要乱洗数据

复赛

模型选择

在初赛的模型上修修改改,没有尝试对不同模型进行融模

trick

  1. Aux Loss
  2. 分层学习率

implement details

  1. 复赛中提供了视频帧而不是预先提取好的特征,群里大佬们采用的是two-stage方式,先将视频分类的backbone预训练好,再后续多模态任务中freeze。但我走的是end-to-end,直接带着backbone一起练。但这需要一个额外的分支对backbone的输出特征直接进行分类,添加一个额外的视频损失的监督信号,不然text embeddings在visual bert中的贡献会显著压倒video embeddings;
  2. 带预训练权重的backbone、bert和随机初始化的一些MLP初始学习率应该分别设置;

一些遗憾的地方

  1. 如何利用好大规模的无标签数据是一个很重要的问题,群里大多采用bert的预训练利用unlabeled数据。但我们采用的是半监督策略,因为我方向是目标检测,之前有接触过一些半监督目标检测,如soft-teacher,就钻牛角尖了,但遗憾的是不work,性能只有极小极小的上升,大概0.1k?可能是我半监督代码写错了,又或者是没有使用大模型(swim-tiny+bert-base);
  2. 如上,我队友后面去做了bert的预训练,mlm之类的,没做出来,问我,我也不会。一个目标检测,一个图像生成,就没一个NLP的;
  3. backbone选错了,用的是在ImageNet上标准预训练的SwinV2。用基于CLIP的ViT的话,效果明显好于前者;
  4. 模型加速,一直纠结于TensorRT,直接带歪队友,double牛角尖,做到最后TensorRT都没整明白。直接用ViT half计算不香吗?shift
  5. 伪标甜蜜的忘做了,shift,应该在最后对测试集打个伪标再拼到训练集上面过一遍,复赛的时候在考驾照,怕是人晒麻了,做的麻瓜一样。

以上是关于2022微信大数据挑战赛复盘,rank60+菜鸟的主要内容,如果未能解决你的问题,请参考以下文章

2021微信大数据挑战赛正式启动报名!

夺冠秘诀?华为软件精英挑战赛两届冠军这样复盘比赛经验

[极致用户体验] 为什么建议2022年不用"等比设计稿"+rem,而用"灵活设计稿"+px

微信大数据揭秘国民出境购物 东部省领先

春节微信大数据出炉,带封面微信红包收发个数超50亿

好想哭!微信视频号推荐大赛,居然输在了内存问题上!