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

Kaggle自然语言处理文本匹配竞赛华人第1名团队PPT与代码-深度学习与特征工程 Kaggle自然语言处理文本匹配竞赛华人第1名团队PPT-深度学习与特征工程,代码仓库地址在ppt 内 立即下载

大数据文摘出品

来源: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

stumbleupon.zip 来自 kaggle官网的 StumbleUpon Evergreen Classification Challenge数据集 1.可用于决策树二元类机器学习. 2.产品分类模型的训练 3.推荐算法的训练 2.文件内容包括: ---train.tsv 训练集 22.0MB ---test.tsv 测试集 9.4MB ---sampleSubmission.csv 22.0KB ---raw_comtent.zip 164.8MB 立即下载

相关推荐

kaggle中的stumbleupon数据集,机器学习资源(包含train,testsampleSubmission,raw_content)

kaggle中的stumbleupon数据集,需要许多步骤才能下载到,上传方便各位下载

2022-kaggle-nlp赛事:Feedback Prize - English Language Learning

最近kaggle上的nlp比赛,完整代码已公开,直接fork下来跑就行!!!

qq_56591814的博客 3844

StumbleUpon Evergreen 数据集

StumbleUpon Evergreen数据,来源于Kaggle中的一个题目StumbleUpon Evergreen Classification Challenge。 StumbleUpon 是一个个性化推荐引擎,根据用户的兴趣行为给用户推荐网页,而有些网页内容是即时性(ephemeral)的,比如新闻股票网页(用户短暂感兴趣),有些网页是长久性的(evergreen)如体育,理财等(用户持续感兴趣)。现要分辨网页是ephemeral的还是evergreen的,以便向用户推荐更加准确的网页。 这是一个二分类问题。 查看StumbleUpon数据的详细信息:https:www.kaggle.com/c/stumbleupon/data

Kaggle竞赛 Real or Not? NLP with Disaster Tweets 文本分类

在这场竞赛中,你面临的挑战是建立一个机器学习模型,预测哪些推文是关于真实灾难的,哪些不是。你将有权访问由 10,000 条手动分类的推文组成的数据集。

艰难困苦,玉汝于成。 2242

kaggle 文本情感分析数据集

kaggle 电影评论情感分析(Bag of Words Meets Bags of Popcorn)的全部数据集,自己上网找了半天都找不到,最后是让同学上外网下的,在这里分享给想学习nlp的同学

海康威视4G摄像头直连实战:不用萤石云,手把手教你用ISUP SDK搞定跨网段视频流

本文详细介绍了如何通过海康威视ISUP SDK实现4G摄像头的直连通信,提供了一套零平台费、自主可控的技术方案。文章涵盖技术选型、设备端配置、服务器端开发及高级应用场景,特别适合中小型安防项目,帮助开发者解决跨网段视频流传输难题,降低长期运营成本。

weixin_27076351的博客 471

新手入门:Kaggle NLP比赛总结

一、背景介绍很早就想入坑 kaggle NLP 类比赛,记得最初是跟着教程跑入门赛 Bag of Words Meets Bags of Popcorn,被一步步的文本预处理搞得心累,...

Datawhale 2407

Fluent 中多相流模型全面解析

3.颗粒或液滴在连续相中的运动:若关注颗粒或液滴在连续相中的运动轨迹、分布规律以及与连续相的相互作用,如喷雾干燥、气力输送等过程,Eulerian-Lagrangian 模型则是最佳选择。Eulerian-Eulerian 模型可以准确模拟气体在固体颗粒中的流动情况,包括颗粒的流化状态、气体与颗粒之间的传热传质过程,为气固流化床的优化设计和操作提供依据。通过该模型,可以了解混合器内不同位置的混合程度、颗粒的运动轨迹以及液固相间的相互作用,从而改进混合器的结构和操作条件,提高混合效率。

khhdp的博客 3087

Kaggle入门比赛:灾难推文的自然语言处理 详细教程

Kaggle入门比赛详细教程,轻松前十,完整源码近期会发在GitHub上

jxxxxj0327的博客 1981

别再买模块了!手把手教你用FT232RL-REEL芯片,从零设计一个USB转串口电路板

本文详细介绍了如何使用FT232RL-REEL芯片从零设计USB转串口电路板,涵盖核心器件选型、原理图设计、PCB布局布线及焊接调试等关键步骤。通过实战案例和性能对比,展示自制电路板在成本、性能和可靠性上的优势,特别适合硬件爱好者和工程师参考。

weixin_30561425的博客 434

告别wx.showActionSheet:微信小程序自定义底部弹框的5种实现方式对比

本文深入对比了微信小程序中替代原生wx.showActionSheet的五种自定义底部弹框实现方案。从基础视图层模拟到组件化封装,再到利用第三方UI库、CSS3动画及Page-Meta组件,详细分析了各方案的优缺点与适用场景,旨在帮助开发者根据项目需求,选择最合适的方案以实现高度定制化、交互丰富的弹框效果。

weixin_29005499的博客 191

【Spark】5、决策树二元分类

本节使用决策树二元分类分析StumbleUpon数据集,预测网页是暂时性的(ephemeral)或是长青的(evergreen),并调校参数找出最佳参数组合,提高预测准确度。 StumbleUpon Evergreen大数据问题场景分析 StumbleUpon是一个个性化的搜索引擎,会按用户的兴趣和网页评分等记录推荐给你感兴趣的网页,有些网页是暂时性的,比如新闻,这些文章可能只是在某一段时间会对读...

Alexander的博客 2230

ABAP 平台注册 OAuth 2.0 Client 的完整实践指南(覆盖 Authorization Code、SAML Bearer 与 PKCE)

本文详述了在ABAP平台上注册入站OAuth 2.0 Client的关键技术和操作要点。文章面向SAP技术人员,系统梳理了前置条件(TLS/SSL、技术用户、授权对象)、配置路径(SOAUTH2事务)、授权类型差异(授权码、SAML Bearer、PKCE)等重要内容。特别强调入站与出站配置的区别,并提供了保密客户端和公有客户端的配置指引。文中所有事务码和参数均参考SAP官方文档,包含多个实用案例和权限配置建议,为ABAP系统作为OAuth 2.0授权服务器的实施提供全面指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 298

Kaggle灾难推文的自然语言处理-最佳得分详解

Twitter已成为紧急情况下的重要沟通渠道。智能手机的普及使人们能够实时宣布他们正在观察到的紧急情况。正因为如此,更多机构对以编程方式监控 Twitter 感兴趣(即救灾组织和新闻机构)。但是,人们并不总是清楚一个人的话是否真的预示着一场灾难。举个例子:作者明确使用了“ABLAZE”这个词,但它是隐喻的。这对于人类来说是显而易见的,尤其是在视觉辅助下。但对于机器来说就不太清楚了。在本次比赛中,你面临的挑战是构建一个机器学习模型,该模型可以预测哪些推文是关于真实灾难的,哪些不是。

StrawBerryTreea的博客 4450

Python爬虫实战 | 拼多多商品评论采集与深度分析

本文从 API 调用、网页渲染到情感分析与关键词提取,全流程剖析了“拼多多商品评论采集与分析”项目。Scrapy + API 可快速抓取评论;Playwright 可突破 API 限制,抓取完整页面内容;数据清洗 + 分析揭示用户真实反馈;可持续部署、扩展至更多商品 & 时间段;

2201_76125261的博客 1696

高通平台 Android T 蓝牙技术全解析:A2DP 与 AVRCP 核心代码路径与交互流程

A2DP 接收端 - 连接流程(AVDTP 打开)

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 290

kaggle近三年NLP比赛top方案汇总及新赛推荐

NLP的赛题任务主要有文本分类、情感分析、关系抽取、文本匹配、阅读理解、问答系统等,自Google开发的NLP处理模型BERT被广泛应用后,目前解决NLP任务的首选方案就是深度学习方法(textCNN、LSTM、GRU、BiLSTM、Attention等),至于用哪种方法,得要看具体的比赛要求。kaggle上NLP相关的比赛还是比较少的,我这次就整理了,有缺漏欢迎大家补充,金牌方案也全部分享出来了。整理好的比赛baseline以及开源代码合集文末直接领取。

学姐带你玩AI的博客 2805

vscode的launch:program ‘‘ does not exist

如图 一般是由于launch.json文件没有配置好的缘故。在右下角的ADD configuration如选第二个登录: 看到program这一栏,这一栏很重要,一般是选择你CMakelist,编译出来的可执行文件 看我CMakelist, 我生成的可执行文件是test_,所以路径可以这样输入: 我在之前cmake的时候已经有了test_这个文件了 然后就可以运...

狂小虎/Anthony Dave的博客 KuangXiaoHu's Blogs 5万+

【NLP】Kaggle知识点:文本分类与LoRA

在这篇博客中,我们逐步进行参数高效微调(Parameter Efficient Fine Tuning,简称PEFT),使用大语言模型(LLM)的低秩适配(Low Rank Adaptation,LoRA)。我们将了解如何使用参数高效微调来针对特定应用微调选定的可训练参数,以最低的成本和最少的基础设施实现这一目标。unsetunset为什么需要参数高效微调?unsetunset大语言模型(LLM)...

fengdu78的博客 286

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

kaggle竞赛实战8——其他方案之XGBOOST及NLP特征优化

机器学习竞赛实战

m0_60792028的博客 1817

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

kaggle:nlp经典入门(一)词袋模型(数据集 + 代码)

引言 此部分分享的工作为**词袋模型**,代码和数据集均来自Kaggle的Bag of Words Meets Bags of Popcorn入门级竞赛。本人对其做了复现,并对每部分的工作进行介绍。 准备工作 1.数据集下载: 链接:https://pan.baidu.com/s/1ZV1IY8O1ypJDig06sWedIw 提取码:ghck 2.环境安装,需要用到的包如下: pandas n...

qq_39783265的博客 3447

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

机器学习超全数据集汇总

在构造数据集的时候,要注意做好数据的清洗和标注,一个高质量的数据集往往能够提高模型训练的质量和预测的准确率。在缺乏数据的情况下,可以尝试寻找一些公开数据集,特别是得到公认的被普遍使用的数据集。模型的选择、构建很重要,训练数据对模型也是非常重要的,在改变模型架构来尝试提高模型预测准确率的同时,也需要注意提高输入数据的质量,同时也考虑增加输入数据的数量,看是否能够提高模型的预测效果。在比赛中,参与者被给予大量时间序列的呼吸,并将学习在给定控制输入的时间序列的情况下预测呼吸期间呼吸回路中的气道压力。

AbnerAI的博客 4021

Kaggle竞赛项目--自然语言处理

视频地址:https://www.bilibili.com/video/av55504443/ 相关资料: 待审核 Kaggle竞赛题:https://www.kaggle.com/c/home-depot-product-search-relevance 这里将使用多种处理库,对比一下Python NLP领域各个库的优缺点。 Step1:导入所需 所有要用到的库,读入训练/测试集,...

yiyongzhifu的博客 4315

Kaggle_NBME NLP比赛baseline讲解(1)

最新的一个kaggle nlp比赛 和大家分享一下baseline和基本的kaggle操作 主要由以下这几个部分构成: 1.赛题分析 2.数据EDA 3.模型选择及训练代码构建 4.成绩提交 # 一篇应该讲不完 后面会继续更新 1.赛题分析 目标:在病人的病例中,找出各个疾病对应的临床表现 简单来说就是QA问题 但是根据实际情况 同一病症会有多个临床表现 所以也可以看成是一个token分类问题 把和相关病症有关的token标记成1 把无关的标记成0 问题转化: QA问问题 & To.

m0_53292725的博客 4190

【NLP】Kaggle从零到实践:Bert中文文本分类

Bert是非常强化的NLP模型,在文本分类的精度非常高。本文将介绍Bert中文文本分类的基础步骤,文末有代码获取方法。步骤1:读取数据本文选取了头条新闻分类数据集来完成分类任务,此数据集是...

fengdu78的博客 3380
上一篇: 拥有 10 亿月活跃用户的 Instagram 是怎么设计内容推荐系统的?
下一篇: 如何通俗易懂地解释卷积?
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值