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

被折叠的 条评论
为什么被折叠?



