特征抽取器 RNN/CNN/Transformer

NLP的任务特点与类型

  • 输入:一句话,或一篇文章

  • 具有如下几个特点:

    1. 输入是一维线性序列

    2. 输入是不定长的

    3. 单词之间或者子句之间的关系很重要

    4. 句子中的长距离特征对理解语义很重要

  • 任务类型

    • 序列标注:分词/POS Tag/NER/语义标注

      • 对句子中每个单词根据上下文给出有一个分类类别
    • 分类任务:文本分类/情感计算

      • 对输入的句子或者文章总体给出一个分类类别
    • 句子关系判断:Entailment/QA/自然语言推理

      • 给定两个句子,判断两句子是否具备某种语义关系
    • 生成式任务:机器翻译/文本摘要

      • 输入文本内容后,需要自主生成另外一段文字

RNN

关于 RNN 模型的了解:RNN

  • 核心:每个输入对应隐层节点,而隐层节点之间形成了线性序列,信息由前向后传递

  • 不足:线性序列结构的不断从前往后收集输入信息,使得反向传播过程中存在优化困难问题

    • 主要表现在:反向传播路径太长,容易导致严重的梯度消失或梯度爆炸

    • 因此,引入LSTM和GRU模型,通过增加中间状态信息直接向后传播,缓解梯度消失问题

  • 地位:在模型更新前,RNN(主要为LSTM和GRU模型),加上引入的attention机制,Encoder-Decoder框架,使得RNN成为解决NLP任务的通用框架技术

    • 该地位受到两个因素限制
      • (1) 后起之秀的新模型崛起,如Transformer

      • (2) RNN本身的序列以来结构对于大规模并行计算的限制,很难具备高效的并行计算能力

        • 改进思路1:保留任意连续时间步的隐层连接,在不同隐层的神经元之间进行并行计算,如SRU

        • 改进思路2:打断部分隐层之间的连接(类似CNN结构保留了序列依赖),如Sliced RNN

  • 模型代表:ELMO,ULMFiT,SiATL,CoVe

CNN

  • 核心:CNN模型中的卷积层本质为特征抽取层,通过设定卷积层中含有的卷积核(Filter)个数抽取不同的输入特征序列;池化层(Pooling)对卷积之后的特征进行降维形成最终的特征
    • 问题1:如以上描述的CNN结构在解决NLP领域多种任务的情况下,无法获取有效的结果 ==> 无法捕获长距离特征

      • 改进思路1:继续使用单个卷积层,卷积过程时选择“跳跃”覆盖进行卷积计算,如Dilated CNN

      • 改进思路2:增加卷积层(深度加深)层数

    • 问题2:池化层之后的结果抛弃了句子单词的位置信息

  • 优点(赖以生存的优势):并行计算能力强;同时也保存了位置信息(position embedding)

Transformer

  • 核心问题解决方案

    • 不定长句子的输入:设定输入的最大长度,使用padding填充

    • 位置信息Position embedding:

      • Transformer是用位置函数来进行位置编码的

      • Bert等模型是对每个单词一个position embedding

    • 长距离依赖特征:self attention

  • 模型代表

    • Transformer Encoder: BERT, RoBERTa, ERNIE
    • Transformer Decoder: GPT
    • Transformer: MASS, T5, BART

特征抽取能力比较

  • 语义特征提取能力:Transformer >> RNN ~ CNN(约4~8个百分点),即Transformer显著优于RNN与CNN

  • 长距离特征捕获能力:(主语-谓语一致性检测)Transformer > RNN >> CNN(当主语谓语距离大于13时,RNN略优于Transformer),即Transformer和RNN能力相近,CNN在这方面显著弱于两者

  • 任务综合特征抽取能力:(机器翻译对NLP各项处理能力综合要求最高的人任务之一)Transformer >> CNN ~ RNN,即Transformer显著优于RNN和CNN,CNN略优于RNN

  • 并行计算能力及运行效率:Transformer ~ CNN >>> RNN,即Transformer和CNN相差不多,远远优于RNN

参考链接:

放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值