九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
NLP中的變形金剛
1.前言

上回講了當(dāng)前DNN中較為較為廣泛應(yīng)用的一種算法機(jī)制——Attention Mechanisms,此機(jī)制在模型可解釋性和模型優(yōu)化方面均取得了不錯的效果。那么今天,我們來進(jìn)一步了解attention算法在自然語言中的更深層次的應(yīng)用。本次我們介紹下自然語言處理的“變形金剛”——Transformer模型,該算法是近一年都比較熱門的bert系列算法的基礎(chǔ)。

2.Transformer模型

上回提到的attention機(jī)制可以認(rèn)為是對RNN模型的一種進(jìn)階優(yōu)化,其基礎(chǔ)仍為RNN算法,針對RNN模型,存在一些不足的地方:

  1. 有一定的長期依賴問題:雖然利用門限等方法得到了有效的緩解,但是此問題依舊存在,并且句子越長,此問題越嚴(yán)重;

  2. RNN有很大的性能問題:主要表現(xiàn)在訓(xùn)練階段,如在RNN的前向計算中,每個隱藏狀態(tài)Ht的計算,需要依賴Ht-1,Ht-2,...,無法做到像CNN那樣的并行計算,尤其當(dāng)數(shù)據(jù)量很大的情況下,此問題更為嚴(yán)重。


所以,如何更好的抽取文本的上下文信息,以及如何更好的提高計算性能,google的大神們在2017年提出了transformer算法,其利用self-attention的方法,完全摒棄掉RNN的結(jié)構(gòu),僅依賴attention的方式,構(gòu)建了一種seq2seq的模型,可用于機(jī)器翻譯等領(lǐng)域,取得了不錯的效果,模型基本框架如圖1所示:

圖1 transformer模型架構(gòu)圖

我們來具體看下transformer是如何計算的:

  1. 輸入層:transformer輸入包括兩部分:每個詞的embedding+位置encoding向量,使用時,將其整合在一起輸入到模型中;

  2. encoder和decoder層:encoder和decoder層的核心是利用attention的方式對輸入進(jìn)行編碼和解碼,此外兩者中均加入殘差網(wǎng)絡(luò)的結(jié)構(gòu)。

  3. 輸出層:輸出時,從左到右,先把右側(cè)位置的元素遮擋掉,利用mask的attention方式進(jìn)行訓(xùn)練預(yù)測。

為了更好的了解該算法,我們分為以下幾個部分重點介紹:
第一部分:multi-head Attention

Transformer中的attention部分,使用的為Multi-head Attention的方式。
Multi-head Attention是基于一種Scaled Dot-Product Attention計算方法,每次計算時,將后者重復(fù)計算多次,疊加在一起,從而保證每個輸入能夠提取足夠的上下文信息。
那么Scaled Dot-Product Attention又是如何計算呢?下面即為該算法的示意圖,具體計算步驟如下:
  1. 對于每個輸入單詞X1,X2,給定Wq,Wk,Wv三個矩陣,將x1和x2與這三個矩陣進(jìn)行相乘,得到六個向量:q1、q2、k1、k2、v1、v2。其中這三個矩陣先隨機(jī)初始給定,后面隨模型訓(xùn)練不斷迭代優(yōu)化。

  2. 針對每一個單詞,如第一個單詞thinking,拿其q1與其他輸入單詞的k向量進(jìn)行點乘得到各個score,s1=q1 * k1 ,s2=q1 * k2;
  3. 對每個score進(jìn)行歸一化,保證梯度的穩(wěn)定,同時除以sqrt(dk),其中dk為向量q,k,v的長度;
  4. 利用softmax激活函數(shù)將score轉(zhuǎn)化為權(quán)重w1,w2
  5. 加權(quán)求和得到各x的輸出z,如z1=w1 * v1 + w2 * v2 

然后將上述計算步驟重復(fù)h次,將得到的h個小矩陣拼接在一起,利用一個簡單的線性變換,得到每個輸入的最終表達(dá),這就是Multi-head attention的整體計算邏輯。
圖2 Multi-Head Attention框架圖

此處我們可以利用每次計算的權(quán)值w1,w2...來可視化查看輸入的每個詞之間的相關(guān)性,權(quán)重越大,說明相關(guān)性越強。
由于attention計算多次,每個attention層提取的詞語之間的意義會有所不同,圖3中可以看到第5個attention層中it與the、animal相關(guān)系較強,由此可以對模型優(yōu)化提供指導(dǎo)意見。
圖3 transformer模型input詞語相關(guān)性圖

第二部分:Add & Norm

除去基礎(chǔ)的attention單元外,transformer還有眾多的add &norm層,該層計算邏輯如圖4所示,主要分為兩部分:

  1. Add層:此處采用殘差網(wǎng)絡(luò)的設(shè)置,將原輸入X與經(jīng)attention計算得到的Z進(jìn)行疊加,從而保證梯度不會消失,避免模型退化的發(fā)生;
  2. LayerNorm層:將數(shù)據(jù)標(biāo)準(zhǔn)化為均值為0,方差為1的數(shù)據(jù),這樣可以減小數(shù)據(jù)的偏差,規(guī)避訓(xùn)練過程中梯度消失或爆炸的情況。

圖4 transformer模型add&norm層框架圖

第三部分:Feed Forward層

模型中的前向反饋層,采用一種Position-wise feed-forward方法,具體公式如下:
此處計算方式比較容易理解,先對輸入加一個全連接網(wǎng)絡(luò),之后拼接一個relu激活函數(shù),之后再加一個全連接網(wǎng)絡(luò)即可。

第三部分:Positional encoding

在我們之前使用CNN或者RNN模型進(jìn)行文本建模時,模型內(nèi)部已經(jīng)考慮到序列的序列位置了,而上述的self-attention,僅可以認(rèn)為是一個詞袋模型,未考慮到詞的位置信息。為了解決這個問題,此處在input中,除詞語的embedding外,再額外添加位置編碼信息,具體計算依據(jù)以下方式,主要依據(jù)sin和cos的方式鎖定單詞位置:

那么上述就是transformer模型的主要核心內(nèi)容了,模型整體就是依據(jù)上述的幾個部分進(jìn)行重復(fù)、疊加與拼接。

3.展望

本文是對上次attention的后續(xù),主要介紹了self-attention的基礎(chǔ)理論部分,主要內(nèi)容來源于google的《Attention Is All You Need》,此論文對于后續(xù)bert、gpt-2的理解具有極其重要的作用。

后期將介紹如何利用BERT預(yù)訓(xùn)練模型,進(jìn)行文本建模實踐。


本文轉(zhuǎn)載自公眾號:數(shù)據(jù)天團(tuán),作者丁永兵

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
學(xué)習(xí)|遍地開花的 Attention ,你真的懂嗎?
一步步理解BERT
一文讀懂深度學(xué)習(xí):從神經(jīng)元到BERT
從語言模型到Seq2Seq:Transformer如戲,全靠Mask
第一次見有人能把生成式AI的“自注意力機(jī)制”講的這么通俗易懂!
兩篇軟文帶領(lǐng)新手小白了解Transformer的前世今生(一)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服