当前位置: 首页 > news >正文

自然语言处理与bert

前提

人类使用自然语言交流,而计算机只能理解二进制代码。为了让计算机处理文字信息,需要将文字转化为数学表达形式。在机器学习领域,常用的one-hot编码方式虽然简单直接,但并不适合自然语言处理任务。这种编码会导致特征空间过于稀疏,无法体现词语之间的语义关联(例如"苹果"和"香蕉"都属于水果类别,语义上应该具有相似性),因此需要采用词嵌入技术,通过降维和特征提取来学习词语的语义特征。

然而,仅靠词嵌入还不足以完整理解语言。词语的含义会随着上下文语境而变化,这就是序列建模需要解决的问题(理解当前词往往需要结合上下文语境)。优秀的语言模型必须能够捕捉这种上下文相关的语义变化。

RNN(Recurrent Neural Network)

循环神经网络(RNN)是最早提出的序列模型,其结构如下图所示。模型将文本中的每个词 x 依次输入,从前面的词开始处理:先提取当前词的特征,再将已处理词的特征向量传递给下一层进行分析。这种机制通过引入时序关系,有效解决了文本处理的上下文问题,但仍存在以下不足

  1. 梯度爆炸/消失问题:处理长文本需要深层网络,容易引发梯度爆炸或消失。梯度爆炸可通过梯度裁剪(gradient clipping)缓解;使用tanh或ReLU激活函数则可延缓梯度消失(原因前文已述)。

  2. 单向语境限制:模型仅能捕捉前文信息,无法获取后文对当前词义的影响。

  3. 长文本处理缺陷:模型在传递信息时会将所有已处理词的特征向量完整传输至下一层。但实际上,影响当前层的关键信息可能来自较早的某个词,这种全量传递机制会导致长文本理解偏差,降低模型表现。

BRNN(Bidirectional RNN)

双向循环神经网络虽然增强了后文信息的捕捉能力,但仍保留了传统循环神经网络的其他固有缺陷。

Deep RNN(深度RNN)

深度循环神经网络在原本RNN基础上堆叠几层,增强模型的表现能力。

Gated Recurrent Unit(GRU)

门控循环单元通过引入记忆单元改进了传统RNN的结构。该单元能够选择性存储前文的关键输出,而非全盘接收所有历史信息。这一设计有效解决了RNN在处理长文本时的缺陷,通过过滤无效信息来减轻当前层的分析负担,显著提升了模型对长序列的处理能力。下图展示了记忆单元的具体结构。

记忆单元用以下等式决定是否更新当前记忆单元。

LSTM(long short term memory)

LSTM是GRU的复杂版本,GRU只用一个门控来决定是否更新记忆单元,LSTM用遗忘门更新门来决定是否更新当前记忆单元。

尽管LSTM在长文本处理方面有所改进,但其与RNN一样采用串行计算模式。这种计算方式类似于计算机组成原理中的串行加法器,存在明显的性能瓶颈:每个单元的计算必须等待前序单元完成,导致时间成本较高。正是这一局限性制约了LSTM的实际应用。而本期介绍的transformer架构则实现了并行计算,它的出现直接引发了大模型研发的狂潮。

Transformer

Transformer模型的核心架构基于自注意力机制(self-attention),这种设计能有效捕捉全文语义关联,是一种高效的特征提取方法。该架构自问世以来,其庞大的参数量导致单次训练成本高达百万美元级别,对普通研究者构成较高门槛。造成参数量巨大的主要原因有二:其一,自注意力机制保持输入输出维度一致,支持多层堆叠;其二,基础文本特征提取维度设置为768维,并可进一步扩展。

Self-attention

注意力机制衡量的是对特定信息的关注程度,即在上下文语境中,某些词语对当前词语特征理解的重要性。最初计算两个词语间的注意力权重时,直接采用它们特征向量的点积运算。

为什么点积能有效计算注意力分配?点积可以反映两个向量的相关性

  1. 当向量元素符号相反时,点积结果为负值,相关性较低;
  2. 当向量元素符号相同时,点积结果为正,相关性较高;
  3. 若同号向量的元素值较大,则点积结果更高,表示更强的相关性。

从几何角度看,点积公式可表示为:a·b = |a||b|cosθ。其中:

  • cosθ体现向量方向关系(对应前述的符号相关性)
  • 向量模长|a|和|b|则表征特征强度
    二者共同决定了最终的注意力权重。

直接使用向量点积计算注意力会导致模型无法区分"关注目标"和"内容特征",使注意力机制退化为简单的相似度匹配,难以处理复杂语境。为此引入了query(q)和key(k)矩阵:当前词的特征向量先通过 q 矩阵转换(相当于发出查询),再与其他词经 k 矩阵转换后的特征向量进行点积(相当于用钥匙验证匹配程度)。这样就能计算当前词对所有其他词的相对重要性。

由于注意力权重需要归一化(总和为1),后续会通过softmax层进行标准化处理。此外还引入了value(v)矩阵,最终输出是特征向量经v矩阵转换后与注意力权重的加权组合。v矩阵的作用在于增强模型对复杂语境的表征能力。这种并行计算的注意力机制显著提升了模型的运算效率。

多头注意力机制

多头注意力机制的基本原理是将输入维度进行拆分计算。以768维的q、k、v为例,采用四头注意力时,系统会将其均分为四个192维的子向量,然后分别进行独立的注意力计算。

位置信息

由于缺乏位置信息,上述机制无法区分类似"我爱你"和"你爱我"的语义差异。虽然模型会认为这两个句子中的"我"和"你"是相同的,但实际上它们在语境中的角色完全不同。为此,我们需要引入位置编码机制。一种简单的实现方式是采用one-hot编码来表示位置信息,然后通过全连接层将其映射到与输入向量相同的维度。

Transformer架构

该架构如下图所示。通过前面的学习可知,词嵌入向量和位置向量叠加后作为输入x,经过多头注意力机制处理,再通过BN层进行归一化。同时,模型加入了残差连接,构成最基本的模型单元。整个架构就是由多个这样的单元堆叠而成。

Transformer架构中,左侧部分称为编码器,右侧部分称为解码器。拆分后,编码器部分形成了分类领域的顶尖模型BERT,解码器部分则衍生出生成领域的领先模型GPT。这种分工的主要原因在于采用迁移学习策略,将上下游任务拆分进行独立训练。

Bert

BERT模型的输入由词嵌入向量、位置向量和段落向量叠加而成。需要注意的是,标点符号也会被当作独立的词嵌入输入。每个词对应一个token,经过特征提取后,每个token都会映射到高维特征空间中的一个向量。段落向量作为段落编码,帮助模型区分不同句子。在词嵌入向量中有一些特殊的token,比如CLS在第一个输入,用于指示模型开始分类,也有句号token标识句子结尾。

BERT的一个显著特点是输入序列的首个 token 必须是 CLS嵌入,这是分类任务的固定规范。CLS的特殊性在于它能捕捉全局语义关系。

BERT是Transformer的编码器,pooler output 的输入是一个二维矩阵。由于BERT用于分类任务,需要输出一维向量,常见处理方法有以下四种:

  1. 仅输出CLS向量
  2. 平均池化
  3. 最大池化
  4. 其他处理方法

经过 Pooler output之后输出向量经过一个分类头即可完成分类任务。

训练方式

Bert通常采用自监督预训练,随机遮盖掉给定文段中某些字,之后模型预测遮盖部分的字,类似完形填空方式训练。也可以采用预测下一段话方式,给模型读入句子前半部分让模型预测下半部分。

http://www.jsqmd.com/news/459464/

相关文章:

  • 文墨共鸣惊艳效果展示:转述识别准确率92.7%的水墨风语义分析作品集
  • 指针基础知识总结
  • 为什么你始终看不懂JavaScript?
  • vue3:最新实现腾讯人脸核身+增强版人脸核身使用方法及示例源码,Vue3如何使用腾讯云慧眼人脸核身,提供人脸核身案例、身份信息核验、活体检测与核身比对等示例代码(后端spring与thinkphp)
  • Cursor 生死存亡:AI 编程痛点解决效率提升实战
  • LiuJuan Z-Image Generator实战案例:跨境电商独立站产品模特图生成SOP
  • Kdevelop使用步骤详解(Linux)
  • vue3:解决天地图api调用报403(Forbidden)错误,调用天地图服务出现403错误(或者部署到服务器后天地图API接口返回403详细排查和解决方法)彻底解决天地图403 Forbidden
  • Qwen3-0.6B-FP8详细步骤:Web界面主题定制+Logo替换与品牌化部署
  • 2026年知名的锦纶面料品牌推荐:coolmax面料/阳离子面料/石墨烯面料厂家最新推荐 - 行业平台推荐
  • 百川2-13B-4bits开源镜像部署案例:教育机构用作AI助教,支持学生编程答疑
  • (第二篇)Spring AI 实战进阶:从 0 搭建 SaaS 模式多租户 AI 客服平台(核心难点 + 性能优化全解析)
  • 部署完OpenClaw不能随时用!郁闷不?cpolar能解锁N种随身玩法!
  • [React Native for OpenHarmony] 将代码提交至AtomGit平台自建公开仓库用于分布式管理
  • PETRV2-BEV训练效果惊艳:BEV检测结果叠加原始环视图像的精准对齐展示
  • 【FacePoison+】Hiding Faces in Plain Sight: Defending DeepFakes by Disrupting Face Detection
  • Bidili Generator保姆级教程:解决SDXL显存高、LoRA不兼容痛点
  • ROS2(服务,launch,工具,仿真)
  • Comsol 探索光子晶体谷霍尔效应:从单胞、超胞到谷单向传输
  • GPEN推荐配置标准:8GB以上显存实现流畅批量处理
  • 重邮虚拟机环境配置(二)如何在本机和虚拟机之间的文件传输
  • Gemma-3-12B-IT入门指南:首次加载模型耗时优化与缓存机制说明
  • Gemma-3-12B-IT WebUI部署教程(含Supervisord管理):生产环境就绪
  • Qwen-Image-Edit-2509与SDXL对比:图像编辑灵活性实战评测
  • 重邮虚拟机环境配置(三)如何在虚拟机上安装驱动
  • Neeshck-Z-lmage_LYX_v2应用场景:短视频封面图批量生成+风格统一控制方案
  • Z-Image-GGUF内容创作:短视频脚本→分镜图→动态视频的AI协同路径
  • BUUCTF 后门查杀1
  • MYSQL个人笔记总结
  • Sonic数字人如何集成ComfyUI?可视化工作流导入步骤详解