国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

融合多頭自注意力機(jī)制的中文短文本分類模型

2020-12-31 02:24:06張小川戴旭堯馮天碩
計(jì)算機(jī)應(yīng)用 2020年12期
關(guān)鍵詞:特征向量注意力語義

張小川,戴旭堯,劉 璐,馮天碩

(1.重慶理工大學(xué)兩江人工智能學(xué)院,重慶 401135;2.重慶理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,重慶 400054)

(?通信作者電子郵箱das7575@163.com)

0 引言

文本分類是自然語言處理領(lǐng)域中的一項(xiàng)重要的基本任務(wù),是解決如何有效獲取和管理海量電子文本信息的關(guān)鍵技術(shù)[1-2]。

在傳統(tǒng)的文本分類研究中,文本表示常利用基于分布假設(shè)的word2vec[3]或Glove[4]方法,以對大量無標(biāo)簽文本進(jìn)行訓(xùn)練,并將其表示為Word Embedding[5]。它們的結(jié)果除詞嵌入本身外,還封裝了上下文信息,具有較好的特征表達(dá)能力。但在模型訓(xùn)練時(shí),該類方法存在利用文本上下文信息的范圍有限,從而導(dǎo)致語義特征不豐富的問題。

經(jīng)Word Embedding 處理的短文本僅包含相互獨(dú)立的詞特征,還需利用神經(jīng)網(wǎng)絡(luò)模型來建立非線性詞向量之間的相互作用關(guān)系,通過學(xué)習(xí)句子的表述來捕捉句子的語義。文獻(xiàn)[6]提出將卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)應(yīng)用到文本分類任務(wù),利用多個(gè)不同大小的卷積核來捕捉局部相關(guān)性以提取句子中的特征信息。文獻(xiàn)[7]提出了一種利用單詞上下文信息的循環(huán)CNN(Recurrent CNN,RCNN)把每個(gè)單詞的無語義向量與上下文單詞的向量進(jìn)行拼接作為詞嵌入向量,有效地緩解了循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[8]存在的梯度消失的問題,也避免了CNN需要通過窗口大小來設(shè)定上下文依賴長度。在中文場景下,文獻(xiàn)[9]將文本使用句向量表示,并輸入到雙向門控循環(huán)單元(Bidirectional Gated Recurrent Unit,BGRU)與CNN 的混合模型BGRU-CNN中,在THUCNews數(shù)據(jù)集上取得了較好的效果;文獻(xiàn)[10]使用自注意力機(jī)制對詞向量進(jìn)行處理,提出一種關(guān)鍵詞提取與CNN 相結(jié)合的文本分類模型,其模型在復(fù)旦數(shù)據(jù)集上取得了較好的效果。以上研究雖取得了不錯(cuò)的效果,但都只能保留文本的局部特征,不能充分利用上下文,且傳統(tǒng)文本表示方法不能解決多義詞的問題,導(dǎo)致模型精確率較低。

近年來,深度學(xué)習(xí)方法在單標(biāo)簽文本分類任務(wù)上取得了較優(yōu)成績[11-13],其在解決文本分類任務(wù)時(shí)常劃分為文本預(yù)處理、文本表示、特征提取和分類器四個(gè)部分。本文針對其中文本表示和特征提取兩個(gè)部分進(jìn)行改進(jìn),提出了一種融合卷積神經(jīng)網(wǎng)絡(luò)和多頭自注意力機(jī)制(combing Convolutional Neural Network and Multi-Head self-Attention mechanism,CNN-MHA)的中文短文本分類模型,主要工作如下:

1)在一般文本分類任務(wù)的過程中,不再使用靜態(tài)文本表示方法word2vec,而是結(jié)合預(yù)訓(xùn)練語言模型的思想,使用基于Transformer 的雙向編碼器表示(Bidirectional Encoder Representations from Transformers,BERT)預(yù)訓(xùn)練語言[14]對文本進(jìn)行Word Embedding。在詞嵌入的過程中,充分利用BERT在海量文本數(shù)據(jù)集上的預(yù)訓(xùn)練結(jié)果,動態(tài)地表示在不同語境中含有不同語義的文本。

2)在CNN 模型的基礎(chǔ)上,對特征提取層的策略進(jìn)行改進(jìn),引入多頭自注意力機(jī)制。在特征提取的過程中,根據(jù)詞本身對分類結(jié)果的重要程度,為其分配不同的權(quán)重,增強(qiáng)文本內(nèi)部的詞依賴關(guān)系。為降低模型在語義識別上的局限性,在多個(gè)特征表示的子空間內(nèi)分別進(jìn)行特征提取,再將各結(jié)果融合,提高模型的學(xué)習(xí)能力。

1 建模預(yù)處理

1.1 BERT模型

傳統(tǒng)語言模型的表示方法是靜態(tài)的,無法充分利用上下文表征字詞的多義性,為此,本文使用BERT模型,將傳統(tǒng)靜態(tài)表征方法優(yōu)化為動態(tài)表征方法。如圖1所示,BERT 模型輸入層由字符級向量(Token_Embeddings)、位置向量(Position_Embeddings)和分段向量(Segment_Embeddings)相加組成。

圖1 BERT模型簡圖Fig.1 BERT model diagram

Token_Embeddings為中文文本中每個(gè)字對應(yīng)的向量;Position_Embeddings給每個(gè)字添加時(shí)序信息;Segment_Embeddings的作用是將文本按句分段,并對語句做段定位,即利用標(biāo)記符號[CLS]和[SEP]來區(qū)分不同的句子并同時(shí)保存每句話的位置信息。

把三層向量疊加之后輸入到Transformer 編碼器[15]中,對每個(gè)字進(jìn)行雙向的編碼表示。Transformer編碼器以字符級向量疊加為輸入,先后通過自注意力層、殘差連接與歸一化層、前向神經(jīng)網(wǎng)絡(luò)層,最終輸出帶有語義信息的隱藏層向量。

1.2 多頭自注意力

研究發(fā)現(xiàn),注意力可選擇性地關(guān)注文本的重要信息。本文以此為啟發(fā)并借鑒Transformer 模型,采用多頭自注意力機(jī)制(Multi-head self-Attention mechanism,MHA)提取不同語義空間中的詞依賴關(guān)系。多頭自注意力以縮放點(diǎn)積注意力(Scaled Dot-product Attention,SDA)為原理,其計(jì)算式如下:

其中:Q、K、V分別為計(jì)算自注意力的查詢、鍵、值矩陣;QKT為注意力矩陣,對V矩陣加權(quán);dk表示鍵的維數(shù),而則是把注意力矩陣變?yōu)闃?biāo)準(zhǔn)的正態(tài)分布,以使得結(jié)果更穩(wěn)定且在反向傳播時(shí)能夠獲取平衡的梯度。

在式(1)計(jì)算的SDA基礎(chǔ)上,從包含不同語義信息的子空間中,集成如圖2所示的語義特征。

圖2 多頭自注意力簡圖Fig.2 Multi-head self-attention diagram

進(jìn)而,通過如下兩步求得多頭注意力MultiHead數(shù)值:

1)先將Q、K、V矩陣分別映射到多個(gè)不同的子空間中:

其中:Qi、Ki、Vi為各子空間的查詢、鍵、值矩陣;W(Qi)、W(Ki)、W(Vi)為轉(zhuǎn)換矩陣;h為頭數(shù)。

2)并行地計(jì)算各子空間中的SDA,再將所得結(jié)果拼接,經(jīng)線性變換后得句子矩陣:

其中:headi為每個(gè)子空間的SDA;MultiHead為最終結(jié)果。

1.3 卷積神經(jīng)網(wǎng)絡(luò)

采用卷積神經(jīng)網(wǎng)絡(luò)獲取文本特征。先將文本經(jīng)Word Embedding 后得到矩陣X,輸入到CNN 中,再經(jīng)卷積操作后輸出每個(gè)句子對應(yīng)的特征矩陣C:

其中:L為文本長度;xi為序列中第i個(gè)詞的向量;ω為濾波器;t為卷積核的大??;f為卷積非線性函數(shù);b為偏差項(xiàng)。

通過上述步驟求得多頭注意力MultiHead、特征矩陣C,從而完成建模預(yù)處理目標(biāo)。

2 CNN-MHA模型

2.1 建立模型總體架構(gòu)

CNN-MHA 模型結(jié)構(gòu)如圖3 所示,由詞嵌入層、多頭自注意力層、卷積層和輸出層組成。

圖3 CNN-MHA模型簡圖Fig.3 CNN-MHA model diagram

2.2 構(gòu)造詞嵌入層

本文采用BERT 預(yù)訓(xùn)練語言模型作為CNN-MHA 的詞嵌入層。為學(xué)習(xí)到每個(gè)字的多重含義表達(dá),在詞嵌入層對字向量做線性映射:設(shè)置文本序列矩陣X=[x1,x2,…,xN]T,N表示序列長度,當(dāng)其在Word Embedding 之后,得到矩陣A=[a1,a2,…,aN]T。接著,構(gòu)建Q、K、V三個(gè)矩陣,分別來建立當(dāng)前字與其他字的關(guān)系,并生成特征向量。首先,初始化權(quán)重矩陣WQ、WK、WV,經(jīng)矩陣計(jì)算得Q、K、V矩陣,而且在模型訓(xùn)練過程中,WQ、WK、WV不斷地優(yōu)化和更新并獲得SDA:

在文本輸入中,存在batch 序列長短不一現(xiàn)象,需要對短句中空白處以0 填充。作為計(jì)算SDA的關(guān)鍵環(huán)節(jié),softmax函數(shù)存在產(chǎn)生無意義值的情況,從而導(dǎo)致結(jié)果出現(xiàn)較大偏差。為解決此問題,本文提出對無效填充區(qū)域增加平滑項(xiàng)的做法,經(jīng)實(shí)際計(jì)算SDA,并對結(jié)果做殘差連接,使梯度跨層由后向前傳播,從而有效地避免傳統(tǒng)RNN方法的梯度消失的問題。

進(jìn)一步對結(jié)果進(jìn)行歸一化操作,以將隱藏層轉(zhuǎn)化為正態(tài)分布,加快了訓(xùn)練和模型的收斂。

在經(jīng)過所有計(jì)算后,結(jié)束BERT 的操作,通過多層迭代,最終得到經(jīng)詞嵌入層后對應(yīng)的融合上下文信息的隱藏層向量encodeToken=[et1,et2,…,etN]T。

2.3 多頭自注意力層

所有文本數(shù)據(jù)經(jīng)Word Embedding 操作之后,所得的encodeToken對應(yīng)為每個(gè)字的向量表示,仍可以進(jìn)行進(jìn)一步的語義特征提取,因此,本文利用多頭自注意力機(jī)制單獨(dú)作為CNN-MHA中語義增強(qiáng)層,并行地進(jìn)行h次自注意力運(yùn)算:

再融合所有子空間的語義信息:

最后,將MultiHead以式(10)與最初輸入的文本序列進(jìn)行殘差連接,最終得到句子向量。

2.4 卷積層

在數(shù)據(jù)通過Multi-head Attention 層后,所有文本序列內(nèi)部都獲得全局范圍內(nèi)的上下文詞依賴關(guān)系,但是模型缺少捕獲局部特征的能力。為提升模型的表征能力,將經(jīng)Multi-head Attention 層輸出的句子向量再輸入到CNN 中,以捕捉相應(yīng)的局部特征:

其中,為Multi-head Attention 層的輸出矩陣A從第j行到第j+t-1行的局部特征。

本文使用m種卷積核,得到最終的卷積結(jié)果Ck(1 ≤k≤m)輸入到池化層進(jìn)行特征采樣,目的是在保持主要特征的情況下,降低模型的參數(shù)數(shù)目,同時(shí)也降低過擬合的風(fēng)險(xiǎn)。最終,將池化后的特征矩陣C輸入到帶有dropout 操作的全連接層里,得到最終的分類特征向量:

2.5 輸出層

在文本經(jīng)詞嵌入層后,得到encodeToken為每一個(gè)文本序列所對應(yīng)的包含上下文語義信息的向量,如圖1 中輸出層的表示,而encodeToken中只包含[CLS]對應(yīng)的頭向量clsToken,可作為每句話的向量表示,即為每句話的分類特征向量,如圖4所示。

圖4 分類特征向量簡圖Fig.4 Classification feature vector diagram

為最大化獲取文本特征信息,本文將經(jīng)CNN 輸出的特征向量y與Word Embedding 時(shí)生成的clsToken向量進(jìn)行特征融合:

其中,H作為融合特征向量輸入到分類器中,進(jìn)行最終的中文短文本分類任務(wù)。

3 實(shí)驗(yàn)與結(jié)果分析

3.1 數(shù)據(jù)集

本文實(shí)驗(yàn)使用的數(shù)據(jù)來自搜狗實(shí)驗(yàn)室提供的搜狐新聞標(biāo)題數(shù)據(jù)[16]。本文從中選取金融、股票、房產(chǎn)、科學(xué)、體育、教育、社會、政治、游戲、娛樂十個(gè)類別的數(shù)據(jù),進(jìn)行分類任務(wù)。為了保證測試數(shù)據(jù)評估效果與在真實(shí)場景下模型對未知數(shù)據(jù)預(yù)判的結(jié)果相近[17],數(shù)據(jù)集被劃分為訓(xùn)練集50 000 條、驗(yàn)證集5 000條、測試集10 000條。

3.2 實(shí)驗(yàn)環(huán)境

本文的實(shí)驗(yàn)環(huán)境為:操作系統(tǒng)Windows 10;CUDA10.0;cudnn 10;處理器Intel I7 8700,GPU NVIDIA GeForce GTX 1070;內(nèi)存16 GB;顯存8 GB;編譯平臺Pycharm Professional;Python 3.6;Pytorch 1.3.1。

3.3 實(shí)驗(yàn)參數(shù)設(shè)置

本文模型實(shí)驗(yàn)的所有參數(shù)為:訓(xùn)練輪數(shù)epoch=10,batch_size=64,每條文本的長度text_size=32,學(xué)習(xí)率learning_rate=5E-5,BERT模型的隱藏單元數(shù)hidden_num=768,CNN 的卷積核尺寸filter_size=(2,3,4),卷積核數(shù)量filter_num=256,dropout=0.1。為了降低模型過擬合的風(fēng)險(xiǎn),設(shè)置檢測參數(shù)detect_imp=3 000,即若模型在持續(xù)3 000個(gè)batch 的訓(xùn)練中所得結(jié)果沒有明顯的提升,就提前結(jié)束訓(xùn)練。

3.4 評價(jià)指標(biāo)

由于實(shí)驗(yàn)用數(shù)據(jù)集的標(biāo)簽具有不規(guī)則、不平衡等特性,為了能客觀準(zhǔn)確地衡量模型在數(shù)量少的類別上的分類性能,實(shí)驗(yàn)主要采用F1值作為性能評價(jià)指標(biāo),并以準(zhǔn)確率、精確率、召回率作參考:

其中:Precision代表準(zhǔn)確率;Recall代表召回率;F1 越大,模型的分類效果則越好。

3.5 對比實(shí)驗(yàn)

實(shí)驗(yàn)將本文構(gòu)建的CNN-MHA 模型與如下基準(zhǔn)模型進(jìn)行了對比。

1)TextCNN:將經(jīng)Word Embedding 的詞向量通過一層卷積和一層池化來構(gòu)造更好的特征向量。

2)TextRCNN:將經(jīng)Word Embedding 的詞向量通過雙向RNN和一層最大池化來構(gòu)造更好的特征向量。

3)BERT:利用預(yù)訓(xùn)練模型,直接將文本嵌入為詞向量,再輸入到分類器中分類。

在實(shí)驗(yàn)中,訓(xùn)練和測試時(shí)的各項(xiàng)參數(shù)都保持統(tǒng)一,評價(jià)指標(biāo)采用準(zhǔn)確率、精確率、召回率、F1值。本文實(shí)驗(yàn)數(shù)據(jù)共有10個(gè)類別,為方便對比各模型性能,評價(jià)指標(biāo)的實(shí)驗(yàn)結(jié)果皆取10個(gè)類別的均值,如表1所示。

表1 不同模型實(shí)驗(yàn)結(jié)果對比 單位:%Tab.1 Comparison of experimental results of different models unit:%

由表1 可見,CNN-MHA 模型在各項(xiàng)指標(biāo)上都是最優(yōu)的,其中F1 值比TextCNN 模型提高了3.99%,比BERT 模型提高了0.76%,比TextRCNN 模型高出2.89%。如果采用BERT 模型作為嵌入層:BERT-CNN 與傳統(tǒng)靜態(tài)表征方法的TextCNN相比,其各項(xiàng)指標(biāo)平均提高了3.92%;BERT-RCNN 與TextRCNN 相比,其各項(xiàng)指標(biāo)平均提高了2.63%。因此,從以上實(shí)驗(yàn)結(jié)果來看,由于BERT 模型在海量文本數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練,其動態(tài)文本表征方法相較于傳統(tǒng)靜態(tài)文本表征方法,對文本分類任務(wù)有明顯影響且性能有顯著提升。

3.6 多頭自注意力機(jī)制的實(shí)驗(yàn)與分析

本文CNN-MHA 模型與BERT-CNN 相比,各項(xiàng)指標(biāo)平均提升了0.06%,其精確率提升了0.08%、F1 值提升了0.06%。通過在BERT-RCNN 中添加了Multi-head Attention 層得到MHA-RCNN,由表1 所示,二者相比,MHA-RCNN 準(zhǔn)確率提高了0.04%、精確率提高了0.05%、召回率提高了0.05%、F1 值提高了0.07%,這表明Multi-head Attention 在構(gòu)建含有更豐富的語義信息特征向量時(shí)具有有效性,且CNN 專注于局部特征提取這一特性,相較于RCNN 效果更好,計(jì)算效率更高,并很好地彌補(bǔ)了Multi-head Attention 缺少的局部特征提取功能的不足。

在訓(xùn)練過程中發(fā)現(xiàn),由于本文模型存在較大的參數(shù)量,其各項(xiàng)指標(biāo)所對應(yīng)的結(jié)果體現(xiàn)出模型存在著輕微的過擬合現(xiàn)象。為此,本文采取在Multi-head Attention 層后加入dropout操作的方法,由表1 的結(jié)果可以看出,與沒有dropout 操作的CNN-MHA*相比,CNN-MHA 模型的各項(xiàng)指標(biāo)平均提升了0.2%,其中精確率和F1 值增長了0.22%,表明dropout操作對本文模型具有較大的影響。

通過各實(shí)驗(yàn)對比發(fā)現(xiàn),本文的CNN-MHA 模型具有良好的泛化能力,在中文短文本分類任務(wù)上具有良好的效果。

4 結(jié)語

本文針對中文短文本分類任務(wù),特別針對文本表示和特征提取部分,提出了一種融合多頭自注意力機(jī)制的中文短文本分類模型CNN-MHA。該模型的核心思想是先利用BERT預(yù)訓(xùn)練模型對文本進(jìn)行Word Embedding;再利用短文本的海量性,針對獨(dú)立且不同的上下文語境,通過多頭自注意力機(jī)制在全局范圍內(nèi)進(jìn)一步學(xué)習(xí)文本序列內(nèi)部的詞依賴關(guān)系,增強(qiáng)模型的表意能力;然后,將結(jié)果輸入到CNN 中,捕捉局部特征;最終,將得到的特征向量與Word Embedding 時(shí)生成的句特征向量進(jìn)行特征融合,并以此融合向量作為分類器的輸入進(jìn)行短文本分類任務(wù)。實(shí)驗(yàn)結(jié)果表明,本文改進(jìn)后的模型在中文短文本分類任務(wù)上具有較好的效果。

本文所提模型雖然達(dá)到了一定的效果,但也有一些明顯的缺陷:在語料數(shù)據(jù)噪聲較大時(shí),模型效果會產(chǎn)生波動;模型的參數(shù)量較大,計(jì)算成本較高。下一步工作將考慮這些不足,對模型進(jìn)行更細(xì)粒度的研究。

猜你喜歡
特征向量注意力語義
二年制職教本科線性代數(shù)課程的幾何化教學(xué)設(shè)計(jì)——以特征值和特征向量為例
讓注意力“飛”回來
克羅內(nèi)克積的特征向量
語言與語義
一類特殊矩陣特征向量的求法
“揚(yáng)眼”APP:讓注意力“變現(xiàn)”
傳媒評論(2017年3期)2017-06-13 09:18:10
EXCEL表格計(jì)算判斷矩陣近似特征向量在AHP法檢驗(yàn)上的應(yīng)用
A Beautiful Way Of Looking At Things
“上”與“下”語義的不對稱性及其認(rèn)知闡釋
認(rèn)知范疇模糊與語義模糊
武乡县| 精河县| 苏州市| 安义县| 五台县| 神池县| 岳阳市| 鄂尔多斯市| 梅河口市| 刚察县| 临朐县| 大埔区| 邳州市| 兴安县| 娱乐| 南陵县| 禄丰县| 改则县| 牡丹江市| 临海市| 金寨县| 辽阳市| 广宗县| 平罗县| 白玉县| 宝丰县| 梅河口市| 永靖县| 明溪县| 皋兰县| 阳新县| 赣榆县| 扶风县| 北海市| 汾西县| 上犹县| 乌兰察布市| 天柱县| 平利县| 屏东县| 文化|