大數(shù)據(jù)文摘受權(quán)轉(zhuǎn)載自數(shù)據(jù)派THU 作者:Fareed Khan 翻譯:趙鑒開(kāi) 校對(duì):趙茹萱 Transformer架構(gòu)可能看起來(lái)很恐怖,,您也可能在YouTube或博客中看到了各種解釋,。但是下面,將通過(guò)提供一個(gè)全面的數(shù)學(xué)示例闡明它的原理,。通過(guò)這樣做,,我希望簡(jiǎn)化對(duì)Transformer架構(gòu)的理解。Inputs and Positional Encoding讓我們解決最初的部分,,在那里我們將確定我們的輸入并計(jì)算它們的位置編碼。Step 1 (Defining the data)第一步是定義我們的數(shù)據(jù)集 (語(yǔ)料庫(kù)),。在我們的數(shù)據(jù)集中,,有3個(gè)句子 (對(duì)話) 取自《權(quán)力的游戲》電視劇。盡管這個(gè)數(shù)據(jù)集看起來(lái)很小,,但它已經(jīng)足以幫助我們理解之后的數(shù)學(xué)公式,。Step 2 (Finding the Vocab Size)為了確定詞匯量,我們需要確定數(shù)據(jù)集中的唯一單詞總數(shù),。這對(duì)于編碼 (即將數(shù)據(jù)轉(zhuǎn)換為數(shù)字) 至關(guān)重要,。其中N是所有單詞的列表,,并且每個(gè)單詞都是單個(gè)token,我們將把我們的數(shù)據(jù)集分解為一個(gè)token列表,,表示為N,。獲得token列表 (表示為N) 后,我們可以應(yīng)用公式來(lái)計(jì)算詞匯量,。具體公式原理如下: 使用set操作有助于刪除重復(fù)項(xiàng),,然后我們可以計(jì)算唯一的單詞以確定詞匯量。因此,,詞匯量為23,,因?yàn)榻o定列表中有23個(gè)獨(dú)特的單詞。Step 3 (Encoding and Embedding)接下來(lái)為數(shù)據(jù)集的每個(gè)唯一單詞分配一個(gè)整數(shù)作為編號(hào),。在對(duì)我們的整個(gè)數(shù)據(jù)集進(jìn)行編碼之后,,是時(shí)候選擇我們的輸入了。我們將從語(yǔ)料庫(kù)中選擇一個(gè)句子以開(kāi)始:“When you play game of thrones” 作為輸入傳遞的每個(gè)字將被表示為一個(gè)編碼,,并且每個(gè)對(duì)應(yīng)的整數(shù)值將有一個(gè)關(guān)聯(lián)的embedding聯(lián)系到它,。 - 這些embedding可以使用谷歌Word2vec (單詞的矢量表示) 找到。在我們的數(shù)值示例中,,我們將假設(shè)每個(gè)單詞的embedding向量填充有 (0和1) 之間的隨機(jī)值,。
- 此外,原始論文使用embedding向量的512維度,,我們將考慮一個(gè)非常小的維度,,即5作為數(shù)值示例。
現(xiàn)在,,每個(gè)單詞embedding都由5維的embedding向量表示,,并使用Excel函數(shù)RAND() 用隨機(jī)數(shù)填充值。Step 4 (Positional Embedding)讓我們考慮第一個(gè)單詞,,即 “when”,,并為其計(jì)算位置embedding向量。位置embedding有兩個(gè)公式:第一個(gè)單詞 “when” 的POS值將為零,,因?yàn)樗鼘?duì)應(yīng)于序列的起始索引,。此外,i的值 (取決于是偶數(shù)還是奇數(shù)) 決定了用于計(jì)算PE值的公式,。維度值表示embedding向量的維度,,在我們的情形下,它是5,。繼續(xù)計(jì)算位置embedding,,我們將為下一個(gè)單詞 “you” 分配pos值1,并繼續(xù)為序列中的每個(gè)后續(xù)單詞遞增pos值,。找到位置embedding后,,我們可以將其與原始單詞embedding聯(lián)系起來(lái),。我們得到的結(jié)果向量是e1+p1,e2+p2,,e3+p3等諸如此類(lèi)的embedding和,。Transformer架構(gòu)的初始部分的輸出將在之后用作編碼器的輸入。編碼器
在編碼器中,,我們執(zhí)行復(fù)雜的操作,,涉及查詢(query),鍵(key)和值(value)的矩陣,。這些操作對(duì)于轉(zhuǎn)換輸入數(shù)據(jù)和提取有意義的表示形式至關(guān)重要,。在多頭注意力(multi-head attention)機(jī)制內(nèi)部,單個(gè)注意層由幾個(gè)關(guān)鍵組件組成,。這些組件包括:請(qǐng)注意,,黃色框代表單頭注意力機(jī)制。讓它成為多頭注意力機(jī)制的是多個(gè)黃色盒子的疊加,。出于示例的考慮,我們將僅考慮一個(gè)單頭注意力機(jī)制,,如上圖所示,。Step 1 (Performing Single Head Attention)在上面提供的圖中,三個(gè)輸入矩陣 (粉紅色矩陣) 表示從將位置embedding添加到單詞embedding矩陣的上一步獲得的轉(zhuǎn)置輸出,。另一方面,,線性權(quán)重矩陣 (黃色,藍(lán)色和紅色) 表示注意力機(jī)制中使用的權(quán)重,。這些矩陣的列可以具有任意數(shù)量的維數(shù),,但是行數(shù)必須與用于乘法的輸入矩陣中的列數(shù)相同。在我們的例子中,,我們將假設(shè)線性矩陣 (黃色,,藍(lán)色和紅色) 包含隨機(jī)權(quán)重。這些權(quán)重通常是隨機(jī)初始化的,,然后在訓(xùn)練過(guò)程中通過(guò)反向傳播和梯度下降等技術(shù)進(jìn)行調(diào)整,。所以讓我們計(jì)算 (Query, Key and Value metrices):一旦我們?cè)谧⒁饬C(jī)制中有了query, key, 和value矩陣,我們就繼續(xù)進(jìn)行額外的矩陣乘法,。現(xiàn)在,,我們將結(jié)果矩陣與我們之前計(jì)算的值矩陣相乘:如果我們有多個(gè)頭部注意力,每個(gè)注意力都會(huì)產(chǎn)生一個(gè)維度為 (6x3) 的矩陣,,那么下一步就是將這些矩陣級(jí)聯(lián)在一起,。在下一步中,我們將再次執(zhí)行類(lèi)似于用于獲取query, key, 和value矩陣的過(guò)程的線性轉(zhuǎn)換,。此線性變換應(yīng)用于從多個(gè)頭部注意獲得的級(jí)聯(lián)矩陣,。參考來(lái)源:
https://blog./understanding-transformers-a-step-by-step-math-example-part-1-a7809015150a未來(lái)智能實(shí)驗(yàn)室的主要工作包括:建立AI智能系統(tǒng)智商評(píng)測(cè)體系,,開(kāi)展世界人工智能智商評(píng)測(cè);開(kāi)展互聯(lián)網(wǎng)(城市)大腦研究計(jì)劃,,構(gòu)建互聯(lián)網(wǎng)(城市)大腦技術(shù)和企業(yè)圖譜,,為提升企業(yè),行業(yè)與城市的智能水平服務(wù),。每日推薦范圍未來(lái)科技發(fā)展趨勢(shì)的學(xué)習(xí)型文章,。目前線上平臺(tái)已收藏上千篇精華前沿科技文章和報(bào)告。
|