全景图!最近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、新建数据库…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
