|
終于到序列模型課程最后一周的內(nèi)容了,本篇博客依然是基于Andrew Ng的深度學(xué)習(xí)專項(xiàng)課程的序列模型來編寫的,本篇內(nèi)容不會很多,主要就是Transformer網(wǎng)絡(luò)相關(guān)的知識點(diǎn),Transformer網(wǎng)絡(luò)是一種基于注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)架構(gòu),被廣泛應(yīng)用于自然語言處理領(lǐng)域,尤其是機(jī)器翻譯任務(wù)中。本文將詳細(xì)介紹Transformer網(wǎng)絡(luò)的關(guān)鍵概念和工作原理。廢話不多說,現(xiàn)在開始吧。 Transformer 網(wǎng)絡(luò)介紹我們前面講解過在序列模型中常用的技術(shù)包括RNN、GRU和LSTM,這些模型雖然解決了一些問題,包括梯度消失、長距離依賴等,但模型的復(fù)雜度也隨之增加了不少。它們都是順序模型,會將輸入一個(gè)詞或一個(gè)標(biāo)記地順序處理。顯然這樣的處理性能是比較弱的。 Transformer架構(gòu)創(chuàng)新性地將注意力機(jī)制和CNN相結(jié)合,允許我們對整個(gè)序列進(jìn)行并行計(jì)算,可以一次處理整個(gè)句子,而不是從左到右逐詞處理。它的核心理念主要是自注意力(Self Attention)和多頭注意力(Multi-Head Attention) 這兩點(diǎn)。 Self-Attention自注意力(Self-Attention)機(jī)制是Transformer網(wǎng)絡(luò)的核心組件。它可以對序列進(jìn)行并行計(jì)算,為序列中的每個(gè)詞匯生成一個(gè)注意力向量,表示其在特定上下文中的含義。 自注意力機(jī)制可以幫助我們理解每個(gè)單詞在特定上下文中的含義。比如,'Africa'這個(gè)詞,在不同的上下文中可能代表歷史興趣的地點(diǎn),或者假期的目的地,或者世界第二大洲。自注意力機(jī)制會根據(jù)周圍的單詞來確定在此句子中我們談?wù)摰?非洲'的最合適的表示方式。 ![]() 自注意力機(jī)制為序列中每個(gè)詞匯計(jì)算出一個(gè)Query向量、Key向量和Value向量。其具體計(jì)算步驟如下:
自注意力機(jī)制的優(yōu)點(diǎn)在于可以根據(jù)整個(gè)序列的上下文來獲得每個(gè)詞匯的表示,而非僅依賴于臨近詞匯。同時(shí),其并行計(jì)算性質(zhì)也大大提升了模型的訓(xùn)練和推理效率。 我們對序列中的所有單詞執(zhí)行上述計(jì)算過程,以獲取相應(yīng)的自注意力表示。最后,所有這些計(jì)算可以由Attention(Q, K, V)進(jìn)行概括,其中Q,K,V是所有查詢、鍵和值的矩陣。值得注意的是,這里Query、Key、Value矩陣的計(jì)算都使用了不同的權(quán)重矩陣,這使得自注意力機(jī)制可以學(xué)習(xí)輸入序列的不同表示。 ![]() 自注意力機(jī)制的結(jié)果是每個(gè)詞的表示都更為豐富和細(xì)致,因?yàn)樗紤]了每個(gè)詞左右的上下文。 Multi-Head AttentionMulti-Head Attention 機(jī)制對自注意力機(jī)制進(jìn)行拓展,允許模型聯(lián)合學(xué)習(xí)序列的不同表示子空間。 多頭注意力將輸入序列重復(fù)進(jìn)行自注意力計(jì)算n次,每次使用不同的權(quán)重矩陣,得到n個(gè)注意力向量序列。然后將這n個(gè)序列拼接并線性轉(zhuǎn)換,得到最終的序列表示,即:
每次計(jì)算一個(gè)序列的自注意力被稱為一個(gè)'頭',因此,'多頭注意力'就是多次進(jìn)行自注意力計(jì)算。每個(gè)'頭'可能對應(yīng)著不同的問題,例如第一個(gè)'頭'可能關(guān)注'發(fā)生了什么',第二個(gè)'頭'可能關(guān)注'何時(shí)發(fā)生',第三個(gè)'頭'可能關(guān)注'與誰有關(guān)'等等。 多頭注意力的計(jì)算過程與自注意力基本一致,但是使用了不同的權(quán)重矩陣(,并且將所有的注意力向量(一般情況下是8個(gè))進(jìn)行拼接,再乘以一個(gè)權(quán)重矩陣,最后得到的結(jié)果就是多頭注意力的輸出。在實(shí)際計(jì)算中,由于不同'頭'的計(jì)算互不影響,可以同時(shí)計(jì)算所有的'頭',即并行計(jì)算,以提高計(jì)算效率。 總的來說,多頭注意力機(jī)制可以為每個(gè)單詞學(xué)習(xí)到更豐富、更好的表示,每個(gè)'頭'都能從不同的角度去理解序列中的每個(gè)單詞。 Transformer 網(wǎng)絡(luò)在Transformer網(wǎng)絡(luò)中,Encoder和Decoder均由多頭注意力層和全連接前饋網(wǎng)絡(luò)組成,網(wǎng)絡(luò)的高層結(jié)構(gòu)如下:
![]() 我們以一個(gè)法語翻譯成英語的例子來講解這個(gè)過程:
總結(jié)Transformer網(wǎng)絡(luò)通過引入自注意力和多頭注意力等機(jī)制,實(shí)現(xiàn)了序列建模的質(zhì)的飛躍,在機(jī)器翻譯、文本摘要、問答系統(tǒng)等任務(wù)上都取得了極大的成功。研究表明,其并行計(jì)算結(jié)構(gòu)也使Transformer網(wǎng)絡(luò)相比RNN等模型具有顯著的計(jì)算效率優(yōu)勢,如今百家爭鳴的大模型底層其實(shí)也離不開它的身影,理解它對于學(xué)習(xí)那些大語言模型是非常有幫助的。 |
|
|