从Kaggle看文本分类技术演进

从Kaggle看文本分类技术演进

竞赛( Leaderboard) 是论文最好的练兵场,撕开论文第三页上方华丽花哨的大图,是骡子是马拉出来溜溜。


为什么说竞赛(Leaderboard)是论文最好的练兵场。原因有以下四个:

  1. 统一测试集的划分,避免了自己通过不规范不统一的验证集划分来自说自话,运动员想当裁判。众所周知,不同的测试集其实方差波动范围不小.
  2. 允许trick,在trick的加成下比试去比model baseline,避免了自己偷偷用了trick提升了百分之80的效果,然后把功劳送给第三页上面的花里胡哨的大图。然后说我真棒。
  3. 会有很多队伍(上千支)同时来检验paper,是否难于实现,开源是否丰富,是否难以泛化都决定了你工作的质量。
  4. 竞赛数据一般比较新,数量可靠(百万级别很常见),没有过度优化甚至泄露标签的风险。


下面我们总结了历史上kaggle的历次文本分类比赛。昨日重现,文本分类是怎样的技术演进方向。


一、青铜时代

特征工程+分类器的天下。

LSHTC数据集

kaggle.com/c/lshtc

(5 years ago)这也是著名大规模文本分类数据集LSHTC的首次登场,后来演变成了text classification的benchmark。

5年前。DL刚起步,风还没有刮到NLP,于是喜闻乐见,方案是特征工程+分类器,特征如TFIDF,BM25等。线性分类器融合。

中规中矩的监督学习框架,没有什么亮点,不过TFIDF,BM25就是IR领域里最经得住历史考验的东西,沿用至今。

论文和代码见storage.googleapis.com/


二、白银时代

电影评论分类,初见word2vec的身影

Rotten Tomatoes 电影评论

(4.5years ago)

kaggle.com/c/sentiment-

这时候word2vec已经被大家讨论起来,不过端到端的方案似乎还还不多。方案是特征工程+分类器,特征多了bag of words的word2vec。


电影评论分类,word2vec大显身手

这就是大家常用的IMDB数据集了。

(4years ago)

kaggle.com/c/word2vec-n


DL开始见威力,和FE+分类器的方法不相上下,具体这里有一些讨论kaggle.com/c/word2vec-n,这时候应该有一些端到端的方案了,不过大家似乎还是愿意把word2vec当feature用。DL框架也不是很多被讨论。


Quora数据集

kaggle.com/c/quora-ques

(3years ago)

这其实是个文本匹配的任务,拿在这里是因为这中间没有文本分类比赛,这个比较有代表性。

DL开始大放异彩,不用magic的情况下,孪生网络+embedding为代表的DL baseline 可以碾压FE+分类器了。这时候各种框架也开始百花,keras占领了kaggle半壁江山,pytorch因该刚刚还在襁褓里。


这中间缺了一些文本分类的比赛,也进入文本分类的黑暗时期,毫无亮点,大家沉浸在排列组合的无聊游戏中疯狂水论文,于是乎embedding + CNN/RNN/LSTM/Highway/Attention/Memory/hierarchy/Graph/Tree 开始排列组合,类似与CTR中的排列组合水论文大法。不过涌现了一些比较高质量的embeding,如fasttext和glove等等。

这里面的方法当属textCNN(创新型较大) fasttext(工程意义大),其他的可以扔进垃圾箱(个人观点)。


Toxic数据集

kaggle.com/c/jigsaw-tox

(1 years ago)

DL的端到端方法基本碾压了FE,强力baseline: bilstm几乎可以吊打所有的文本分类结构,ELMO还没诞生,这个比赛也是各种排列组合,没什么意思。


三、黄金时代

Quora数据集

kaggle.com/c/quora-insi

(0.4 years ago)

pretrianed model的光照亮了nlp,给历史翻篇,枚举和排列组合结构终于被一棒子打死。于是乎大家看到一个bert直接霸榜,不过这次比赛禁止了外部数据,所以bert不能用作最后提交方案,所以导致大家穷尽可能的使用embedding+排列组合的方法也没打过public的bert,前排用bert挥一挥衣袖,没有留下一片云彩。


Toxic2 数据集

kaggle.com/c/jigsaw-uni

(now)

pretrained model大放异彩。bert和gpt2开始霸榜,xlnet进入讨论区。几乎清一色的finetune model。手痒痒也参加了这个比赛,不得不说,bert真强。


如果细看文本分类 :

FE-> embedding -> embedding端到端 -> pretrianed model

CTR:

FE -> FM/FFM ->embeding + MLP -> DeepFM等一系列端到端

是否有些相似呢?

虽然这里是用文本分类这种基本任务为例子,不过pretrianed model标志着NLP正式进入 CV的玩法,以resnet和bert为代表性的backbone被大家牢牢记住。当然新的方法的出现不意味着老方法的完全失效,在一些特定场景下,还是有用武之地。大浪淘沙,金子最终会闪闪发光。

编辑于 2019-06-23 11:58