徐菲菲, 馮東升
(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)
自然語言是經(jīng)人類抽象發(fā)展而來的數(shù)據(jù),含有豐富的語義信息,計(jì)算機(jī)無法直接識別。因此,自然語言處理的首要步驟就是將文本等非結(jié)構(gòu)化的字符數(shù)據(jù)進(jìn)行字詞編碼,轉(zhuǎn)換為可計(jì)算的數(shù)值數(shù)據(jù),從而確定文本和數(shù)字空間的對應(yīng)關(guān)系。
文本向量化應(yīng)當(dāng)盡可能地包含原空間信息,若在空間映射時(shí)丟失部分信息,那么后續(xù)的處理任務(wù)中也不可能再重新獲取。最早的研究方法是將文本劃分為獨(dú)立的單詞,每個(gè)單詞被表示為詞匯表中的一個(gè)索引,或單詞對應(yīng)的索引位置為1,其余為0的獨(dú)熱編碼向量。該方法雖然簡單,但單詞間無相似性,且沒有聯(lián)系,也不包含任何語義信息。另外,獨(dú)熱編碼是稀疏向量,易造成維數(shù)災(zāi)難。針對以上問題,有人提出了詞的分布式表示法——詞向量。詞向量是一個(gè)維度較低且稠密的向量,每個(gè)維度上都有實(shí)數(shù)。在詞向量與神經(jīng)網(wǎng)絡(luò)結(jié)合后,便廣泛地應(yīng)用于自然語言處理中,例如命名實(shí)體識別、實(shí)體抽取、閱讀理解和機(jī)器問答等。
在利用詞向量解決了數(shù)據(jù)稀疏和計(jì)算復(fù)雜的問題后,研究人員開始運(yùn)用詞向量進(jìn)行自然語言處理的預(yù)訓(xùn)練。自然語言處理領(lǐng)域的預(yù)訓(xùn)練是受到圖像處理領(lǐng)域預(yù)訓(xùn)練的啟發(fā),目前已成為自然語言處理領(lǐng)域的熱門研究方向。一般在開始訓(xùn)練模型時(shí)需要隨機(jī)初始化參數(shù),但是存在兩個(gè)方面的問題:一是如果訓(xùn)練的數(shù)據(jù)集不夠大,則有可能不足以訓(xùn)練復(fù)雜的網(wǎng)絡(luò);二是模型隨機(jī)初始化參數(shù)會(huì)使訓(xùn)練速度變慢,即收斂速度變慢?;谏鲜鰡栴},預(yù)訓(xùn)練的概念應(yīng)運(yùn)而生。預(yù)訓(xùn)練模型的初始化參數(shù)是預(yù)先給定的,從而使得模型在訓(xùn)練時(shí)可以找到較好的初始點(diǎn),進(jìn)而加速優(yōu)化過程。
詞向量分為靜態(tài)詞向量和動(dòng)態(tài)(上下文)詞向量。靜態(tài)詞向量是指無論上下文怎樣變化只有唯一的詞向量可以表示一個(gè)單詞,其最大的弊端是無法表達(dá)出該詞匯的多義性;而動(dòng)態(tài)詞向量指的是會(huì)根據(jù)上下文動(dòng)態(tài)調(diào)整的詞向量,在一定程度上解決了單詞的多義性。一般來說,動(dòng)態(tài)詞向量可歸類為預(yù)訓(xùn)練模型,如ELMo(Embedding from Language Models),BERT(Bidirectional Encoder Representations from Transformers)模型等。
詞向量生成技術(shù)就是將自然語言表示的單詞轉(zhuǎn)換成計(jì)算機(jī)能夠理解的向量,其表示方法包含了傳統(tǒng)的表征方法和基于語言模型的表征方法。
詞袋模型是將文檔表示成一個(gè)無序詞匯的組合。最早的詞向量表征采用的是“one-hot”編碼,是一種特殊的高維度到低緯度的映射。首先對語料庫所有文檔中的句子進(jìn)行拆分,并匯總得到包含所有詞匯的詞庫[1],假設(shè)總詞匯有N個(gè),文檔中每個(gè)詞的向量都是n維,若某詞匯出現(xiàn)在該文檔中,則出現(xiàn)的維度標(biāo)為1,其余維度標(biāo)為0。采用基于詞頻的方法統(tǒng)計(jì)當(dāng)前文檔中詞匯出現(xiàn)的次數(shù),用詞頻作向量值。
文檔-逆文檔頻率(Term Frequency-Inverse Document Frequency,TF-IDF)方法是用詞匯的特征來表示文本的重要性[2],用詞匯的頻率與逆文檔頻率的比值作為向量值[3]。其計(jì)算公式為
(1)
式中:tp,q——文檔q中詞匯p的文檔頻率;
ip,q——文檔q中詞匯p的逆文檔頻率;
npq——文檔q中詞匯p出現(xiàn)的次數(shù);
k——文檔q中詞匯的總數(shù);
|Dp|——語料庫中文檔總數(shù);
|dp,q|——包含詞匯p的文檔數(shù)量。
詞袋模型生成的向量維度與語料庫的大小相關(guān),當(dāng)詞匯數(shù)量很大時(shí),容易導(dǎo)致維數(shù)災(zāi)難,且生成的向量極其稀疏,計(jì)算時(shí)無法通過向量建立起詞匯語義間的聯(lián)系和詞匯間語義上的相似度,缺失了文本的順序信息和語義信息[4]。潛在語義分析模型認(rèn)為如果兩個(gè)詞匯多次出現(xiàn)在同一文本中,那么這兩個(gè)詞匯的語義是相似的。其方法是構(gòu)建詞-文檔共現(xiàn)矩陣,行表示詞匯,列表示文本,當(dāng)前詞在文本中出現(xiàn)的次數(shù)就是矩陣的值。對矩陣進(jìn)行奇異值分解,減少行數(shù),保留列信息,選取前幾個(gè)最大奇異值對應(yīng)的向量作為降維后的文本向量表征。
語言模型(Language Model)是機(jī)器理解人類語言的途徑,是用來計(jì)算一個(gè)語句的概率的模型,即P(w1,w2,w3,…,wn)。根據(jù)語句中前面的詞匯預(yù)測后面的詞匯的概率大小,語句中的每個(gè)單詞都會(huì)根據(jù)上文預(yù)測自己的概率,將所有這些單詞的概率相乘,得到的數(shù)值越大說明這越像一句話。其公式為
P(w1,w2,w3,…,wn)=
P(w1)P(w2|w1)P(w3|w1,w2)…
P(wn|w1,w2,w3,…,wn-1)
(2)
(3)
式中:L——語言模型;
C——語料庫;
w——預(yù)測的詞匯;
context(w)——詞匯w前文的詞匯。
利用語言模型可以確定哪個(gè)詞匯序列的可能性更大,或者利用給定的若干個(gè)詞來預(yù)測下一個(gè)最有可能出現(xiàn)的詞匯。隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,學(xué)者們通過淺層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)的語言模型來獲取詞向量。語言表示模型的首次提出是在2003年,BENGIO Y等人[5]提出用神經(jīng)網(wǎng)絡(luò)建立概率語言模型(Neural Network Language Model,NNLM),首先將詞表示成詞匯表中的一個(gè)索引,通過映射矩陣將其轉(zhuǎn)換為D維的向量,即詞向量,然后將多個(gè)上文詞匯的詞向量串聯(lián)起來,通過3層的神經(jīng)網(wǎng)絡(luò)模型結(jié)合softmax函數(shù)層來不斷地訓(xùn)練詞向量;但此模型只能處理定長的數(shù)據(jù),當(dāng)詞匯表過大時(shí)模型復(fù)雜度倍增,訓(xùn)練緩慢。針對NNLM存在的問題,MIKOLOV T等人[6-7]在2010年提出了循環(huán)神經(jīng)網(wǎng)絡(luò)概率語言模型(Recurrent Neural Network Language Model,RNNLM),在結(jié)構(gòu)上,運(yùn)用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)代替NNLM中的隱藏層,不僅減少了模型參數(shù)、提高了訓(xùn)練速度,而且可以提供任意長度的輸入,并獲得完整的歷史信息;同時(shí),引入RNN后也可以使用RNN的其他變體,如長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)、雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory,BiLSTM)、門控循環(huán)單元(Gated Recurrent Unit,GRU)等,從而在時(shí)間序列建模上進(jìn)行更豐富的優(yōu)化。
1.2.1 Word2vec模型
2013年,MIKOLOV T等人提出了Word2vec模型[8-9],是一種分布式表示。這種表示方法的思想最早是由HINTON G E于1986年提出的[10]。此模型會(huì)對詞匯間和詞匯語義關(guān)系進(jìn)行建模,可以將文本中的詞匯映射到一個(gè)N維的空間中,從而將對文本的處理轉(zhuǎn)換成為對N維實(shí)數(shù)向量的運(yùn)算。該模型一經(jīng)發(fā)布就受到國內(nèi)外眾多學(xué)者的關(guān)注,被廣泛運(yùn)用于文本分類、聚類、標(biāo)注和詞性分析等任務(wù)中[11]。文獻(xiàn)[12]使用Word2vec模型將維基百科中文數(shù)據(jù)轉(zhuǎn)化為詞向量并進(jìn)行聚類,將聚類的結(jié)果應(yīng)用到TextRank的關(guān)鍵詞抽取中,提升了抽取效果。文獻(xiàn)[13]將微博和新聞文本經(jīng)Word2vec模型訓(xùn)練得到詞向量,并用K-means聚類抽取評論及新聞話題。文獻(xiàn)[14]將用戶的評論文本轉(zhuǎn)化為詞向量表示,并對候選屬性詞集進(jìn)行聚類,最終得到細(xì)粒度的產(chǎn)品屬性集。文獻(xiàn)[15]挖掘了推特用戶個(gè)人資料的文本集,經(jīng)向量化后聚類,并提出了一種利用機(jī)器學(xué)習(xí)的方法探查用戶的社會(huì)角色。文獻(xiàn)[16]用BiLSTM取代Word2vec模型中的詞向量矩陣,并用BiLSTM對上下文進(jìn)行編碼,從而獲得詞向量的表示。
Word2vec模型是從海量文本語料庫中獲取文本嵌入的模型,對分詞后的文本進(jìn)行特征表示,文本中的單詞能快速便捷地映射成低維向量。文本集合組成詞向量空間,向量空間中詞匯的位置代表了詞匯的語義在空間中的位置,兩個(gè)詞向量之間的距離可以用來計(jì)算對應(yīng)詞匯的語義相似度,距離相近的詞匯間可以稱作詞義相近。Word2vec模型采用了兩種計(jì)算模型,分別是連續(xù)詞袋模型(Continuous Bag-of-Word,CBOW)和跳字模型(Skip-gram)。其中,CBOW輸入的是詞匯w的上下文context(w),輸出是關(guān)于當(dāng)前詞是某個(gè)詞的概率,即CBOW是從上下文到當(dāng)前詞的某種映射或預(yù)測。Skip-gram則相反,是從當(dāng)前詞預(yù)測上下文,模型的輸入是某個(gè)詞語w,輸出是語料庫詞表中每個(gè)詞的概率。
1.2.2 GloVe模型
GloVe模型是由PENNINGTON J等人[17]在2014年提出的,結(jié)合了語言模型與詞共現(xiàn)矩陣的模型。首先,根據(jù)語料庫構(gòu)建共現(xiàn)矩陣,計(jì)算詞向量與共現(xiàn)矩陣之間的近似關(guān)系;然后,根據(jù)近似關(guān)系構(gòu)造出損失函數(shù),并用語言模型進(jìn)行訓(xùn)練以獲得詞向量。該模型克服了Word2vec模型只關(guān)注上下文局部信息的缺點(diǎn),在利用上下文信息的同時(shí),通過矩陣奇異值分解方法使用了詞匯共現(xiàn)的信息,有效地結(jié)合了全局的統(tǒng)計(jì)信息和局部上下文信息。
將靜態(tài)詞向量作為參數(shù)進(jìn)行學(xué)習(xí)的方法有效地解決了維數(shù)災(zāi)難和計(jì)算量大的問題,但仍存在一詞多義的問題。解決該問題的關(guān)鍵在于如何有效利用上下文語境信息,即輸入的不再是單獨(dú)的某個(gè)詞匯,而應(yīng)包含該詞所處的上下文信息,然后再獲得該詞在當(dāng)前語境下的向量表示。這是一種動(dòng)態(tài)的詞向量表征方法,此時(shí)詞向量不再是靜態(tài)的模型參數(shù),而是動(dòng)態(tài)的模型輸出。ELMo[18]、生成式預(yù)訓(xùn)練(Generative Pre-Training,GPT)模型[19]、BERT模型[20]都是動(dòng)態(tài)詞向量表征方法。在特征提取時(shí),ELMo使用雙向LSTM網(wǎng)絡(luò);GPT模型和BERT模型使用Transformer網(wǎng)絡(luò)[21],有著很高的并行計(jì)算能力。
ELMo詞向量表示法是PETERS M等人[18]在2018年提出的。它是一種新型深度語境化詞表示方法,通過使用雙向語言模型進(jìn)行預(yù)訓(xùn)練,然后將中間結(jié)果融合作為詞向量的表示。這種詞向量會(huì)根據(jù)上下文的信息而發(fā)生變化。ELMo模型先在大語料上進(jìn)行預(yù)訓(xùn)練,預(yù)訓(xùn)練由一個(gè)BiLSTM構(gòu)成,使用雙向模型的中間層和值或者最高層的輸出作為ELMo的向量值,不同層的輸出會(huì)得到不同層次的詞法特征。在有監(jiān)督的自然語言處理任務(wù)中,可以將ELMo的向量值與具體任務(wù)模型的詞向量輸入或其最高層表示進(jìn)行聯(lián)合,在任務(wù)語料上進(jìn)行最終訓(xùn)練。ELMo是在整個(gè)語料庫上學(xué)習(xí)語言模型,然后利用具體任務(wù)的語言模型獲取詞向量,并根據(jù)具體任務(wù)進(jìn)行變化。其計(jì)算結(jié)果比Word2vec模型更加準(zhǔn)確。
Transformer網(wǎng)絡(luò)是在2017年Google機(jī)器翻譯團(tuán)隊(duì)發(fā)表的“Attention is All You Need”一文中提出的[21]。在此之前,語言模型都是通過RNN和LSTM來建模,雖然可以學(xué)習(xí)到上下文間的關(guān)系,但是無法并行化,會(huì)給模型的訓(xùn)練和擴(kuò)展帶來了困難,因此提出了一種完全基于Attention機(jī)制來建立的語言模型,叫作Transformer模型。Transformer模型完全拋棄了RNN和LSTM等網(wǎng)絡(luò)結(jié)構(gòu),使用了Self-Attention的方式對上下文進(jìn)行建模,提高了訓(xùn)練和推理的速度,因此Transformer成為后續(xù)更強(qiáng)大的自然語言處理預(yù)訓(xùn)練模型的基礎(chǔ)。
2.2.1 Transformer模型架構(gòu)
絕大多數(shù)的序列處理都采用了Encoder-Decoder結(jié)構(gòu),給定輸入序列(x1,x2,x3,…,xn)經(jīng)過編碼器映射成隱藏向量z=(z1,z2,z3,…,zn),再通過解碼器的每個(gè)時(shí)間步,生成輸出序列 (y1,y2,y3,…,ym)。Transformer模型的編碼器和解碼器中均使用了堆疊的Self-Attention和全連接層。其整體架構(gòu)如圖1所示。
圖1 基于EncoderDecoder模型的Transformer架構(gòu)
從模型可以看出,輸入的數(shù)據(jù)首先要轉(zhuǎn)換成對應(yīng)的詞向量,但這里的詞向量是加入了位置信息的,稱為位置詞向量。由于Transformer模型里沒有循環(huán)神經(jīng)網(wǎng)絡(luò)這樣的結(jié)構(gòu),所以無法捕捉序列信息。序列信息代表了全局的結(jié)構(gòu),因此必須將序列分詞的相對或絕對位置信息計(jì)算進(jìn)來。位置信息的計(jì)算公式如下
(4)
(5)
式中:p——詞的位置;
i——Embedding的維度;
dmodel——每個(gè)分詞的位置詞向量維度,dmodel=512。
(6)
式(6)中的Q∈Rm×dk,K∈Rm×dk,V∈Rm×dv,輸出的矩陣維度為Rm×dv。這里提出的多頭注意力首先對Q,K,V做一次線性映射,將輸入維度均為dmodel的Q,K,V矩陣映射到Q∈Rm×dk,K∈Rm×dk,V∈Rm×dv,然后使用點(diǎn)乘Attention計(jì)算出結(jié)果,重復(fù)多次上述步驟,將得到的結(jié)果合并進(jìn)行線性變換,其中每一次線性映射的參數(shù)矩陣為WiQ∈Rdmodel×dk,WiK∈Rdmodel×dk,WiV∈Rdmodel×dv,最后合并的線性變換參數(shù)矩陣為WO∈Rhdv×dmodel。上述過程的公式為
(7)
在圖1中有3處多頭注意力模塊。首先是編碼器模塊中的Self-Attention,其每層Self-Attention的輸入Q=K=V,都是上一層的輸出。編碼層中的每個(gè)位置都能獲得上一層的所有位置的輸出。其次是解碼層帶有掩碼的Self-Attention,由于設(shè)定每個(gè)位置只能獲取之前位置的信息,所以需要加入掩碼。最后是編碼層與解碼層之間的Attention,其中Q來自于之前解碼層的輸出,K和V來自于編碼層的輸出,解碼層的每個(gè)位置都能夠獲取輸入序列的所有位置信息。在進(jìn)行Attention操作后,解碼器最后輸出浮點(diǎn)向量,最終的線性層是一個(gè)簡單的全連接層,將解碼器的最終輸出映射到一個(gè)巨大的logits向量上。假設(shè)模型已知有10 000個(gè)單詞從訓(xùn)練集中學(xué)習(xí)得到,那logits向量就有10 000維,每個(gè)維表示這個(gè)單詞的分?jǐn)?shù)。最后經(jīng)過Softmax層將這些分?jǐn)?shù)轉(zhuǎn)換成概率值,最高概率值對應(yīng)的維上的單詞就是當(dāng)前時(shí)間步的輸出單詞。
2.2.2 GPT模型
RADFORD A等人[19]提出的GPT模型,是用一種半監(jiān)督方式來處理語言理解的任務(wù),即無監(jiān)督的預(yù)訓(xùn)練和有監(jiān)督的微調(diào)。它使用單向語言模型學(xué)習(xí)一個(gè)深度模型,通過引入針對不同任務(wù)的參數(shù)和對預(yù)訓(xùn)練參數(shù)進(jìn)行微調(diào)來調(diào)整模型結(jié)構(gòu)。GPT模型由12層Transformer模塊組成,使用最后的隱藏層來完成不同的任務(wù),主要應(yīng)用于文本分類、關(guān)系判斷、相似性分析、閱讀理解等任務(wù)。其訓(xùn)練是在未標(biāo)記的文本上進(jìn)行的,首先是通過前k-1個(gè)詞預(yù)測第k個(gè)詞,L1表示無監(jiān)督訓(xùn)練任務(wù)。對每一個(gè)非監(jiān)督文本(u1,u2,u3,…,ui),GPT通過最大化以下似然函數(shù)來訓(xùn)練語言模型:
(8)
式中:k——文本的窗口大小;
i=1,2,3,…,n;
P()——經(jīng)Softmax函數(shù)輸出的概率;
Θ——微調(diào)參數(shù)。
然后,輸入詞向量和位置向量,通過12層的Transformer模塊,再經(jīng)過一個(gè)全連接和Softmax層來預(yù)測第k個(gè)詞。
(9)
式中:h0——GPT的輸入;
U——上下文token向量;
We——詞token向量矩陣;
Wp——位置矩陣;
hl,hl-1——模型輸入經(jīng)Transformer解碼模塊得到的輸出向量及其上一層的輸出向量;
l——最長的句子長度;
n——網(wǎng)絡(luò)層數(shù);
hn——文本的隱藏層輸出向量。
最后,利用12層Transformer模塊輸出的隱藏狀態(tài),經(jīng)過一個(gè)全連接和Softmax層來預(yù)測標(biāo)簽y,L2表示有監(jiān)督訓(xùn)練任務(wù)。將L1與L2聯(lián)合訓(xùn)練,則最終優(yōu)化的損失函數(shù)L3(C)為
L3(C)=L2(C)+λL1(C)
(10)
式中:λ——L1的權(quán)重系數(shù);
C——標(biāo)簽數(shù)據(jù)集。
2.2.3 BERT模型
上述學(xué)習(xí)任務(wù)通常是從左向右的單向語言模型,會(huì)使上下文建模能力受到限制,只能學(xué)習(xí)上文信息,無法學(xué)習(xí)后來的單詞。因此,在2018年底Google提出了基于雙向語言模型的BERT[20],是一項(xiàng)無監(jiān)督預(yù)訓(xùn)練任務(wù)。該模型能從無標(biāo)簽語料中獲得通用的語言建模,使用了雙向Transformer編碼器模塊,整個(gè)模型可以分為預(yù)訓(xùn)練和微調(diào)兩部分。在預(yù)訓(xùn)練部分,不同的任務(wù)是在未標(biāo)記數(shù)據(jù)集上進(jìn)行訓(xùn)練;微調(diào)時(shí)模型先對預(yù)訓(xùn)練的參數(shù)進(jìn)行初始化,然后在下游任務(wù)中用標(biāo)記數(shù)據(jù)對所有參數(shù)進(jìn)行微調(diào)。其模型結(jié)構(gòu)如圖2所示。
圖2 BERT模型架構(gòu)
BERT模型由12個(gè)Transformer編碼層組成,有768個(gè)隱藏層,12個(gè)Self-Attention中的頭,總參數(shù)有110 M個(gè),激活函數(shù)使用GELU。其預(yù)訓(xùn)練階段包含掩碼語言模型(Masked Language Model,MLM)和下一句子的預(yù)測(Next Sentence Prediction,NSP)兩個(gè)任務(wù)。
為了訓(xùn)練深度雙向模型,使用一種隨機(jī)掩蓋一定百分比的輸入詞的方法,然后去預(yù)測這些被掩蓋的詞,叫作掩碼語言模型。比如,首先隨機(jī)掩蓋每一個(gè)句子中15%的詞,用其上下文來作預(yù)測,然后采用非監(jiān)督學(xué)習(xí)的方法來預(yù)測掩蓋位置的詞。雖然這樣可以建立一個(gè)雙向預(yù)訓(xùn)練模型,但存在的問題是,掩蓋掉15%的詞會(huì)導(dǎo)致某些詞在微調(diào)階段從未出現(xiàn)過,從而導(dǎo)致預(yù)測結(jié)果不夠精確。為了解決這一問題,文獻(xiàn)[20]作了如下的處理:80%的時(shí)間換成掩蓋標(biāo)記,即掩蓋掉;10%的時(shí)間隨機(jī)取一個(gè)詞代替要掩蓋的詞(仍需預(yù)測正確的詞);10%的時(shí)間不變(仍需預(yù)測該位置的詞)。
下一句子的預(yù)測訓(xùn)練任務(wù)中,選擇一些句子對A和B,其中50%的時(shí)間B是A的真正下一個(gè)句子,剩余50%的時(shí)間選擇句子A和隨機(jī)句子作為句子對。這使得語言模型能更好地理解兩個(gè)句子之間的關(guān)系。
訓(xùn)練好的基礎(chǔ)BERT模型,通常需要經(jīng)過兩個(gè)步驟來進(jìn)行微調(diào):一是在無標(biāo)簽數(shù)據(jù)上繼續(xù)進(jìn)行無監(jiān)督訓(xùn)練;二是添加一個(gè)額外的層,并在新目標(biāo)上進(jìn)行訓(xùn)練,從而學(xué)習(xí)實(shí)際的任務(wù)。微調(diào)的時(shí)間長短取決于任務(wù)復(fù)雜度、數(shù)據(jù)大小和硬件資源。
BERT模型能夠適配多任務(wù)下的遷移學(xué)習(xí),其中最為突出的研究趨勢是在特定的語言處理任務(wù)中,使用大型預(yù)訓(xùn)練模型進(jìn)行微調(diào)。在遷移學(xué)習(xí)中可以重新使用預(yù)構(gòu)建模型中的知識,提高模型的性能和泛化能力,同時(shí)大量減少具有標(biāo)簽的訓(xùn)練樣本。
2.2.4 BERT擴(kuò)展模型
隨著BERT模型的提出,自然語言處理轉(zhuǎn)向更深度的知識遷移的學(xué)習(xí),即遷移整個(gè)模型到新任務(wù)上。目前,基于BERT模型擴(kuò)展出的諸多模型的方法及其特征如下。
(1) XLM模型[22]它是Facebook在BERT模型的基礎(chǔ)上提出的跨語言版本,實(shí)現(xiàn)了多種語言的融合。它引入了一種新的無監(jiān)督方法,將不同語言的語句編碼到一個(gè)共享的詞向量空間,用于訓(xùn)練多種語言的表征,并提出了一種新的有監(jiān)督方法,使用平行語料,來增強(qiáng)多語言預(yù)訓(xùn)練的表現(xiàn)。
(2) MT-DNN模型[23]它是一種多任務(wù)深度神經(jīng)網(wǎng)絡(luò),結(jié)合了單句分類、句子對分類、文本相似度打分和相關(guān)度排序4種類型的任務(wù)。它用于跨多種自然語言理解任務(wù)的學(xué)習(xí)表示,將BERT模型作為共享的文本編碼層,將多任務(wù)學(xué)習(xí)和語言模型預(yù)訓(xùn)練結(jié)合起來以提高文本表征效果。
(3) UniLM模型[24]它是一種新型統(tǒng)一的預(yù)訓(xùn)練語言模型,既可用于自然語言理解,也可用于生成任務(wù)。它使用了共享的多層Transformer網(wǎng)絡(luò),利用特定的自注意掩碼來控制預(yù)測條件的上下文。UniLM模型的預(yù)訓(xùn)練使用了3種類型的語言建模,包括單向模型(從左到右和從右到左)、雙向模型和序列到序列預(yù)測模型。
(4) SpanBERT模型[25]它是基于分詞級別的預(yù)訓(xùn)練方法,提出了一個(gè)新的分詞邊界目標(biāo)進(jìn)行模型訓(xùn)練。通過對分詞添加掩碼,能夠使模型依據(jù)其所在的語境預(yù)測整個(gè)分詞。它對BERT模型進(jìn)行了兩種改進(jìn):一是對隨機(jī)的鄰接分詞而非隨機(jī)的單個(gè)詞語添加掩碼;二是使用分詞邊界的表示來預(yù)測被添加掩碼的分詞內(nèi)容。這些改進(jìn)使得該模型能夠?qū)Ψ衷~進(jìn)行更好的表示和預(yù)測。
(5) RoBERTa模型[26]它是BERT模型的一種改進(jìn)版,同樣采用了屏蔽語言模型,但舍棄了下句預(yù)測模型。它主要在3個(gè)方面做出了改進(jìn):一是模型的具體細(xì)節(jié)層面,改進(jìn)了優(yōu)化函數(shù);二是訓(xùn)練策略層面,改用了動(dòng)態(tài)掩碼的方式訓(xùn)練模型,證明了下句預(yù)測模型訓(xùn)練策略的不足,采用了更大的訓(xùn)練樣本數(shù);三是數(shù)據(jù)層面,使用了更大的數(shù)據(jù)集和雙字節(jié)編碼來處理文本數(shù)據(jù)。
(6) XLNet模型[27]它是一種自回歸語言模型,使用了排列語言模型,將句子隨機(jī)排列,用自回歸的方法進(jìn)行訓(xùn)練,從而獲得雙向信息,并且可以學(xué)習(xí)單詞之間的依賴關(guān)系,獲得更多的上下文信息。采用Transformer-XL替代Transformer架構(gòu),使用了更豐富的語料信息。
(7) ALBERT模型[28]它是一種輕量級的BERT模型,采用了一種因式分解的方法來降低參數(shù)量,對Transformer模型中的全連接層和Attention層進(jìn)行參數(shù)共享,由于減少了參數(shù)量,訓(xùn)練速度有了大幅提升。它對BERT模型參數(shù)量過大且難以訓(xùn)練的問題進(jìn)行了優(yōu)化,對詞向量矩陣進(jìn)行分解,并在層與層之間共享參數(shù),還將下句預(yù)測模型替換為句序預(yù)測任務(wù),即給定一些句子預(yù)測它們的排列順序。
(8) ERNIE(Tsinghua)模型[29]它是一種多信息實(shí)體增強(qiáng)語言表征模型。該模型同時(shí)聚合上下文和知識事實(shí)的信息,并同時(shí)預(yù)測單詞和實(shí)體,從而構(gòu)建了一種知識化的語言表征模型。用知識圖譜增強(qiáng)BERT模型。它通過知識嵌入算法編碼知識圖譜的圖結(jié)構(gòu),將多信息實(shí)體嵌入作為輸入。基于文本和知識圖譜的對齊,將知識模塊的實(shí)體表征整合到語義模塊的隱藏層中。
(9) KnowBERT模型[30]它是在ERNIE模型的基礎(chǔ)上添加實(shí)體信息鏈接器,將知識庫里的結(jié)構(gòu)化信息融入到大規(guī)模預(yù)訓(xùn)練模型中。它設(shè)計(jì)了一個(gè)可插拔式的輕量級層(知識注意力和語境重組組件),融入了外部知識的實(shí)體表示,并整合了所有單詞的表示。
2.2.5 基于BERT的其他模型
以下模型是采用大規(guī)模訓(xùn)練數(shù)據(jù)以及跨模態(tài)信息架構(gòu)的模型。
(1) VideoBERT模型[31]它是一種視頻和語言表征的聯(lián)合學(xué)習(xí)模型。從視頻數(shù)據(jù)的向量量化和現(xiàn)有的語音識別輸出結(jié)果上分別導(dǎo)出視覺token和語言學(xué)token,然后在這些token的序列上學(xué)習(xí)雙向聯(lián)合分布,預(yù)測視頻內(nèi)容。
(2) CBT模型[32]它是一種新的視頻和文本表征的聯(lián)合學(xué)習(xí)模型。與VideoBERT模型不同的是,CBT模型中的視頻輸入和文本輸入分成了兩支。視頻輸入經(jīng)過S3D網(wǎng)絡(luò)得到視覺特征序列,文本輸入經(jīng)過BERT模型得到文本特征序列,兩路序列經(jīng)過交叉的Transformer層做注意力計(jì)算,進(jìn)行多任務(wù)的預(yù)訓(xùn)練。
(3) ViLBERT模型[33]它是一個(gè)學(xué)習(xí)任務(wù)無關(guān)的圖像內(nèi)容與自然語言聯(lián)合表征的模型。將BERT模型的架構(gòu)拓展為一個(gè)支持兩個(gè)流輸入的多模態(tài)模型。在這兩個(gè)流中分別預(yù)處理視覺和文本輸入,并在聯(lián)合注意力Transformer層中進(jìn)行交互。預(yù)訓(xùn)練任務(wù)包括掩碼圖像標(biāo)簽的預(yù)測任務(wù)、圖文匹配任務(wù)以及掩碼語言模型任務(wù)。
(4) VisualBERT模型[34]它是一個(gè)簡單有效的視覺和語言基準(zhǔn)線模型。該框架可以對不同的視覺-語言任務(wù)進(jìn)行建模,且簡單靈活。在無顯式監(jiān)督的情況下建立語言元素和圖像中區(qū)域間的聯(lián)系,也可對句法關(guān)系和追蹤有一定的敏感性。
(5) B2T2模型[35]它是一種在統(tǒng)一架構(gòu)中將視覺特征和文本分析相結(jié)合的神經(jīng)網(wǎng)絡(luò),可以合并處理視覺和自然語言數(shù)據(jù)。
(6) Unicoder-VL模型[36]它是一個(gè)以預(yù)訓(xùn)練的方式學(xué)習(xí)視覺和語言的聯(lián)合表征的通用編碼器。該模型從基于語言和視覺內(nèi)容輸入的聯(lián)合單詞學(xué)習(xí)到內(nèi)容相關(guān)的表征,可以預(yù)測一張圖像和一段文本描述之間是否相符。
(7) LXMERT模型[37]它設(shè)計(jì)了一個(gè)大規(guī)模的Transformer模型,包括一個(gè)對象關(guān)系編碼器、一個(gè)語言編碼器和一個(gè)跨模態(tài)編碼器,從Transformer結(jié)構(gòu)中學(xué)習(xí)跨模態(tài)編碼器表征。該模型用大量的圖像和句子對模型進(jìn)行預(yù)訓(xùn)練,具備了聯(lián)系視覺和語言語義的能力。
(8) VL-BERT模型[38]它是一種新的用于視覺-語言任務(wù)的可預(yù)訓(xùn)練的通用表征,以簡單而強(qiáng)大的Transformer作為主干,并將其擴(kuò)展為以視覺和語言嵌入特征作為輸入。輸入中的每個(gè)元素可以是句子中的單詞,也可以是圖像中一個(gè)感興趣的區(qū)域。該模型能與所有視覺-語言的下游任務(wù)兼容。
(9) ERNIE(baidu)模型和BERT-wwm模型[39-40]它們均通過對詞、實(shí)體、先驗(yàn)語義知識等語義單元的掩碼,使得模型能夠得到完整概念的語義表。ERNIE(baidu)模型是百度提出的基于知識增強(qiáng)的語義表示模型,通過建模海量數(shù)據(jù)中的詞、實(shí)體及實(shí)體關(guān)系,學(xué)習(xí)真實(shí)世界的語義知識。該模型主要對BERT模型中掩碼語言模型進(jìn)行改進(jìn),引入了對單詞、實(shí)體、短語進(jìn)行掩碼的3種掩碼方式,直接對語義知識進(jìn)行建模,增強(qiáng)了模型的語義表示能力。BERT-wwm是一種基于全詞遮罩技術(shù)的中文預(yù)訓(xùn)練模型。它在原始BERT模型的基礎(chǔ)上引入全詞遮罩,用掩碼標(biāo)簽替換一個(gè)完整的詞而不是子詞,這是因?yàn)橹形闹凶钚〉膖oken是字,包含了更多信息的詞是由一個(gè)或多個(gè)字組成,且每個(gè)詞之間無明顯分隔。
綜上討論的是預(yù)訓(xùn)練語言模型最新的研究進(jìn)展。自然語言處理領(lǐng)域最新發(fā)展進(jìn)程中的兩個(gè)主要趨勢就是遷移學(xué)習(xí)和Transformer的廣泛應(yīng)用。目前大量的預(yù)訓(xùn)練語言模型都是基于序列編碼模塊上的Transformer架構(gòu),在沒有更好的架構(gòu)提出之前,未來研究的方向更多的還是尋求模態(tài)之間更有效的融合方式,以及在任務(wù)處理的創(chuàng)新上,比如是否可以引入多模態(tài)內(nèi)容檢索、多模態(tài)內(nèi)容之間的相關(guān)任務(wù)(如多文、多圖的內(nèi)容匹配等)。
長久以來,國內(nèi)外學(xué)者們致力于讓計(jì)算機(jī)能真正地了解人類的思維邏輯,掌握人類的語言,甚至賦予其一定的情感讓它們更好地為人類服務(wù)。文本作為高級抽象的內(nèi)容表達(dá)特征存在,計(jì)算機(jī)首先要掌握文本的信息及涵義。經(jīng)過長期的研究,從詞向量的出現(xiàn)到語言模型的提出以及預(yù)訓(xùn)練語言模型的發(fā)展,自然語言處理已經(jīng)有了質(zhì)的飛越。本文按照文本信息抽象方法的發(fā)展歷程,介紹了自然語言文本特征處理的相關(guān)研究方法。未來隨著Web3.0和5G技術(shù)的推廣,網(wǎng)絡(luò)資源無疑是最大、最豐富的語料庫,同時(shí)語義網(wǎng)和關(guān)聯(lián)數(shù)據(jù)的進(jìn)一步發(fā)展,網(wǎng)絡(luò)文本資源越來越結(jié)構(gòu)化、互聯(lián)化,因此新型的信息組織結(jié)構(gòu)與信息之間的鏈接方式將會(huì)更多地應(yīng)用到文本處理之中。