關(guān)注點1:Transformer
1. embedding層:把離散字符轉(zhuǎn)化為數(shù)字
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層:
通過神經(jīng)網(wǎng)絡(luò),計算句子中字符的權(quán)重w桦他,從而對輸入進行一定的加權(quán)(更關(guān)注某部分)ps: 原始輸入文本x和decoder后的輸出文本yt-1均需輸入attention層進行權(quán)重的計算蔫巩。
區(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ù)量相乘)
多頭機制:把原本的10x768矩陣切分為12個10x64的矩陣截粗,在不同子空間訓(xùn)練模型,獲得12個完全不同的self-attention矩陣鸵隧,最后拼接,從而提升模型效果意推。
3. LayerNorm(殘差機制)
把embedding層和self-attention層輸出相加豆瘫,有助于保留一些原始信息,防止過擬合
4. Feed Forward層(前饋層)
注:相比于CNN菊值,RNN外驱,隨著長度增加育灸,距離很遠的數(shù)據(jù)也不會丟失。調(diào)用方式
from transformers import BertModel
關(guān)注點2:預(yù)訓(xùn)練方法
通過海量的不需要標注的數(shù)據(jù)訓(xùn)練得到bert預(yù)訓(xùn)練參數(shù)
Bert實際上就是個文本編碼器瓦哎,將文本向量化砸喻,本質(zhì)上與LSTM,CNN等沒有差異(ps.文本長度不一致蒋譬,需要用0補齊)
預(yù)訓(xùn)練模型的發(fā)展
1. ELMo
2.GPT
3. Ernie-baidu
4. Ernie-Tsinghua
5. GPT2
6. UNILM
7.Transformer-XL&XLNet
8.Roberta
9.SpanBert
10. ALBERT
11. T5
12.GPT3
參考資料:
八斗學(xué)院講座筆記(侵刪)