Kaggle最流行NLP方法演化史,从词袋到Transformer

2019 年 11 月 12 日 机器之心

选自Medium

作者:Zelros AI

机器之心编译
参与:魔王

Kaggle 竞赛史也是实践型 NLP 的历史。


根据语境,此处「it」指代「animal」或「street」。 (来源: https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html)


著名数据科学竞赛平台 Kaggle 成立于 2010 年,是了解机器学习进化趋势的重要观测器。 Kaggle 见证了几代技术突破,吸引了数千名从业者和数百万论坛讨论。


在 Kaggle 平台的众多挑战中,自然语言科学(NLP)尤其受到关注。 的确,这几个月以来该领域出现了多项振奋人心的创新。 最近的创新则莫过于 Transformer 和预训练语言模型了。


本文将透过 Kaggle 的历史简要介绍 NLP 的发展进程。


2016 年之前: 词袋和 TF-IDF 称霸


在 2016 年之前,解决并赢得 Kaggle NLP 挑战的标准方式是: 使用词袋(计算单词在文档中的出现次数)创建特征,并输入到机器学习分类器中,如朴素贝叶斯分类器。 而 TF-IDF 则对其进行微调。


该方法曾用于 StumbleUpon Evergreen Classification Challenge 挑战赛中。 (2013 年,François Chollet 获得了该挑战赛的冠军,两年后他创造了 Keras。


2016–2019: 词嵌入+Keras/TensorFlow 崛起


2015 年,用于处理密集词表征的库诞生,如 Gensim(包括 Word2vec 和 GloVe)。 其他预训练嵌入也应运而生,如 Facebook FastText 或 Paragram。


目前神经网络框架 Keras 和 TensorFlow 具备易用性且吸引了大量用户,那时它们的初始版本已开始流行。 这些框架让捕捉词序列的意义成为可能,而不仅仅是捕捉词袋的意义。


要运行深度神经网络,需要解决最后一个大问题: 获取强大的处理能力。 低成本 GPU 的应用解决了这一难题。 2017 年 3 月 Kaggle 被谷歌收购后,开始(通过 Notebooks kernel)免费提供 GPU,这使得开发者能够更容易地获取处理能力。


之后,所有实际 NLP 方法都开始使用词嵌入和神经网络(RNN、LSTM、GRU 等等,以及注意力机制等),这成为解决 Kaggle NLP 挑战赛的标准方式。 TF-IDF 成为过去式……

使用 RNN 编码词序列。


2018–2019: PyTorch 的突破


最近,一种新的神经网络框架 PyTorch 受到了数据科学社区的关注。


且不谈 TensorFlow 和 PyTorch 的较量,我们可以确定地说 PyTorch 用户活跃社区在 Kaggle 上发展迅速。 Kaggle 平台经常出现 PyTorch notebook 和教程。

TensorFlow(蓝色)和 PyTorch(红色)的谷歌搜索趋势(来源:Google Trend)


2019: Transformer 的出现和预训练模型大爆发


如前所述,之前解决 NLP 任务的标准方式是使用词嵌入初始化神经网络的第一层,然后基于特定任务的数据训练其他层(这些任务可以是文本分类、问答、自然语言推断等)。


仔细想想你会发现,这并非最优方法。 因为每次有新任务时,你都要从零开始学习。 使用词嵌入进行初始化的模型通常需要从头学习如何推导词序列的意义,尽管这是语言理解的核心。


这时候 Transformer 来了,这一重要的范式转变在 2018 年就已出现: 从仅初始化模型的第一层转变为使用层级表征初始化整个模型。 这开启了新的工作方式: 将预训练语言模型的信息迁移到下游任务(即迁移学习)。

Transformer 模型架构(图源:https://arxiv.org/abs/1706.03762)


在实践中,目前利用预训练语言模型的最优方式是使用 Hugging Face 创建的 Transformer 库。 该库可与 PyTorch、TensorFlow 兼容。 如果你想要基于该库的 wrapper,来解决文本分类等简单任务,可查看 https://towardsdatascience.com/simple-transformers-introducing-the-easiest-bert-roberta-xlnet-and-xlm-library-58bf8c59b2a3。


如果处理的是非英文文本,你可以看看另一个库 fast.ai,它包含针对不同语言的预训练模型。 (fast.ai 库的创建者 Jeremy Howard 曾担任 Kaggle 总裁和首席科学家。

展望


现在每个人都可以使用最新一代预训练语言模型的现成库,这允许快速试验,也促进了当前最优 NLP 技术的民主化。


不知道它们会在以后的 Kaggle NLP 竞赛中发挥怎样的作用,观察这一点想必会很有趣。

原文链接: https://medium.com/@Zelros/from-bag-of-words-to-transformers-10-years-of-practical-natural-language-processing-8ccc238f679a

机器之心「SOTA模型」22大领域、127个任务,机器学习 SOTA 研究一网打尽。
登录查看更多
3

相关内容

【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
56+阅读 · 2020年3月6日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
76+阅读 · 2020年2月3日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
【文章|BERT三步使用NLP迁移学习】NLP Transfer Learning In 3 Steps
深度学习自然语言处理综述,266篇参考文献
专知会员服务
225+阅读 · 2019年10月12日
【Strata Data Conference】用于自然语言处理的深度学习方法
专知会员服务
48+阅读 · 2019年9月23日
绝对干货!NLP预训练模型:从transformer到albert
新智元
13+阅读 · 2019年11月10日
深度学习的下一步:Transformer和注意力机制
云头条
56+阅读 · 2019年9月14日
NLP预训练模型大集合
机器学习算法与Python学习
8+阅读 · 2018年12月28日
NLP预训练模型大集合!
机器之心
21+阅读 · 2018年12月28日
最流行的6大开源自然语言处理库对比
大数据技术
8+阅读 · 2018年8月14日
情感分析的新方法,使用word2vec对微博文本进行情感分析和分类
数据挖掘入门与实战
22+阅读 · 2018年1月6日
深度学习基础之LSTM
全球人工智能
26+阅读 · 2017年12月18日
2017深度学习NLP进展与趋势
云栖社区
7+阅读 · 2017年12月17日
Arxiv
6+阅读 · 2019年8月22日
Arxiv
11+阅读 · 2019年6月19日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
3+阅读 · 2018年5月11日
Arxiv
10+阅读 · 2018年3月22日
VIP会员
相关VIP内容
【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
56+阅读 · 2020年3月6日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
76+阅读 · 2020年2月3日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
【文章|BERT三步使用NLP迁移学习】NLP Transfer Learning In 3 Steps
深度学习自然语言处理综述,266篇参考文献
专知会员服务
225+阅读 · 2019年10月12日
【Strata Data Conference】用于自然语言处理的深度学习方法
专知会员服务
48+阅读 · 2019年9月23日
相关资讯
绝对干货!NLP预训练模型:从transformer到albert
新智元
13+阅读 · 2019年11月10日
深度学习的下一步:Transformer和注意力机制
云头条
56+阅读 · 2019年9月14日
NLP预训练模型大集合
机器学习算法与Python学习
8+阅读 · 2018年12月28日
NLP预训练模型大集合!
机器之心
21+阅读 · 2018年12月28日
最流行的6大开源自然语言处理库对比
大数据技术
8+阅读 · 2018年8月14日
情感分析的新方法,使用word2vec对微博文本进行情感分析和分类
数据挖掘入门与实战
22+阅读 · 2018年1月6日
深度学习基础之LSTM
全球人工智能
26+阅读 · 2017年12月18日
2017深度学习NLP进展与趋势
云栖社区
7+阅读 · 2017年12月17日
相关论文
Arxiv
6+阅读 · 2019年8月22日
Arxiv
11+阅读 · 2019年6月19日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
3+阅读 · 2018年5月11日
Arxiv
10+阅读 · 2018年3月22日
Top
微信扫码咨询专知VIP会员