注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
在许多自然语言处理(NLP)任务中,Transformers都优于LSTM和RNN。
从公式的角度来看,Transformer之所以取代RNN和LSTM,主要是因为其计算方式和模型架构在处理序列数据时更为高效和灵活。
以下是对比RNN/LSTM和Transformer的公式以及它们的不同之处:
对于一个输入序列 x1,x2,…,xT,RNN的hidden state h在时间t的表达式是
激活函数是Tanh和ReLU
用门控机制来缓解RNN的梯度消失问题,hidden state的更新涉及多个门控(输入门 f、遗忘门 i、输出门 o)
为什么 RNN/LSTM 结果不如 Transformer?- RNN/LSTM: 隐状态 hth_tht 的计算依赖于前一个时间步的隐状态 ht−1h_{t-1}ht−1,这是一个递归过程,需要逐步计算,难以并行化。
- Transformer: 自注意力计算所有词对词的关系(QKTQK^TQKT),与序列的长度无关,允许所有词同时计算,大大提升了并行化能力。
长距离依赖:- RNN/LSTM: 通过逐步的隐状态传递(ht−1→hth_{t-1} \to h_tht−1→ht),长距离依赖难以保留,容易出现梯度消失或爆炸。
让我们看Attention逻辑如何解决丢失信息的问题:
Transformer的核心机制是自注意力机制(Self-Attention),它计算输入序列中所有词之间的相互关系,而不是逐步地处理序列。关键的公式包括计算注意力分数(Attention Scores)和注意力权重(Attention Weights)
- 注意力分数(Scaled Dot-Product Attention):给定一个查询(Query)QQQ,键(Key)KKK,值(Value)VVV,注意力机制首先计算查询和键的点积,再进行缩放和softmax操作:
- Attention(Q,K,V)=
, Q=XW^Q, K=XW^K, V=XW^V, dk 是键向量的维度,用于缩放点积结果。
Multi-Head Attention:
,
Transformer在算法中的革新使得我们能够规避NLP任务中,甚至是更广泛的seq to seq generation中完整得专递信息
|