第七节 自然语言处理和BERT
Self-attention自注意力机制
应用最广,通常用于NLP和LLM
常见的输入:图片、文字和声音。
怎么用数据表示文字(图片是RGB三通道,像素值),怎么用向量表示文字:独热编码
汉字21000多,问题1太长了2不表示含义 猫和狗,你我他应该离得比较近
Word embedding词编码:让意思相近的字离得更近
让模型自己学他们之间的关系linear(21128,768)全连接是万能的
常见输出:
1 每个词输出一个(词性识别)
2 所有词输出一个值:情绪分类
3 输入输出长度不对应(翻译) 我爱中国 I love China 此为生成任务
为了考虑前后关系,推出了第一个模型
RNN 循环神经网络(最早研究序列任务)
RNN 就像一个有记忆的智能体,能根据之前的信息处理序列数据,不过有时它的 “记忆” 在面对长序列时会有些 “力不从心”。

存在问题:
长期依赖问题
问题描述:RNN 在处理长序列数据时,难以捕捉到序列中远距离的依赖关系。随着序列长度的增加,RNN 对早期信息的记忆能力会逐渐减弱,导致在预测或处理与早期信息相关的任务时性能下降。
原因分析:这是由于 RNN 在反向传播过程中,梯度会随着时间步长的增加而逐渐消失或爆炸。当梯度消失时,模型无法有效地从长期序列中学习到有用的信息;当梯度爆炸时,参数更新会变得不稳定,甚至导致模型无法收敛。
梯度消失和爆炸问题
问题描述:在 RNN 的训练过程中,由于激活函数的导数在某些情况下可能小于 1 或大于 1,当多个时间步的导数相乘时,很容易导致梯度变得非常小(梯度消失)或非常大(梯度爆炸)。
计算效率问题
问题描述:RNN 在处理每个时间步时,都需要依赖前一个时间步的隐藏状态进行计算,这种顺序计算的方式使得 RNN 难以并行化,计算效率较低。
输出依赖问题
- 问题描述:RNN 的输出不仅取决于当前的输入,还取决于之前的隐藏状态。这意味着在生成输出时,模型需要考虑整个序列的历史信息,而不能仅仅依赖于当前的输入。
LSTM 长短期记忆 Long short-term memory
LSTM 是一种特殊的神经网络,它像一个智能的记忆管家,能够巧妙地控制信息的进出,精准地记住长序列数据中的关键信息并遗忘无用信息。

问题:RNN和LSTM太慢了,不能一下子把整句话看完,只能串行不能并行
Self-attention 自注意力机制
《Attention is All You Need》提出transformer
输入是768维
什么是注意力:我应该给每件事分配多少注意力



如何计算注意力
与矩阵相乘就是全连接

在自注意力机制中,查询(Query) 和 键(Key) 用于计算不同位置之间的相关性(即注意力权重),而 值(Value) 的作用是将这些权重应用到具体的信息上,完成信息的聚合和转换。三者缺一不可。
直观理解:为什么需要 V?
假设没有 V,仅用 Q 和 K:
-
Q 和 K 的作用是计算注意力权重(即哪些位置需要关注)。
-
但如果直接使用原始输入(例如词向量)作为聚合的对象,模型无法灵活调整信息的表达形式,导致表达能力受限。
引入 V 的核心原因:
-
解耦相关性计算和信息表达:
Q/K 负责“哪些位置需要关注”,V 负责“被关注的内容应该以什么形式表达”。 -
增强模型的表达能力:
V 通过线性变换将输入映射到新的特征空间,让模型可以学习如何提取更有效的信息(例如聚焦特定语义特征)。
面试回答模板
"自注意力机制中,Q 和 K 计算不同位置的相似度(注意力权重),而 V 负责将权重应用到具体的信息上。如果只有 Q 和 K,模型只能直接对原始输入进行加权,无法学习更灵活的特征表达。V 通过线性变换将输入映射到新的空间,使模型能动态调整聚合后的信息形式,这对复杂任务(如语义理解、长距离依赖建模)至关重要。"

Self-attention也可以用矩阵运算





一个self-attention模型,一个字的编码维度是768,字的个数可以按照128,或者512计算。
多头自注意力机制

位置信息


字编码直接与位置编码相加

RNN为什么不需要位置编码:RNN本来就是从前往后按顺序来的,运行顺序决定了位置顺序。对transformer或者self-attention来说我是同步并行的,必须告诉位置信息。

左边有resNet残差连接,所以说网络可以走很深,没有残差网络是走不深的
Feed Forward就是两个全连接MLP多层感知机 nn.linear(768,3072) nn.linear(3072,768)从低维到高维再从高维到低维。可以叠无数层,因为维度不变
Encoder提取特征
文字分类王者BERT 文字生成王者GPT chatGPT的基础是GPT-2也是Decoder
迁移学习
在大数据集上进行预训练,训练出好的特征提取器,在下游进行微调。
在大规模文本上进行无监督预训练


BERT在预训练中的两个任务
- 1.MLM
- 2.判断两句是否相连

BERT结构




魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)