萬能 Transformer,你應該知道的一切

2021-02-22 機器學習研究組訂閱

寫在前面:自 2017 年 Transformer 技術出現以來,便在 NLP、CV、語音、生物、化學等領域引起了諸多進展。知源月旦團隊期望通過「Transformer+X」 梳理清 Transformer 技術的發展脈絡,以及其在各領域中的應用進展,以期推動 Transformer 技術在更多領域中的應用。限於篇幅,在這篇推文中,我們先介紹 Transformer 的基本知識,以及其在 NLP 領域的研究進展;後續我們將介紹 Transformer + CV / 語音/生物/化學等的研究。

Github:floatingCatty/BAAI-Monthly-Transformer模型由Google在2017年在 Attention Is All You Need[1] 中提出。該文使用 Attention 替換了原先Seq2Seq模型中的循環結構,給自然語言處理(NLP)領域帶來極大震動。隨著研究的推進,Transformer 等相關技術也逐漸由 NLP 流向其他領域,例如計算機視覺(CV)、語音、生物、化學等。因此,我們希望能通過此文盤點 Transformer 的基本架構,分析其優劣,並對近年來其在諸多領域的應用趨勢進行梳理,希望這些工作能夠給其他學科提供有益的借鑑。1.1 Transformer 結構Transformer 模型結構如圖1所示,模型由6個編碼器(Encoder)和6個解碼器(Decoder) 組成,輸入(Inputs)和輸出(Outputs)通過同一個訓練好的詞嵌入層(Word Embedding)將輸入字符轉換為維度為d的向量。Transformer對編碼器(Encoder)與解碼器(Decoder)兩端的序列分別添加位置編碼(Positional Encoding)。之後,編碼經過含有多頭自注意力機制(Multi-head Self-Attention)、位置前向傳播網絡(Position-wise Feed-Forward Network)、殘差連接(Residual Connection)和層歸一化(Layer Normalization)的計算單元。由於Transformer的計算拋棄了循環結構的遞歸和卷積,無法模擬文本中的詞語位置信息,因而需要人為添加。該過程稱為位置編碼(Positional Encoding),使用詞的位置向量,表示單詞在句中的位置與詞間的相對位置,在Transformer中與句子的嵌入表示相加,獲得模型輸入。Vaswani et.al[1]提出 Positonal Encoding的兩種方式:一種是學習得到,隨機初始化後加入模型作為參數進行訓練。一種是使用不同頻率的正弦和餘弦函數,在每個詞語的詞向量的偶數位置添加sin變量,奇數位置添加cos變量,以此填滿Positional Encoding矩陣,該方式保證了每個位置向量不重複而且不同之間的位置之間存在線性關係,在計算注意力權重的時候(兩個向量做點積),相對位置的變化會對注意力產生影響,而絕對位置變化不會對注意力產生影響,這更符合常理。上述方式都是將單詞嵌入向量與位置嵌入向量分開訓練,且只能接受整型數值作為詞索引或位置索引,不能捕捉有序的關係,例如鄰接關係或優先級,會導致每個位置上的位置向量是彼此獨立的,稱之為 Position Independence Problem[2]。針對這個問題,Benyou et.al 提出了一種改進方法——將以前定義為獨立向量的詞嵌入擴展為以位置 pos 為自變量的連續函數。這樣詞的表示可以隨著位置的變化而平滑地移動,不同位置上的詞表示就可以互相關聯起來。實驗結果表示,Complex Embedding 在性能上有較大的優化和提高。注意力機制(Attention Mechanism)作為對Seq2Seq模型的改進而被提出。在機器翻譯任務中,目標語言與輸入語言的詞彙之間,存在一些對應關係,Bahdanau[3] 鮮明地指出了固定大小的中間層維度對翻譯任務的限制,並直接計算 BiRNN 對輸入的編碼h與候選輸出的編碼的s之間的相似度量作為替代,根據相似得分輸出預測的目標語言詞彙。這突破了 Seq2Seq 模型學習的中間表徵h的維度對輸入信息的限制。日後發展出的大多 Attention 機制仍可以表述在這一框架下,即計算輸入的表示與輸出表示間的得分 score,作為判斷輸出單詞的依據,但不同的是,對於輸入詞的編碼採用了不同的處理模型,例如RNN,CNN[4]等。在 Transformer 以及後續的主流模型中,多採用多頭自注意力機制(Scale-dot Product Self-Attention)。自注意力在 Cheng et. al.[5] 的機器閱讀工作中提出,該模型採用加和式的 Attention 得分,計算輸入新詞與前文各詞的聯繫,使用加和式注意力計算:Transformer 中採用的是多頭自注意力機制[1]。在 Encoder 中,Q、K、V均為輸入的序列編碼,而多頭的線性層可以方便地擴展模型參數。該方法經常被表示為詞與詞之間的全連接結構[6],同一序列中詞的關係直接由 score 值計算得到,不會因為時序、傳播的限制而造成信息損失,有利於模擬長程依賴,但也有工作通過實驗表明[7],多頭注意力機制解決長程依賴是由於參數量的增加,若在同規模下對比,相對CNN,RNN並未有明顯提升。自注意力長程依賴、可擴展、多連接等特點讓其在語言任務上表現出色。許多工作針對計算開銷問題提出了改進。Kitaev et. al[8] 的 Reformer,並在計算時,使用相同的線性層參數計算Q、K矩陣,並對每個 Query 單獨計算 Attention 得分,這樣雖然增加了循環次數,但卻能將存儲開銷變為原來的平方根級。此外,考慮到 Softmax 函數更多關注序列中較大的值,因此篩選了部分相似的 Token 計算相關性值,這與 Rewon Child[9] 提出了 Sparse Attention 優化計算的方法相似。Zhang et. al.[10] 在 TensorCoder 中提出了維度的 Scale-dot Product Attention,將計算開銷從O(N^2d),降低到O(Nd^2),對於序列長度大於詞向量維度時,能有效降低開銷。3)Position-Wise Feed-Forward Network
Position-Wise Feed-Forward Network 是一個簡單的全連接前饋網絡:其中 x 是 MultiHead(Q,K,V) 中的一個token。Position-Wise 即以單個位置為單位進行前饋,也就是說 FFN(x) 中的 x 的維度為 [1,],同一個 Encoder 或者 Decoder 中的不同x共享 ,,不同 Encoder 和 Decoder 之間不共享參數。在模型學習過程中,當我們採用梯度下降法對最優參數進行搜索時,很大程度上會受到輸入特徵分布的影響。當輸入的不同特徵的特徵空間的範圍差異較大,會導致在空間上尋找最優點時,產生較大偏差。為了解決這種情況,將不同的特徵分布通過歸一化使其成為均值為0,標準差為1的概率分布,可以幫助模型以更快的速度收斂。1.4.2 Batch Normalization出現在深度神經網絡反向傳播的特性在更新神經元參數的同時,也存在著內部協變量偏移效應(Internal Covariate Shift),經過多層的偏移效應放大後,很多變量會趨向於分布到激活函數(以 Sigmoid 為例)的兩端,發生梯度急劇下降甚至產生梯度消失現象。有學者提出通過採用將每層輸入歸一化的方式防止這種現象的發生。同時還增加了可訓練變量β與γ。使得歸一化後的輸入α,通過線性變換,轉換成,這樣進入激活函數的輸入將不受內部協變量影響,加快了模型訓練的收斂速度[11]。1.4.3 Layer Normalization出現一些學者發現 Batch Normalization 在RNN上所起到的作用是很有限的。當他們對 RNN 應用 Batch Normalization 時,需要計算序列中每個時間步的統計信息[12]。這存在很多問題。當時間步超出訓練序列長度後,沒有歸一化層可以與多出的測試序列對應了。而且 Batch Normalization 對 Batch Size 依賴很大,當Batch Size 過小時,BN 層的均值和標準差計算與整個數據集的實際統計數據相差過大,就使得其喪失了歸一化效果。所以,可以採取另一種改進的歸一化方法即 Layer Normalization,即通過對在相同時間步的神經元的輸入求其均值與標準差,在這個方向上對輸入進行歸一化,可以理解為 BN 的轉置。LN 在實現歸一化過程中與 Batch 是無關聯的,這就克服了 BN 在小 Batch Size 的情況下,效果較差的缺點[12]。H代表同一序列的隱藏神經元數,歸一化過程無關於 Batch Size。對於 Transformer 而言,模型深度更大,搜索範圍更廣,因而採用 Layer Normaliazation層對模型起到的幫助是基礎性的。這使得 Transformer 在訓練過程中收到內部協變量的影響降到很低,也是 Transformer 的高性能的重要原因之一。對於 Transformer 的 LN 層還存在一些討論。有學者說明原始模型輸出層參數期望較大,在這些梯度上採用較大的學習率,會使訓練不穩定,將 LN 層前置到子層前[13],見下圖右,發現通過這樣的方式,也可以提升 Transformer 模型本身的訓練性能。Transformer 解碼器(Decoder)與編碼器(Encoder)具有相同的計算單元,不同的是,模型仍是 Seq2Seq 結構,因此,為了令解碼器不提前得知未來信息,使用 Masked Multi-head Attention 隱藏下文。Transformer 在獲得性能提升的同時,也大大增加了計算開銷,因此,許多工作關注獲得更高效的 Transformer 模型,列舉介紹如下。1.2 Efficient TransformersTaxonomy of Efficient Transformer Architectures.Transformer 發布後即在 NLP 多個領域取得顯著成績,也激發了領域研究者們極大的興趣。後續研究者們在 Transformer 的基礎上又提出了一系列 X-former模型,如 Set-Transformer[14]、Transformer-XL[15] 等。這些模型針對Transformer 的計算效率和存儲效率進行優化,或是提升了模型處理長序列的效率。谷歌2020年9月份在arXiv發表的綜述論文《Efficient Transformers: A Survey》[16]即針對這一類進行了總結。1.3 Language modelsTransformer 的出現催生出一批基於 Transformer 的語言模型,這些模型被證實在一系列NLP任務上取得極大性能提升。如2018年 OpenAI 提出的 GPT(Generative Pre-Training)[17] 模型和 Google Brain 提出的 BERT(Bidirectional Encoder Representation from Transformer) 模型[18],一經提出即引起極大反響,二者分別基於單向、雙向Transformer 模型,運用了 Pre-training + Fine-tuning 的訓練模式,在分類、標註等 NLP 經典下遊任務取得很好的效果。值得注意的是,GPT 和 BERT 兩個模型都是在 Fine-tuning 階段在編碼層後面加上 Task-layer 以適應不同下遊任務的訓練需求,而另一個基於雙向 Transformer 的模型 MT-DNN[19] 是將所有任務的 Fine-tuning 步驟都放了一起。MT-DNN 的優勢表現在使用多任務學習+預訓練,使得在單一任務數據有限的有監督訓練中,可以利用其他相似任務的標註數據,以達到數據增強的作用。2.1 預訓練技術預訓練技術是指預先設計多層網絡結構,將編碼後的數據輸入到網絡結構中進行訓練,增加模型的泛化能力。預先設計的網絡結構通常被稱為預訓練模型,它的作用是初始化下遊任務。將預訓練好的模型參數應用到後續的其他特定任務上,這些特定任務通常被稱為「下遊任務」[20]。隨著深度學習的發展,模型參數迅速增加。另外,模型在小數據集上容易過擬合,需要更大的數據集。而 NLP 中構建帶標籤的大數據集成本高昂。相較而言,無標籤大數據集構造簡單。為了利用無標籤數據,可以預訓練得到其他任務的通用表示。然後將這些通用表示應用到下遊任務的構建過程中。大量實驗表明,使用預訓練方式可以較大改善某些任務的性能[21]。早在2006年,深度學習的突破就出現在貪婪的分層無監督預訓練,然後是有監督的微調。在 CV 領域, 主要是在如 ImageNet 等較大規模數據集上預訓練模型,接著在不同任務的數據上進行微調,方法取得了明顯的效果改善。而在 NLP 中早期的預訓練模型圍繞預訓練詞向量進行,現代詞向量最早是由 Yoshua Bengio et. al.[22] 在2003年的 NNLM 模型中提出。C是詞向量矩陣,負責將詞映射為特徵向量。模型通過訓練之後可以得到詞向量矩陣C。NNLM 的主要貢獻是創見性地將模型的第一層特徵映射矩陣當作詞的文本表徵,從而開創了將詞語表示為向量形式的模式,這直接啟發了後來的 Word2Vec 的工作。在2011年,Collobert et. al.[23] 發現在無標籤數據預訓練的詞向量能夠顯著改善很多NLP任務。2013年,Mikolov et. al.[24] 借鑑NNLM的思想提出了 Predictive-based Word2Vec 模型,分為兩種訓練方式,包含根據上下文預測中間詞的Continuous Bag-of-Words(CBOW) 和根據中間詞預測上下文的 Skip-Gram (SG) 。2014年,Jeffrey Pennington et. al.[25] 提出了 Count-based Glove。Word2vec 和 Glove 都是之前廣泛用來預訓練詞向量的模型。Word2Vec 和GloVe 都是使用無監督數據訓練得到詞向量,而 FastText [26] 則是利用帶有監督標記的文本分類數據完成訓練。FastText 的網絡結構與CBOW基本一致,其最大優勢在於預測速度。在一些分類數據集上,FastText 通常可以把要耗時幾小時甚至幾天的模型訓練大幅壓縮到幾秒鐘。由於傳統詞向量的缺點,大家嘗試使用深層模型提取出上下文相關的詞向量。McCann et. al.[27]在 MT 數據集上使用 Attention-Seq2Seq 模型預訓練深層 LSTM 的 Encoder,該 Encoder 輸出的 Context Vectors (CoVe) 對改善了很多NLP任務的效果。後面提出了BiLM [28] 等模型。這些模型都屬於 ELMo (Embeddings from Language Models)。但是這些模型仍然一般只作為特徵提取器提取出上下文相關的詞向量。除了這部分工作可以繼承外,下遊任務的其他參數仍需要從頭訓練。BiLSTM 包括前向 LSTM 模型和後向 LSTM 模型。兩個方向的 LSTM 共享部分權重。模型的目標是最大化前向和後向的似然概率和。利用 Fine-tune 將 PTM 應用到下遊任務,只需在新的小數據集上進行參數微調即可,無需重新訓練。2017年,Ramachandran et. al.[29]發現無監督預訓練可以大幅提高 Seq2Seq的效果。Seq2Seq 的 encoder 和 decoder 分別使用兩個語言模型的參數進行初始化,然後使用標記數據進行微調。2018年,Jeremy Howard et. al.[30] 提出ULMFiT (Universal Language Model Finetuning),並且探索了一些有效的 Fine-tune 技巧,如 Slanted Triangular Learning Rates。自從 ULMFiT 之後,Fine-tuning 成為將PTM應用到下遊任務的主流。2017年,谷歌提出Transformer模型,它在處理長期依賴性方面比LSTM有更好的表現,一些業內人士開始認為它是LSTM的替代品。在此背景下,GPT預訓練模型應運而生。GPT採用了Transformer中的解碼器結構,並沒有使用一個完整的Transformer來構建網絡。GPT模型堆疊了12個Transformer子層,並用語言建模的目標函數來進行優化和訓練。GPT模型雖然達到了很好的效果,但本質上仍是一種單向語言模型,對語義信息的建模能力有限。BERT 模型堆疊 Transformer 的編碼器結構,並且通過 Masked-LM 的預訓練方式達到了真雙向語言模型的效果。上面的介紹包含了兩種常見的遷移學習方式:特徵提取和微調,兩者的區別是 ELMo 等為代表的模型使用的特徵提取方法凍結了預訓練參數,而以 BERT 等為代表的模型採用的微調則是動態地改變參數,根據下遊任務進行參數上的微調。特徵提取需要更複雜的任務架構,並且就綜合性能來看,微調的方法更適合下遊任務。2.2 方法介紹繼17年穀歌大腦提出一個包含編碼器和解碼器的 Transformer 結構後,Transformer 在近三年間又有了許多不同的改進演化版本,對 Vanilla Transformer 的各種變體的技術線梳理可以按照時間來劃分:早期達到多個 SOTA 的結構優化模型是 GPT、BERT,這兩種模型都沿用了原始Transformer 的結構:GPT 把原始 Transformer 結構中的解碼器結構用作編碼器進行特徵抽取,由於解碼器中的 Mask 設計,使得 GPT 只使用了單向信息,即該語言模型只使用了上文預測當前詞,而不使用下文,這也使得其更適用於文本生成類任務;而 BERT 只使用了原始 Transformer 結構中的編碼器結構,因此其使用了雙向的信息,並在一些任務中達到了更好的效果。基於 Transformer 的預訓練+微調技術為 NLP 領域注入了新的活力,而這一工作的開創者,便是 OpenAI 的研究人員於2018年提出的 GPT[17]。論文中提出,我們可將訓練過程分為兩個階段:第一階段以標準語言模型作為目標任務,在大規模語料庫上做無監督的預訓練;第二階段在特定的下遊任務上對模型參數做有監督的微調,使其能夠更好的適應特定目標任務。基於上述過程,GPT 使用多層 Transformer Decoder 作為語言模型,其基本結構如下:在第一階段,使用標準 LM 作為預訓練任務,即最大化如下似然函數:其中,為語料中 Tokens 的集合,k 為上下文窗口的大小。該模型的訓練過程其實就是將輸入文本中每個詞的 Embedding 作為輸入,輸出預測的下一個詞,具體步驟如下:其中是文本中每個詞的詞向量,n為層數,表示詞嵌入矩陣,表示位置嵌入矩陣。第二階段,即在特定任務上使用少量帶標籤的數據對模型參數進行有監督的微調,具體步驟如下:

其中為特定下遊任務的輸入,y為標籤,為預訓練階段最後一個詞的輸出 。原文中還提到了用輔助訓練目標的方法來幫助模型在微調時擁有更好的泛化能力並加速收斂,具體做法是:在使用最後一個詞的預測結果進行監督學習的同時,前面的詞繼續上一步的無監督訓練。綜上,要優化的目標函數如下:簡單總結為:對於分類問題,不需要做修改;對於推理類的問題,可在前提和假設中間插入一個分隔符作為分隔;對於相似度問題,可將兩個句子順序顛倒,然後將兩次輸入相加來做推測;對於問答類問題,可將上下文和問題放在一起,用分隔符隔開與答案。為了解決 GPT 採用單向語言模型所帶來的問題,Google Brain 在2018年提出了基於雙向 Transformer 的大規模預訓練語言模型 BERT[18],刷新了11項 NLP 任務的 SOTA,具有裡程碑意義。在預訓練階段,BERT 提出了 Masked Language Model(MLM)與 Next Sentence Prediction(NSP) 的預訓練方法,MLM 任務令模型預測文本中隨機覆蓋的缺失詞,類似完形填空。同時,為避免覆蓋所用高頻標籤 [MASK] 帶來的誤差,將其中部分標籤換為隨機詞。NSP 任務則是利用 [CLS] 與 [SEP] 標籤分隔上下句關係,以滿足基於句子級別的下遊任務的需要(如 QA、NLI 等)。在微調階段,BERT 和 GPT 並沒有多少本質上的區別,論文中給出了幾種不同任務的微調方案,如下圖:BERT 雖然有著非常好的表現,但它依然存在以下問題:1.預訓練和微調階段的不一致性(Discrepancy):預訓練 BERT 時,會隨機 Mask 掉一些單詞,但在微調階段,卻並沒有諸如 [MASK] 之類的標籤,從而導致兩個過程的不一致;2.與標準的語言模型相比,BERT 並不具備很好的生成能力。XLNet[31] 是 BERT 之後比較引人注目的一個模型,提出了 Permutation Language Model 的新目標,即利用重排列的方式使得在單向的自回歸 LM 中也能看到下文信息,這樣結合了自回歸 LM 擅長生成和自編碼 LM 能夠捕獲雙向信息的優點。但是,XLNet 的後續評價並沒有高於 BERT,基於 XLNet 的後續研究也比較少,可能原因為 XLNet 使用的訓練數據的質量要優於 BERT,這使得兩者的對比並不公平。或者 BERT 根本沒有得到充分的訓練,因此沒有發揮出其真正實力。基於這種觀點,Facebook 的研究人員提出了 RoBERTa[32]。RoBERTa 的主要工作是通過改進訓練任務和數據生成方式、使用更多數據、更大批次、訓練更久等方式對 BERT 進行改進,換言之,RoBERTa 本質上算是一個調參調到最優的 BERT,其實際表現和 XLNet 不相上下。但無論是 XLNet 還是 RoBERTa 亦或是其它 BERT 變體,它們大多通過使用更多的數據、更複雜的模型等方式來提升訓練效果,這極大加劇了內存開銷。為了緩解這個問題,Google 提出了 ALBERT[33],希望用更少的參數、更低的內存開銷來達到甚至提升 BERT 效果。論文中指出,增加參數量有時並不會提高模型性能,相反這可能會降低模型的效果,作者將該現象稱為「模型退化」。基於此,ALBERT 提出了三種優化策略:1.分解詞嵌入矩陣;2.跨層參數共享;3.將 NSP 任務換成更複雜的 SOP 任務,以補償前兩步性能上的損失。以上介紹了部分 Transformer 結構的主要應用模型與變體,概括了不同的模型優化方法,總的來說,按照模型提高效率的方法可以分為以下七類[16] :

Fixed Patterns(固定模式):將視野限定為固定的預定義模式,例如局部窗口、固定步幅塊,用於簡化注意力矩陣;

Combination of Patterns(組合模式):通過組合兩個或多個不同的模式來提高效率;

Learnable Patterns(可學習模式):以數據驅動的方式學習訪問模式,關鍵在於確定 Token 相關性。

Memory(內存):利用可以一次訪問多個 Token 的內存模塊,例如全局存儲器。

Low Rank(低秩):通過利用自注意力矩陣的低秩近似,來提高效率。

Kernels(內核):通過內核化的方式提高效率,其中核是注意力矩陣的近似,可視為低秩方法的一種。

Recurrence(遞歸):利用遞歸,連接矩陣分塊法中的各個塊,最終提高效率。

[1]Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017): 5998-6008.[2]Wang, Benyou, et al. "Encoding word order in complex embeddings." arXiv preprint arXiv:1912.12333 (2019).[3]Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine translation by jointly learning to align and translate." arXiv preprint arXiv:1409.0473 (2014).[4]Gehring, Jonas, et al. "Convolutional sequence to sequence learning." arXiv preprint arXiv:1705.03122 (2017).[5]Cheng, Jianpeng, Li Dong, and Mirella Lapata. "Long short-term memory-networks for machine reading." arXiv preprint arXiv:1601.06733 (2016).[6]Guo, Qipeng, et al. "Star-transformer." arXiv preprint arXiv:1902.09113 (2019).[7]Tang, Gongbo, et al. "Why self-attention? a targeted evaluation of neural machine translation architectures." arXiv preprint arXiv:1808.08946 (2018).[8]Kitaev, Nikita, Łukasz Kaiser, and Anselm Levskaya. "Reformer: The efficient transformer." arXiv preprint arXiv:2001.04451 (2020).[9]Child, Rewon, et al. "Generating long sequences with sparse transformers." arXiv preprint arXiv:1904.10509 (2019).[10]Zhang, Shuai, et al. "TensorCoder: Dimension-Wise Attention via Tensor Representation for Natural Language Modeling." arXiv preprint arXiv:2008.01547 (2020).[11]Ioffe, Sergey , and C. Szegedy . "Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift." (2015).[12]Ba, Jimmy Lei , J. R. Kiros , and G. E. Hinton . "Layer Normalization." (2016).[13]Xiong, Ruibin , et al. "On Layer Normalization in the Transformer Architecture." (2020).[14]Lee, Juho, et al. "Set transformer: A framework for attention-based permutation-invariant neural networks." International Conference on Machine Learning. PMLR, 2019.[15]Dai, Zihang, et al. "Transformer-xl: Attentive language models beyond a fixed-length context." arXiv preprint arXiv:1901.02860 (2019).[16]Tay, Yi, et al. "Efficient transformers: A survey." arXiv preprint arXiv:2009.06732 (2020).[17]Radford, Alec, et al. "Improving language understanding by generative pre-training." (2018): 12.[18]Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).[19]Liu, Xiaodong, et al. "Multi-task deep neural networks for natural language understanding." arXiv preprint arXiv:1901.11504 (2019).[20]餘同瑞,金冉,韓曉臻,李家輝,鬱婷.Tongrui Yu,ra自然語言處理預訓練模型的研究綜述,2020[21]Xipeng Qiu,Tianxiang Sun,Yige Xu,etc.Pre-trained Models for Natural Language Processing: A Survey,2020[22]Yoshua Bengio, et al. "A neural probabilistic language model." Journal of machine learning research, 3(Feb):1137–1155, 2003.[23]Ronan Collobert, JasonWeston, L´eon Bottou, Michael Karlen,Koray Kavukcuoglu, and Pavel P. Kuksa. Natural language processing (almost) from scratch. J. Mach. Learn. Res., 2011.[24]Tomas Mikolov, Ilya Sutskever, Kai Chen, Gregory S. Corrado, and Jeffrey Dean. Distributed representations of words and phrases and their compositionality. In NeurIPS, 2013.[25]Jeffrey Pennington, Richard Socher, and Christopher D. Manning. GloVe: Global vectors for word representation. In EMNLP, 2014.[26]Piotr Bojanowski, Edouard Grave, Armand Joulin, and Tomas Mikolov. Enriching word vectors with subword information.TACL, 5:135–146, 2017.[27]Bryan McCann, James Bradbury, Caiming Xiong, and Richard Socher. Learned in translation: Contextualized word vectors. In NeurIPS, 2017.[28]Oren Melamud, Jacob Goldberger, and Ido Dagan. Context2Vec: Learning generic context embedding with bidirectional LSTM. In CoNLL, pages 51–61, 2016.[29]Prajit Ramachandran, Peter J Liu, and Quoc Le. Unsupervised pretraining for sequence to sequence learning. In EMNLP,pages 383–391, 2017.[30]Jeremy Howard and Sebastian Ruder. Universal language model fine-tuning for text classification. In ACL, pages 328–339, 2018.[31]Yang, Zhilin, et al. "Xlnet: Generalized autoregressive pretraining for language understanding." Advances in neural information processing systems. 2019.[32]Liu, Yinhan, et al. "Roberta: A robustly optimized bert pretraining approach." arXiv preprint arXiv:1907.11692 (2019).[33]Lan, Zhenzhong, et al. "Albert: A lite bert for self-supervised learning of language representations." arXiv preprint arXiv:1909.11942 (2019).

想要了解更多資訊,請掃描下方二維碼,關注機器學習研究會

                                          

轉自:極市平臺

相關焦點

  • Transformer在CV領域有可能替代CNN嗎?
    比如,一個CNN卷積濾波器檢測得到的關鍵點、物體的邊界等構成視覺要素的基本單元在平移等空間變換下應該是同時變換(共變性)的。CNN網絡在處理這類共變性時是很自然的選擇。目前來看,transformer在處理這些要素之間的關係上更自然也更有效。 從這兩方面的角度來看,將CNN在處理底層視覺上的優勢和transformer在處理視覺要素和物體之間關係上的優勢相結合,應該是一個非常有希望的方向。
  • 英語詞根 變形金剛Transformer
    英文:「Are you ok honey?you haven't transformed in days. 」中文:「你還好吧,親愛的,你已經好幾天沒有變形了。」transformer 這個詞之所以很多同學都知道,是因為變形金剛Transformer這個電影,除了變形金剛這個含義,Transformer的意思還有『變壓器』的意思。
  • Transformer在CV領域有可能替代CNN嗎?|卷積|神經網絡|算子|上下文...
    唯有寄希望於巨頭公司和機構有更大的擔當,當好這個時代的領頭羊和風向標,在制度的籠子下引領著這個時代朝著健康向上的道路去發展,而不是諸如一窩蜂的跑到菜市場去搞「社區團購」之類的割韭菜活動,而是應該做到真正意義上的「科技向善」。
  • Pipeline 和 Transformer
    掌握sklearn必須知道這三個強大的工具。因此,在建立機器學習模型時,學習如何有效地使用這些方法是至關重要的。在深入討論之前,我們先從兩個方面著手:Transformer:Transformer是指具有fit()和transform()方法的對象,用於清理、減少、擴展或生成特徵。
  • 讓有趣的悖論來回答你神是不是萬能的。
    但有一天,理髮師自己的頭髮長了,需要理髮,他自己應不應該給自己理髮呢?如果給自己理髮: 如果理髮師給自己理髮,那麼他就屬於給自己理髮的人,按照誓言,他不應該給給自己理髮的人理髮。如果不給自己理髮: 如果理髮師不給自己理髮,那麼他就屬於不給自己理髮的人,按照誓言,他就應該給自己理髮。
  • 幾乎可以黏一切的「萬能」修復矽膠
    現在的科技當然還沒有這麼厲害啦,但是也出現了一種我覺得非常酷的萬能修復矽膠,這個產品叫Sugru,是由愛爾蘭的一名設計師花了6年時間做出來的新型材料。這款產品厲害在哪兒呢?你可以把它理解成「當代版萬能合體膠水」,鐵、鋼、塑料、陶瓷…...基本上什麼材料都能相互黏在一起,且不怕水,甚至可以進洗衣機(唔,這個需求怪怪的)!
  • 解析Transformer模型
    代碼這裡參考的是TensorFlow的官方實現notebook transformer.ipynb位置編碼def get_angles(pos, i, d_model):  angle_rates = 1 / np.power(10000, (2 * (i//2)) / np.float32
  • 富人定律:金錢到底是不是萬能的?一個故事告訴你答案,醍醐灌頂
    現代社會是一個極具誘惑力的社會,是一個欲望膨脹的社會,人們的心裡總是充滿著各種欲望和奢求,比如,穿戴奢侈品,吃山珍海味,坐名車,住毫宅,而這一切都需要錢。所以,有些人把追求金錢當作了生活的全部內容。這樣一來,他們就再也無法享受到生活的寧靜美好,反將自己搞得身心疲憊。
  • Facebook AI的DETR,一種基於Transformer的目標檢測方法
    utm_source=blog&utm_medium=facebook-detection-transformer-detr-a-transformer-based-object-detection-approach使用流行的YOLO框架進行目標檢測的實用指南https://www.analyticsvidhya.com/blog/2018/12/practical-guide-object-detection-yolo-framewor-python
  • 英仙座流星雨,你應該知道的一切!
    由於極大值恰逢農曆月初,整夜都沒有任何月光幹擾,所以如果能夠離開城市的燈光,來到更為黑暗的郊外觀賞,你每小時應該能夠看到60顆以上的流星。太長不看版:對於我國大部分地區來說,最佳觀測時間是8月12日夜晚到13日凌晨。找一片開闊地,躺下,仰望即可。不需要望遠鏡,直接用肉眼觀測就好。平均而言,大約每分鐘,你都將看到一顆流星在夜空中划過。
  • 人民日報:30篇萬能作文開頭+46篇結尾!背幾句「碾壓」一切素材
    人民日報:30篇萬能作文開頭+46篇結尾!背幾句「碾壓」一切素材作文,一直以來都在語文的學習中佔了半壁江山,所以這也完全體現了那句話「得作文者得天下」。不少學生出現寫作困難,寫不出來,或者是寫出來的文章不夠優秀,其實主要還是由於積累的知識素材不夠,相信大家都知道,一篇高分作文離不開有優秀的開頭和結尾吧,就像大家常說的,在每次的閱卷中,老師是不可能把每個人的作文都看完的,而主要的看點也就是大家的開頭和結尾,可見在一篇作文中,優秀的開頭好結尾有多麼的重要。
  • 電視機萬能遙控怎麼使用?電視萬能遙控器設置方法?
    看電視的時候我們肯定都知道是需要使用的遙控器的,而且現在電視機也是擁有著萬能的遙控器,所以說不管怎麼樣,是在進行使用,都是非常的方便,在進行使用的過程,使人們一定要知道方法,要知道電視機萬能遙控怎麼使用,另外對於電視萬能遙控器設置方法也是應該要知道。
  • 萬能戀愛雜貨鋪:想要懲罰背叛你的丈夫嗎?
    今日推薦:《萬能戀愛雜貨鋪》警察要瘋了!X城怪異事件頻頻撞車——賽亞人無故挾持女友,失蹤妻子變福氣神仙,而這一切的源頭,竟然是一間聲稱可以解決一切戀愛煩惱的「萬能戀愛雜貨」。販賣萬能戀愛道具的超次元搞怪魔女 X 一本正經檢查執照的超冷感面癱警察,辛香誘人的愛情火鍋現正沸騰,客官不盛一碗嘗一嘗嗎? "幸福的婚姻到底是什麼樣呢?電視節目裡情感專家真木先生面對主持人的問題,表現出不屑一顧的神情。在他的世界裡,妻子就應該遷就丈夫,不論是感情還是生活都要圍繞著家庭。節目現場的女嘉賓,對伊木先生的發言感到氣憤:那麼如果丈夫出軌呢,妻子的態度應該是什麼?
  • 超有用的投資測算速算萬能公式!你竟然還不知道...
    暈,你是怎麼知道的!?其實我還真有一套快速估算的絕密萬能公式!現在做新項目的投資測算,一般都需要各部門的配合完成,一般來說設計部提供強排指標、成本部提供各項成本、營銷部提供售價和回款節奏、運營部提供關鍵節點,大家按照測算模板的要求錄入數據,投資部負責土地款和支付節奏並進行統稿,財務部進行最終的審查才算最終成稿。
  • 產後漲奶應該這樣做,新手媽媽要知道!
    近日,胡杏兒在微博上分享自己的母乳餵養的經歷,稱母乳餵養是第二個考驗,生產後第三天,雖2-3個鐘頭餵養一次,但她的乳房就漲到像石頭一樣,無法入睡,最後只能按摩通乳,雖按摩的感覺如同生產般疼痛,但慢慢看到自己每一次都有多一點點一點點的母乳,就覺得一切都是值得的。
  • Transformer生成論文摘要方法已出
    事實上,以上你看到的摘要內容都不是人類完成的,它是由論文中的機器學習模型寫出來的。這是來自 Element AI 的研究者最新公布的研究成果,他們使用了一種類似 GPT 的方法生成了相關研究論文的摘要。文本摘要是 NLP 中的常見任務了。文檔摘要如果能做到很好,可以極大程度減輕文字工作者的工作量,快速提煉文本核心內容,加速文本信息的提取、閱讀和生產效率。
  • 手把手教你用Python搭一個Transformer
    上圖是谷歌提出的transformer 架構,其本質上是一個Encoder-Decoder的結構。把英文句子輸入模型,模型會輸出法文句子。每個單詞的嵌入向量會學習單詞的含義,所以我們需要輸入一些信息,讓神經網絡知道單詞在句中所處的位置。Vasmari用下面的函數創建位置特異性常量來解決這類問題:這個常量是一個2D矩陣。Pos代表了句子的順序,i代表了嵌入向量所處的維度位置。在pos/i矩陣中的每一個值都可以通過上面的算式計算出來。
  • 語言不是萬能的,有時候選擇沉默,才是最有效的反擊
    當你在平時和別人交談的過程中如果受到了對方的言語攻擊你會選擇怎麼做?又或者當你因為一些誤會被別人誤解的時候你會怎麼做?我相信很多人的第一反應就是懟回去,企圖用語言去解釋,去回擊。然而我們會發現很多時候言語的回擊並沒有什麼好的效果,甚至有些時候還會讓事情越演愈糟。
  • 公務員面試有「三難」,提前籌備「萬能素材」可能會助你上岸
    建議一:提前籌備「萬能素材」無論是結構化面試還是無領導小組面試。考察的重點都無外乎是人際關係,綜合認知,應急處理,管理基本技巧,溝通能力,世界觀價值觀認知等幾個大方面。明確了考察方向,我們面試備考的科學方向就應該是準備幾套萬能的備用素材(語素),才能從根本上克服面試臨場無話可說的難關。
  • 網售「萬能鑰匙」 傳不到5秒開車門
    □常工院實習生 戴雯 金陵晚報記者 周飛鎖好了車門,只要車子沒有遭到暴力破壞,放在裡面的物品應該安全無虞吧?然而近日,浙江警方微博貼出了一起用萬能鑰匙打開奧迪A6車的後備箱,盜取27萬元現金的案例,令廣大車主的心又提了起來。記者經過調查發現,網上銷售「萬能鑰匙」的網店眾多,貨到付款,沒有任何限制,並且購買一個成本僅不到200元。