美文网首页
文本分类任务中对性能有重要影响的tricks

文本分类任务中对性能有重要影响的tricks

作者: top_小酱油 | 来源:发表于2020-03-07 19:30 被阅读0次

一、稳定有收益的,祖传老方子(简直太少了)

1.RNN based model 包括lstm gru等,使用双向结构
2.embedding 后使用dropout
3.显然问题fasttext,简单问题CNN,复杂问题RNN,终极问题bert
4.ensemble
5.尽可能找到还原语义的pretrained embedding,实际情况是oov千奇百怪,拼写检查,基本上是100倍的努力,一点点收益,或者拆词,拆字能一定程度上缓解

二、有可能有负作用,跟具体的配方有关,考验炼丹水平,看运气

1.embedding 是否参与训练(Yoon Kim论文的结论是训练好,然而实际中基本对半)
2.BN和dropout,以及他们的相对位置和顺序(有收益的对半分)
3.meta-feature的使用,比如词性,情感,还有各种语言学特征和元信息等等(有收益的比较少)
4.要用CNN的话,用空洞版本,窗口搞大,基本稳定超过3.4.5的conv1D
5.数据增强,drop,shuffle,replace,近义词,扩充,截取(CCF 360人机大战,kaggle Quora)
5.循环学习率(这个base max step 调的好,能巨大加速收敛速度)(kaggle QIQC)
6.char/subword level的使用(kaggle toxic)
7.词元化,词干化(有收益的比较少)怼好分词(蚂蚁金服)
8.不均衡下的采样,梯度放缩,focal loss(kaggle QIQC)
9.伪标签,半监督(kaggle toxic)
10.去停用词(基本都是负作用),标点保留还是去掉(kaggle QIQC)
11.过拟合后冻层finetune(魔镜杯,CCF360)
12.长短文本各适合什么模型呢,仅在一个数据集上发现,ngram+svm可以吊打深度模型,文本挺长的,结论应该不可以泛化(达观杯)
13.多embedding concat,mean,收益不稳定,有时候能发现加速收敛(kaggle QIQC)
14.加宽加深(知乎看山杯)
15.boosting(知乎看山杯)
16.vocab的数量,是否统一替换或者过滤低频词(kaggle avito)
17.网络增加冗余的激活然后concat(kaggle mecri)
18.Maxlen覆盖百分之99就可以了,不需要最大

三、数据量足够的情况下,强行破坏分布的行为,都有可能是无用功,比如清洗。但是小数据,或者分布有偏,就考验你能不能往正确的方向上改了。文本分类的论文,除了textCNN,fasttext,bert(顺路碾压下)。恕我直言,其他的哈哈哈哈,故事讲的一个比一个好看。就普适性(10个以上数据集的表现)来看,几乎所有的吊炸天structure可以被精调的两层lstm干掉。

四、还有,调参基本都是玄学,大家有一些模糊的方法论,过拟合要干啥,欠拟合要干啥。但是你让他拍着胸脯说,因为所以科学道理,这样保证可以,那是不可能的。玄学就是玄学,更多还要结合具体的数据,数据本身就是超参空间的一种,然后你的参数,结构,然后是你的套路(tricks),会的套路越多,需要尝试的空间越大。欢迎大家补充,最好注明收益验证的场景希望算力有新的突破,就调参和调structure而言,automl完全可以取代深度炼丹工程师。

相关文章

网友评论

      本文标题:文本分类任务中对性能有重要影响的tricks

      本文链接:https://www.haomeiwen.com/subject/qvphdhtx.html