自然语言处理概论(七)

目录

一、基础知识

1.1 如何用数据表示文字(语义建模方法)

1.1.1 独热编码(One-hot Encoding)

1.1.2 词嵌入(Word Embedding)

1.2 输入文字常见的三种输出

二、序列数据处理模型

2.1 RNN(循环神经网络)

2.2 LSTM(长短期记忆网络)

2.3 Transformer

2.3.1 注意力计算

2.3.2 自注意力机制

2.3.3 多头自注意力机制

三、Bert具体原理

3.1 迁移学习

3.2 Bert模型结构

3.3 Bert的输入输出


一、基础知识

1.1 如何用数据表示文字(语义建模方法)

一般有独热编码(One-hot Encoding)和词嵌入(Word Embedding)两种方法。

1.1.1 独热编码(One-hot Encoding)

这是一个比较朴素的思想,将每个字表示为一个高维稀疏向量,其中只有对应类别的位置为1,其余为0,但缺点也是显而易见的,如图。

通俗来说就是像给每个学生分配唯一的学号(如2023001),仅用于标识身份,无法反映学生之间的关系。

1.1.2 词嵌入(Word Embedding

将单词映射到低维稠密向量,向量中的每个值表示某种潜在语义特征。

通俗来说像根据学生的兴趣、成绩、性格等生成一份“综合档案”,档案相似的学生可能有共同点(如都喜欢玩原神)。

1.2 输入文字常见的三种输出

  • 每个输出对应一个值

  • 所有词输出一个值

  • 输入输出长度不对应

本节概论只说前两种,后一种在生成任务细说。

二、序列数据处理模型

2.1 RNN(循环神经网络)

一图搞懂RNN

  1. 绿色 “model” 单元:代表 RNN 的一个处理单元,依次处理序列中的每个元素(如词语)。每个单元接收当前输入(如 “这”“爱”“得”)和前一时刻的记忆(“传家宝”),输出当前元素的属性(如词性:代词、名词、动词)。
  2. 输入与输出
    • 第一个单元处理 “这”,输出为 “代词”。
    • 第二个单元处理 “爱”,输出为 “名词”;第三个单元再次处理 “爱”,结合记忆输出为 “动词”;第四个单元处理 “得”,输出为 “动词”。
    • 这种变化体现了 RNN 根据上下文(通过记忆单元传递信息)动态判断词语属性的能力。
  3. “传家宝”(记忆单元):图中 “传家宝” 表示 RNN 的记忆向量,用于保存序列中先前元素的信息。例如,处理后续词语时,会结合之前传递的 “记忆”,使模型能感知上下文。如不同位置的 “爱” 因上下文不同(通过记忆单元传递的信息),被判断为不同词性(名词或动词)。

本质上就是可以利用“传家宝”处理词性不同的问题,但RNN有个弊端就是在处理长距离依赖时,因记忆传递不畅而容易丢失关键信息的缺陷,无法很好地捕捉和利用远距离的上下文关联。

2.2 LSTM(长短期记忆网络)

一图搞懂LSTM

主要是有门控机制做决策官。

2.3 Transformer

总体模型架构
 

核心是自注意力机制,那么注意力机制和自注意力机制有什么区别?

举个例子:

总结来说,自注意力是注意力机制的一种特殊形式,专攻序列内部的关系挖掘,而普通注意力更擅长处理跨序列的关联。自注意力让模型像人类一样,通过上下文理解每个词的含义。

2.3.1 注意力计算

什么是注意力?说白了就是一种权重分配机制

对于注意力计算有两种方法

第一种方法比较朴素,即a_{}^{1}a_{}^{i}做点乘得到\alpha _{1,i},这个方法的缺点就是相乘结果始终是一个固定值,缺乏灵活性。

第二种方法是本节的核心之处,动态分配权重,自注意力机制。

2.3.2 自注意力机制

简单示例:

注意力机制可以类比为图书馆的智能推荐系统:当你想找一本关于“如何暴富”的书(Query),图书管理员会将你的需求与所有书的标题(Key)逐一比对,计算匹配度(如《致富思维》得90分),并通过除以书名长度(\sqrt{d_{k}})防止复杂书名干扰结果;接着用softmax将分数转化为权重(如80%关注《致富思维》),最后按权重融合相关书籍的内容(Value),生成一份综合“暴富指南”。整个过程就像管理员动态筛选并整合信息,精准匹配你的需求。

计算过程:

要注意的维度问题:

2.3.3 多头自注意力机制

自注意力机制和多头自注意力机制的联系与区别

简单理解就是并行计算拼接结果提高效率

技术细节

三、Bert具体原理

我们来通俗地解释一下transformer

首先是Encoder,这其实就是一个特征提取器,例如Bert

1.词嵌入

2.编码过程

其次是Decoder

1.解码过程

2.文字生成

要搞清楚一个模型,需要紧抓这个模型的输入和输出。

3.1 迁移学习

算力资源充足的大佬们负责搞定预训练任务,然后捣鼓出来的特征提取器给我们微调(且加上我们具体任务时的分类头)即可。

3.2 Bert模型结构

这个就是迁移学习的具体应用,加了个池化层而已。

3.3 Bert的输入输出

  • Token - Embeddings 词编码
  • Segment - Embeddings 这个词具体在哪个句子(逗号/句号隔开算一个句子)
  • Position - Embeddings 给每个词加上座位号
  • [CLS] - >  Classification 理解成Java里的类 给每个具体的句子打标识符
  • [SEP] - > 逗号/句号

本小节结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值