關(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é)院講座筆記(侵刪)