model introduction

文章目录

    • 前言
    • 一、传统机器学习方法
      • 1、基于规则的模型
      • 2、基于概率的模型
      • 3、基于几何学的模型
      • 4、基于统计的模型
    • 二、深度学习方法
      • 1、Feed-Forward Neural Networks(前馈神经网络)
      • 2. RNN-Based Models(基于循环神经网络的模型)
      • 3. CNN-Based Models (基于CNN的模型)
      • 4. Capsule Neural Networks (胶囊网络)
      • 5.Models with Attention Mechanism (注意力机制模型)
      • 6.Memory-Augmented Networks (记忆增强网络)
      • 7.Graph Neural Networks (图神经网络)
      • 8.Siamese Neural Networks(S2Nets)
      • 9.Hybrid Models 混合模型
      • 10.Transformers and Pre-Trained Language Models 预训练语言模型
    • 参考链接:

前言

文本分类方法模型主要分为两个大类,一类是传统的机器学习方法(具体可以再分为四类),另一类是新兴的深度学习模型。

由于每个算法其实都非常复杂,在此仅做简单介绍,建议需要使用时一定要再深入学习理解。

从 1961 到 2020 文本分类算法的发展历史
在这里插入图片描述

图上黄色代表浅层学习模型,绿色代表深层学习模型。

可以看到,从 1960 年代到 2010 年代,基于浅层学习的文本分类模型占主导地位。

自 2010 年代以来,文本分类已逐渐从浅层学习模型变为深层学习模型。

一、传统机器学习方法

1、基于规则的模型

基于规则的分类模型相对简单,易于实现。它在特定领域的分类往往能够取得较好的效果。

相对于其它分类模型来说,基于规则的分类模型的优点就是时间复杂度低、运算速度快。在基于规则的分类模型中,使用许多条规则来表述类别。

类别规则可以通过领域专家定义,也可以通过计算机学习获得。
决策树就是一种基于训练学习方法获取分类规则的常见分类模型,它建立对象属性与对象值之间的一种映射。通过构造决策树来对未标注文本进行分类判别。

常用的决策树方法包括 CART 算法、ID3、C4.5、CHAID 等。
决策树的构建过程一般是自上而下的,决策树可以是二叉树也可以是多叉树,剪枝的方法也有多种,但是具有一致目标,即对目标文本集进行最优分割。
在这里插入图片描述

2、基于概率的模型

朴素贝叶斯分类器(naive Bayes)是应用最为广泛且最简单常用的一种概率分类模型。

朴素贝叶斯法基于贝叶斯定理将联合概率转化为条件概率,然后利用特征条件独立假设简化条件概率的计算。

在这里插入图片描述

事实上,词组之间并不是相互独立的。虽然这是一种假设独立性,但是朴素贝叶斯还是能够在分类任务中表现出很好的分类效果和鲁棒性。

这一假设简化了联合概率的计算,它允许条件概率的乘积来表示联合概率

3、基于几何学的模型

使用向量空间模型表示文本,文本就被表示为一个多维的向量,那么它就是多维空间的一个点。

通过几何学原理构建一个超平面将不属于同一个类别的文本区分开。

最典型的基于几何学原理的分类器是"支持向量机"(SVM),其分类效果较为不错,几乎可以说是传统机器学习算法中最好的了。
在这里插入图片描述

  1. SVM 之所以能够取得比较好的分类效果,其优点在于:
  • SVM 是一种针对有限样本条件下的分类算法,其目标是得到当前训练集下的最优解而不是样本数趋于无穷大时的最优值,该算法最终将问题转化成二次线性规划寻求最优解问题。从理论上来讲,它得到的是全局最优解,能够避免局部极值问题。
  • 该方法将实际问题通过核函数技巧将线性不可分空间映射到高维线性可分空间,在高维空间中构造线性决策函数来实现原线性不可分空间的决策函数。这保证了 SVM 具有较好的推广能力,计算的复杂度不再取决于空间维数,而是取决于训练集样本数量。
  • SVM 方法能够很好的处理稀疏数据,更好的捕捉了数据的内在特征,准确率较高。
  1. SVM 虽然有许多优点,但是固有的缺点是不可避免的。其缺点包括:
  • SVM 算法时间和空间复杂度较高,随着训练样本数和类别的增加,分类时间和空间代价很高。
  • 核函数空间变换会增加训练集空间的维数,使得 SVM 对时间和空间需求加大,又进一步降低了分类的效率。
  • SVM 算法一般含有较多参数,并且参数随着训练样本的不同,呈现较大的差异,调整参数以获得最优分类效果相对困难。而且参数的不同对分类结果的显示出较大的差异性。

4、基于统计的模型

基于统计的机器学习方法已经成为自然语言研究领域里面的一个主流研究方法。事实上无论是朴素贝叶斯分类模型,还是支持向量机分类模型,也都采用了统计的方式。文本分类算法中一种最典型的基于统计的分类模型就是 k 近邻(k-Nearest Neighbor,kNN)模型,是比较好的文本分类算法之一。
在这里插入图片描述

kNN 分类模型的主要思想:通过给定一个未标注文档 d,分类系统在训练集中查找与它距离最接近的 k 篇相邻(相似或相同)标注文档,然后根据这 k 篇邻近文档的分类标注来确定文档 d 的类别。分类实现过程:

  • 将训练集样本转化为向量空间模型表示形式并计算每一特征的权重
  • 采用类似步骤 1 的方式转化未标注文档 d 并计算相应词组元素的权重 计算文档d 与训练集样本中每一样本的距离(或相似度);
  • 找出与文档 d 距离最小(或相似度最大)的 篇训练集文本;
  • 统计这个 k 篇训练集文本的类别属性,一般将文档 d 的类归为 k中最多的样本类别。

KNN 分类模型是一种“懒学习”算法,实质上它没有具体的训练学习过程。分类过程只是将未标注文本与每一篇训练集样本进行相似度计算, kNN 算法的时间和空间复杂度较高。因而随着训练集样本的增加,分类的存储资源消耗大,时间代价高。一般不适合处理训练样本较大的分类应用。

二、深度学习方法

与基于浅层学习的方法相比,深度学习方法避免了人工设计规则和特征,并自动提供文本挖掘的语义意义表示。

与浅层模型不同,深度学习通过学习一组直接将特征映射到输出的非线性转换,将特征工程集成到模型拟合过程中。目前的几乎所有研究都是基于 DNN。

1、Feed-Forward Neural Networks(前馈神经网络)

FFN在很多TC(文本分类)任务中实现了高精确度。它把文本看做成一袋单词。每个单词都用word2vec或者Glove等嵌入模型表示成词向量,然后将词向量取和或者平均来代表文本,然后通过一层或多层的前馈神经网络(例如:MLPs),然后使用分类器(例:逻辑回归,朴素贝叶斯,或SVM)对最后一层的表示进行分类。

例如:DAN网络, fastText,doc2vec等

DAN(Deep Average Network)框架如下:

在这里插入图片描述

fasttext
跟DAN一样,fasttext把文本视为一袋单词。但不同的是,fasttext使用一袋n-gram作为附加特征来捕获本地词序信息(在实践中非常有效)。
doc2vec
doc2vec可以使用无监督算法来学习可变长度文本片段的固定长度特征提取。其架构与CBOW迷行类似,唯一的区别是通过矩阵D映射到段落向量的附加段落标记。其架构图如下:
在这里插入图片描述

2. RNN-Based Models(基于循环神经网络的模型)

RNN-Based models 将文本看做一序列的单词,旨在为TC捕获单词依赖性和文本结构。但是传统的RNN模型表现并不好,还没有前馈网络表现好,于是出现了很多变体。其中以LSTM最流行,旨在更好的捕捉长期依赖关系。

这里简单提几个变种模型。

  • Tree-LSTM模型
    文本信息中存在语法结构的,Tree-LSTM能够学习到语法结构中丰富的语义表示,且能够学习到序列文本中的较长依赖的问题
  • Multi-Timescale LSTM (MT-LSTM)模型
    LSTM在处理较长文本时,效率很低,常见的做法是截断后再输入到LSTM中。MT-LSTM的出现使得该模型能够处理长文本,能够在不同的时间尺度上获取有价值的信息
  • Topic RNN
    能够整合语法依赖,也能够整合话题中的语义依赖

3. CNN-Based Models (基于CNN的模型)

前面提到的RNN模型被训练来识别跨时间的模式,而CNN学习跨空间的识别模式。RNN适用于需要理解远程语义的NLP任务,比如POS标记或者QA。而CNN更适用于局部检测和位置不变模式。在CNN中,预训练的词向量会比随机初始化好,并且采用maxpooling比其他的pooling好。

  • DCNN(Dynamic CNN) 采用动态的k-max pooling,可以根据句子大小和卷积的层级进行动态选择k。
    在这里插入图片描述
  • VDCNN 在字符级别进行操作,并且仅使用小的卷积核池化操作。其性能随着深度的增加而提高

4. Capsule Neural Networks (胶囊网络)

CNN已经能够通过卷积、池化操作进行文本和图片的分类,为什么还要提出胶囊网络呢?主要是因为CNN模型丢失了信息的空间关联,也就是既是位置不正确,也能够正确识别,比如当图片中人的五官位置都不正确,CNN也能识别出是人脸。(池化操作的锅)
胶囊网络是一组神经元,它的活动向量代表一个特定类别的实体的不同属性,向量的长度代表实体存在的可能性,向量的方向表示实体的属性。
与选择一些信息而丢掉其他信息的最大池化不同,胶囊网络从底层的胶囊到高层的胶囊之间会有一个路径规划,寻找最佳的高层胶囊来作为低层胶囊的父辈。

  • TC model based on a variant of CapsNets
  • CapsNet-based model

5.Models with Attention Mechanism (注意力机制模型)

1)hierarchical attention network 分层注意力网络

模型有两个显著的特征:

  • 1、是一个分层的结构来反应文档的层次结构。
  • 2、在单词和句子级别应用了两个级别的注意力机制,使其能够在构建文档表示时以不同的方式关注重要和不重要的内容。

2)应用于cross-lingual sentiment classification

在每种语言中,都是用LSTM网路对文档进行建模,然后使用分层注意力机制实现分类。 其中句子级别的注意力模型学习文档中的哪一个句子对于判断情感更加重要。而词级别的注意力模型学习句子中的哪一句话更具有决定性。

3)directional self-attention network for RNN/CNN-free language understanding 只基于注意力机制没有任何的RNN/CNN结构。

4)LSTM model with inner-attention for NLI(自然语言推理)这个模型对用户两个阶段的过程来编码一个句子。

首先,在word-level Bi-LSTMs 基础上采用平均池化来生成第一个阶段的句子表示

然后,用注意力机制来代替平均池化在同一个句子上进行更好的表示。
将TC任务看成标签和单词匹配任务,每个标签与词向量用相同的方法嵌入表示。

6.Memory-Augmented Networks (记忆增强网络)

前面提到的注意力机制在编码过程中的隐藏状态可以看成模型内部存储器,

而记忆增强网络可以能够将神经网络与一种外部存储器结合在一起,模型可以读写到外部存储器。

Neural Semantic Encoder (NSE) 应用于TC和QA任务,其具有可变大小的编码内存,随着时间的推移而演变,并能够通过读写改操作来保证对输入序列的理解。
Dynamic Memory Network(DMN) 通过处理输入序列和问题来形成情景记忆,从而生成相关回答。在QA和POS方便取得了更好的进展。

7.Graph Neural Networks (图神经网络)

  • TextRank 最早的基于图的模型。节点表示各种类型的文本,比如单词、搭配、句子等。边来表示节点之间的不同类型的关系,例如词汇、语义关系、上下文重叠等。

  • Graph Neural Networks (GNNs) 通过扩展图数据的深度学习方法

  • Graph Convolutional Networks (GCNs) 是图上的CNN的一种变形,可以更有效方便的与其他的神经网络结合

  • graph-CNN,首先将文本转换成词图,然后使用图卷积操作对词图进行卷积。使用词图去表示文本更加能够捕捉到非连续和长距离语义。

  • 对于一个大的文本集建立GNN是很耗时的,现在有些研究来降低模型复杂度或者改变训练策略。降低复杂度的模型有Simple Graph Convolution(SGC),它将卷积GNN相邻层的非线性操作去掉,将权重矩阵降为线性变换。在改变训练策略方便,模型有Text-level GNN,它将文本用滑动窗划分为不同的chunk,然后对这些chunk进行graph表示,以此来减少内存消耗。

8.Siamese Neural Networks(S2Nets)

S2Nets,也叫深度结构化语义模型(DSSMs)是用来进行文本匹配的。很多NLP任务,比如问题文本排序,抽取式问答的答案选择等都可以看做TC的特例。
在这里插入图片描述

正如图12所示,S2nets包含一对DNN,f1,f2分别将x,y映射到相同的低纬度语义空间,然后用cosine来计算x,y的相似度。

f1,f2可以是相同的结构,也可以是不同的结构。f1和f2能够根据x,y来选取不同的结构。

例如,为了计算图相似度,f1可以是一个深度卷积神经网络,f2可以是一个循环神经网络或者多层感知机。

因此这个模型可广泛应用到NLP任务中。

9.Hybrid Models 混合模型

很多混合模型结合LSTM和CNN来获取句子和文档的局部或者全局特征。

Convolutional LSTM (C-LSTM) network 利用CNN来获取高层次短语表示,然后将其喂给LSTM网络获得句子表示。
Dependency Sensitive CNN (DSCNN),主要用于文档模型,是一个分层模型,LSTM学习句子向量,然后喂给卷积层、最大池化层来生成文档表示
Hierarchical Deep Learning approach for Text classification (HDLTex) 用于文本分类
Stochastic Answer Network (SAN) 用于机器阅读理解
。。。。

10.Transformers and Pre-Trained Language Models 预训练语言模型

Transformer 采用自注意力机制解决了长距离依赖问题,还能够并行计算,这就使得在GPU上训练大模型和处理大数据称为了可能。

预训练模型分类(按照表示类型、模型架构、预训练任务、下游任务)

autoregressive and autoencoding PLMs. 自回归和自编码

自回归预训练模型:OpenGPT,

OpenGPT是一个单向模型,从左向右(或从右向左)逐个单词的预测文本序列,对每一个单词的预测取决于前一个单词。OpenGPT结构如下:
在这里插入图片描述

包含12层Transformer块,每层包含一个带掩码的多头注意力模块。每一层后边是一个层归一化和一个位置前馈层。
OpenGPT可以通过添加特定线性分类器和微调标签来适应TC等下游任务。

自编码:BERT

与OPenGPT通过之前的预测来预测当前词不同,BERT是使用MLM任务进行训练,该任务是随机掩蔽文本序列中的一些token,然后通过调节双向transformer获得的编码向量来独立恢复被掩蔽的token。

BERT的改进:
(1)RoBERTa 比BERT更加强大,可以使用更多的训练数据进行训练。
(2) ALBERT 降低了内存系消耗并提高了BERT的训练速度
(3)DistillBERT在预训练期间通过利用知识蒸馏,将BERT的大小减小到40%,保留BERT原有的99%的功能,并提高60%的速度。
(4) SpanBERT扩展了BERT以更好的进行表示和预测文本跨度。
(5)Electra 利用比MLM更加简单有效的预训练任务–eplaced token detection,它不是mask输入,而是从一个小型生成网络中抽取出一些合理的替代方案来代替一些token
(6)ERNIE结合了来自外部知识库的知识,例如命名体识别等进行预训练。
(7)ALUM引入了对抗性损失,提高了模型对新任务的泛化能力和对抗鲁棒性

自回归和自编码相结合的预训练语言模型:

  • XLNet
  • Unified language Model (UniLM)

参考链接:

1、https://blog.csdn.net/a1097304791/article/details/121472163

2、https://blog.csdn.net/onion___/article/details/123255293

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当代大学生是怎么被废掉的?

中式教育以应试为核心,强调知识的灌输和学生被动接受。随着社会的发展,中式教育的短板逐渐显现,创新能力的缺乏、对记忆的过度依赖、忽视个体差异等问题日益突出。 建议所有大学生都能去看看《上海交通大学生存手册》,它道出了中…

Flutter首页框架搭建

1.下载flutter 2. 安装android 3.配置环境变量 关于环境搭建部分,哪天写一下,日志杂乱无章。 打开android studio 新建项目,选择flutter 新建文件夹创建 navigator和pages 文件夹下分别创建文件,tab_navigator.dart&#xff…

【Android Gradle 插件】Android 依赖管理 ① ( 依赖库匹配 | 依赖库查找顺序及路径 | Gradle 资源库 )

一、依赖库匹配 依赖库匹配 : 依赖库由三部分组成 依赖库分组依赖库名称依赖库版本号 只有三者都对上 , 依赖库才能匹配上 , 如 dependencies {implementation androidx.appcompat:appcompat:1.3.1 }依赖库分组为 androidx.appcompat , 依赖库名称为 appcompat , 依赖库版本…

云厂商不能花钱当老六

1. 愤怒的国产“三大废物” 12月份的时候,某中立市场分析公司发表了它们的行业分析“刀乐象现”。透过各种浮躁的“领导、远见”之后,大致意思就是: A是老大;我没意见;A是老二;我也没意见。咕咕咕咯咯咯哒是…

Spring Boot 中实现定时任务(quartz)功能实战

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

电脑锁屏时间怎么设置?跟着这篇教程轻松搞定

在现代社会,我们使用电脑的时间越来越长,为了保护个人隐私和确保信息安全,设置电脑锁屏时间成为一项重要的操作。可是电脑锁屏时间怎么设置呢?本文将介绍三种常见的方法,详细解释如何设置电脑的锁屏时间,以…

TDengine 如何进行数据建模

小 T 导读:在使用 TDengine 的时候,通过官网的技术文档可以学习到建库(database)、建表(table)的各种 SQL 语句,但是一旦要跟自己的具体业务场景结合,经验不足的朋友可能会不知道到底…

指针及其应用

1.定义 指针:也是一个变量,存放所指变量的地址,根据变量定义的不同,指针指向的类型也不同 注意:*是与前面类型一体的 int main(void) {int* p; //等价于int *p;//为了区分变量,C语言中一般将*放置于变量…

.NET 8.0 发布到 IIS

如何在IIS(Internet信息服务)上发布ASP.NET Core 8? 在本文中,我假设您的 Windows Server IIS 上已经有一个应用程序池。 按照步骤了解在 IIS 环境下发布 ASP.NET Core 8 应用程序的技巧。 您需要设置代码以支持 IIS 并将项目配…

智算让大模型触手可及

本文整理自2023年 12 月 20 日举办的「2023 百度云智大会智算大会」主论坛,百度智能云 AI 与大数据平台总经理忻舟的主题演讲《智算让大模型触手可及》。 在之前极客公园举办的创新大会上,百度集团董事长兼 CEO 李彦宏先生提到:卷 AI 原生应用…

【Linux】各目录说明

【常见目录说明】 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以…

智能助手的巅峰对决:ChatGPT对阵文心一言

在人工智能的世界里,ChatGPT与文心一言都是备受瞩目的明星产品。它们凭借先进的技术和强大的性能,吸引了大量用户的关注。但究竟哪一个在智能回复、语言准确性、知识库丰富度等方面更胜一筹呢?下面就让我们一探究竟。 首先来谈谈智能回复能力…

数据结构-排序

这篇文章主要记录各种排序算法的思想及实现代码,最后对各种算法的性能进行了对比。 目录 排序的概念及其运用 排序的概念 排序运用 常见的排序算法 常见排序算法的实现 插入排序 基本思想 直接插入排序 希尔排序 选择排序 基本思想 直接选择排序 堆排序…

C++设计模式-- 2.代理模式 和 外观模式

文章目录 代理模式外观模式角色和职责代码演示一:代码演示二:外观模式适用场景 代理模式 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合 或不能直接引用另一个对象,而代…

数据结构与算法:快速排序

数据结构与算法:快速排序 快速排序荷兰国旗问题霍尔版本递归优化小区间优化 PartSort优化三数取中 挖坑法前后指针法 非递归法 快速排序 荷兰国旗问题 想要理解快速排序,就先理解这个问题: [LeetCode75.颜色分类] 荷兰国旗是由红白蓝三色组…

10.云原生之在线开发调试

云原生专栏大纲 文章目录 vscode-server介绍VSCode Server 和云开发结合vscode-server安装code-server安装插件在线安装插件离线安装插件安装中文插件 配置开发环境在容器中安装开放环境Dockerfile制作镜像 git拉取项目 vscode-server介绍 VSCode Server(Visual S…

动态内存面试的经典题目

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

网络安全中的“三高一弱”和“两高一弱”是什么?

大家在一些网络安全检查中,可能经常会遇到“三高一弱”这个说法。那么,三高一弱指的是什么呢? 三高:高危漏洞、高危端口、高风险外连 一弱:弱口令 一共是4个网络安全风险,其中的“高危漏洞、高危端口、弱…

电脑怎么录制屏幕?看这一篇就够了

在数字时代,电脑屏幕录制已经成为人们日常生活中一个越来越重要的工具。无论是录制在线课程、游戏精彩时刻,还是远程会议、软件演示,屏幕录制都可以帮助我们更好地保存和分享这些信息。可是您知道电脑怎么录制屏幕吗?本文将介绍两…

旧电脑追加内存条

内存条基本知识 DDR4 2666 DDR(Double Data Rate)双倍速率 4 第四代 2666 内存主频2666MHz 内存时序 内存的延迟时间 传输带宽 MB/s 内存和CPU之间的传输速度 针脚数 数字-PIn 288-PIN就是288个针脚 选购内存条 …