查看原文
其他

小布助手对话短文本语义匹配-周星星分享

刘聪NLP NLP工作站 2023-11-28

好久没有写东西啦,一个是由于最近事情太多啦,还有就是一直在打这个小布助手对话短文本语义匹配的比赛。

正好借着得了这周周周星的机会,分享一下比赛心得与方法,和大家相互学习,共同进步。目前是初赛第四。


比赛【全球人工智能技术创新大赛-赛道三: 小布助手对话短文本语义匹配】链接如下:

https://tianchi.aliyun.com/competition/entrance/531851/introduction



比赛介绍



该比赛其实是一个短文本句子匹配任务(二分类),训练数据包含输入query-pair,以及对应的真值。由于数据脱敏,所以目前市面上已有的预训练模型不能直接使用,需要从头开始预训练任务。

下面从7个部分进行分享,如下:数据增强、模型训练方式、模型预训练技巧、模型魔改、模型融合、之前周星星的分享和后续工作。

数据增强


1、对偶数据增强,即Q1-Q2 pair变成Q2-Q1 pair; 

2、闭包数据增强,即Q1-Q2=1,Q2-Q3=1,则Q1-Q3=1; 

注意:数据增强时要保证正负样本比例,与原始分布一致,否则无效果甚至导致效果变差。

模型训练方式


半交互

1、ESIM

详细介绍:https://zhuanlan.zhihu.com/p/73408108

2、Bimpm

详细介绍:https://zhuanlan.zhihu.com/p/72403578

3、SentenceBert

详细介绍:https://zhuanlan.zhihu.com/p/113133510

注意:半交互是我们一开始的思路,底层使用双路bert,上层使用bert前模型等;并且使用ESIM单模加上trick,单模也可以上0.89,但是后面使用全交互,效果更好,就没有再继续实验了。


全交互

1、先MLM预训练,再微调

2、MLM预训练与微调一起做,苏神代码思路

注意:第二种方式会比较费时,相当于预训练和微调一起做,训练轮数需要较长,因此我们采用的是第一种预训练方式。如果你卡多,完全可以采用第二种预训练方式。

模型预训练技巧


1、全词掩码WWM,通过统计常在一起token的概率,找到全词;

2、n-gram混合掩码,采用1、2、3-gram混合掩码; 

3、pair对数据与单句数据一起预训练;

4、使用开源模型的权重进行模型初始化。

模型魔改


1、BERT模型对Sequence Output求mean pooling与cls拼接,或者加和;

2、Multi-Dropout

3、BERT Embedding + Dense 与cls拼接; 

4、BERT 多层cls拼接或加和; 

5、BERT + GRU;

6、BERT + HighWay; 

7、对抗学习FGM和PGD,PGD效果更好,但是耗时太久;

8、加统计特征。

注意:目前线上使用了第1、2、4、7。

模型融合


模型融合讲究和而不同,因此我们这里使用了多种模型进行融合。 

1、BERT 

2、MacBERT

详细介绍:https://zhuanlan.zhihu.com/p/250595837

3、Zen

详细介绍:https://github.com/sinovation/ZEN

4、XlNet 

5、UniLm

详细介绍:https://zhuanlan.zhihu.com/p/163483660

6、NeZha

详细介绍:https://zhuanlan.zhihu.com/p/100044919

注意:由于复赛有时间限制,我们进行了时间估算,感觉large模型无法满足时间要求,因此这里的模型使用的都是Base,loss降到0.3左右比较合适。

单模最佳线上能到0.906,融合之后线上目前0.917877。上大模型融合,应该会更好,但是目前还没训练出来,感觉是学习率的问题,训练到一半loss直接崩盘。

之前周星星的分享


AI小花:

https://github.com/nilboy/reports/blob/master/gaic_track_3.md

ch12hu:

https://github.com/chizhu/tianchi-gaic-track3-share

lololol:

https://github.com/luoda888/2021-GAIIC-phase3-idea

猫老板:

https://gist.github.com/aloha12345x/b2b81c52dd5fee7b47e3a4eb537232f

后续工作


1、预训练、微调尝试lookahead方法 

2、模型融合Stacking 

3、自蒸馏 

4、伪标签(试过一次,效果不好,找bug中)

注意:复赛有限时,融合需谨慎。单模base模型效果才是王道。

笔者整理不易,认为有帮助的同学可以 点赞、关注、在看~~~

公众号开的晚,没有留言功能;欢迎大家加我微信,有问题可以私聊我。


打个广告,目前公司在南京(base南京)招NLP实习生,方向:语义理解、实体抽取、知识图谱、阅读理解、生成等。感兴趣的小伙伴可以给我发邮件或加我微信私聊。公司是南京云问网络技术有限公司。

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存