首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【NLP】 NLP中应用最广泛的特征抽取模型-LSTM

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

作者头像
用户1508658
发布2019-07-26 22:34:55
2K0
发布2019-07-26 22:34:55
举报
文章被收录于专栏:有三AI有三AI有三AI

本篇介绍在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的误差传递公式:

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

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

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

所谓CEC,就是令

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

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

2 LSTM的结构

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

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

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

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

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

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

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

最后,是输出门。根据新的细胞状态和输入信息,产生新的输出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介绍

知识星球推荐

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

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

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

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

转载文章请后台联系

侵权必究

往期精选

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有三AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档