2026年4月12日
Transformer
采用了不同的编码器和解码器设计,但是每一个输出的时间步,可以关注到输入上下文中的不同重点。并且编码和解码都可以并行计算
需要一同训练一个词嵌入模型(把一个token映射到一个512维的向量)-> 语义编码
同时还有一个位置编码,把每个词的位置信息编码成一个512维的向量
放弃1,2,3……这种标量是因为,标量的信息量太少了,跟语义向量的512维比维度太少,很容易在和语义信息一并处理时被模型忽视
高维向量的信息还可以更加丰富,例如让模型感受到不同位置的差距,以及不同词语之间的相对位置距离
直接把每一个token的位置编码加到语义编码上,假设每一个token得到的列向量组合之后记为矩阵
-
==每一个注意力头是什么?== 每一个头就是一套 ,每一个这样的注意力头可以处理句子当中的不同信息:例如语法结构、语义依赖、局部上下文等 的形状是512x64(512表示的是每个token会被映射到一个512维的向量),经过和权重矩阵相乘,每个注意力头把token的512维表示改为64维表示
-
==为什么V不直接用X== ,这样每一个注意力头的V就可以不一样,==让X转化到不同注意力的特征空间内==
我觉得这里可以检测一下, 转化到的空间和同一个注意力头的QK矩阵转化到的特征空间是否一致
-
多头注意力怎么拼接各自处理的数据? 一共有8个头,每个头的权重矩阵都把token的512维表示变为64维表示。每个头处理得到的token序列首尾拼接,就把token又拼接回了512维,现在得到的是简单堆叠的多头信息 对这个拼接得到的512维的向量(代表一个token),再乘以一个 ,这是一个单独的512x512矩阵,将各注意力头捕捉到的信息进行线性融合,得到一个整合程度更高的token表示
LSTM是循环神经网络的一种,特别适合没那么复杂的时序预测(例如不涉及到语义理解)
同时使用sigmoid(0到1)和tanh(-1到1)激活函数。长短期记忆单元的第一阶段确定了长期记忆的百分比
妙就妙在,LSTM当中的长期记忆本身不使用任何权重和偏置,这样就不会有梯度弥散和梯度爆炸的问题
原来如此!左侧是 %Potential memory(是一个比例),右侧是 Potential Long-Term Memory,也即是说,右侧是当前输入和短期记忆构建的新的长期记忆部分,左侧是这部分新的长期记忆的占比(这里新增多少长期记忆,与input值很相关)。得到的sum就是new long-term memory
循环神经网络