深度学习自然语言处理(NLP)基础——自注意力机制原理详解、Transformer、BERT、RNN等

逐渐更新ing

 

一、基础知识

1. ​什么是NLP(自然语言处理)​

  • 定义:NLP 是人工智能的一个分支,致力于让计算机理解、处理和生成人类语言。
  • 任务
    • 文本分类(如情感分析)
    • 机器翻译
    • 问答系统
    • 文本生成
    • 命名实体识别
    • 等等。
  • 技术发展
    • 早期:基于规则的方法(如正则表达式、语法分析)。
    • 中期:基于统计的方法(如隐马尔可夫模型、条件随机场)。
    • 现代:基于深度学习的方法(如 RNN、LSTM、Transformer)。

2. 什么是​Transformer

  • 定义:Transformer 是一种基于 ​自注意力机制(Self-Attention)​ 的神经网络架构,首次在 2017 年的论文《Attention is All You Need》中提出。
  • 核心思想
    • 通过自注意力机制捕捉输入序列中不同位置之间的关系。
    • 摒弃了传统的 RNN 和 CNN 结构,完全基于注意力机制。
  • 优点
    • 并行计算效率高。
    • 能够捕捉长距离依赖关系。
  • 应用
    • Transformer 是 BERT 和 GPT 等模型的基础架构。

3. 什么是​BERT(Bidirectional Encoder Representations from Transformers)​

BERT 模型 主要利用了 ​Transformer 的 Encoder 部分,通过这种设计,BERT 能够将句子中的每个字(或词)转换为包含上下文信息的向量

  • 定义:BERT 是一种基于 Transformer 的预训练语言模型,由 Google 在 2018 年提出。
  • 核心特点
    • 双向编码:BERT 通过同时考虑上下文(左和右)来理解词语的语义。
    • ​a.预训练任务

      • 掩码语言模型(Masked Language Model, MLM):预测被掩码的词。
      • 下一句预测(Next Sentence Prediction, NSP):判断两个句子是否连续。
      • MLM 通过掩码策略让模型学习上下文信息。
      • NSP 通过判断句子关系让模型理解篇章结构。

 

 

  • 应用
    • 文本分类
    • 问答系统
    • 命名实体识别

 b.BERT 模型的核心结构

BERT 模型的核心结构包括以下几个主要组件:

​(1) Embedding 层

  • 作用:将输入的文本数据(如单词或字)转换为向量表示。通过 ​Token EmbeddingsSegment Embeddings 和 ​Position Embeddings 的组合,能够将输入文本转换为包含语义、句子关系和位置信息的向量表示。这种设计使得 BERT 在问答系统、文本匹配和自然语言推理等任务中表现出色
  • 组成
    • Token Embedding:将每个词转换为固定维度的向量。
    • Position Embedding:为每个词添加位置信息,解决 Transformer 无法直接处理序列顺序的问题。
    • Segment Embedding:区分不同句子(如句子 A 和句子 B),用于处理句子对任务。
  • 输出:将上述三种嵌入(都转换为比如说768维的)相加,得到最终的输入向量。

[CLS]

图中的​**dog** 和 ​**[CLS]** 都是 ​Token。以下是关于 ​Token 和 ​**[CLS]** 的原理和作用的详细解释:

 

[CLS]是 BERT 模型中的一个特殊 Token,用于聚合整个序列的全局信息,常用于分类任务和表示整个序列。


1. 什么是 Token?

  • Token 是 BERT 模型对输入文本进行分割后的最小单位。它可以是单词、符号或子词(subword)。

  • 示例

    • 单词 dog 是一个 Token。

    • 特殊符号 [CLS] 和 [SEP] 也是 Token。

  • 作用:Token 是 BERT 模型处理文本的基本单位,每个 Token 都会被转换为对应的向量表示(Token Embedding)。


2. [CLS] 的原理和作用

​**(1) 什么是 [CLS]?**

  • ​**[CLS]** 是 BERT 模型中的一个 ​特殊 Token,全称为 ​Classification Token

  • 位置:通常放在输入序列的开头。

​**(2) [CLS] 的原理**

  • 全局信息聚合

    • 在 BERT 模型中,[CLS] 会通过多层 Transformer Encoder 的处理,逐步聚合整个输入序列的上下文信息。

    • 由于 [CLS] 位于序列的开头,它在自注意力机制中可以与序列中的所有 Token 进行交互,从而捕捉全局信息。

  • 输出向量

    • 在模型的最后一层,[CLS] 对应的输出向量会被用作整个序列的表示。

​**(3) [CLS] 的作用**

  • 分类任务

    • 在文本分类任务中,[CLS] 的输出向量会被输入到一个分类器中,用于预测类别。

    • 例如,在情感分析任务中,[CLS] 的输出向量可以用于判断文本的情感是正面还是负面。

  • 表示整个序列

    • [CLS] 的输出向量可以看作是对整个输入序列的汇总表示,常用于需要全局信息的任务(如文本分类、问答系统等)。

  • 其他任务

    • 在句子对任务(如文本匹配、自然语言推理)中,[CLS] 的输出向量也可以用于判断两个句子之间的关系。

​(2) BERT Layers(BERT 层)

  • 组成:每个 BERT 层包含两个核心模块:
    • Multi-Head Attention(多头注意力机制)​
      • 通过多个注意力头并行计算,捕捉输入序列中不同位置的关系。
      • 每个注意力头独立计算注意力权重,最后将结果拼接并线性变换。
    • Feed Forward(前馈神经网络)​
      • 通过两层全连接网络(通常使用 ReLU 激活函数)进一步提取特征

       

       

    • Add & Norm(残差连接和层归一化)​
      • 残差连接将输入直接加到输出上,缓解梯度消失问题。
      • 层归一化对输出进行归一化,稳定训练过程。

       

  • 重复次数:BERT 模型通常包含多个 BERT 层(如 B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值