關(guān)注點1:Transformer

1. embedding層:把離散字符轉(zhuǎn)化為數(shù)字

Embedding
1.1 token embeddings:用于區(qū)分文本內(nèi)容,1個文本字符對應(yīng)768維的向量,1個token embeddings輸出N(字符數(shù))x 768維的矩陣
1.2 segment embeddings:用于區(qū)分哪一句話,輸出也是N x 768維的矩陣,同一句對應(yīng)的向量是相同的
1.3 position embeddings:用于確定文本位置,輸出也是N x 768維的矩陣
因此得到3個N x 768矩陣,3個矩陣相加,輸出一個新的N x 768的矩陣
2. self-attention層:

attention機制
通過神經(jīng)網(wǎng)絡(luò),計算句子中字符的權(quán)重w,從而對輸入進行一定的加權(quán)(更關(guān)注某部分)ps: 原始輸入文本x和decoder后的輸出文本yt-1均需輸入attention層進行權(quán)重的計算。

self-attention
區(qū)別于傳統(tǒng)attention,不涉及輸出的再輸入。WQ,WK,WV是線性層(768x768),與X(10x768)相乘后得到10x768矩陣,隨機初始化后訓(xùn)練更新。

QxKT計算出文本的權(quán)每個字與其他字的相關(guān)性,softmax歸一化得到權(quán)重,是self-attention,dk涉及多頭機制,再乘以V(和原本數(shù)量相乘)

獲得文本與其他文本的相關(guān)
多頭機制:把原本的10x768矩陣切分為12個10x64的矩陣,在不同子空間訓(xùn)練模型,獲得12個完全不同的self-attention矩陣,最后拼接,從而提升模型效果。

多頭機制multi-head
3. LayerNorm(殘差機制)
把embedding層和self-attention層輸出相加,有助于保留一些原始信息,防止過擬合

LayerNorm(殘差機制)
4. Feed Forward層(前饋層)
注:相比于CNN,RNN,隨著長度增加,距離很遠的數(shù)據(jù)也不會丟失。
優(yōu)勢:數(shù)據(jù)更全、更完整

優(yōu)勢:無距離限制,且可以并行,速度較快
調(diào)用方式
from transformers import BertModel

bert
關(guān)注點2:預(yù)訓(xùn)練方法
通過海量的不需要標注的數(shù)據(jù)訓(xùn)練得到bert預(yù)訓(xùn)練參數(shù)


隨機遮擋: 學(xué)習(xí)每個字的意思

預(yù)測是否為下一句話:學(xué)習(xí)兩句話之前的關(guān)聯(lián)
Bert實際上就是個文本編碼器,將文本向量化,本質(zhì)上與LSTM,CNN等沒有差異(ps.文本長度不一致,需要用0補齊)

下游任務(wù)中的使用
預(yù)訓(xùn)練模型的發(fā)展
1. ELMo

使用的是雙向LSTM,預(yù)訓(xùn)練任務(wù)是單向預(yù)測(前N個字預(yù)測后1個字)
2.GPT

GPT:使用transformer,預(yù)訓(xùn)練任務(wù)還是單項預(yù)測,增加了有監(jiān)督訓(xùn)練
3. Ernie-baidu

百度模型:在中文上表現(xiàn)更好,加入了先驗知識,但導(dǎo)致不通用
4. Ernie-Tsinghua

清華模型:引入知識圖譜
5. GPT2

GPT2:語言生成能力強,大數(shù)據(jù)大模型
6. UNILM

彌補bert生成文本的缺陷,通過MASK機制增加單向LM

7.Transformer-XL&XLNet

Transformer中position embedding有長度限制

一次bert解決不了,往下傳遞

相對位置編碼
8.Roberta

Roberta
9.SpanBert

改變訓(xùn)練目標對模型也有提升
10. ALBERT

解決模型參數(shù)過多的問題
11. T5

利用seq2seq方式:邁向NLP的大一統(tǒng)
12.GPT3

超大模型,目標是不要調(diào)參

未來方向
參考資料:
八斗學(xué)院講座筆記(侵刪)