文章目录
-
- [📚 核心结论:RNN/LSTM建模序列结构+文本嵌入表示序列元素,既能建模结构又能表示元素](#📚 核心结论:RNN/LSTM建模序列结构+文本嵌入表示序列元素,既能建模结构又能表示元素)
- 一、循环神经网络:建模序列结构
-
- [1. 循环连接:隐藏状态在时间步之间传递,形成记忆](#1. 循环连接:隐藏状态在时间步之间传递,形成记忆)
- [2. 共享参数和变长序列:同一套参数处理所有时刻,能处理不同长度](#2. 共享参数和变长序列:同一套参数处理所有时刻,能处理不同长度)
- 二、LSTM:解决长期依赖
-
- [1. 门控机制:选择性记忆和遗忘](#1. 门控机制:选择性记忆和遗忘)
- [2. 细胞状态:长期记忆的载体](#2. 细胞状态:长期记忆的载体)
- 三、文本嵌入:表示序列元素
-
- [1. 从符号到向量:One-Hot到稠密向量](#1. 从符号到向量:One-Hot到稠密向量)
- [2. 文本嵌入的特点:语义相似性、可计算性、可学习性](#2. 文本嵌入的特点:语义相似性、可计算性、可学习性)
- [3. 预训练词嵌入:从静态到动态](#3. 预训练词嵌入:从静态到动态)
⏱️ 预计阅读时间 :30-40分钟
🎯 学习目标:学会怎么处理序列数据,怎么建模时序依赖,怎么表示序列元素
📚 核心结论:RNN/LSTM建模序列结构+文本嵌入表示序列元素,既能建模结构又能表示元素
想象一下,你想让计算机理解一句话"我喜欢猫"。这句话是一个序列,每个字都有顺序,而且后面的字依赖于前面的字。
这需要解决两个核心问题:
首先,怎么建模序列的时序依赖关系?就像你理解一句话,需要记住前面说了什么,才能理解后面的意思。RNN通过循环连接记住之前的信息,LSTM通过门控机制选择性地记住和遗忘,解决长期依赖问题。
其次,怎么将符号转换为数值向量?就像计算机不能直接理解"猫"这个字,需要把它转换成数字。文本嵌入将词汇映射到稠密向量空间,语义相似的词在向量空间中距离相近,实现从符号到向量的转换。
那么,怎么用循环连接建模序列结构?怎么用门控机制解决长期依赖?怎么用文本嵌入表示序列元素?这些正是本文要解决的核心。
序列处理问题
处理序列数据 RNN/LSTM
序列结构
建模时序依赖 文本嵌入
序列表示
符号转向量 记忆能力vs效率
记得多vs算得快
一、循环神经网络:建模序列结构
传统神经网络只能处理固定大小的输入,无法处理变长序列。比如一句话可能是5个字,也可能是20个字。RNN通过循环连接,让网络能够记住之前的信息,处理任意长度的序列。
1. 循环连接:隐藏状态在时间步之间传递,形成记忆
RNN的核心是循环连接:每个时刻的隐藏状态不仅依赖于当前输入,还依赖于上一时刻的隐藏状态。就像你说话时会记住之前说了什么,RNN通过隐藏状态记住之前的信息。
时刻t+1:'猫' 时刻t:'喜欢' 时刻t-1:'我' 循环连接
传递记忆 循环连接
继续传递 h(t+1)
隐藏状态
记住'我'+'喜欢'+'猫' x(t+1)
输入'猫' y(t+1)
输出 h(t)
隐藏状态
记住'我'+'喜欢' x(t)
输入'喜欢' y(t)
输出 h(t-1)
隐藏状态
记住'我' x(t-1)
输入'我' y(t-1)
输出
关键机制:循环连接使隐藏状态在时间步之间传递,形成记忆。每个时刻的隐藏状态h(t) = f(x(t), h(t-1)),既看当前输入x(t),也看之前的状态h(t-1),从而记住历史信息。
2. 共享参数和变长序列:同一套参数处理所有时刻,能处理不同长度
RNN的另一个特点是共享参数:同一套参数在所有时间步共享,就像用同一套规则处理所有时刻。这样既能减少参数数量,又能处理不同长度的序列。
RNN特点 循环连接
h(t) = f(x(t), h(t-1))
记住之前的信息 共享参数
同一套参数所有时间步
减少参数数量 变长序列
处理不同长度
5个字或20个字都可以 形成记忆
保存历史信息 减少参数
提高效率 灵活处理
适应性强
二、LSTM:解决长期依赖
RNN虽然能记住之前的信息,但在反向传播时容易出现梯度消失问题,难以学习长期依赖关系。比如理解"我昨天在公园里看到了一只猫",需要记住很久之前的"我"和"昨天"。LSTM通过门控机制,选择性地记住和遗忘信息,解决长期依赖问题。
1. 门控机制:选择性记忆和遗忘
LSTM的核心是门控机制,就像人能够选择性地记住重要信息,遗忘不重要信息。LSTM有三个门:遗忘门决定丢弃什么,输入门决定存储什么,输出门决定输出什么。
输入x(t)
当前输入 遗忘门
决定丢弃什么
忘记不重要的 输入门
决定存储什么
记住重要的 候选值
新的信息 细胞状态C(t-1)
长期记忆 更新细胞状态
C(t) = f(t)*C(t-1) + i(t)*C̃(t)
忘记旧的+记住新的 输出门
决定输出什么
输出相关信息 隐藏状态
h(t) = o(t)*tanh(C(t))
当前状态
2. 细胞状态:长期记忆的载体
细胞状态是LSTM的关键创新,它是长期记忆的载体。通过门控机制更新:遗忘门决定丢弃多少旧信息,输入门决定存储多少新信息。这样,重要的信息可以长期保存,不重要的信息会被遗忘。
RNN问题
梯度消失
难以学习长期依赖 LSTM解决方案
门控机制 遗忘门
选择性遗忘
不重要信息 输入门
选择性存储
重要信息 细胞状态
长期记忆载体
梯度稳定 输出门
选择性输出
相关信息
关键机制:遗忘门决定从细胞状态中丢弃什么信息,输入门决定将什么新信息存入细胞状态,输出门决定输出什么信息。细胞状态通过门控机制更新,梯度可以稳定传播,从而解决长期依赖问题。
三、文本嵌入:表示序列元素
序列中的元素(如词汇)是符号,计算机无法直接处理。需要将符号转换为数值向量。文本嵌入将词汇映射到稠密向量空间,使语义相似的词在向量空间中距离相近。
1. 从符号到向量:One-Hot到稠密向量
传统方法用One-Hot编码:词汇表有1万个词,每个词就是一个1万维的向量,只有对应位置是1,其他都是0。这样维度太高,而且无法表示语义关系。
文本嵌入将每个词映射到一个低维稠密向量(比如300维),语义相似的词在向量空间中距离相近。比如"猫"和"狗"的向量会很接近,"猫"和"汽车"的向量会距离较远。
词汇
'猫'
'狗'
符号 One-Hot编码
1,0,0,...
0,1,0,...
高维稀疏 文本嵌入
学习稠密向量 稠密向量
0.2,0.5,-0.1,...
0.3,0.4,-0.2,...
低维稠密 语义空间
相似词距离近
'猫'和'狗'相近
2. 文本嵌入的特点:语义相似性、可计算性、可学习性
文本嵌入有四个重要特点:稠密向量 (维度远小于词汇表大小)、语义相似性 (相似词距离近)、可计算性 (向量可以进行加减运算,如"国王-男人+女人=女王")、可学习性(通过大规模数据自动学习语义)。
文本嵌入特点 稠密向量
维度<<词汇表大小
300维vs1万维 语义相似性
相似词距离近
'猫'和'狗'相近 可计算性
向量加减运算
国王-男人+女人=女王 可学习性
自动捕获语义
大规模数据学习 降低维度
提高效率 捕获语义
理解关系 语义运算
词类比 自动学习
无需人工
3. 预训练词嵌入:从静态到动态
静态词嵌入(Word2Vec、GloVe):通过大规模无标注文本数据预训练,学习通用的词汇语义表示。Word2Vec利用局部上下文信息,GloVe利用全局共现统计。但它们是静态的,同一个词在不同语境中表示相同,无法处理一词多义。
上下文相关嵌入 (BERT):根据词汇的上下文动态生成词嵌入,同一个词在不同上下文中有不同的表示 。比如"银行"在"去银行取钱"和"河岸的银行"中表示不同。BERT利用双向上下文,同时考虑左右上下文,能够处理一词多义问题。
词嵌入演进 静态词嵌入
Word2Vec/GloVe
同一词相同表示 上下文相关嵌入
BERT
同一词不同表示 优点:通用表示
缺点:无法处理一词多义 优点:处理一词多义
缺点:计算量大