论文网址:lxm-2024612164025.pdf (ict.ac.cn)

# 引言

# 定义

文本分类是指在给定分类体系下,通过特定模型计算,为输入文本指定预定义标签的过程,是自然语言处理中应用最广泛、也是最重要的领域之一。

# 方法

  1. 1960~2010:基于传统机器学习的文本分类方法
    文本预处理 —— 特征提取 —— 分类计算
    缺点:耗时,成本高昂,强烈依赖于领域知识,忽略文本序列信息

  2. 2010 年向后:新兴深度学习方法
    核心模块是一个表征学习模型,该模型能够自动挖掘潜在特征,并将文本数据映射到蕴含语义信息的低维连续特征向量,因此不需要传统机器学习方法中的人工设计特征。

  • word2vec 模型,其核心思想为利用单词所在上下文信息将非结构化、不可计算的文本数据转换为结构化、可计算的低维稠密向量
  • Transformer 模型无需人工标签,可以从海量的语料中学习到通用的语言表示,并显著提升下游的任务

# 相关基础知识

# 符号定义

文本数据集可以用 D=S1,S2,,SND={S_{1}, S_{2}, \cdots, S_{N}} 表示,由一系列长短不一的文本构成,N 表示数据集所包含的文本数目
S=w1,w2,,wnS={w_{1}, w_{2}, \cdots, w_{n}} 表示单个文本数据,其中 wiw_{i} 表示文本中第 i 个单词,n 表示文本数据所包含的单词数目;
Y=y1,y2,,ymY={y_{1}, y_{2}, \cdots, y_{m}} 表示分类任务中的类别信息,其中 m 表示类别数目.
此外,针对其它信息,本文利用 wiR1×dw_{i} \in R^{1 ×d} 表示单词 wiw_{i}嵌入向量
MRn×dM \in R^{n ×d} 表示由文本 S 中所有单词的特征向量所构成的特征矩阵,其中每一行表示一个单词的特征 向量.

Pasted image 20250708095320.png

# 文本分类方法范式

  1. 传统机器学习方法
    文本预处理(噪声消除,分词)—— 特征提取 —— 基于统计学的机器学习算法分类

  2. 新兴的深度学习方法
    学习文本的潜在特征嵌入表示 —— 非线性变换神经网络将特征映射到系统输出

Pasted image 20250708101036.png

# 文本分类基础知识

# 传统机器学习

传统机器学习方法在解决文本分类问题时由特征工程和分类器两个模块组成,其中特征工程包含文本预处理和特征提取两个部分内容。

  1. 文本预处理:
    • 去除噪声以及不必要的信息。如无特殊意义的停用词、拼写错误单词、俚语等
    • 相关技术例如:分词技术、停用词处理、拼写检查等
  • 分词技术:
    • 切断上下文耦合关系,降低词序影响
    • 主流方法采用基于统计的分词方式,通过动态规划查找最大概率路径,以找出基于词频的最佳切分组合
  • 停用词处理技术
    • 停用词:高频但不具有实际意义的词。如数量词 "a" "一",介词或连词 "about" "否则" 等。
    • 不牺牲句子含义的情况下,安全地将它们从文本数据中删除
  • 拼写检查
    • 可选的文本预处理步骤,常见于社交媒体相关的数据集中
  1. 特征提取:
    • 将非结构化文本序列转换为结构化特征空间数字向量
  • 词袋模型(BoW)

    • 利用由单词集合构成的词汇表来表示每个文档,词袋中的每个单词互相独立
    • 统计单词出现的次数
    • 忽略了单词之间的顺序关系,且无法反映出文档中不同单词之间的关联关系
  • 词频 - 逆文档频率算法(TF-IDF)

    • 基于词语统计加权的向量化表示方法。 真正重要的单词是那些在某个文档中频繁出现,但在整个文档集合中又相对少见的单词。

    • TF 表示单词在文档中出现的次数,IDF 表示单词的逆文本频率指数

    • 对于一个单词  t  在文档  d  中的 TF:
      TF(t, d) = (单词 t 在文档 d 中出现的次数) / (文档 d 中所有单词的总数)

    • 对于一个单词  t  的 IDF:
      IDF(t) = log( (文档总数 N) / (包含单词 t 的文档数量 + 1) )

    • 对于一个单词  t  在文档  d  中的重要性分数:
      TF-IDF(t, d) = TF(t, d) * IDF(t)

  • 词嵌入模型

    • Word2VecGloVe 和 FastText

# Word2Vec

  • 核心思想: “一个单词的含义可以通过它周围的单词来定义”(分布式假设)。
  • 目标: 训练一个神经网络模型,学习预测给定单词的上下文单词(或反之),从而在模型的权重中学习到有意义的词向量。
  • 关键创新: 高效训练大规模词向量的方法(负采样、层次 Softmax)。
  • 两种主要架构:
    1. Skip-gram: 用一个词预测它周围的上下文词。 例如,给定单词 “cat”,模型尝试预测附近的词如 “the”, “black”, “is”, “sleeping”。 擅长处理低频词。
    2. Continuous Bag-of-Words(CBOW): 用周围的上下文词预测中心词。 例如,给定上下文词 “the”, “black”, “is”, “sleeping”,模型尝试预测中心词 “cat”。 训练速度通常比 Skip-gram 快一点。
  • 训练过程简化版:
    1. 遍历语料库中的所有句子。
    2. 对于每个句子中的每个目标单词:
      • 定义一个滑动窗口(如左右各 5 个词)。
      • (Skip-gram)用目标单词的向量作为输入,尝试预测窗口内每个上下文单词
      • (CBOW)用窗口内所有上下文单词的向量平均值作为输入,尝试预测目标单词
    3. 通过调整输入向量和输出层权重来最小化预测错误(使用梯度下降)。
    4. 训练完成后,输入层的权重矩阵(或者有时是输入层 + 输出层的组合)中的每一行就对应一个单词的词向量。
  • 优点:
    • 生成的词向量能很好地捕捉语义和语法关系(如  vec(king) - vec(man) + vec(woman) ≈ vec(queen) )。
    • 计算效率高(得益于负采样 / 层次 Softmax),能处理海量语料。
    • 向量维度远小于词汇表大小(典型值 100-300 维),低维稠密。
  • 缺点:
    • 对于未在训练语料中出现的词(OOV),无法生成向量。
    • 每个单词只有一个固定向量,无法处理一词多义(Polysemy)现象(比如 “bank” 表示河岸或金融机构)。
    • 词形变化(morphology)不敏感(“run”, “runs”, “running” 被视为完全不同的词)。
  • 应用: 几乎所有需要词表示的 NLP 任务的基础,如文本分类、情感分析、机器翻译、命名实体识别、推荐系统等。

# GloVe (Global Vectors for Word Representation)

  • 核心思想: 将 全局统计信息(整个语料库的词 - 词共现矩阵)与 局部上下文预测(类似 Word2Vec)的优点结合起来。
  • 洞察: 词向量应该能够解释单词在语料库中共同出现的统计规律。例如,“ice” 和 “steam” 都与 “solid”、“gas”、“water” 等词共现,但它们与 “fashion” 的共现频率差异很大。
  • 目标: 学习到的词向量,其点积尽可能接近两个单词在语料库中共现次数的对数。即:
    vec(wi)vec(wj)+bi+bjlog(Xij)vec(w_i) · vec(w_j) + b_i + b_j ≈ log(X_{ij})
    其中:
    • XijX_{ij} 是单词 wiw_i 在单词 wjw_j 上下文中出现的次数(或反之,根据定义)。
    • bib_ibjb_j 是偏置项。它们是为了捕捉单词本身的固有频率偏差
  • 训练过程简化版:
    1. 构建共现矩阵: 遍历整个语料库,统计每个单词对  (i, j)  在某个窗口大小内共同出现的频率 XijX_{ij}
      • 共现次数指的是在语料库中,两个单词在一定大小的上下文窗口内同时出现的频率
    2. 定义目标函数(损失函数): 最小化所有单词对  (i, j)  的 (vec(wi)vec(wj)+bi+bjlog(Xij))2(vec(w_i) · vec(w_j) + b_i + b_j - log(X_{ij}))^2 的加权和。权重函数 f(Xij)f(X_{ij}) 给高频词对较低权重(防止它们主导训练),给低频词对较高权重但不过高(避免过度关注噪声)。
    3. 优化: 使用优化算法(如 AdaGrad)最小化这个损失函数,得到所有单词的词向量 vec(wi)vec(w_i) 和偏置项 bib_i
  • 优点:
    • 结合了全局统计信息,理论上可能比 Word2Vec 更能捕捉语料库的总体特性。
    • 在多种语义和语法类比任务上表现通常略优于 Word2Vec。
    • 训练目标直接针对词向量之间的关系(点积 ≈ 共现概率的对数),概念清晰。
  • 缺点:
    • 需要存储和计算庞大的共现矩阵(尽管有优化方法),内存消耗可能比 Word2Vec 大。
    • 和 Word2Vec 一样,无法处理 OOV 词和一词多义。
    • 对词形变化不敏感。
  • 应用: 与 Word2Vec 类似,作为各种 NLP 任务的词向量基础。GloVe 预训练向量(在维基百科、Common Crawl 等上训练的)非常流行。

# FastText

  • 核心思想: 一个单词的表示由其组成它的子词(subword)的向量组合而成。 由 Facebook AI Research (FAIR) 提出。
  • 关键创新: 引入 子词信息(n-gram 字符)来解决 OOV 和词形变化问题。
  • 架构: 本质上是 Word2Vec Skip-gram 模型的扩展
  • 核心概念:
    • 每个单词不再仅由一个向量表示,而是被表示为其所有字符 n-gram 的向量之和(或平均值)
    • 例如,单词 “where” (假设 n=3) 的子词包括: <whwhehererere>where>  ( <  和  >  表示单词边界)。
    • 单词 “where” 的向量 =  vec(<wh)  +  vec(whe)  +  vec(her)  +  vec(ere)  +  vec(re>)  +  vec(<where>)  (其中  <where>  是单词本身作为一个整体的特殊 n-gram)。
  • 训练过程: 与 Word2Vec Skip-gram 非常相似,但输入 / 输出不再是整个单词,而是其子词集合的和向量
  • 优点:
    • 处理 OOV 词: 即使一个单词从未在训练语料中出现过,只要它的字符 n-gram 出现过(这很常见),就可以通过组合这些子词向量得到其表示。例如,训练时见过 “playing”, “player”,就能为未见的 “playable” 生成向量(共享 “play” 等子词)。
    • 处理词形变化: 共享相同词根或词缀的单词(如 “run”, “running”, “runner”)会共享很多子词(如 “run”, “unn”, “ing”, “ner”),因此它们的向量会天然相似,更好地捕捉形态学信息。
    • 对拼写错误和罕见词更鲁棒。
    • 形态丰富的语言(如土耳其语、芬兰语)上表现显著优于 Word2Vec 和 GloVe。
  • 缺点:
    • 单个词向量由多个子词向量求和得到,其可解释性可能稍弱于 Word2Vec/GloVe。
    • 生成的词向量维度与 Word2Vec/GloVe 相同(如 300 维),但由于要存储大量 n-gram 向量,模型文件体积通常更大
    • 仍然无法完美处理一词多义(虽然共享的子词可能带来一些相关义项的信息)。
  • 应用: 特别适用于需要处理大量新词、拼写变体或形态丰富语言的任务:文本分类、情感分析(尤其用户生成内容)、机器翻译(低资源 / 形态丰富语言)、OOV 词处理。
特性Word2VecGloVeFastText
核心理念局部上下文预测全局共现统计 + 局部预测局部上下文预测 + 子词
主要优势高效,捕捉语义语法关系结合全局统计,性能稳定处理 OOV,词形变化
处理 OOV❌ 不行❌ 不行✅ 优秀
处理词形变化❌ 差❌ 差✅ 优秀
处理一词多义❌ 差(单个向量)❌ 差(单个向量)❌ 差(但稍有缓解)
训练资源消耗相对较低中等(需共现矩阵)中等(模型文件大)
预训练流行度非常流行非常流行(尤其 GloVe)流行(尤其需 OOV 处理时)
典型代表库gensimtensorflowglove-pythonfasttext  (Facebook)

# 文本分类机器学习模型

b8d3a832-b062-4e20-b218-cbd538230144.png

# 基于 K 近邻模型的分类方法(KNN)

计算与训练集里各个数据的距离(相似度)—— 选取距离最小的 K 个数据 —— 这些数据中出现频率最高的类别作为分类结果(或进行评分)

公式 1:目标 (What we want to find)
f(S)=argmaxjScore(S,yj)f(S) = \arg \max_{j} Score(S, y_j)

  • f(S)f(S): 这是模型的输出,表示我们为测试文档  S 预测的文本标签(类别)。也就是  S  最终被分到哪个类别。
  • argmaxj\arg \max_{j}:这个符号的意思是 “找到使后面表达式值最大的那个  j  的值”。 j  在这里代表候选类别的索引(比如  j=1  代表 “体育”, j=2  代表 “科技” 等等)。
  • Score(S,yj)Score(S, y_j): 这是一个评分函数,它计算测试文档  S 候选类别 yjy_j 之间的关联强度(得分)。得分越高,说明  S  越可能属于类别 yjy_j
    公式 1 的含义: KNN 模型预测  S  的类别  f(S)  的方法是:计算  S  相对于每一个可能的候选类别 yjy_j 的得分 Score(S,yj)Score(S, y_j),然后选择得分最高的那个类别 yjy_j 作为  S  的最终类别。

公式 2:评分函数 (How we calculate the score)
Score(S,yj)=SiKNNsin(S,Si)h(Si,yj)Score(S, y_j) = \sum_{S_i \in KNN} \sin(S, S_i) h(S_i, y_j)

sin:不是正弦,指 S 与 SiS_i 的相似度

  • SiKNN\sum_{S_i \in KNN} 这个求和符号  \sum  表示我们要对集合  KNN  里的每一个元素 SiS_i 进行计算并累加结果。 KNN  就是之前通过相似度计算找出来的、与测试文档  S  最相似的  K  个训练文档的集合。SiS_i 代表这个集合中的第  i  个邻居文档

  • sin(S,Si)\sin(S, S_i) 这表示测试文档  S 训练邻居文档 SiS_i 之间的相似度。注意:

    • \sin  在这里代表 Similarity (相似度),不是数学里的正弦函数! 这是一个常见的符号重载,在机器学习 / 信息检索领域, sim  或  sin  常用来表示相似度。
    • 最常用的相似度计算方法是余弦相似度 (Cosine Similarity),取值范围通常在  [-1, 1]  或  [0, 1] (取决于向量表示),值越大表示越相似。
  • h(Si,yj)h(S_i, y_j) 这是一个指示函数 (Indicator Function),或者叫二值函数。它的定义是:

h(Si,yj)={1如果训练文档Si的真实类别是yj0如果训练文档Si的真实类别不是yjh(S_i, y_j) = \begin{cases} 1 & \text{如果训练文档 } S_i \text{ 的真实类别是 } y_j \\ 0 & \text{如果训练文档 } S_i \text{ 的真实类别 } \textbf{不是} y_j \end{cases}

  • 它非常简单粗暴:如果邻居 SiS_i 的真实标签正好是我们要计算得分的那个候选类别 yjy_j,那么 h(Si,yj)=1h(S_i, y_j) = 1;否则就是  0

公式 2 的含义: 计算测试文档  S  对于候选类别 yjy_j 的得分 Score(S,yj)Score(S, y_j) 的方法是:

  1. 遍历  S  的所有  K  个最近邻居 (SiKNNS_i ∈ KNN)。
  2. 对于每一个邻居 SiS_i
    • 计算  S  和 SiS_i 的相似度 sin(S,Si)\sin(S, S_i)
    • 查看 SiS_i 的真实类别是否是 yjy_j
      • 如果是 (h(Si,yj)=1h(S_i, y_j) = 1),那么就把 sin(S,Si)\sin(S, S_i) 的值加到总分里。
      • 如果不是 (h(Si,yj)=0h(S_i, y_j) = 0),那么这个邻居对类别 yjy_j 的得分贡献就是  0 (加了个寂寞)。
  3. 把所有属于类别 yjy_j 的邻居贡献的相似度值 sin(S,Si)\sin(S, S_i) 加起来,得到的总和就是  S  对于类别 yjy_j 的最终得分 Score(S,yj)Score(S, y_j)

这个决策规则的核心思想是:测试文档  S  属于哪个类别,取决于它的  K  个最相似的邻居中,哪些类别的邻居与它最相似(相似度高),并且这些邻居的数量多。

简单来说就是,计算所有相似度,然后根据不同类别,把这些相似度加起来,看哪个类别的分数最高。

  • 优点:简单、有效且直观
  • 缺点:严重依赖于使用的文本预处理和特征提取方法,缺少对所提取特征的深层次信息挖掘与利用,难以对不同类别数据实现细粒度区分
  • 具有较高的时空复杂度,对部署环境的硬件运行速度与数据存储空间都有较高的要求,难以解决大规模的文本分类任务

# 基于支持向量机模型的分类方法(SVM)

找到一个最棒的 “分界线”(在高维空间是超平面),把不同类别的文本尽可能清晰、且留有最大缓冲地带地分开。

当 SVM 用于文本分类任务时,其核心思想是将数据集中的每个文本表示为一个向量,通过超平面隔离使得支持向量距离最大化,实现文本数据分类

公式:yi(wxi+b)1y_i(w⋅x_i+b)≥1
SVM 模型的目的是找到一个满足上式性质的函数 f_

符号含义在公式中的作用示例
xix_i文本向量(TF-IDF 等)输入特征[0.3, 1.2, ...]
yiy_i样本标签(+1 或 -1)指示样本类别方向+1 (体育), -1 (科技)
w权重向量定义分类超平面的法方向[0.4, -0.7, ...]
b偏置项平移超平面位置0.5
w⋅x+b决策值>0 预测正类,<0 预测负类1.2 (预测体育)
约束条件yi(wxi+b)1y_i(w⋅x_i+b)≥1强制样本远离分界面,最大化间隔确保分类置信度

# 基于概率图模型的分类方法 (PGM)

以朴素贝叶斯分类器为例,介绍基于 PGM 的文本分类方法核心思想

公式:

0ea3e6c3-2a58-4f45-af6d-3d8eca903965.png

贝叶斯公式原型:$$P (Y=y | X) = \frac {P (X | Y=y) P (Y=y)}{P (X)}$$
先验概率:P(y)P(y)
后验概率:等式左边那个东西
朴素贝叶斯:假设各个条件 XiX_i 相互独立,那么计算概率可以简略如下。

P(X1,X2,...,XnC)=P(X1C)P(X2C)...P(XnC)P(X1, X2, ..., Xn | C) = P(X1 | C) * P(X2 | C) * ... * P(Xn | C)

由于目的是选出 y,使得概率最大,不一定要算出具体值,在比较过程中,右边的式子可以只算分子部分。(因为分母大家都相同)

# 基于决策树模型的分类方法(DT)

决策树的核心思想是模仿人类做决策时的思考方式:通过一系列 “是 / 否” 问题(判断规则),逐步将数据划分到更纯净的子集,最终到达一个可以明确分类的叶子节点。
构建一个决策树。

熵 (Entropy):需要计算(衡量数据集 DD 中类别的不确定性混乱度。熵越高,混合程度越高,越难分类。当概率越接近 0.5,它的熵越大)
Entropy(D)=k=1Kpklog2(pk)Entropy(D) = -\sum_{k=1}^{K} p_k \log_2(p_k)

  • KK:类别总数(如体育、科技、政治)。

  • pkp_k:数据集 DD 中属于类别 kk 的样本比例。

  • 熵的范围: [0,log2(K)][0, \log_2(K)]Entropy(D)=0Entropy(D)=0 表示 DD 中所有样本属于同一类别(最纯);Entropy(D)=log2(K)Entropy(D)=\log_2(K) 表示 KK 个类别均匀分布(最混乱)。

  • 信息增益 (IG): 衡量使用某个特征 AA 对数据集 DD 进行划分后,熵的减少量(即不确定性降低的程度)。信息增益越大,意味着使用特征 AA 划分后,数据纯度提升得越多。
    Gain(D,A)=Entropy(D)vValues(A)DvDEntropy(Dv)Gain(D, A) = Entropy(D) - \sum_{v \in Values(A)} \frac{|D_v|}{|D|} Entropy(D_v)

    • Values(A)Values(A):特征 AA 所有可能的取值(对于文本中的单词特征,通常是 “出现” 或 “未出现”)。
    • DvD_vDD 中特征 AA 取值为 vv 的子集。
    • Dv|D_v|:子集 DvD_v 的大小。
    • D|D|:数据集 DD 的大小。
    • vDvDEntropy(Dv)\sum_{v} \frac{|D_v|}{|D|} Entropy(D_v):划分后各子集熵的加权平均值(称为条件熵)。
  • 决策树学习算法(如 ID3, C4.5): 在构建树的每个内部节点,选择能带来最大信息增益 Gain(D,A)Gain(D, A) 的那个特征 AA 作为该节点的划分依据。

构建决策树:

  • 从根节点(所有训练文档)开始。
  • 对当前节点,遍历所有单词特征 WiW_i
  • 对于每个特征 WiW_i,计算将其作为划分特征(例如,“WiW_i 出现次数 > 0?”)带来的信息增益 Gain(D,Wi)Gain(D, W_i)(或基尼增益)。
  • 选择信息增益最大的单词特征 WjW_j 作为当前节点的划分特征。
  • 根据 WjW_j 的取值(如 “是 / 否”),将当前节点的文档划分到不同的子节点。
  • 对每个子节点递归地重复步骤 2-5,直到满足停止分裂条件,形成叶子节点并赋予类别标签。

# 基于集成模型的分类方法(EL)

集成学习通过构建多个分类器,并根据一定的规则对各个分类器的结果进行聚合,来完成文本分类任务。
集成模型应用于文本分类时的泛化能力和效率优于单个模型,能够利用模型的多样性和鲁棒性来解决文本数据存在的高维度、稀疏性和不均衡性等问题.但是计算复杂度相对更高,同时多个模型级联将导致方法整体可解释性下降

# 总结对比

模型核心优势关键缺陷适用场景
K 近邻简单直观,处理非线性计算慢,怕噪声和不均衡数据小规模情感分析
SVM泛化能力强,支持非线性调参复杂,对缺失数据敏感高精度新闻分类
朴素贝叶斯高效稳定,抗缺失数据特征独立性假设不成立实时短文本分类(如情感分析)
决策树可解释性强,预测速度快易过拟合,怕数据扰动规则清晰的分类任务
集成模型精度高,泛化能力突出计算复杂,可解释性差复杂任务(如虚假新闻检测)

总的而言,传统机器学习模型存在泛化能力不足、易受数据干扰、输出结果可解释性差的问题,缺乏深入分析的能力,对于文本的深层语义理解不足。

# 文本分类深度学习模型

8a6b71d4-3a48-45a0-856e-2c17582ae79f.png

# 补充:激活函数

激活函数是神经网络中至关重要的组成部分,它们为模型引入非线性变换,让神经网络能够学习复杂的模式(如文本、图像中的非线性关系)。如果没有激活函数,无论神经网络有多少层,都只能实现线性映射,无法拟合复杂数据。
常见的:sigmoid, softmax, ReLU, Tanh

  1. Sigmoid 函数
    公式σ(x)=11+ex\sigma(x) = \frac{1}{1 + e^{-x}}

  2. Softmax 函数
    公式: 对于输入向量 x=(x1,x2,...,xk)x = (x_1, x_2, ..., x_k),输出向量 y=(y1,y2,...,yk)y = (y_1, y_2, ..., y_k) 满足:yi=exij=1kexjy_i = \frac{e^{x_i}}{\sum_{j=1}^k e^{x_j}}

  3. ReLU(Rectified Linear Unit,修正线性单元)
    公式ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)

  4. Tanh(双曲正切函数)
    公式tanh(x)=exexex+ex\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}

# 基于基础网络模型的分类方法

基础的深度学习网络模型主要包括前馈神经网络、循环神经网络、卷积神经网络等

# 前馈神经网络(FNN)

最基本的神经网络结构(多层感知机 MLP)。文本向量(如词嵌入平均或 TF-IDF)作为输入,通过全连接层学习特征,输出分类结果

FNN 主要包括五层结构:输入层、嵌入层、堆叠层、神经网络层、输出层
FNN 在顺序信息的捕捉上主要依赖上下文窗口大小,因此对于长单词或文本,它难以有效地捕获远距离的顺序依赖

特点: 简单,但难以捕捉序列或局部信息,处理长文本效果一般。

# 循环神经网络(RNN)

挖掘更为丰富的文本语义信息,解决上下文依赖问题,对时序特征进行建模

【循环神经网络】5 分钟搞懂 RNN,3D 动画深入浅出

04da1ccf-e1fa-47c1-bfe9-8b1b17f9c768.png

上一个时刻的神经元影响下一个时刻的神经元

扩展:长短期记忆网络(LSTM)
解决长距离信息的遗忘
【LSTM 长短期记忆网络】3D 模型一目了然,带你领略算法背后的逻辑

74610244-e8dc-48e7-bcca-1ab44ee17faa.png

增加一个 “时间轴”,每个时刻对其进行删除与增加(相当于长期记忆)

# 卷积神经网络(CNN)

对空间信息进行建模,挖掘文本中的局部特征

使用不同尺寸的卷积核在词嵌入序列(类似图像像素)上滑动,提取局部特征(如 n-gram 级别的语义),通过池化层(如 max-pooling)聚合重要特征。

TextCNN:利用多个不同大小的滤波器来提取文字中的关键信息
DeepCNN:用很多层提取复杂特征

基础网络模型本身也存在着模型过于简单、只能建模特定信息等问题。例如循环神经网络对文本中的时序特征进行建模,善于处理拥有丰富上下文关系的长文本分类任务,而卷积神经网络通过挖掘文本的 n-gram 信息,更善于捕捉文本的局部特征。

# 基于胶囊网络模型的分类方法

胶囊结构取代了传统的神经元结构,每个胶囊的输入和输出均为向量
除第一层胶囊外,每个胶囊的输入均为低层胶囊输出向量的加权和

使用胶囊网络来编码文本数据中局部与整体之间的内在空间关系,以此来减轻局部特征噪声对模型的不良影响
优点:可以学习和保存实体的各种属性;可以有效建模复杂文本的空间信息
缺点:训练速度慢,计算成本高

# 基于图神经网络模型的分类方法

GNN 图神经网络
将文本表示为图结构(节点 = 词 / 句 / 文档,边 = 词共现 / 句法依赖 / 语义关系等),通过消息传递机制让节点聚合邻居信息来更新自身表示。

图神经网络(Graph Neural Network,简称 GNN)是一类专门处理 “图结构数据” 的深度学习模型。它的核心思想是让图中的每个节点通过 “邻居信息” 更新自己的特征,最终学到能反映整个图结构的表示。
GNN 的核心逻辑可以用一句话概括:每个节点通过 “聚合邻居的信息” 来更新自己的特征

常见的 GNN 模型:

  1. 图卷积网络(Graph Convolutional Network,GCN)
    GCN 是最基础、最常用的 GNN 模型,它的 “聚合规则” 可以简单理解为:每个节点把邻居的特征做 “加权平均”,再和自己的特征结合,最后通过一个神经网络(比如全连接层)输出新特征

  2. 图注意力网络(Graph Attention Network,GAT)
    GAT 的核心是 “注意力机制”—— 它会让每个节点 “自主判断邻居的重要性”,而不是像 GCN 那样用固定规则(比如度数)加权。

  3. GraphSAGE(Graph Sample and Aggregate)
    当图非常大时(比如有上亿个节点的社交网络),GCN 或 GAT 需要处理所有邻居,计算量会爆炸。GraphSAGE 的解决思路是:每个节点只 “抽样” 一部分邻居来聚合信息(比如只看前 20 个最重要的邻居),大幅降低计算成本。

# 基于迁移学习模型的分类方法

迁移学习的核心思想是从相关任务中迁移知识,以此提高新任务的学习效果并减少对大量训练数据的依赖
迁移学习具有较弱的数据依赖性和标签依赖性。需要进一步解决复杂场景中的知识迁移问题

# 基于预训练模型的分类方法

预训练模型(PTM)
预训练技术旨在提前在大量数据上学习数据的通用特征,再将这些学习到的特征用于下游任务。

# 常见预训练语言模型

预训练模型可以被分为有监督学习模型、无监督学习模型及自监督学习模型

有监督:预训练模型中模型需要学习从输入 xx 到输出 yy 的映射 f:xyf: x \rightarrow y,其中 yy 是由人工提供的真实标签

  • 严重依赖大规模人工标注数据: 获取成本极高,是主要瓶颈。ImageNet 级别的标注数据集非常稀少。

无监督:预训练任务完全没有人工标签 yy。模型的目标是发现数据 xx 中隐藏的结构、模式或表示,而不涉及任何预测具体标签的任务。

  • 该类模型无需人工标注数据,能直接从海量无标签文本中学习规律,因可避免高昂的标注成本而被广泛应用。例如 Word2Vec 模型,通过跳元模型(Skip-Gram)与连续词袋(CBOW)模型,将单词映射为低维向量,捕捉单词间的语义和语法关系。
  • 学习目标不直接: 没有明确的监督信号,学习到的表示是否能有效迁移到下游任务(如分类)往往是间接的、不确定的,需要仔细设计下游任务的使用方式(如如何利用聚类结果)。

自监督(主流):这是无监督学习的一个子集,也是最核心、最成功的范式。核心在于巧妙地设计一个辅助任务 (Pretext Task),利用输入数据 xx 自身来自动生成伪标签 (Pseudo-Label) y~\tilde{y}。模型需要学习预测这个自动生成的 y~\tilde{y}。虽然任务看起来是 “监督的”(有输入 xx 和 “标签” y~\tilde{y}),但这些标签 y~\tilde{y} 并非人工标注,而是从数据 xx未标注部分或变换中自动派生出来的。

  • 预训练流程:
    • 数据: 只需要大规模无标注数据 xx
    • 设计辅助任务: 这是关键!设计一个任务,能够:
      • xx 的一部分自动生成 y~\tilde{y}
      • 迫使模型为了预测 y~\tilde{y} 而学习到对理解 xx 本质有用的表示。
      • 这个任务通常是模型最终关心的下游任务(如分类)的代理任务。
    • 学习目标: 在辅助任务上像监督学习一样训练:最小化模型预测 f(x)f(x) 与自动生成的伪标签 y~\tilde{y} 之间的损失 L(f(x),y~)L(f(x), \tilde{y})

# 掩码语言模型

掩码语言模型是一种自监督学习的预训练方式,核心思想是通过 “遮掩 - 预测” 任务让模型学习文本的上下文语义。
具体来说,在训练时,模型会随机挑选输入文本中的部分词语进行 “遮掩”(比如用特殊符号 [MASK] 替换,或随机替换成其他词),然后让模型根据被遮掩词的上下文预测被遮掩的内容。通过这种方式,模型能被迫学习词语在不同语境中的含义,从而捕捉到更丰富的语义关联。


里程碑式的创新:Transformer 架构简介


  • BERT(Bidirectional Encoder Representations from Transformers)

BERT 是 Google 在 2018 年提出的基于掩码语言模型的预训练语言模型,是 NLP 领域的里程碑模型,全称意为 “基于 Transformer 的双向编码器表示”。

核心特点:

  1. 基于 Transformer 架构:BERT 仅使用 Transformer 的 “编码器” 部分(Transformer 是一种基于自注意力机制的模型,能高效捕捉文本中长距离的语义关联)。自注意力机制让模型能同时关注句子中不同位置的词语,比如 “他喜欢苹果,因为它很甜” 中,模型能关联 “它” 指代 “苹果”。
  2. 双向预训练:BERT 的核心预训练任务就是掩码语言模型(MLM),同时还加入了 “下一句预测(NSP)” 任务(判断两个句子是否是连续的上下文)。通过这两个任务,BERT 在海量无标签文本(如维基百科、书籍语料)上学习到通用的语言规律,能理解词语的多义性、句子逻辑等。
  3. 微调适配下游任务:预训练完成后,BERT 可以通过 “微调” 快速适配具体任务(如文本分类、问答、情感分析等)。例如做文本分类时,只需在输入文本前加一个特殊符号 [CLS] ,用这个符号对应的输出向量作为整个句子的表示,再连接一个简单的分类器即可。

# 自回归语言模型

自回归语言模型(AutoRegressive Language Model, ARLM)是一种通过序列中已有的元素预测下一个元素的语言模型,核心思想是 “利用历史信息生成未来信息”,广泛用于文本生成任务。
根据输入序列中先前单词预测下一个单词.它是一种基于概率的模型其主要思想是在给定词作为输入的情况下,根据当前输入生成下一个可能的词,并基于其出现的概率进行预测.此外,ARLM 还可以反过来根据下文预测前面的单词
通过生成文本的过程来学习文本的表示

鲁棒性指系统、算法或组织在面临干扰、异常或不确定性时,维持其性能稳定和功能完整的能力。)

  • 基于微调预训练模型的分类方法
    扩展预训练语言模型的一个重要方法是微调.在微调过程中,预训练模型将与额外的网络进一步训练,以适应特定的任务或领域。

    1. 基于知识增强的预训练模型
    2. 基于对比学习的预训练模型
      对比学习(CL)是一种自监督学习方法,利用数据间的差异进行学习
    3. 多模态预训练模型
  • 提示学习

    • 提示学习通过将下游任务转换为完形填空任务,随后由预训练语言模型填充空缺,并将填充符号映射至不同类别
      39edd405-8303-44e0-b61e-81499971303d.png

    • 提示学习方法在低资源和少样本的文本分类场景拥有着得天独厚的优势

# 数据集

ef272cc1-4c26-4c56-b25f-01fb0fa0d562.png

# 评价方法

e1b5c5a0-e3e3-4d4e-836b-898ea04af5a0.png

# 单标签评价指标

单标签分类中,每个样本仅属于一个类别(含二分类和多分类)

  1. 准确率(Accuracy)与错误率(Error Rate)
    • 定义:准确率是正确分类的样本占总样本的比例;错误率是错误分类的样本占总样本的比例。
  2. 灵敏度(Sensitivity)与特异度(Specificity)
    • 定义:灵敏度(真阳性率)是正确识别的正例占实际正例的比例;特异度(真阴性率)是正确识别的负例占实际负例的比例。
  3. 精确率(Precision)、召回率(Recall)与 F1 分数(F1)
    • 定义:
      • 精确率:预测为正例的样本中实际为正例的比例(Precision=TPTP+FP\text{Precision} = \frac{TP}{TP + FP});
      • 召回率:实际为正例的样本中被正确预测的比例(Recall=TPTP+FN\text{Recall} = \frac{TP}{TP + FN});
      • F1 分数:精确率和召回率的调和平均,平衡两者的矛盾(F1=2×Precision×RecallPrecision+RecallF1 = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}})。
  4. PR 曲线与 ROC 曲线
    • PR 曲线:以精确率为纵轴、召回率为横轴的曲线,反映模型在不同阈值下的精确率 - 召回率 trade-off,适用于不平衡数据。
    • ROC 曲线:以真阳性率(灵敏度)为纵轴、假阳性率(FPFP+TN\frac{FP}{FP + TN})为横轴的曲线,适用于样本分布均匀的场景,评估模型泛化能力。
    • 衍生指标:
      • AUPRC(PR 曲线下面积):近似平均精度,适用于不平衡数据;
      • AUROC(ROC 曲线下面积):值越接近 1,模型分类性能越好。
  5. 其他指标
    • 精确匹配(EM):用于问答系统,衡量预测答案与真实答案完全匹配的比例。
    • 平均排名(MR):正确标签的平均排名,适用于新闻分类、主题标记等场景。
    • 平均倒数排名(MRR):首个正确答案排名的倒数平均值,适用于只有一个正确答案的任务(如问答)。
    • 平均精度(MAP):多个正确答案场景下,每个查询的平均精确率,用于信息检索和多答案任务。

# 多标签评价指标

多标签分类中,每个样本可属于多个类别

  1. 宏平均(Macro-averaging)、微平均(Micro-averaging)、加权平均(Weighted-averaging)
    • 宏平均:先计算每个类别的评价指标(如精确率、召回率),再取算术平均值,忽略类别不平衡,适用于各类别重要性均等的场景。
    • 微平均:先计算所有类别的总体 TPFPFNTP、FP、FN,再统一计算指标,受样本量大的类别影响更大,适用于关注多数类性能的场景。
    • 加权平均:对每个类别的指标按样本占比加权后平均,平衡类别不平衡问题。
  2. 0-1 损失(ZL)
    • 定义:若预测标签与真实标签完全不同则为 1,否则为 0(ZL(yi,xi)=1ZL(y_i, x_i) = 1yixiy_i \neq x_i,否则为 0)。
  3. 绝对匹配率(EMR)
    • 定义:样本预测标签与真实标签完全一致的比例
  4. 汉明损失(HL)
    • 定义:所有类别中错误预测的比例
  5. 极端多标签指标
    • 前 K 精确率(P@K):按相关性排序后,前 K 个预测中正确标签的比例。
    • 累计增益(CG):预测结果的相关性得分总和,不考虑排名。
    • 折损累计增益(DCG):考虑排名的累计增益,位置越靠后,权重越低DCGM=rel1+i=2Mrelilog2iDCG_M = rel_1 + \sum_{i=2}^M \frac{rel_i}{\log_2 i})。
    • 归一化折损累计增益(NDCG@K):DCG 与理想 DCG 的比值,用于不同查询的结果对比。

# 模型评估

551fe31b-8a26-4660-b6f3-dae409a413b6.png

# 文本分类挑战及展望

# 数据约束方面的挑战

# 数据标注成本高

  • 问题:现有模型依赖标注数据,但垂直领域(如金融、医疗)和复杂任务(如多模态、多语言、超长文本分类)缺乏标注数据,标注过程耗时长、成本高。
  • 影响:限制了小样本 / 零次学习的发展,模型在少样本场景下性能显著下降。
  • 未来方向:探索半监督学习、无监督学习,以及小样本 / 零次学习算法,降低对标注数据的依赖。

# 外部知识利用不足

  • 问题:文本存在歧义性、多义性(如俚语、领域专有名词),短文本缺乏上下文,传统模型难以捕捉深层语义。
  • 解决方案:引入外部知识(如语义词典、知识图谱、常识信息)增强语义表示,但面临知识选择、建模和融合的挑战。
  • 未来方向:研究多源知识融合方法,设计更有效的知识注入机制(如结合预训练模型与知识图谱)。

# 多语种文本分类难题

  • 问题:语言差异(词汇、语法、表达)导致跨语言模型泛化能力弱,且缺乏统一评价标准。
  • 挑战:需兼顾语言特性(如中文分词、阿拉伯语形态),解决数据不平衡、文本长度差异等问题。
  • 未来方向:开发多语种统一表征模型,构建跨语言基准数据集,推动多语言联合训练技术。

# 多标签分类的复杂性

  • 问题
    • 标签规模:极端多标签任务(如百万级标签)导致模型内存和计算成本剧增;
    • 分布不均衡:长尾问题(少数标签样本极少)导致模型偏差;
    • 类别依赖:标签间语义关联(如 “犯罪” 与 “法律”)常被忽略,影响分类性能。
  • 未来方向:研究标签层次化建模(如树结构、图结构)、数据增强(如针对长尾标签的过采样),以及高效的标签嵌入方法。

# 模型计算方面的挑战

# 跨模态文本学习的融合难题

  • 问题:多模态数据(文本 + 图像 / 音频)的语义融合缺乏统一框架,现有模型难以捕捉跨模态关联。
  • 未来方向:设计轻量级跨模态融合架构(如双流 Transformer),探索多模态预训练(如 BEiT-3),解决不同模态的信息对齐问题。

# 模型鲁棒性与对抗攻击

  • 问题:深度学习模型易受对抗样本干扰(微小扰动导致误判),尤其在文本领域,对抗攻击隐蔽性强(如替换同义词)。
  • 现状:现有对抗训练方法(如 FGSM)效果有限,难以应对复杂攻击。
  • 未来方向:研究鲁棒性增强技术(如对抗样本生成、防御性蒸馏),结合对抗学习与预训练模型。

# 模型可解释性不足

  • 问题:深度学习模型(如 BERT、GPT)为 “黑箱”,决策过程难以解释,无法满足医疗、法律等需透明性的场景。
  • 影响:用户难以理解模型依据(如情感分析中为何判定 “消极”),限制模型信任度和优化方向。
  • 未来方向:开发可解释性技术(如注意力可视化、因果分析),设计结构透明的模型(如胶囊网络、图神经网络)。

# 大语言模型的应用瓶颈

  • 问题
    • 计算成本:千亿参数模型(如 GPT-4)训练和部署成本高昂,难以适配终端设备;
    • 数据偏见:预训练数据含噪声和偏见,导致模型生成歧视性内容;
    • 可解释性:大模型推理逻辑不透明,难以验证结果可靠性。
  • 未来方向:模型轻量化(如模型蒸馏、参数高效微调)、数据清洗与去偏,以及结合逻辑推理的大模型优化。

# 大规模数据下的效率挑战

  • 问题:海量文本数据导致维数灾难、训练速度慢、在线推理延迟高,难以满足实时性需求(如实时舆情监控)。
  • 未来方向:设计高效特征提取算法(如稀疏注意力)、增量学习框架,优化分布式训练策略。

# 未来研究展望

  1. 少样本与零样本学习:结合提示学习(如 P-tuning)、元学习,突破标注数据限制,实现快速领域适应。
  2. 知识增强与多模态融合:引入外部知识(如常识、领域图谱),构建多模态统一表征模型,提升复杂语义理解。
  3. 鲁棒性与可解释性:开发对抗鲁棒模型,结合可视化技术和因果推理,推动可信 AI 发展。
  4. 轻量化与高效计算:研究模型压缩(如量化、剪枝)、边缘部署技术,降低大模型落地成本。
  5. 多语言与多标签优化:针对低资源语言和极端多标签场景,设计层次化、自适应的分类框架。
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

北沐清 微信支付

微信支付

北沐清 支付宝

支付宝