美文网首页机器学习算法NLP&NLU
学习笔记:三大特征抽取器比较

学习笔记:三大特征抽取器比较

作者: IT_小马哥 | 来源:发表于2020-01-02 15:50 被阅读0次

NLP任务的特点及任务类型

  • 输入是一堆线性序列
  • 输入不定长
  • 单词或者句子的相对位置很重要
  • 句子中的长距离特征对于理解语义非常重要(如果...那么...)

一个特征抽取器是否适配问题领域的特点,有时候决定了它的成败,而很多模型改进的方向,其实就是改造得使它更匹配领域问题的特性

NLP问题四大类任务

  • 解决以下问题从模型的角度来说,最重要的就是特征抽取的能力

序列标注:

  • 分词、POS tag、NER、语义标注(中文分词,词性标注,命名实体识别,语义角色标注)
  • 特点:句子中每个单词要求模型根据上下文都要给出一个分类类别

分类任务:

  • 文本分类、情感计算
  • 特点:不管文章多长,总体给出一个类别

句子关系判断:

  • Entailment、AQ、自然语言推理
  • 特点:给定两个句子,模型判断两个句子是否具备某种语义

生成式任务:

-机器翻译、文本摘要、写诗造句,看图说话
-特点:输入文本内容后,需要自主生产另外一段文字

RNN的缺陷

  • 线性序列结构在反向传播时存在优化困难,因为反向传播路径太长,容易导致梯度消失或梯度爆战问题。(所以LSTM和GRU引入中间状态信息直接像后传播,依此缓解梯度消失问题)
  • RNN本身的序列结构不具备并行计算的能力
    • RNN的标志就是:T时刻隐层状态的计算依赖于T时刻的句子输入单词X_tT-1时刻的隐层状态S_{t-1}
    • 因此,后一时刻的计算严重依赖前一时刻
  • RNN解决NLP任务的通用框架


    image.png

CNN的缺陷

  • 最早引入CNN进入NLP的结构


    image.png
    • 输入的词用Word Embeding表示,输入包含n个字符,每个Word Embeding长度为d,输入为 d * n
    • d * k大小的移动窗口从输入矩阵的第一个字往后移动,经非线性变换,将输入转换为某特征值,k是Filter的大小,d是Word Embeding的长度
    • 因此CNN捕获的就是单词k-gram片段信息,k的大小决定了能捕获多远的距离特征
  • 缺陷:单卷积层无法捕获远距离特征

  • CNN的卷积其实保留了相对位置信息,但是经过Pooling层操作,就将位置信息丢失了,因此目前的趋势是抛弃Pooling层

  • 目前主流CNN


    image.png

Transformer

  • 出自谷歌论文"Attention is all you need"

  • Transformer Block


    image.png
  • 针对NLP任务,transformer对应的解决方案

    • 语言输入不定长:设定最大输入,如果句子不够就用padding填充

    • 位置信息:用位置函数进行位置编码

      因为Muli-head self attention 层会让当前输入单词和句子任意单词发生关系,然后集成到一个embedding向量里,所以,位置信息没有被编码进去

      • Bert

      Bert模型是给每一个单词一个Position embedding,将单词的embedding和单词对应的Position embedding加起来形成单词的embedding

    • 长远距离依赖:self attention天然解决,因为当前单词和句子任意单词发生了联系

总结

  • 语义特征提取能力:Transformer超过RNN和CNN大约4-8百分点 (当距离远于13的长距离时,Transformer弱于RNN。有价值的探索点
  • 远距离特征捕获能力:Transformer和RNN能力相近,CNN弱
  • 任务总和特征抽取能力:机器翻译最具有NLP总和任务代表,Transformer大于CNN=RNN
  • Transformer的缺点(有价值的探索点):
    • 长输入任务,计算度复杂,导致速度急剧变慢(长输入切断成K份,再套上Transformer,高层用RNN或者另一层Transformer接力)
    • 整体结构复杂(认识机理,简化它)

相关文章

  • 学习笔记:三大特征抽取器比较

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

  • 特征抽取器

    文本的特点: 文本是一个序列 文本长度不固定 文本的位置是个重要的信息 文本的任务: 序列标注 分类任务 句子关系...

  • sklearn学习 — 特征抽取

    特征抽取 sklearn库提供了特征抽取模块 sklearn.feature_extraction 对数据进行特征...

  • MachineLearning

    一、卷积&池化 卷积 卷积能抽取特征 多层卷积能抽取复杂特征 卷积神经网络每层的卷积核权重是由数据驱动学习得来,不...

  • 15.Spark学习(Python版本):特征处理相关的算法(T

    特征处理相关的算法,大体分为以下三类: 特征抽取:从原始数据中抽取特征特征转换:特征的维度、特征的转化、特征的修改...

  • 特征工程——特征抽取

      数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。因此,特征工程在机器学习过程中占据极其重要的一部...

  • 降维与特征选择

    第七章 降维与特征选择 [TOC] 1. 特征抽取和特征选择的区别 特征抽取:在已有的特征上,采用特征变换的方法,...

  • (五)四种单团队敏捷方法对照

    这里用一个图总结目前比较主流的Scrum、Kanban、XP、DevOps的特征。 对照以后,抽取出共同的特征有:...

  • 3.1.1.1特征抽取

    3.1.1特征抽取 特征抽取,就是逐条将原始数据转化为特征向量的形式,这个过程同时涉及对数据特征的量化表示;而特征...

  • scikit-learn特征工程

    字典数据特征抽取 sklearn的DictVectorizer可以对字典做特征抽取,并以onehot形式编码。 有...

网友评论

    本文标题:学习笔记:三大特征抽取器比较

    本文链接:https://www.haomeiwen.com/subject/gxjooctx.html