大作业总结

推荐评论展示任务

https://github.com/guangweis/BERT--Recommended-comments

1.训练数据:

训练集:16000个样本,0代表不推荐,1代表推荐。其中文本是长度小于20的短文本。并且‘1’ label的样本比较少


image.png

2.评估标准:AUC

尝试的模型:
1.基于bert
2.Bi-LSTM
3.XLNET
最终选择了两个基于bert的模型
取得了0.96965分数

3.比赛概况和思路

由于bert预训练模型在NLP各项任务都表现很好,我们就首先尝试了bert模型。基于bert的模型,我们使用了基于CLS和CNN的。在ELMO模型中,我们得知多层RNN中,不同RNN层包含不同的信息。BERT是由12层transformer训练来的,我们就考虑将BERT十二层隐藏层权重相加,其中权重也是可以训练的。在最后模型融合期间,为了提高模型的多样性,我就尝试了BI-LSTM和XLNET(但是效果并不好)。我还尝试了加入统计特征,经过很多尝试后,我仅保留了文本长度特征,主要为了方便bert模型中获取一句话最后一个词的索引。伪标签一直是一个很有效的方法,于是我就找了8w左右的未标签数据。并且我尝试了用近100w带评分的评论数据进行Bi-LSTM模型的预训练。但是结果显示,效果提升并不大。EMA优化方法是一种很稳定的效果提升方法,我在比赛中也使用了它。我还尝试了FGM对抗训练,这个方法对提升我的BI-LSTM模型效果很明显,但是对于基于bert的模型,效果提升一般。由于文本标签分布不平均,这种标签分布差异在我的伪标签上十分明显(0标签要比1标签多8倍),于是我考虑的对1标签的样本进行数据扩充(翻译和EDA)和权重损失,但是效果反而变差了。

4.模型介绍

1.bert-cls


image.png

2.bert-cnn


5.提升技巧

1.EMA
2.FGM对抗训练
3.伪标签
因为时间的问题我们对XLNET模型没有进行过多调参,所以效果最差。采用这些技巧,我们的Bi-LSTM的效果已经超过了没使用这些技巧的BERT模型。

6.融合策略

我采用了5折交叉验证,最后获得了10个模型。我选取了8个做了简单的平均融合。

7.对我没用

我尝试了很多技巧,下面是本次比赛对我无效的。
1.标签平滑
2.权重损失
3.简单的预训练bert
4.幂函数后处理预测
5.数据扩充

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 七月一个骄阳似火的季节,一个不同于往年无聊,游山玩水的假期,一个让我充实忙碌的假期。在这个美丽的七月...
    榆树167潘桂轩阅读 321评论 0 6
  • 正文 本次课程内容十分充实,对于我们的技能锻炼十分到位,而我觉得最大的收获是,我们对软件工程有了更深刻的认识,能够...
    张照博阅读 990评论 0 3
  • 经过这次大作业,发现几点问题: 1. 面向对象以及抽象思维不够 2. CSS写得太乱,需要学学如何整体架构CSS ...
    RunningIris阅读 752评论 0 0
  • 人际关系不管如何,记得你还是你。总结了之后,再来过就好。最重要的是,活在当下,曾经自己以为的过错,那是曾经,现在,...
    Vaaaaaaaa阅读 1,455评论 0 0
  • 您是我生命中的一层天 我知道自己是幸福的鸽子呵 我不在意季节许下给我的风和雨 不是有足够能力来抗衡 而是不忍您以如...
    双奕桃花阅读 395评论 1 6