自注意力機制(Self-attention)_李弘毅_ML2021#5
文章推薦指數: 80 %
self-attention 是用來處理,network 的輸入是一排向量的情況,可能是句子. ... (給機器看一段話,讓機器去判斷是正面或負面),這可以用在評價欄上,讓 ...
GetstartedOpeninappZeligSigninGetstarted7FollowersAboutGetstartedOpeninapp自注意力機制(Self-attention)_李弘毅_ML2021#5ZeligSep22·7minreadvideo;slideself-attention是用來處理,network的輸入是一排向量的情況,可能是句子.聲音.graph或原子等等,也許這組向量的長度是可以改變的。
例如輸入是一組sequence,每個句子的長度及詞彙皆不同,把每個單字看成是一個vector的話,一組句子就是一個vectorset。
將一組sequence作為network的輸入,最簡單的方式,就是開一個很長的one-hotencoding,長度與現今存在詞彙數相同,但這是假設每個詞彙間,沒有關連性,例如dog.cat都是動物,比較相近,cat和tree,一個是動物,另個是植物,比較不相近,另一種方法是wordembedding(先不說如何得到的),會將每個詞彙變成一個像項,且將比較相近的辭彙聚成一團,現在來看,我們可能有哪些輸出呢?有三種可能性第一種可能性:有多少輸入的vector,就有多少輸出的vector,如果輸入是四個向量,輸出就是四個label,可以被稱作sequencelabeling,如果每個label是一個數值,就是regression,每個label是class,就是classification的問題,例如在文字處理上,要做POStagging(詞性標註)、一段聲音訊號要決定哪個vector是哪個phonetic(音標)、一個socialnetwork要知道哪個節點,有什麼樣的特性,比如說他會不會買某個商品,要不要推薦某個商品給他。
第二種可能性:一整個sequence只有一個label的輸出,例如sentimentanalysis(給機器看一段話,讓機器去判斷是正面或負面),這可以用在評價欄上,讓機器去自動斷讀,當某個留言提到某個產品時,是正面或負面的評價、在語音是可以去判斷一段話是誰說的、在原子上可以自動判斷這原子的毒性或親水性如何。
第三種可能性:不知道輸出多少label,機器要自己去決定,這又稱為sequence-to-sequence,例如文字翻譯、真正的聲音辨識。
先說明處理第一種情況,self-attention會考慮所有input的vector才產生output,這個input也有可能是某個hiddenlayer的output。
怎麼產生出b1呢?先找出a1與其他vector各個的相關性,利用α來表示。
比較常見的方法是利用dot-product也有其他方法如additive和其他各種方式比較常用的是dot-product,所以先做dot-product在實作上,a1也會跟自己測關聯性,a1*Wk所以會得到k1,再做soft-max,輸出就是一排α',soft-max只是其中一個方法,也可以使用其他的activatefunction。
再來根據α’,抽取sequence的重要資訊,首先將a*Wv得到v再乘以α’做加總得到b從矩陣運算的角度,再說明一次,每個a都會得到q.k.w每個q.k都會做inter-product得到α,做soft-max(為了做normalization)得到α'α*v相加得到b觀察一下,整個操作只有三個參數是未知的Multi-headSelf-attentionMulti-headSelf-attention算是Self-attention的延伸,透過計算更多的聯性來希望做出更佳的結果,例如在語音辨識和翻譯上,但代價是計算量變大。
PositionalEncodingPositionalEncoding為Self-attention的延伸,原先的Self-attention是不包含label的位置的,因此PositionalEncoding是為每個位置加上獨特的vector,這個是人設的,也可以根據資料學(CNN.RNN..)出來的,最早的論文是用sincos做出來的,如下圖:self-attention不只可以做在NLP,也可以做在語音辨識,但在做語音辨識時,sequence可能會過大,因每段語音辨識只有10ms,而資料量是輸入的平方,所以我們可以只看小範圍就好(會這樣做是取決於對問題的理解)。
self-attentionvsCNNself-attention也可以用在影像辨識上,CNN其實就是self-attention的一種特例,彈性較少,比較不會overfitting,但在訓練資料多時,沒有辦法在其中得到好處self-attentionvsRNNRNN很多時候都可以用self-attention來取代,RNN和self-attention有什麼不同呢?self-attention能夠平行處理所有輸入和輸出,所以更有效率self-attentionforgraphgraph也可以看成是一堆vector,所以可以用self-attention來處理,每個graph包還了很多node,也包含了edge的資訊,知道哪些node是有關連性的,所以self-attentionforgraph也是一種GNN,最大問題是資訊量非常大。
Zeligmail:[email protected] 1SelfAttentionMachineLearningMorefromZeligFollowmail:[email protected]
延伸文章資訊
- 1現貨商品(可下標都是現貨) ATTENTION-好版型針織上衣
商品如若有任何問題,請善用聊聊功能,不要使用評價來做溝通橋梁,ATTENTION善待您, ... 商品資訊-ATTENTION-好版型針織上衣-商品說明: 尺寸:F size 肩寬:cm 胸 ...
- 2新色登場 ATTENTION-莫蘭迪色系絕美針織衣| 蝦皮購物
商品如若有任何問題,請善用聊聊功能,不要使用評價來做溝通橋梁,ATTENTION善待 ... 【門市地址:新竹市文昌街48號】 -商品資訊- -商品說明:ATTENTION-莫蘭迪色系絕美 ...
- 3自注意力機制(Self-attention)_李弘毅_ML2021#5
self-attention 是用來處理,network 的輸入是一排向量的情況,可能是句子. ... (給機器看一段話,讓機器去判斷是正面或負面),這可以用在評價欄上,讓 ...
- 4美到讓心臟漏跳兩下的四家台灣網拍,讓你的紅包花滿花好月圓!
- 5attention衣服dcard在PTT/Dcard完整相關資訊 - 小文青生活
shopee.tw ... 請善用私訊功能,不要使用評價來做溝通橋梁,ATTENTION善待您,也請您善待我們提供完整透明的商品 .