Transformer 为何取得成功
最近面试被问到这个问题:LSTM vs Transformer 。
循环神经网络(RNN、LSTM)是生成式序列建模最自然的方式。其模型结构和序列的生成过程可以用序列全概率分解公式来表述。考虑 m
个词组成的序列 \(\{w_{1},\cdots,w_{m}\}\) ,其全概率分解式为:
\[P(w_1,...,w_m)=\prod_{i=1}^{i=m}P(w_i|w_1,...,w_{i-1}).\]
但在实际的使用中,LSTM 的效果比 Transformer 差很多。我的看法是 LSTM 难于对长程关联进行建模,而长程关联是产生“智能”的关键(另一个关键是压缩)。
LSTM 只是部分解决了 RNN 梯度消失的问题。当序列中两个 Token 相距超过一定距离,梯度消失导致两者之间的关联信号被噪声淹没。也就是说,传统递归神经网络所能建模的上下文很短。这也就很难见到长程关联甚至跳跃关联制造出来的“智能”的假象。
在 Transformer 中,Tokens 之间的关联由注意力矩阵进行建模,通过网上海量的数据(差不多包含了人类的大部分知识)进行学习。Transformer 中没有循环结构,注意力机制下的所有 Tokens 是平权的,不存在 LSTM 结构中距离越近的 Tokens 越重要的先验。还有就是相较于 LSTM,Transformer 优化难度更小,更利于把网络做大容纳更多的知识。
在这些(我认为的)主要因素的促成下,基于 Transformer 的 LLMs 诞生!不过,我相信只要其他模型能做到下面总结的两点,也能达到与 Transformer 差不多的效果并产生“智能”:
- 容易建立 Tokens 间的长程关联,可以仿照 Transformer 的平权设计。
- 模型容易训练和扩展,增加深度或宽度对模型的优化和收敛影响不大。