本發(fā)明屬于文本分類領(lǐng)域,具體涉及中文文本分類、標簽混淆、神經(jīng)網(wǎng)絡(luò)以及對比學(xué)習(xí)方法。
背景技術(shù):
1、在文本分類中,文本的特征表示是將文本轉(zhuǎn)化為計算機能夠讀懂的數(shù)字序列。詞向量技術(shù)出現(xiàn)之前,常見的文本特征表示包括:詞頻特征、n-gram特征、特征選擇方法選擇出來的特征等,這類方法的信息提取能力單一,得到的文本表示中蘊含的信息有限。之后出現(xiàn)了one-hot編碼,開始這種方法在工業(yè)界得到了廣泛應(yīng)用,但隨著數(shù)據(jù)量的增大,會出現(xiàn)維度爆炸的問題?,F(xiàn)如今基于深層網(wǎng)絡(luò)的預(yù)訓(xùn)練模型gpt、bert系列、ernie、xlm系列等廣泛流行。而在中文文本中,同一個字符根據(jù)拼音的不同可能含義會發(fā)生極大地差異,如何將中文文本的特點更好的融入傳統(tǒng)的文本特征表示中去是一個具有挑戰(zhàn)性的任務(wù)。
2、在文本分類任務(wù)中,標簽通常采用one-hot表示,即對應(yīng)類別為1,其他類別為0,但是在計算損失時發(fā)現(xiàn)只有為1的那個維度參與了loss的計算,這導(dǎo)致了真實標簽跟其他標簽之間的關(guān)系被忽略了,很多有用的特征無法被學(xué)習(xí)到,這種情況在易混淆的分類任務(wù)中更容易受到影響。
技術(shù)實現(xiàn)思路
1、為了解決上述技術(shù)問題,本發(fā)明設(shè)計了融合標簽混淆和拼音信息的中文文本分類方法,本方法首先通過bert預(yù)訓(xùn)練模型對文本進行表征;并通過融合拼音嵌入使得嵌入能夠獲得更多的信息更好的應(yīng)對多音字的情況;之后通過標簽混淆模塊可以使得標簽更加接近真實標簽,避免模型更加“武斷”,防止過擬合問題。
2、為了達到上述技術(shù)效果,本發(fā)明公開了融合標簽混淆和拼音信息的中文文本分類方法,具體包括以下步驟:
3、s1:采用bert預(yù)訓(xùn)練模型對句子進行表征;
4、s2:對句子的拼音信息進行表征并融入句子的表征中;
5、s3:添加去噪處理:設(shè)計對比學(xué)習(xí)任務(wù),利用合適的正負樣本數(shù)據(jù)進行對比學(xué)習(xí),在拉遠正負樣本和拉近正樣本之間距離的過程中,能夠?qū)W到真正劃分類別的特征;
6、s4:利用標簽混淆模塊計算實例與標簽之間的相似度從而生成一個更好的標簽分布來代替原來的one-hot標簽向量;
7、s5:設(shè)計特征提取網(wǎng)絡(luò)獲取預(yù)測標簽分布;
8、s6:構(gòu)建監(jiān)督任務(wù)和對比學(xué)習(xí)進行聯(lián)合優(yōu)化;
9、s7:得到分類結(jié)果。
10、進一步的,所述s1中選擇的預(yù)訓(xùn)練詞向量模型為bert預(yù)訓(xùn)練深度語言模型中的bert-base-chinese模型;它通過雙向transformer架構(gòu)學(xué)習(xí)語言表示,包括了12層的transformer編碼器,每層有12個自注意力頭,總共有110m參數(shù),對中文文本進行了預(yù)訓(xùn)練,并能夠?qū)W習(xí)到中文文本的語義和語法信息。
11、進一步的,所述s2中拼音嵌入使用開源的pypinyin包為每個字符生成拼音序列,使用特殊標記來表示音調(diào),然后將這些音調(diào)附加到拼音序列的末尾;在拼音序列上應(yīng)用寬度為2的cnn模型,然后使用最大池化來推導(dǎo)生成的拼音嵌入,這使得輸出維度不受輸入拼音序列長度的影響;輸入拼音序列的長度固定為8,當拼音序列的實際長度沒有達到8時,剩余的槽用一個特殊的字母“-”填充;將經(jīng)過對比學(xué)習(xí)后的字符嵌入和拼音嵌入這兩個d維嵌入輸入到融合層;這兩個嵌入首先連接起來,然后通過全連接層映射到d維嵌入以形成融合嵌入。
12、進一步的,所述步驟3中所采用的對比學(xué)習(xí)策略為:傳統(tǒng)對比學(xué)習(xí)中它假設(shè)一組成對的實例其中xi和是語義相關(guān)的;使用標準的dropout作為噪聲,將同一個句子兩次傳遞給預(yù)訓(xùn)練的編碼器,通過應(yīng)用兩次標準dropout獲得兩個不同的嵌入再融入拼音信息使得兩個融合嵌入作為“正對”,取同批次中不同標簽的句子融合嵌入作為“負對”;取一個句子集合為并使獲得相同正對的關(guān)鍵是通過使用xi和的獨立采樣dropout掩碼,表示其中z是dropout的隨機掩碼;只需兩次向編碼器輸入相同的輸入,得到不同dropout掩碼的兩個融合嵌入z和z';對比學(xué)習(xí)的訓(xùn)練目標為:
13、
14、其中τ是溫度超參數(shù),sim(h1,h2)是余弦相似度n是批次中與輸入的句子不同標簽的句子數(shù)量。
15、進一步的,所述s4中,通過標簽編碼器來生成標簽表示矩陣,標簽編碼器是一個深度神經(jīng)網(wǎng)絡(luò)(dnn),然后通過標簽?zāi)M分布計算塊(sld?block)來計算標簽和實例之間的相似度從而獲得標簽混淆分布;sld塊由相似性層和sld計算層組成;相似性層將標簽表示和當前實例的融合嵌入作為輸入,并通過點積計算他們的相似度值,然后應(yīng)用具有softmax激活的神經(jīng)網(wǎng)絡(luò)來獲得標簽混淆分布(lcd);最后將原始標簽的one-hot向量添加到lcd中,控制參數(shù)α,然后通過softmax函數(shù)進行歸一化用以生成模擬標簽分布sld;控制參數(shù)α決定了lcd將改變多少one-hot向量;以上過程可以表述為:
16、
17、y(c)=softmax(v(i)tv(l)w+b)
18、y(s)=softmax(αy(t)+y(c))
19、其中fl是標簽編碼函數(shù)用來將標簽l=[l1,l2,…,lc]轉(zhuǎn)換為標簽表示矩陣v(l),c是類別的數(shù)量;fl由嵌入查找層和dnn實現(xiàn),可以是多層感知機(mlp)、lstm或注意力網(wǎng)絡(luò);輸入到lcm的標簽序列的順序應(yīng)該與one-hot目標相同。y(c)是lcd,y(s)是sld,y(t)是標簽one-hot分布。
20、進一步的,所述步驟5中的特征提取網(wǎng)絡(luò)可以直接將融合嵌入輸入全連接層以得到c維的融合嵌入,然后通過softmax分類器得到預(yù)測標簽分布,可以使用textcnn、textrcnn、textrnn、dpcnn模型作為特征提取網(wǎng)絡(luò)層從而得到預(yù)測標簽分布。
21、進一步的,所述s6中,將s4中得到的模擬標簽分布sld視為新的訓(xùn)練目標來替換原始標簽分布one-hot向量并監(jiān)督模型訓(xùn)練;由于sld?y(s)和預(yù)測的標簽向量y(p)都是概率分布,所以使用kullback–leibler?divergence(kl-divergence)作為損失函數(shù)來衡量它們的差異:
22、
23、其中c是標簽類別數(shù),yc(s)為模擬標簽分布在類別c上的概率,yc(p)表示預(yù)測標簽分布在類別c上的概率;
24、聯(lián)合損失函數(shù)lloss為kl損失加上對比學(xué)習(xí)損失,采用下式:
25、lloss=lkl+βlcl
26、其中,β是控制權(quán)衡的超參數(shù)。
27、進一步的,所述步驟7中得出預(yù)測標簽分布后,取值最大的維度作為分類結(jié)果。
28、本發(fā)明的有益效果是:
29、本發(fā)明提供了一種融合標簽混淆和拼音信息的中文文本分類方法。首先,通過bert預(yù)訓(xùn)練后將字符嵌入融合拼音嵌入形成融合嵌入,增強了中文語料的表征能力且能更好的處理中文文本中同一個字符有不同的發(fā)音具有不同的含義(多音字)現(xiàn)象。
30、其次,本方法通過應(yīng)用兩次標準dropout獲得兩個不同的嵌入作為“正對”進行對比學(xué)習(xí),方法簡單有效在降低噪音特征干擾的同時,提升模型的魯棒性。
31、最后,通過標簽混淆模塊得到模擬標簽分布來替換one-hot向量并監(jiān)督模型。它優(yōu)于僅考慮標簽之間相似性的分布,以及標簽平滑ls中的均勻噪聲分布。特別是對于那些容易混淆的樣本。當面對噪聲數(shù)據(jù)時,sld也更加健壯,因為錯誤標簽的概率被分配給相似的標簽,因此模型仍然可以從錯誤標記的數(shù)據(jù)中學(xué)習(xí)一些有用的信息。