【NLP】 NLP中应用最广泛的特征抽取模型-LSTM

文本分类(LSTM+PyTorch) PyTorch实战项目,基于LSTM的文本分类,数据集选用Kaggle上的Twitter数据集,用于评估评论是positive还是negative。 阅读详情

本篇介绍在NLP中应用最为广泛的特征抽取模型LSTM。详细介绍LSTM提出的由来及其模型结构,并由此分析了LSTM能够解决RNN不能够对长序列进行处理和训练的原因。

作者&编辑 | 小Dream哥

上周介绍了RNN模型结构及其反向传播和正向传播机制。文末提到了RNN会出现梯度消失等问题,使得训练变得困难,但因为篇幅限制,没有介绍其具体的原因,后面小Dream哥在有三AI-NLP知识星球里详细介绍了这一方面的内容,感兴趣的同学可以移步如下链接:

RNN梯度消失原因详解:https://t.zsxq.com/7qzRBeE

那好,既然RNN有这样的问题,该怎么解决呢?我们今天的主角LSTM(Long Short-Term Memory)就该登场了。

1 LSTM的提出

在LSTM提出之前,RNN的训练基于BPTT(Back-Propagation Through Time)或者RTRL(Real Time Recurrent Learning)。通过这两种方式对RNN进行训练时,当误差在序列内进行传播时,会出现梯度消失或者爆炸的情况。

当出现梯度消失时,在训练时,权重会出现摇摆和震荡;梯度消失使得训练会耗费大量的时间,甚至干脆就停滞。

基于这样的情况,两位大神Sepp Hochreiter和Jürgen Schmidhuber提出了LSTM:

Hochreiter, S, and J. Schmidhuber. "Long short-term memory." Neural Computation 9.8(1997):1735-1780.

我们先回顾一下RNN的误差传递公式:

640?wx_fmt=png

一个很简单的想法,如果误差在不同时刻相互连接的RNN单元之间,传递的是一个常量,即令下式是一个常量。其中f为激活函数。

640?wx_fmt=png

这样,梯度消失或者爆炸的问题是不是就可以解决了?

因此,Sepp Hochreiter和Jürgen Schmidhuber提出了CEC(Constant Error Carrousel),这也是LSTM的核心特点。


所谓CEC,就是令

640?wx_fmt=png

Sepp Hochreiter和Jürgen Schmidhuber指出可以选择恒等函数作为激活函数,并且令w_j,j=1便可满足上式,保证梯度在误差随时间传递之后不至于出现梯度消失或者梯度爆炸。这个想法很简单和朴素,因此Sepp Hochreiter和Jürgen Schmidhuber称之为Naive Approach。

但是对RNN仅仅是做这样的修改也还会有一些问题,不管是输入权重还是输出权重,在更新都既要考虑“记住”前面时刻的内容;又要考虑不要让前面时刻的内容干扰到当前时刻的输入,这种矛盾会使训练变得困难。因此两位大神针对这个问题,设计新的模型结构,下面介绍LSTM的模型结构。

2 LSTM的结构

现在网络上讲LSTM结构的文章,实在是太多了,小Dream哥本来是不想再讲的。出于文章完整性和系统性的考虑,这里还是将LSTM的模型结构和前向传播过程列一下。

640?wx_fmt=png

可以看到LSTM的结构要比RNN的复杂的多,其主要是增加了细胞状态和3个门结构。看上去比较复杂,同学们先不要着急,下面我们一步一步来讲一讲LSTM的结构。

640?wx_fmt=png

如上图,细胞状态C_t横向穿过,看起来像一条传送带,只是经过了少量的线性变化,因此状态容易保持下来。

640?wx_fmt=png

上图是LSTM的第一个门,遗忘门。这个门根据输入信息(h_t-1和x_t)决定要忘记细胞状态C_t-1的哪些部分。

接下来是信息更新门,决定了细胞状态C_t,它分为两个部分。

640?wx_fmt=png

第一步,根据输入信息,用tanh产生该时刻需要更新到细胞状态中的内容;用sigmoid函数产生更新的比例。

640?wx_fmt=png

第二步,将需要更新的内容更新到细胞状态中去,生成C_t。

640?wx_fmt=png

最后,是输出门。根据新的细胞状态和输入信息,产生新的输出h_t。


上面大致介绍了LSTM的结构,及其前向传播过程,图片来自:

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

这里先总结一下,LSTM在原本RNN的基础上增加了CEC的内容,CEC保证了误差以常数的形式在网络中流动,这部分通过引入细胞状态C来体现。并且,为了解决输入和输出在参数更新时的矛盾,在CEC的基础上添加3个门使得模型变成非线性的,就可以调整不同时序的输出对模型后续动作的影响。

3 LSTM局限性

LSTM提出之后,在语音处理、机器翻译、实体识别等NLP领域迅速取得很好的效果,在工业界获得很好的应用。但其也有一定的局限性,下面我们做一下介绍。


(1) 相较于RNN,LSTM的网络结构复杂很多,因为引入了更多的权重参数,这增加了计算的复杂度。

(2) 不管是RNN,还是它的衍生LSTM等,都需要随着时间推移进行顺序处理。因此对于输入序列的处理效率很低。

(3) 特征提取能力不强,t时刻的输入不能提取到t时刻之后序列信息的内容。这点在transformer出来之后,体现的尤为明显。

总结

上文详细讲述了LSTM提出的由来,大致介绍了其模型结构,由此分析了其能够解决RNN无法训练的问题。最后,介绍了LSTM的局限性。

LSTM是一个应用广泛的模型,但随着Attention机制的提出,transfomer开始作为一种更为强大的特征抽取模型,开始横扫各大NLP任务的榜单。不出意外,transformer将会取代RNN及其衍生(LSTM GRU)模型,成为NLP中,最受欢迎、最为强大的特征抽取模型。

下期预告:Attention及transformer介绍

知识星球推荐

640?wx_fmt=png

知识星球主要有以下内容:

(1) 聊天机器人。考虑到聊天机器人是一个非常复杂的NLP应用场景,几乎涵盖了所有的NLP任务及应用。所以小Dream哥计划以聊天机器人作为切入点,通过介绍聊天机器人的原理和实践,逐步系统的更新到大部分NLP的知识,会包括语义匹配,文本分类,意图识别,语义匹配命名实体识别、对话管理以及分词等。

(2) 知识图谱。知识图谱对于NLP各项任务效果好坏的重要性,就好比基础知识对于一个学生成绩好坏的重要性。他是NLP最重要的基础设施,目前各大公司都在着力打造知识图谱,作为一个NLP工程师,必须要熟悉和了解他。

(3) NLP预训练模型。基于海量数据,进行超大规模网络的无监督预训练。具体的任务再通过少量的样本进行Fine-Tune。这样模式是目前NLP领域最火热的模式,很有可能引领NLP进入一个全新发展高度。你怎么不深入的了解?


转载文章请后台联系

侵权必究

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

基于Tensorflow的LSTM-CNN文本分类模型 题记    前段时间再看QA方面的文章,读了一篇paper(《LSTM-based deep learning model for non-factoid answer selection》)中,使用了LSTM-CNN模型来做answer与question的语义抽取。受此启发,使用这个模型对文本语义信息进行抽取,加上一个softmax函数形成文本分类模型。1.LSTM(Long Short-Ter... 阅读详情

相关推荐

NLP自然语言处理

自然语言处理( NLP)是计算机科学、人工智能和语言学的一个分支,旨在使计算机能够理解、解释和生成人类的自然语言。

qq_56246012的博客 1836

学习记录--- LSTM 时序特征提取

最近做项目,看了一点关于LSTM的知识,目的是想用LSTM提取时间序列的时序特征 和师姐讨论,加上个人理解,认为state.h (使用tensorflow深度学习框架)为一条序列的时序特征。(时序特征维数由隐层神经元个数num_units决定) data数据格式 数据说明:jobid,taskid,5条序列。 比如1到6行,是第一task的5条序列 比如7到14行,是第二个task的5条序列 ...

Laiguibing521的博客 1万+

自然语言处理之命名实体识别:Bi-LSTM-CRF在信息抽取中的应用

在命名实体识别(NER)任务中,评估模型的性能至关重要。常用的评估指标包括准确率(Precision)、召回率(Recall)和F1分数(F1 Score)。这些指标帮助我们理解模型在预测实体时的精确度和全面性。在本节中,我们将通过一个具体的案例来深入理解Bi-LSTM-CRF模型在命名实体识别(NER)任务中的应用。案例将基于一个公开的中文命名实体识别数据集——MSRA NER数据集。这个数据集广泛用于中文NER的研究和评估,包含了大量标注了人名、地名和机构名的文本数据。双向LSTM(Bi-LSTM)

zhubeibei168的博客 1284

新手入坑LSTM-----如何一步一步进行文本训练

最近在学习一个课程,课程里一个项目就是看图说话,需要提起使用CNN提取图像特征,然后使用LSTM进行文本特征提取,然后将图像特征和文本特征进行合并,扔到网络里面进行训练,完成看图说话的训练,CNN很熟悉,LSTM第一次接触,记录下新手使用 LSTM 的过程。 一、RNN 下图是RNN模型的结构图 上图RNN 的工作模式是这样的: 假如更定"the students opened their"四个单词,预测第5个单词出现的概率,先把"the"这个单词的one-hot即独热编码的向量,通过Embedding将

weixin_45209433的博客 6159

【鸿蒙游戏上架审核规范指南】

华为鸿蒙游戏上架审核规范指南摘要

weixin_44161102的博客 927

程序进入hardfault之后查找原因的方法

如果在MCU运行程序的时候,进入了hardfault,该怎么办?

smart_boy__的博客 762

RNN、CNN、RNN、LSTM、CTC算法原理,pytorch实现LSTM算法

1. CNN算法 CNN算法原理 2. RNN算法 最早CNN算法和普通算法类似,都是从由一个输入得到另一个输出,不同的输入之间没有联系,无法实现一些场景(例如:对电影每个时间点的时间类型进行分类,因为时间是连续的,每一个时间点都是由前面的时间点影响的,也就是说输入之间有关联) 2.1 典型的序列数据 文章里文字内容 语音里音频内容 股票市场中价格走势 2.2 基本原理 RNN 跟传统神经网络最大的区别在于每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练。如下图所示 在上面的示例图中 神经网

weixin_42010722的博客 3059

【DRAM存储器六十二】DDR5介绍--引脚和基本功能简介

详述DDR5与DDR4的引脚区别和DDR5基本功能

highman110的博客 532

【Keras计算机视觉OCR】文字识别算法中DenseNet、LSTM、CTC、Attention的讲解(图文解释 超详细)

【Keras计算机视觉OCR】文字识别算法中DenseNet、LSTM、CTC、Attention的讲解(图文解释 超详细)

showswoller的博客 2614

【stata基础代码大全 】 可独立完成一篇实证

用stata打开,直接替换自己需要的变量就行,小白友好❗️❗️❗️。八、八.中介效应检验:路径分析(三种方法)第二种方法即Sobel-Goodman检验。*(7)Winsor处理,剔除异常值。六、内生性问题解决方法(附具体模型)其三,工具变量:两阶段最小二乘。第三种方法即Bootstrap检验。二、Stata中数据的基本处理。*(5)生成行业、年度虚拟变量。PSM1————近邻匹配。七、调节效应检验:机制分析。*(2)剔除数据中的样本。*(4)给变量添加标签。*(3)生成新的变量。*(6)基本数据匹配。

J_Giser的博客 8027

vivo X200 Ultra前瞻系列(1):重塑影像旗舰标准

在色彩风格化、视频专业度上实现了安卓阵营的突破性进步。其2亿像素长焦、双LYT-818传感器及5轴防抖技术,对追求个性化创作的用户具有强吸引力。若真机表现能兑现硬件承诺,X200 Ultra有望重新定义手机影像的“专业”标准。然而,其厚重设计、价格门槛及生态适配问题,仍需市场检验。vivo X200 Ultra作为2025年上半年影像旗舰,以“全焦段夜视仪+电影级视频”为核心卖点,主打。,对标小米15 Ultra、OPPO Find X8 Ultra等竞品。,顶配版(24GB+2TB)逼近万元。

专注:太空算力、AI infra、异构调度、大模型成本工程 966

NLP中应用最广泛的特征抽取模型-LSTM

本篇介绍在NLP中应用最为广泛的特征抽取模型LSTM。详细介绍LSTM提出的由来及其模型结构,并由此分析了LSTM能够解决RNN不能够对长序列进行处理和训练的原因。作者&编辑 |...

weixin_40920183的博客 1379

嵌入式软考必备知识点:嵌入式系统开发中的重要概念和示例代码

在嵌入式软考中,有一些重要的知识点需要掌握,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口等。实时操作系统是一种专门设计用于嵌入式系统的操作系统,可以提供对任务调度、中断处理和资源管理等方面的支持。GPIO(通用输入输出):GPIO是嵌入式系统中常用的硬件接口,用于连接外部设备和嵌入式系统。以上是嵌入式软考中的一些必备知识点,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口。通过配置串口的波特率、数据位数和校验位等参数,可以实现与其他设备的可靠通信。一、嵌入式系统的基本概念。

PixeGO的博客 314

「NLP」 NLP中应用最广泛的特征抽取模型-LSTM

https://www.toutiao.com/a6714581401586369032/ 本篇介绍在NLP中应用最为广泛的特征抽取模型LSTM。详细介绍LSTM提出的由来及其模型结构,并由此分析了LSTM能够解决RNN不能够对长序列进行处理和训练的原因。 作者 | 小Dream哥 编辑 | 言有三 上周介绍了RNN模型结构及其反向传播和正向传播机制。文末提到了RNN会出现梯度消失等...

喜欢打酱油的老鸟 2592

【单片机】STM32F103C8T6 最小系统板原理图

STM32F103C8T6是一款基于ARM Cortex-M3内核的32位微控制器,由STMicroelectronics(ST)公司生产。它是STMicroelectronics的STM32系列微控制器中的一员,被广泛应用于嵌入式系统和电子设备中。LQFP48封装(Low-profile Quad Flat Package,48引脚)SRAM(静态随机访问存储器):20 KB。支持JTAG调试和编程接口(可选)多个通用输入/输出口(GPIO)USB接口(用于USB设备模式)内置调试和编程接口(SWD)

q742971636的博客 6万+

YOLOv13添加轻量化的EMA模块Faster_EMA,轻量又涨点!map50提升4.56个点,召回率提升9.66!

本文介绍了YOLOv13模型的优化移植方法,通过添加Faster_EMA模块和超参数调整,使模型性能显著提升。主要修改包括:1) 创建新的模型配置文件yolov13-Faster_EMA.yaml;2) 在tasks.py中添加新模块;3) 修改__init__.py和block.py文件,新增Partial_conv3和DropPath类。优化后模型mAP50提升4.56%,召回率提升9.66%,验证了改进方案的有效性。代码实现了局部卷积和随机深度等先进技术,为YOLO系列模型性能优化提供了新思路。

FJN110的博客 2606

lstm原文_NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意

RNN梯度消失原因详解:https://t.zsxq.com/7qzRBeE那好,既然RNN有这样的问题,该怎么解决呢?我们今天的主角LSTM(Long Short-Term Memory)就该登场了。1 LSTM的提出在LSTM提出之前,RNN的训练基于BPTT(Back-Propagation Through Time)或者RTRL(Real Time Recurrent Learning)。...

weixin_39951396的博客 661

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

自然语言处理(NLP)学习路线总结

目录 自然语言处理概述 自然语言处理入门基础 自然语言处理的主要技术范畴 自然语言处理基本点 特征处理 模型选择 NLP常用工具 NLP语言模型 快速入门NLP方法 自然语言处理学习资料 1、自然语言处理概述 自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究人与计算机之间...

sjyttkl的专栏 9万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

NLP学习路线总结

目录 1、自然语言处理概述 2、自然语言处理入门基础 3、自然语言处理的主要技术范畴 4、自然语言处理基本点 5、特征处理 6、模型选择 7、NLP常用工具 8、NLP语言模型 9、快速入门NLP方法 10、自然语言处理学习资料 1、自然语言处理概述 自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向...

分享实践与思考 4万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LLM架构解析:NLP基础(第一部分)—— 模型、核心技术与发展历程全解析

本文全面且深入地阐述了自然语言处理(NLP)领域的相关内容。开篇定义 NLP,介绍其核心领域自然语言理解与生成,并列举情感分析、机器翻译等应用。详细讲解 NLP 基础概念,如分词、词干提取等,以及词袋模型、TF - IDF 等特征提取方法,深入探讨词嵌入、变换器等先进技术。梳理 NLP 从 20 世纪 50 年代基于规则的系统到当下大型语言模型的发展历程,分析各阶段关键里程碑。最后设置检验知识环节,涵盖基础、进阶问题及自主探究内容,助力读者全面掌握 NLP 知识。

硅基创想家的博客 1907

人工智能 :自然语言处理(NLP)的实战应用与优化

本文介绍了自然语言处理(NLP)的基础概念、文本处理技术和常用模型。主要内容包括:1) NLP的基本概念、重要性和应用场景;2) 文本预处理技术如清洗、分词、词性标注和实体识别;3) 特征工程方法包括TF-IDF和词嵌入;4) 传统机器学习模型和深度学习模型(LSTM、GRU、Transformers、BERT)的原理与实现。文章通过代码示例展示了各项技术的具体应用,为开发NLP项目提供了实用指导。

编程世界如山海,探索不止。 2万+

自然语言处理(NLP)技术的详细介绍

自然语言处理技术(NLP)是人工智能领域中的一门重要技术,旨在使计算机能够理解和处理人类语言。它通过模拟人类的语言理解和分析能力,实现人机交互、信息提取、语义分析等任务。NLP技术的核心是将自然语言转换为计算机可读的形式,然后利用各种算法和模型进行语义理解、信息提取和文本生成等工作。

小相探索IT世界 5789

基于注意力机制的CNN-LSTM模型及其应用(含软硬注意力区别)

处理原始数据集,再将其按 6∶2∶2 的比例划分。数据输入时进行归一化,在加速模型收敛的同时,一定程度提升模型精度;输出时进行反归一化。

pengxiang1998的博客 4万+

实体抽取全解析:技术与实战

深入探讨实体抽取技术的各个方面,从基于规则的方法到先进的基于神经网络的深度学习方法,提供了一系列详细的技术介绍和实战案例。

TechLead 7463

【Python NLP】NLP中经典结构和模型(更新中)

在NLP中,Embedding技术(如Word2Vec)将单词或短语映射为向量,使得语义上相似的单词在向量空间中位置相近。词嵌入是一种将单词转换为数值向量的技术,通过捕捉单词间的语义和句法关系,为自然语言处理任务提供有效特征表示,广泛应用于文本分类、机器翻译等领域,有效提升了模型的性能。和自然语言处理的上下文中,我们更倾向于将其理解为一种 “向量化” 或 “向量表示” 的技术,这有助于更准确地描述其在这些领域中的应用和作用。,在映射到高维特征空间后,相似的物体在空间中会聚集在一起,而不同的物体会被分隔开。

QIN_student的博客 1109
上一篇: 【Python进阶】实战Python图形文件操作基本编程
下一篇: 【知识星球】视频分类/行为识别网络和数据集上新
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值