淺談自然語言生成中的RNN和Transformer算法

1.簡述

通常,在自然語言生成任務(機器翻譯,文本摘要,對話系統等)中,RNN和Transfomer都是常用的算法。下面,我們淺談下采用RNN和Transformer的區別。

2.RNN模型簡介:

相比於詞袋模型和前饋神經網絡模型,RNN可以考慮到詞的先後順序對預測的影響,RNN包括三個部分:輸入層、隱藏層和輸出層。相對於前饋神經網絡,RNN可以接收上一個時間點的隱藏狀態,基本結構圖如下:

 

計算公式如下:

\begin{array}{l} {h_t} = g(W{h_{t - 1}} + U{x_t} + b)\\ {y_t} = f(V{h_t}{\rm{ + }}c) \end{array}

 

對於每一個時間點,輸入是{x_t}和上一個時間點的隱藏狀態{h_{t - 1}},輸出是當前時間點的隱藏狀態{h_t}g()函數是激活函數,比如tanh或是sigmoid函數,f()函數通常是softmax函數。

2.Transformer模型簡介:

Transformer模型是一種基於Attention機制來加速深度學習算法的模型,可以進行並行化計算,而且每個單詞在處理過程中注意到了其他單詞的影響,效果非常好。

論文地址:https://arxiv.org/abs/1706.03762,論文題目爲:《Attention Is All You Need》。

 

Transformer模型有Encoder層和Decoder層,由結構圖可以發現編碼層和解碼層裏都包含了多頭注意力層(Multi-Head Attention層)和前饋神經網絡(Feed Forward層),解碼層還包括一個Masked多頭注意力層。每個層後面都加了Add&Norm,其中Add是殘差連接,用於解決多層網絡訓練的問題,讓網絡只關注當前差異的部分,Norm是指Layer Normalization歸一化,加快收斂。

3.Transformer和RNN的區別:

1.RNN採用一種類似於遞歸的方式運行,無法執行並行化操作,也就無法利用GPU強大的並行化能力,而Transfomer基於Attention機制,使得模型可以並行化操作,而且能夠擁有全局的信息。

2.Transformer本身是不能利用單詞之間的位置信息的,所以需要在輸入中添加一個位置embedding信息,否則Transformer就類似於詞袋模型了。

3.RNN利用循環順序結構,對於長句需要的訓練步驟很多,加大了訓練的難度和時間。而Transfomer不需要循環,並行地處理單詞,而且其多頭注意力機制可以將很遠的詞聯繫起來,大大提高了訓練速度和預測準確度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章