最想學(xué)習(xí)哪些內(nèi)容浊服,匯總?cè)缦拢?/h1>
- 變壓器 (Transformers)
- BERT
- 問(wèn)題解答 (QA)
- 文本生成和摘要
預(yù)訓(xùn)練的詞向量:早年的Collobert矫膨,Weston等人读跷,2011成績(jī)
預(yù)訓(xùn)練的詞向量:當(dāng)前(2014 -)
- 我們可以從隨機(jī)詞向量開(kāi)始禀倔,然后在我們感興趣的方面進(jìn)行訓(xùn)練。
- 但在很多時(shí)候莲镣,使用預(yù)訓(xùn)練的詞向量會(huì)有所幫助,因?yàn)槲覀兛梢栽诟鄶?shù)據(jù)上進(jìn)行訓(xùn)練以獲得更多詞
- Chen和Manning(2014)依賴(lài)性解析
- 隨機(jī):均勻(-0.01涎拉,0.01)?- - 預(yù)訓(xùn)練:
- PTB(C&W):+ 0.7%
- CTB(word2vec):+ 1.7%
用詞向量識(shí)別生詞
最簡(jiǎn)單和常見(jiàn)的解決方案:
訓(xùn)練時(shí)間: Vocab is {words occurring, say, ≥ 5 times} ∪ {<UNK>}
映射所有稀少(<5)的字到<UNK>瑞侮,訓(xùn)練為一個(gè)字向量
運(yùn)行時(shí)間:當(dāng)out-of-vocabulary(OOV)字出現(xiàn)時(shí),使用<UNK>
-
問(wèn)題:
- 不論身份或含義如何曼库,都無(wú)法區(qū)分不同的UNK詞
解決方案:
- 我們剛剛學(xué)習(xí)了用于構(gòu)建向量的char級(jí)模型区岗!
- 特別是在諸如問(wèn)答之類(lèi)的應(yīng)用中
- 單詞標(biāo)識(shí)匹配的重要位置(甚至單詞矢量詞匯之外的單詞)
- PTB(C&W):+ 0.7%
- CTB(word2vec):+ 1.7%
最簡(jiǎn)單和常見(jiàn)的解決方案:
訓(xùn)練時(shí)間: Vocab is {words occurring, say, ≥ 5 times} ∪ {<UNK>}
映射所有稀少(<5)的字到<UNK>瑞侮,訓(xùn)練為一個(gè)字向量
運(yùn)行時(shí)間:當(dāng)out-of-vocabulary(OOV)字出現(xiàn)時(shí),使用<UNK>
問(wèn)題:
- 不論身份或含義如何曼库,都無(wú)法區(qū)分不同的UNK詞
解決方案:
- 特別是在諸如問(wèn)答之類(lèi)的應(yīng)用中
- 單詞標(biāo)識(shí)匹配的重要位置(甚至單詞矢量詞匯之外的單詞)
2.嘗試這些技巧(來(lái)自Dhingra,Liu毁枯,Salakhutdinov和Cohen慈缔,2017年)
- a. 在測(cè)試時(shí)間內(nèi),如果<UNK>字出現(xiàn)在無(wú)監(jiān)督的嵌入字里种玛,就在測(cè)試時(shí)間內(nèi)使用該向量藐鹤。
- b. 另外換句話(huà)說(shuō)瓤檐,只需給他們分配一個(gè)隨機(jī)向量,將它們添加到您的詞匯表中娱节。
- a. 絕對(duì)有很大幫助挠蛉; b. 可能會(huì)有所幫助
- 您可以嘗試的另一件事:
- 將東西組裝成單詞類(lèi)(例如,未知數(shù)肄满,大寫(xiě)的東西等)谴古,并且每個(gè)里都有一個(gè)<UNK-class>
1. 怎樣描述一個(gè)詞?
-
到目前為止稠歉,基本上我們已經(jīng)說(shuō)過(guò)我們有一種描述詞的方法:
- 在一開(kāi)始就學(xué)過(guò)的詞向量
- Word2vec掰担,GloVe,fastText
- 在一開(kāi)始就學(xué)過(guò)的詞向量
-
這些有兩個(gè)問(wèn)題:
- 對(duì)于單詞類(lèi)型怒炸,始終使用相同的表示形式带饱,而不考慮單詞標(biāo)記出現(xiàn)的上下文
- 我們可能希望細(xì)粒度的詞義消除歧義
- 我們只用一個(gè)詞來(lái)表示,但是詞有不同的方面阅羹,包括語(yǔ)義勺疼,句法行為和注冊(cè)/內(nèi)涵
- 對(duì)于單詞類(lèi)型怒炸,始終使用相同的表示形式带饱,而不考慮單詞標(biāo)記出現(xiàn)的上下文
我們一直都有解決這個(gè)問(wèn)題的辦法嗎?
- 在一個(gè)NLM中捏鱼,我們立即通過(guò)LSTM層插入單詞向量(也許僅在語(yǔ)料庫(kù)上訓(xùn)練)
- 這些LSTM層經(jīng)過(guò)訓(xùn)練可以預(yù)測(cè)下一個(gè)單詞
- 但是這些語(yǔ)言模型在每個(gè)位置都產(chǎn)生了上下文特定的單詞表示形式执庐!
2. Peters等(2017年):TagLM –“Pre-ELMo”
https://arxiv.org/pdf/1705.00108.pdf
- 想法:希望在上下文中使用單詞的含義,但通常僅在帶有小任務(wù)標(biāo)簽的數(shù)據(jù)(例如NER)上學(xué)習(xí)任務(wù)RNN )
- 為什么不做半監(jiān)督方法导梆,在大型的未標(biāo)記語(yǔ)料庫(kù)上訓(xùn)練NLM(不僅僅是單詞向量)耕肩?
Tag LM
命名實(shí)體識(shí)別(NER)
NLP的一個(gè)非常重要的子任務(wù):例如,在文本中查找和分類(lèi)名稱(chēng):
- 獨(dú)立議員安德魯·威爾基(Andrew Wilkie)決定撤回對(duì)少數(shù)黨工黨政府的支持问潭,這聽(tīng)起來(lái)很引人注目猿诸,但不應(yīng)進(jìn)一步威脅其穩(wěn)定性。 2010年大選后狡忙,威爾基梳虽,羅伯·奧克肖特,托尼·溫莎和綠黨同意支持工黨時(shí)灾茁,他們只提供了兩項(xiàng)保證:信心和供給窜觉。
彼得斯等(2017):TagLM –“Pre-ELMo”
語(yǔ)言模型在“十億個(gè)單詞基準(zhǔn)”的八億個(gè)訓(xùn)練單詞上進(jìn)行訓(xùn)練
語(yǔ)言模型觀察
- 接受過(guò)監(jiān)督數(shù)據(jù)培訓(xùn)的LM并沒(méi)有幫助
- 雙向LM僅能向前推進(jìn)約0.2
- 巨大的LM設(shè)計(jì)(ppl 30)可以將較小的模型(ppl 48)減少0.3
特定于任務(wù)的BiLSTM觀察 - 僅使用LM嵌入來(lái)預(yù)測(cè)效果不好:88.17 F1
- 遠(yuǎn)低于僅對(duì)標(biāo)簽數(shù)據(jù)使用BiLSTM標(biāo)記器
同樣在空中:McCann等(2017年)
https://arxiv.org/pdf/1708.00107.pdf
- 還具有使用訓(xùn)練好的序列模型為其他NLP模型提供上下文的想法
- 想法:機(jī)器翻譯旨在保留含義,也許這是一個(gè)好目標(biāo)北专?
- 使用作為seq2seq +注意NMT系統(tǒng)的編碼器的2層bi-LSTM作為上下文提供者
- 在各種任務(wù)上禀挫,生成的CoVe向量的性能均優(yōu)于GloVe向量
- 但是,結(jié)果并沒(méi)有其他幻燈片中介紹的更簡(jiǎn)單的NLM培訓(xùn)那樣強(qiáng)大拓颓,因此似乎被放棄了
- 也許NMT比語(yǔ)言建模更難语婴?
- 也許有一天這個(gè)想法會(huì)回來(lái)嗎?
彼得斯等(2018):ELMo:語(yǔ)言的嵌入模型
深度上下文化的單詞表示形式。 NAACL 2018.https://arxiv.org/abs/1802.05365
- 單詞標(biāo)記向量或上下文單詞向量的突破版本
- 使用長(zhǎng)上下文而不是上下文窗口來(lái)學(xué)習(xí)單詞標(biāo)記向量(此處砰左,整個(gè)句子可能更長(zhǎng))
- 學(xué)習(xí)深入的Bi-NLM并將其所有層用于預(yù)測(cè)
彼得斯等(2018):ELMo:語(yǔ)言模型的嵌入模型
- 訓(xùn)練雙向LM
- 針對(duì)績(jī)效較高的LM匿醒,但不要過(guò)大:
- 使用2個(gè)biLSTM層
- 使用字符CNN構(gòu)建初始單詞表示(僅)
- 2048克克過(guò)濾器和2個(gè)高速公路層,512d投影
- 用戶(hù)4096個(gè)暗淡隱藏/單元格LSTM狀態(tài)和512個(gè)暗淡
下一個(gè)輸入的投影 - 使用剩余連接
- 綁定令牌輸入和輸出(softmax)的參數(shù)缠导,并將其綁定在前向和后向LM之間
彼得斯等(2018):ELMo:語(yǔ)言的嵌入模型
- ELMo學(xué)習(xí)特定任務(wù)的biLM表示形式的組合
- 這是一項(xiàng)創(chuàng)新廉羔,僅在使用LSTM堆棧的頂層時(shí)有所改進(jìn)
-
可將ELMo的總體實(shí)用性擴(kuò)展到任務(wù);
-
是softmax-normalized混合模型權(quán)重
彼得斯等(2018):ELMo:與任務(wù)配合使用
- 首先運(yùn)行biLM以獲取每個(gè)單詞的表示形式
- 然后讓?zhuān)ㄈ魏危┳罱K任務(wù)模型使用它們
- 凍結(jié)ELMo的重量以用于監(jiān)督模型
- 將ELMo權(quán)重連接到特定于任務(wù)的模型中?詳細(xì)信息取決于任務(wù)
- 連接到中間層僻造,以實(shí)現(xiàn)標(biāo)記LM典型
- 可以在產(chǎn)生輸出時(shí)再次提供EL更多表示憋他,例如在問(wèn)題回答系統(tǒng)中
序列標(biāo)記器中使用的ELMo
CoNLL 2003命名實(shí)體識(shí)別(en news testb)
ELMo結(jié)果:適用于所有任務(wù)
ELMo:圖層權(quán)重
- 兩個(gè)biLSTM NLM層具有不同的用途/含義?較低的層更適合較低層的語(yǔ)法等。
- 詞性標(biāo)記髓削,句法依賴(lài)性举瑰,NER?較高的層更適合較高級(jí)別的語(yǔ)義
- 情感,語(yǔ)義標(biāo)簽蔬螟,問(wèn)題回答,SNLI
- 這看起來(lái)很有趣汽畴,但是看起來(lái)似乎更有趣
它如何通過(guò)兩層以上的網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)
周?chē)€有:ULMfit
Howard and Ruder(2018)通用語(yǔ)言模型微調(diào)旧巾,用于文本分類(lèi)。 https://arxiv.org/pdf/1801.06146.pdf
- 轉(zhuǎn)讓NLM知識(shí)的一般思路
- 適用于文本分類(lèi)
ULMfit
在大型通用領(lǐng)域語(yǔ)料庫(kù)上訓(xùn)練LM(使用biLM)在目標(biāo)任務(wù)數(shù)據(jù)上調(diào)整LM
微調(diào)為目標(biāo)任務(wù)的分類(lèi)器
ULMfit重點(diǎn)
使用大小適中的“ 1 GPU”語(yǔ)言模型不是真正龐大的模型在LM微調(diào)中要多加注意
每層學(xué)習(xí)率不同
傾斜的三角形學(xué)習(xí)率(STLR)進(jìn)度表學(xué)習(xí)分類(lèi)器時(shí)忍些,使用層級(jí)[h#鲁猩,maxpool +,meanpool +]進(jìn)行分類(lèi)時(shí)逐步分層和STLR
ULMfit性能
- 文本分類(lèi)器錯(cuò)誤率
ULMfit轉(zhuǎn)移學(xué)習(xí)
讓我們擴(kuò)大規(guī)模罢坝!
GPT-2語(yǔ)言模型(精選)輸出
系統(tǒng)提示(人為寫(xiě))
模型完成(機(jī)器編寫(xiě)廓握,10條)
在一個(gè)令人震驚的發(fā)現(xiàn)中,科學(xué)家發(fā)現(xiàn)了一群獨(dú)角獸嘁酿,它們生活在安第斯山脈一個(gè)偏遠(yuǎn)的隙券,以前未被開(kāi)發(fā)的山谷中。令研究人員更加驚訝的是闹司,獨(dú)角獸會(huì)說(shuō)完美的英語(yǔ)娱仔。
這位科學(xué)家以其獨(dú)特的號(hào)角Ovid的獨(dú)角獸命名了這個(gè)種群。這些四角銀白色獨(dú)角獸以前是科學(xué)界所不知道的游桩。
現(xiàn)在牲迫,在將近兩個(gè)世紀(jì)之后,終于解決了引發(fā)這種奇怪現(xiàn)象的謎團(tuán)借卧。
拉巴斯大學(xué)(University of La Paz)的進(jìn)化生物學(xué)家豪爾赫·佩雷斯(JorgePérez)博士和幾位同伴在安第斯山脈發(fā)現(xiàn)一個(gè)沒(méi)有其他動(dòng)物或人類(lèi)的小山谷時(shí)正在探索盹憎。佩雷斯注意到該山谷似乎是一個(gè)天然噴泉,周?chē)h(huán)繞著兩個(gè)巖石和銀色雪峰铐刘。
佩雷斯和其他人然后進(jìn)一步冒險(xiǎn)進(jìn)入山谷陪每。 ...
變壓器模型
所有這些模型都是Transformer體系結(jié)構(gòu)模型...所以也許我們最好了解一下Transformers?
4. 變壓器的動(dòng)力
- 我們想要并行化,但RNN本質(zhì)上是順序的
- 盡管有GRU和LSTM奶稠,但RNN仍需要注意機(jī)制來(lái)處理遠(yuǎn)距離依賴(lài)關(guān)系–狀態(tài)之間的路徑長(zhǎng)度會(huì)隨著序列的增長(zhǎng)而增加
- 但是俯艰,如果注意力使我們能夠進(jìn)入任何狀態(tài)……也許我們可以只使用注意力而無(wú)需RNN?
變壓器概述
注意就是您所需要的锌订。 2017.阿斯瓦尼(Aswani)竹握,Shazeer,Parmar辆飘,Uszkoreit啦辐,Jones,Gomez蜈项,Kaiser芹关,Polosukhin https://arxiv.org/pdf/1706.03762.pdf
- 非循環(huán)序列到序列編碼器-解碼器模型
- 任務(wù):具有平行語(yǔ)料庫(kù)的機(jī)器翻譯
- 預(yù)測(cè)每個(gè)翻譯的單詞
- 最終成本/誤差函數(shù)是softmax分類(lèi)器之上的標(biāo)準(zhǔn)交叉熵誤差
變壓器基礎(chǔ)
- 自己了解變壓器?
- 重要推薦資源:
http://nlp.seas.harvard.edu/2018/04/03/attention.html?TheAnnotatedTransformerbySashaRush - 使用PyTorch的Jupyter筆記本可以解釋所有內(nèi)容紧卒!
- 現(xiàn)在:讓我們定義基本的構(gòu)建基塊
變壓器網(wǎng)絡(luò):首先侥衬,新的關(guān)注層!
- 現(xiàn)在:讓我們定義基本的構(gòu)建基塊
點(diǎn)積注意(擴(kuò)展我們以前的DEF)
-輸入:查詢(xún)q和到輸出的一組鍵值(k-v)對(duì)
- 查詢(xún)跑芳,鍵值對(duì)和輸出都是向量
- 輸出是值的加權(quán)總和轴总,其中
- 每個(gè)值的權(quán)重由查詢(xún)的內(nèi)積計(jì)算和相應(yīng)的密鑰
- 查詢(xún)和鍵具有相同的維數(shù)dk值具有dv
點(diǎn)產(chǎn)品注意–矩陣符號(hào)
- 當(dāng)我們有多個(gè)查詢(xún)q時(shí),我們將它們堆疊在矩陣Q中:
- 成為:
逐行softmax
點(diǎn)積乘積注意
- 問(wèn)題:隨著dk變大博个,qTk的方差增加-softmax內(nèi)的一些值變大- softmax變得非常尖峰怀樟,因此其梯度變小。
- 解決方案:按查詢(xún)/鍵向量的長(zhǎng)度縮放:
編碼器中的自我注意
- 輸入的單詞向量是查詢(xún)盆佣,鍵和值
- 換句話(huà)說(shuō):?jiǎn)卧~向量本身彼此選擇
- Wordvectorstack = Q = K = V
- 我們將在解碼器中看到為什么我們?cè)诙x中將它們分開(kāi)
多頭注意力
- 簡(jiǎn)單的自我關(guān)注的問(wèn)題:
- 單詞彼此交互的唯一方式
- 解決方案:多頭注意力
- 將第一個(gè)Q往堡,K,V映射到h = 8時(shí)要低很多
W矩陣維空間 - 然后注意共耍,然后連接輸出并通過(guò) 全聯(lián)接層進(jìn)行傳遞
完整的變壓器塊
每個(gè)塊都有兩個(gè)“子層”
- 多頭注意力
- 2層前饋NNet(帶有ReLU)
這兩個(gè)步驟還具有:
殘余(短路)連接和LayerNorm
LayerNorm(x +子層(x))
Layernorm將輸入更改為均值0和方差1虑灰,
每層和每個(gè)訓(xùn)練點(diǎn)(并增加了兩個(gè)參數(shù))
由Ba,Kiros和Hinton痹兜,進(jìn)行的圖層歸一化瘩缆,https://arxiv.org/pdf/1607.06450.pdf
編碼器輸入
- 實(shí)際的單詞表示形式是字節(jié)對(duì)編碼
- 與上一講一樣
- 還添加了位置編碼,因此在不同位置的相同單詞具有不同的整體表示形式
完整的編碼器
- 對(duì)于編碼器佃蚜,在每個(gè)塊中庸娱,我們使用相同的Q,K和V
來(lái)自上一層 - 塊重復(fù)6次
- (在垂直堆棧中)
第5層中的注意力可視化
- 單詞開(kāi)始以明智的方式關(guān)注其他單詞
關(guān)注可視化:隱式回指解析
在第5層谐算。 注意頭5和6的注意力僅與“它”一詞分開(kāi)熟尉。請(qǐng)注意,此單詞的注意非常尖銳洲脂。
變壓器解碼器
- 解碼器中有2個(gè)子層更改
- 對(duì)先前生成的輸出進(jìn)行屏蔽的解碼器自我關(guān)注:
- Encoder-Decoder Attention斤儿,其中查詢(xún)來(lái)自先前的解碼器層剧包,而鍵和值來(lái)自編碼器的輸出
塊也重復(fù)了6次
提示和變壓器的技巧
詳細(xì)信息(書(shū)面和/或以后的講座):
- 字節(jié)對(duì)編碼
- 檢查點(diǎn)平均
- ADAM優(yōu)化與學(xué)習(xí)率的變化
- 在添加殘差之前,在每一層的訓(xùn)練過(guò)程中都會(huì)出現(xiàn)輟學(xué)現(xiàn)象
- 標(biāo)簽平滑
- 具有波束搜索和長(zhǎng)度的自動(dòng)回歸解碼
處罰 - 變壓器的使用正在普及往果,但是它們很難進(jìn)行優(yōu)化疆液,與LSTM不同,它們通常不是開(kāi)箱即用的
而且它們?cè)谄渌蝿?wù)構(gòu)建塊上還不能很好地發(fā)揮作用陕贮。
MT的實(shí)驗(yàn)結(jié)果
解析實(shí)驗(yàn)結(jié)果
5. BERT:Devlin堕油,Chang,Lee肮之,Toutanova(2018年)
BERT(來(lái)自變壓器的雙向編碼器表示):
深度雙向變壓器的預(yù)訓(xùn)練以提高語(yǔ)言理解能力
基于Jacob Devlin的幻燈片
- 問(wèn)題:語(yǔ)言模型僅使用左上下文或右上下文掉缺,但是語(yǔ)言理解是雙向的。
- LM為什么是單向的戈擒?
- 原因1:需要方向性才能生成格式正確的
概率分布眶明。- 我們不關(guān)心這個(gè)。
- 原因2:?jiǎn)卧~可以在雙向編碼器中“看到自己”筐高。
- 解決方案:屏蔽掉k%的輸入單詞搜囱,然后預(yù)測(cè)被屏蔽的單詞
- 他們總是使用k = 15%
該男子去了[MASK]買(mǎi)的牛奶[MASK]
- 掩膜太少:訓(xùn)練太昂貴
- 掩蓋過(guò)多:上下文不足
BERT復(fù)雜化:下一句預(yù)測(cè)
- 要了解句子之間的關(guān)系,請(qǐng)預(yù)測(cè)句子B是執(zhí)行句子A的實(shí)際句子還是隨機(jī)句子
BERT句子對(duì)編碼
令牌嵌入是單詞片段
學(xué)習(xí)的分段式嵌入表示每個(gè)句子位置式嵌入與其他Transformer架構(gòu)相同
BERT模型結(jié)構(gòu)和訓(xùn)練
- 變壓器編碼器(以前一樣)
- 自我關(guān)注?沒(méi)有地方偏見(jiàn)
- 長(zhǎng)距離范圍內(nèi)有“機(jī)會(huì)均等”
- 每層單乘法?GPU / TPU的效率
- 在Wikipedia + BookCorpus上進(jìn)行訓(xùn)練
- 訓(xùn)練2種模型尺寸:
- BERT-Base:12層柑土,768隱藏層蜀肘、12頭層
- BERT-Large:24層,1024隱藏層冰单,16頭層
- 在4x4或8x8 TPU切片上訓(xùn)練了4天
BERT模型微調(diào)
- 微調(diào)每個(gè)任務(wù),只需學(xué)習(xí)建立在頂層的分類(lèi)
BERT在GLUE任務(wù)上的結(jié)果
- GLUE基準(zhǔn)測(cè)試由自然語(yǔ)言推理任務(wù)主導(dǎo)灸促,但也具有句子相似度和情感度
- MultiNLI
- 前提:耆那教教徒特別崇尚丘陵和山脈诫欠。
假設(shè):耆那教討厭自然。
標(biāo)簽:矛盾 - CoLa
- 句子:馬車(chē)在路上轟隆作響浴栽。 標(biāo)簽:可接受
- 句子:汽車(chē)在路上鳴喇叭荒叼。 標(biāo)簽:不可接受
CoNLL 2003命名實(shí)體識(shí)別(en news testb)
BERT在SQuAD 1.1上的結(jié)果
SQuAD 2.0排行榜,2019-02-07
預(yù)培訓(xùn)任務(wù)的效果
大小事項(xiàng)
- 從110M到340M參數(shù)有很大幫助
- 尚未出現(xiàn)改進(jìn)