全景图!最近20年,自然语言处理领域的发展
夕小瑶科技说 原创
作者 | 小戏、Python
最近这几年,大家一起共同经历了 NLP(写一下全称,Natural Language Processing) 这一领域井喷式的发展,从 Word2Vec 到大量使用 RNN、LSTM,从 seq2seq 再到 Attention,Transformer,Bert,直到现在的大模型 GPT-4。作为理解、生成与处理自然语言这一人类生活、交流的核心工具与信息共享的重要载体,计算语言学家早在上世纪五十年代就从“计算”的视角开始关注使用“机器”对自然语言进行处理。而伴随着各种技术的逐步成熟,NLP 这一领域蓬勃发展欣欣向荣,以 ACL 收录为例,从 1952 年至今,已经发表了超过 80000 论文:
伴随着出版物的增加,NLP 领域也发展成为了拥有多个不同分支,由不同子领域子学科共同构成的大领域大学科,过去可能有不少综述 NLP 历史,梳理 NLP 发展脉络的文章、综述,但是很遗憾很少有从一个空间的角度对 NLP 广泛铺开的领域进行概述的研究。
而今天介绍的这篇由德国慕尼黑工业大学出品的论文,便对最近 20 年 NLP 研究领域进行了一个详尽系统的分类与综述,帮助大家站在一个上帝视角,概览 NLP 360 度的全景图。作者希望通过这样的工作,可以帮助任何一个 NLP 领域的学者、从业者、实践者以及初学者识别 NLP 的研究趋势,帮助研究社区弥补现有的空白,以更好的探索 NLP 中的各种研究领域。
论文题目:
Exploring the Landscape of Natural Language Processing Research
论文链接:
https://arxiv.org/pdf/2307.10652.pdf
GPT-4能力研究传送门(遇浏览器警告点高级/继续访问即可):
https://gpt4test.com
1. NLP 究竟包含哪些子领域?
要说 NLP 的子领域,随口一提就可以想到许多,从机器翻译到情感分析,从信息检索到文本生成,但是要以一套结构化的体系完整的概述 NLP 领域的分类法,可能就并不是一件那么轻松的工作。
而论文作者在参考 ACL、EMNLP、COLING 以及 IJCNLP 等 NLP 领域主要会议网站上列出的最近几年的投稿主题,以及 ACL Anthology 中包含的研讨会的主题,及 EMNLP 2022 中 828篇论文的研究领域,构建了初版的 NLP 领域分类法,同时为了尽可能全面完整的构建 NLP 研究领域的方方面面,作者又与 NLP 不同领域的专家进行了 20 余次一对一的访谈,根据访谈结果以及对初版分类的修订与完善,作者构建了这样一套 NLP 研究领域分类法如下图所示:
可以看到,作者共将 NLP 分为了 12 个大领域,包含多模态(Multimodality)、自然语言交互( Natural Language Interfaces)、语义解析(Semantic Text Processing)、情感分析(Sentiment Analysis)、句法分析(Syntactic Text Processing)、NLP 中的认知语言学分析(Linguistics & Cognitive NLP)、可解释 NLP(Responsible & Trustworthy NLP)、逻辑推理(Reasoning)、双语(Multilinguality)、信息检索(Information Retrieval)、信息提取与文本挖掘(Information Extraction & Text Mining)、文本生成(Text Generation)。
通过这套分类法,作者使用半人工半自动的标注方式构建了一个包含 178521 篇论文领域标注的训练集,并且训练得到了一个弱监督的论文领域分类器,通过此分类器,作者分类得到了 1952 年至 2022 年 ACL Anthology 中包含的所有共计 74279 篇论文作为最终的分析研究对象。
2. NLP 研究领域的发展脉络?
虽然 NLP 最早的论文出现在 1952 年,但是其论文数量至 2000 年才开始缓慢增长,从 2000 年至 2017 年,NLP 的研究数量增加了四倍,而在接下来的五年中,NLP 的研究数量又翻了一番,这表明这五年 NLP 领域得到了爆炸式的发展,而根据作者构建的论文领域分类集,作者研究了 NLP 中最受欢迎的研究领域(Fos)的发展与变化情况:
可以看到机器翻译与语言模型是 NLP 文献中最受欢迎的研究领域,但是这两个领域的发展变化有着十分明显的区别,机器翻译是一个经过深入研究,已经被建立了许多年的研究论文,发文数量以及增长率都相对平稳,而语言模型虽然也经过了长时间的研究,但是其出版数量直到 2018 年才开始显著增长,在关注其他 NLP 的领域时也可以看到类似的情况,表示学习与文本分类虽然研究广泛,但是增长率没有显著变化,而对话系统以及低资源 NLP 则在近期获得了非常高的增长率。
而整个 NLP 的研究领域中,也出现了经典的二八法则,大多数 NLP 领域的研究程度显著低于这些最受欢迎的 NLP 领域的研究程度,似乎 NLP 研究的发展主要来自于热门领域与应用的驱动,但是总体而言,NLP 所有领域的研究都在保持正向增长。
3. 什么才是 NLP 研究的未来?
所谓知古方能鉴今,根据整个 NLP 领域的研究发展,作者又探究了 NLP 各个领域的研究趋势并探索了 NLP 领域未来的发展方向:
首先,作者采用矩阵式的方式绘制了从 2018 年到 2022 年 NLP 相关的各个 FoS 的文章数量-增长率矩阵,增长率高且总体文章数量的较多的研究领域属于 NLP 中的“明星”产品,可以看到,占据 NLP 舞台中心的领域包括语言模型、可解释性 NLP、低资源 NLP等,而类似机器翻译、文本分类与表示学习则由于其高的文章数量与低的增长率成为了 NLP 研究的基础,值得关注的还有一部分保持高增长率与低文章数量的研究领域,比如段落检索、风格转换、代码生成等,这些研究领域虽然近期热度高涨,但是由于文章数量较少无法得到明显的进一步发展趋势的判断。
利用创新扩散理论,作者绘制了 NLP 研究领域的创新生命周期图如上图所示,从上图可以看出,语义解析领域已经基本步入了夕阳,接近创新生命周期的衰落期,而机器翻译、表示学习与文本分析整体虽然都比较受欢迎,但是其已经过了创新生命周期从成熟到衰落的拐点,发展速度目前正在减缓。而可解释性 NLP,多模型以及自然语言交互等领域正处于快速发展期,在未来的研究中很有可能开始加速,而作为明星产品的绿色 NLP 正值当打之年,未来可能会迎来爆发。
总结与讨论
尽管当下伴随着大模型的横空出世,似乎许多 NLP 问题都一夜之间变成了已经被解决的问题,这篇文章很合时宜的指出,伴随着 NLP 使用模型越来越大,模型参数量直逼天文数字,与之伴生的计算成本问题、环境问题以及伦理问题有可能成为未来 NLP 研究的主流。
伴随着一个领域的快速发展,可以宏观的全景的对一个领域有一个全面的理解是一件相当困难的事,而这篇通过收集、分类与判断以呈现领域结构化概述的工作可能对我们更加明确的了解我们身处的这个领域会非常有帮助吧!
相关文章:

全景图!最近20年,自然语言处理领域的发展
夕小瑶科技说 原创 作者 | 小戏、Python 最近这几年,大家一起共同经历了 NLP(写一下全称,Natural Language Processing) 这一领域井喷式的发展,从 Word2Vec 到大量使用 RNN、LSTM,从 seq2seq 再到 Attenti…...
Mybatis参数传递
Map传参, #{}里的key要一一对应不能乱写,如果不存在则会填充NULL,不会报错 Map<String, Object> map new HashMap<>(); // 让key的可读性增强 map.put("carNum", "103"); map.put("brand", "奔驰E300L&…...

手动实现 Spring 底层机制 实现任务阶段一编写自己 Spring 容器-准备篇【2】
😀前言 手动实现 Spring 底层机制的第2篇 实现了任务阶段一编写自己 Spring 容器-准备篇【2】 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的…...

部署模型并与 TVM 集成
本篇文章译自英文文档 Deploy Models and Integrate TVM tvm 0.14.dev0 documentation 更多 TVM 中文文档可访问 →Apache TVM 是一个端到端的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。 | Apache TVM 中文站 本节介绍如何将 TVM 部署到各种平台&…...
Android Navigation 导航切换fragment用法
对于Android Navigation组件的导航到Fragment,您可以按照以下步骤操作: 首先,在您的项目的build.gradle文件中添加Navigation依赖: dependencies {def nav_version "2.3.4"implementation "androidx.navigation…...

Anaconda Prompt使用pip安装PyQt5-tools后无法打开Spyder或闪退
艹!MLGBZD! 真TMD折腾人! 出现原因: 首次安装完Anaconda3-2023.07-1-Windows-x86_64.exe后首次打开Spyder,此时是没有问题的,然后打开Anaconda Prompt,查看有哪些包,pip list 这时候开始首次安…...

【jvm】jvm整体结构(hotspot)
目录 一、说明二、java代码的执行流程三、jvm的架构模型3.1 基于栈式架构的特点3.2 基于寄存器架构的特点 一、说明 1.hotspot vm是目前市场上高性能虚拟机的代表作之一 2.hotspot采用解释器与即时编译器并存的架构 3.java虚拟机是用来解释运行字节码文件的,入口是字…...

通达信波段选股公式,使用钱德动量摆动指标(CMO)
钱德动量摆动指标(CMO)是由图莎尔钱德发明的,取值范围在-100到100之间,是捕捉价格动量的技术指标。该指标计算近期涨幅之和与近期跌幅之和的差值,然后将计算结果除以同期所有价格波动的总和。本文的波段选股公式使用均线识别趋势,…...

家电维修小程序开发指南:从零搭建到上线
随着科技的发展和人们生活水平的提高,家电已经成为人们生活中不可或缺的一部分。然而,随之而来的是家电维修门店业务的繁忙和效率的考验。为了提高家电维修门店的效率和服务质量,建立一个便捷高效的小程序已成为必要的选择。 本文将介绍一个简…...

玩赚音视频开发高阶技术——FFmpeg
随着移动互联网的普及,人们对音视频内容的需求也不断增加。无论是社交媒体平台、电商平台还是在线教育,都离不开音视频的应用。这就为音视频开发人员提供了广阔的就业机会。根据这些年来网站上的音视频开发招聘需求来看,音视频开发人员的需求…...

python 变量赋值 修改之后 原值改变
python 是一种动态语言,因此变量的类型和值 在运行时均可改变。当我们将一个变量赋值给另一个变量时,实际上是将变量的引用地址传递给新的变量,这意 味着新旧变量将指向同一个位置。因此,在更改其中一个变量的值时,另一…...

拂袖一挥,zipfile秒列zip包内容
使用wxpython列出文件夹中的zip文件及内容 最近在做一个文件管理的小工具,需要列出选择的文件夹下的所有zip压缩文件,并在点击某个zip文件时能够显示其中的内容。为此我使用了wxpython来实现这个功能。 1. 导入需要的模块 首先导入程序需要的模块: import wx import os imp…...
InnoDB文件物理结构解析2 - FIL_PAGE_INDEX
1. 关于索引组织表 InnoDB使用的是索引组织表(IOT)的方式存储表记录,索引组织表以主键构建一个B-tree的数据结构来存储行记录,行记录存储在树的叶节点内。这与Oracle数据库是不同的,Oracle数据库默认创建的表是堆组织表(HOT),HOT…...
XML-BEANS compiled schema: Could not locate compiled schema resource 异常处理
使用poi5.2.2生成ppt,生成堆叠图,设置值时抛出异常 XML-BEANS compiled schema: Could not locate compiled schema resource org/apache/poi/schemas/ooxml/system/ooxml/stoverlappercent872etype.xsb (org.apache.poi.schemas.ooxml.system.ooxml.st…...

IOC容器 - Autofac
DI(依赖注入):DI(Dependency Injection)是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器,使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入…...

用i18n 实现vue2+element UI的国际化多语言切换详细步骤及代码
一、i18n的安装 这个地方要注意自己的vue版本和i1n8的匹配程度,如果是vue2点几,记得安装i18n的8版本,不然会自动安装的最新版本,后面会报错哦,查询了下资料,好像最新版本是适配的vue3。 npm install vue-…...

Vue3 :Pinia入门
Vue3 :Pinia入门 Date: May 11, 2023 Sum: Pinia概念、实现counter、getters、异步action、storeToRefs保持响应式解构 什么是Pinia Pinia 是 Vue 的专属状态管理库,可以实现跨组件或页面共享状态,是 vuex 状态管理工具的替代品,…...
Java线程池的类型和使用
Java线程池的类型和使用 引言 在并发编程中,线程池是一种非常重要的工具,它可以实现线程的复用,避免频繁地创建新线程,从而提高程序的性能和效率。Java的并发库提供了丰富的线程池功能,本文将介绍Java线程池的类型和…...

QT的信号槽的四种写法和五种链接方式
目录 四种信号槽写法: 五种连接方式: 实例: 常见错误及改正: 错误1: 未连接信号与槽 错误2: 信号和槽参数不匹配 错误3: 未使用Q_OBJECT宏 错误4: 跨线程连接未处理 在Qt中,信号(Signal)…...

Vue+SpringBoot项目开发:后台登陆功能的实现(二)
写在开始:一个搬砖程序员的随缘记录文章目录 一、SpringBoot项目的搭建二、数据库配置1、新建数据库2、新建用户表 三、SpringBoot项目的配置 一、SpringBoot项目的搭建 项目搭建传送门:从零开始,SpringBoot项目快速搭建 二、数据库配置 1、新建数据库…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...