从词袋到transfomer,梳理十年Kaggle竞赛,看自然语言处理的变迁史

大数据文摘出品

来源:medium

编译:LYLM、胡笳

自2010年创办以来,Kaggle作为著名的数据科学竞赛平台,一直都是机器学习领域发展趋势的风向标,许多重大突破都在该平台发生,数以千计的从业人员参与其中,每天在Kaggle论坛上都有着无数的讨论。

各种类型的挑战赛(计算机视觉、语音、表格处理等等)都会在这个在线平台发布,而自然语言处理(NLP)问题最近亦备受关注。诚然,过去几个月里,我们已经见证这一领域有好几项振奋人心的创新,而目前流行的的则是transformers和预训练语言模型。

Medium上一位从事NLP的博主就通过Kaggle竞赛梳理了一遍自然语言处理的发展历史,看看NLP这些年都是怎样一路走来的。

左边:动物没有过马路,因为它太累。右边:动物没有过马路,因为它太宽。基于语境,句子的最后一词“它”在这可指“动物”或是“马路”,摘自谷歌transformers词条。

2016以前:词袋(bag of words)模型和TF-IDF算法盛行

在2016年之前,解决(或者说赢得)Kaggle自然语言处理挑战的标准方法是采用词袋模型(即计算文章中各个单词出现的次数)来建立特征输入机器学习分类器,典型的有朴素贝叶斯算法。稍微完善些的则有TF-IDF算法。

这种方法被应用在如StumbleUpon Evergreen分类挑战。

StumbleUpon是一个推荐引擎,根据用户的兴趣向其推荐相关的网页。网页分为两种,一种是暂时的,在短期内有价值的网页,另一种是长期的,一直都有效果的网页,该挑战的目的就是对这两种页面进行二元分类。

数据集链接:

https://www.kaggle.com/c/stumbleupon

这里顺便提一句,在2013年解决该难题的冠军是François Chollet——就是两年后编写出Keras的那个人。

François Chollet

2016-2019:词嵌入模型+Keras以及TensorFlow 的兴起

在2015年,开始出现稠密词表征(dense word representations)库,如Gensim库(包括Word2Vec和GloVe)。其他预训练嵌入模型也陆续出现,像Facebook的FastTest或是Paragram。

同时,拥有大量用户、简单可用的神经网络框架的首发版本也开始流行,即上文提到的Keras和TensorFlow。它们不再仅使词袋模型,开始使用词序模型捕获句意。

然而要运行深度神经网络,还有最后一项难题亟待解决:需要高处理性能。成本越来越低的GPU解决了这个难题。Kaggle平台在2019年3月被谷歌收购后,平台(通过合作式的Notebooks内核)可以向用户免费提供GPU使用。

从那时起,词嵌入和神经网络(RNN,LSTM,GRU等等,以及基于此的改进,如attention)这些可行方案就成了解决Kaggle中自然语言处理难题的标准方法

这时候就不得不说一句:永别了,TF_IDF!

使用RNN编码单词序列

2018-2019:PyTorch杀出重围

近几个月,一个新的神经网络框架PyTorch在数据科学界越来越受关注。

在此不讨论TensorFlow和PyTorch的优劣,但可以肯定的是,在Kaggle上越来越多的人开始使用PyTorch了。平台上经常有PyTorch的在线笔记和教程发布。

2019年:transformers和预训练语言模型诞生

如上所述,直至目前为止,词嵌入模型(在大量的无标注数据上进行预训练)仍是解决自然语言处理难题的标准方法,利用此模型初始化神经网络的第一层,然后在特定任务(可能是文本分类,问答或自然语言推断等等)的数据上训练其他层。

但如果仔细想想,这种方式其实并非最优。事实上,每当需解决一项新问题时,你基本需要从零开始学起。通过词嵌入进行初始化的模型需要从零开始学习如何从单词序列中提取含义——哪怕那是语言理解的最核心部分。

transformers出现后,这是2018年发生的关键范式转变:从仅初始化模型的第一层到使用阶梯式表达对整个模型进行预训练。这也产生了新的训练模式:将信息从预训练语言模型转移到下游任务(也称为迁移学习)。

实际上,使用预训练语言模型的最好方式是利用Hugging Face(由法国企业家创立,目前总部在美国,和我们一样毕业于Station F微软AI工厂的校友)开发的transformers库。目前它与PyTorch和TensorFlow兼容。

如果你想用它更上层的封装来完成一些诸如文本分类的简单任务,可以看看 simple-transformer 库。

相关链接:

https://towardsdatascience.com/simple-transformers-introducing-the-easiest-bert-roberta-xlnet-and-xlm-library-58bf8c59b2a3

simple-transformer库的github:https://github.com/ThilinaRajapakse/simpletransformers

下一步会更有趣

上一代预训练语言模型已有现成的库可供大家使用,这使得大众都可以进行尖端自然语言处理技术的研究和实验。

可以预见的是,这些技术在后续Kaggle自然语言处理比赛中的应用会很有趣,比如最近的TensorFlow 2.0问答挑战,需要预测用户关于维基百科页面内容提出的问题的真实答案。让我们拭目以待!

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

Image placeholder
淡然
未设置
  72人点赞

没有讨论,发表一下自己的看法吧

推荐文章
首日精彩 DTCC大会见证数据库领域十年变迁!

【ITPUB独家报道】2019年5月8日-10日,第十届中国数据库技术大会(DTCC2019)在北京新云南皇冠假日酒店隆重召开。作为国内顶级的数据领域技术盛会,本次大会以“数据风云十年变迁”为主

多次问鼎 NuerIPS、MRQA 等国际顶级比赛,百度 NLP 技术到底有多强?

人工智能技术的发展尤其是深度学习技术的成功运用,推动自然语言处理(NLP)进入了高速发展阶段。NLP目前也是应用范围最广的人工智能技术之一,已在智能搜索、智能客服、智能助手、智能推荐等方面得到了大规模

go学习笔记-goroutine竞争状态

如果两个或者多个goroutine在没有相互同步状态的情况下同时访问某个资源,并且同时对这个资源进行读写的时候,对于这个资源就处于相互竞争状态(racecandition)。下面来看一个相互竞争的例子

Google 21 岁生日,一文回顾 Google 发展史

9月27日,谷歌在Google搜索引擎首页庆祝自己21岁生日。 在涂鸦存档上,谷歌发布了一封庆祝信: 21年前,两位斯坦福大学博士生谢尔盖·布林和拉里·佩奇发表了一篇有关启动“大型搜索引擎”原

老焦专栏 | 用 RACI 模式梳理业务流程,提高业务发布的效率

转载本文需注明出处:微信公众号EAWorld,违者必究。最近经常在不同场合说,技术发展已经进入深水区。IT技术发展已经越来越成熟了,尤其在金融行业,以前是解决从无到有的问题,现在该有的系统都有了,是解

React 生命周期变迁

React中组件提供了对应的生命周期支持, 定义组件的的方法: create-react-class模块 class类 它们之间的的区别这里就不展开了,具体可查看官方文档区别,我们继续说生命周

Salesforce 斥资157亿美元收购Tableau之变

昨天Salesforce的一项收购决定刷新了自己的最高纪录,据外媒报道,6月10日Salesforce将以157亿美元收购数据可视化分析公司Tableau。Salesforce表示收购Tableau旨

Salesforce收购Tableau意味着什么?

在客户关系管理软件巨头Salesforce宣布收购商业智能工具Tableau后不久,我认为它又回到了“单一应用”的行业趋势。这种单一应用趋势的含义是什么?不是那些银行仍然热衷的内部大型机,而是云计算中

Spring Boot 中关于自定义异常处理的套路!

在SpringBoot项目中,异常统一处理,可以使用Spring中@ControllerAdvice来统一处理,也可以自己来定义异常处理方案。SpringBoot中,对异常的处理有一些默认的策略,我们

gMIS吉密斯十年执念:Lower Costs较低成本Better Productivity较高效率

Hello2020!元旦快乐!今起揭开21世纪20年代的篇章.1.gMIS吉密斯十周年2010-2020,十年转眼已成历史,gMIS吉密斯——通用管理信息系统(generalManagementInf

全面集成阿里云,Salesforce在中国正式转正

进入2019年,SaaS竞争已进入深水区,当很多CRM厂商还在庆幸Salesforce在中国没有准入资格时,Salesforce已经在悄然布局,曲线入市。7月25日,在阿里云峰会·上海站上,全球最大C

阿里毕玄:从生物系学生,到技术团队 leader,他是如何完成自我蜕变的

©MSuzanneD.Williams编者按:新的技术层数不穷,困扰程序员的不仅有学不完的新技术,还有每个人在职业生涯中必然会面对的成长路线问题。这就像一个产品有了清晰的roadmap,下一步走的才会

如何给程序中的变量起个好名字?

对一个人来说,名字很重要,俗语说“人如其名”。对程序中的变量而言,名字同样非常重要。 作为开发人员,你要花费大量的敲代码时间来创建变量和考虑给变量起个名字。名字无处不在。你可以命名文件、类、方法和

Python教程-将序列分解为单独的变量

问题 现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量? 解决方案 任何的序列(或者是可迭代对象)可以通过一个简单的赋值操作来分解为单独的变量。唯一的要求就是变量的总数

人工智能给陌陌直播带来的变革与挑战

中国的人工智能产业相较国外起步较晚,但崛起迅速,尤其是人工智能上升为国家战略以来,更是吸引科技巨头以及众多垂直领域公司深耕不辍。在内容直播领域更是掀起一股强劲的浪潮,毫不夸张地说,AI技术已经成为了内

从网络接入层到 Service Mesh,蚂蚁金服网络代理的演进之路

本文作者:肖涵(涵畅)上篇文章《 诗和远方:蚂蚁金服ServiceMesh深度实践|QCon实录》中, 介绍了ServiceMesh在蚂蚁金服的落地情况和即将来临的双十一大考,帮助大家了解Servic

十年软件通胀率:从 2009 到 2019 年,软件越来越昂贵

过去十年,软件定价逐渐上升。在我们调查的一百个商业应用程序中,价格平均上涨了62%,其中包括一些比较便宜的应用程序。如果用户现在花钱购买一款应用程序,那么它很可能比十多年前的价格贵98%以上。

“第 1 份工作,我只干了 2 周就被辞退了” | 十年系列

我是一个有故事的程序员。01.写在前面十年前,我还是象牙塔中数学系的一名普通的大三学生。九年前,我是富士康流水线工厂的一名工人。六年前,我包里揣着3000 RMB来北漂。三年前,我在一家互联网金融公司

三代阿里云总裁同台共话,续写十年“飞天”传奇

阿里云三任总裁王坚、胡晓明、张建锋同台对话,这本身就是一个“爆点”。作为9月25日云栖大会主论坛的“压轴戏”,三位技术大咖凑在一起,会碰撞出怎样的火花?从左到右:蚂蚁金服集团总裁胡晓明;阿里巴巴集团技

从关系型数据库到分布式机器学习,揭秘腾讯大数据十年发展历程

大数据技术在过去10多年中极大改变了企业对数据的存储、处理和分析方式。如今,大数据技术逐渐成熟,涵盖了计算、存储、数仓、数据集成、可视化、NOSQL、OLAP分析、机器学习等丰富领域。在未来,大数据技

毕业即失业,找工作找到怀疑人生 | 十年系列

01.写在前面十年前,我还是象牙塔中数学系的一名普通的大三学生。九年前,我是富士康流水线工厂的一名工人。六年前,我包里揣着3000元RMB来北漂。三年前,我在一家互联网金融公司做到了技术负责人。两年前

容器十年 ——一部软件交付编年史

张磊阿里云容器平台高级技术专家、CNCF官方大使Kubernetes项目资深成员与维护者,曾就职于Hyper、微软研究院(MSR),现在负责Kubernetes技术及上下游相关工作。2019年,全世界

价值100亿美元!微软刚刚击败亚马逊,拿下美国国防部十年云计算基建订单

大数据文摘授权编译自《纽约时报》编译:李雷、曹培信、刘俊寰为期10年,价值100亿美元。经过长达一年的竞标,微软接连击败了谷歌、IBM、Oracle和亚马逊,拿下了美国国防部云计算这宝贵的一单。上周五

我的十年程序生涯:建模启航

我是一个有魄力的人!我是一个有魄力的人!请大家记住这句话,只有记住这句话,你才能明白我这十年间的选择。十年前我还是象牙塔中数学系的一名普通的大三学生。六年前我包里揣着3000块钱来北漂。三年前我在一家