陳 鋼,佘祥榮,陳健鵬
(長(zhǎng)三角信息智能創(chuàng)新研究院,安徽 蕪湖 241000)
行業(yè)分類對(duì)于國(guó)民經(jīng)濟(jì)統(tǒng)計(jì)、市場(chǎng)監(jiān)督管理等領(lǐng)域具有重要作用。企業(yè)所屬行業(yè)通常從其經(jīng)營(yíng)范圍描述來(lái)推斷,但經(jīng)營(yíng)范圍往往涉及到多個(gè)行業(yè)的描述,人工對(duì)行業(yè)分類存在效率低下、可靠性不高等問(wèn)題。基于神經(jīng)網(wǎng)絡(luò)的方法通常使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)[1]、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[2]、長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM)[3]自動(dòng)完成經(jīng)營(yíng)范圍文本特征提取和行業(yè)分類任務(wù)。相比行業(yè)門(mén)類,屬于不同行業(yè)小類的企業(yè)在經(jīng)營(yíng)范圍描述上存在很多相似性,利用神經(jīng)網(wǎng)絡(luò)方法很難發(fā)現(xiàn)這種微小的差異,較難做出正確的判斷。
Word2vec、glove等經(jīng)典詞向量模型可以通過(guò)將自然語(yǔ)言中的詞轉(zhuǎn)換為稠密的詞向量,從大量的未標(biāo)記語(yǔ)料中學(xué)習(xí)文本的語(yǔ)義信息,但卻無(wú)法處理自然語(yǔ)言文本當(dāng)中一詞多義的情況[4]。隨著遷移學(xué)習(xí)的廣泛應(yīng)用,Bert[5]成功用于大規(guī)模未標(biāo)記數(shù)據(jù)的語(yǔ)言表示學(xué)習(xí)領(lǐng)域。雖然Bert可以有效抓取文本的上下文語(yǔ)義信息,但它沒(méi)有考慮到在訓(xùn)練過(guò)程中屏蔽的單詞與未屏蔽的單詞之間的關(guān)系。廣義自回歸語(yǔ)言模型XLNet[6]避免了BERT的缺點(diǎn),它利用排列組合的原理實(shí)現(xiàn)了新的雙向編碼,具備強(qiáng)大的語(yǔ)義表征能力。雙向門(mén)控循環(huán)單元(BiGRU)適合對(duì)文本建模、獲取文本全局的結(jié)構(gòu)信息。注意力機(jī)制(Attention)可以對(duì)經(jīng)營(yíng)范圍中重要的詞賦予更高的權(quán)重,可以更好地提取關(guān)鍵信息。
為克服基于機(jī)器學(xué)習(xí)和基于神經(jīng)網(wǎng)絡(luò)的行業(yè)分類方法的缺點(diǎn),該文提出一種基于XLNet-BiGRU-Attention的行業(yè)分類方法。該方法通過(guò)XLNet網(wǎng)絡(luò)從經(jīng)營(yíng)范圍文本中獲取具有上下文特征信息的語(yǔ)義表征向量,構(gòu)建基于BiGRU和Attention的候選集生成網(wǎng)絡(luò)來(lái)進(jìn)一步提取上下文相關(guān)特征,通過(guò)構(gòu)建鍵值對(duì)嵌入網(wǎng)絡(luò)來(lái)進(jìn)一步挖掘企業(yè)其他標(biāo)簽對(duì)于行業(yè)分類的提升效果,最后將融合后的特征向量輸入到分類器完成企業(yè)行業(yè)分類。
文本分類作為自然語(yǔ)言處理的經(jīng)典任務(wù),主要包括文本預(yù)處理、文本特征提取及分類器設(shè)計(jì)等過(guò)程,在情感分析[7]、垃圾郵件識(shí)別[8]、閱讀理解[9]等多個(gè)領(lǐng)域均具有廣泛應(yīng)用。文獻(xiàn)[10]提出了一種基于BiGRU和貝葉斯分類器的文本分類方法,利用BiGRU神經(jīng)網(wǎng)絡(luò)提取文本特征,通過(guò)TF-IDF算法權(quán)重賦值,采用貝葉斯分類器判別分類,縮短了模型訓(xùn)練時(shí)間,提高了文本分類效率。文獻(xiàn)[11]利用TextRank算法對(duì)企業(yè)的經(jīng)營(yíng)范圍進(jìn)行了關(guān)鍵詞提取,得到了企業(yè)的經(jīng)營(yíng)范圍標(biāo)簽,先后嘗試了多項(xiàng)樸素貝葉斯分類器、邏輯回歸分類器、隨機(jī)梯度下降這三個(gè)分類器對(duì)企業(yè)行業(yè)進(jìn)行分類。
文獻(xiàn)[12]利用Jieba工具對(duì)企業(yè)經(jīng)營(yíng)范圍內(nèi)容進(jìn)行分詞,再采用簡(jiǎn)單的貝葉斯文本分類模型,以Chi作為特征選擇的基礎(chǔ),對(duì)經(jīng)營(yíng)范圍的多維特征進(jìn)行選擇和重新加權(quán),再利用余弦相似度進(jìn)行計(jì)算后完成行業(yè)分類。文獻(xiàn)[13]提出了一種基于互聯(lián)網(wǎng)簡(jiǎn)歷大數(shù)據(jù)的行業(yè)分類方法,通過(guò)使用從專業(yè)社交網(wǎng)絡(luò)收集的在線簡(jiǎn)歷大數(shù)據(jù)構(gòu)建勞動(dòng)力流動(dòng)網(wǎng)絡(luò),通過(guò)分層可擴(kuò)展的社區(qū)檢測(cè)算法在勞動(dòng)力流動(dòng)網(wǎng)絡(luò)上實(shí)現(xiàn)了企業(yè)群體的發(fā)現(xiàn)。文獻(xiàn)[14]提出了一種基于文本挖掘的行業(yè)分類方法,結(jié)合機(jī)器學(xué)習(xí)技術(shù)從財(cái)務(wù)報(bào)告中的業(yè)務(wù)描述中提取不同特征,該方法在對(duì)相似企業(yè)進(jìn)行行業(yè)分類時(shí)可以有效減少詞向量的維數(shù)。
文獻(xiàn)[15]在微軟語(yǔ)料庫(kù)MPRC上從影響計(jì)算特性的各因素出發(fā)比較了Bert和XLNet的性能,研究表明這兩種模型除了對(duì)目標(biāo)位置的感知表示和XLNet在相對(duì)位置具有特性編碼之外,其他計(jì)算特性非常相似,但XLNet能夠獲得更好的性能。文獻(xiàn)[16]通過(guò)分析物聯(lián)網(wǎng)實(shí)體的語(yǔ)義特征及需求,構(gòu)建了基于XLNet+Bi-LSTM+Attention+CRF的命名實(shí)體識(shí)別模型,并與其他語(yǔ)言模型作對(duì)比分析。文獻(xiàn)[17]利用顯性知識(shí)從知識(shí)圖譜中匹配知識(shí)事實(shí),在不改變Transformer結(jié)構(gòu)的前提下直接添加知識(shí)命令層,提升了預(yù)訓(xùn)練語(yǔ)言模型的性能。文獻(xiàn)[18]在XLNet基礎(chǔ)上增加LSTM網(wǎng)絡(luò)層和Attention機(jī)制,提出了XLNet-LSTM-Att情感分析優(yōu)化模型。采用XLNet預(yù)訓(xùn)練模型學(xué)習(xí)到的詞向量比以往模型獲得更多的上下文語(yǔ)義信息,將XLNet預(yù)訓(xùn)練模型的潛力充分挖掘成為研究人員目前的新工作[19]。
XLNet在語(yǔ)言表義方面具有較好的優(yōu)勢(shì),可以更好地實(shí)現(xiàn)中文詞的語(yǔ)義嵌入,BiGRU可以有效獲取上下文依賴關(guān)系和文本特征,而Attention機(jī)制可以凸顯特征對(duì)最終分類任務(wù)的重要程度,從而提高模型的準(zhǔn)確率和效率?;诖?,該文提出的行業(yè)分類模型主要由XLNet網(wǎng)絡(luò)、候選集生成網(wǎng)絡(luò)和鍵值對(duì)嵌入網(wǎng)絡(luò)構(gòu)成,如圖1所示。
圖1 XLNet-BiGRU-Attention模型結(jié)構(gòu)
XLNet網(wǎng)絡(luò)對(duì)輸入的企業(yè)經(jīng)營(yíng)范圍文本進(jìn)行語(yǔ)義信息提取,獲得具有上下文特征信息的語(yǔ)義表征向量。候選集生成網(wǎng)絡(luò)中的BiGRU層對(duì)語(yǔ)義表征向量進(jìn)行進(jìn)一步篩選,補(bǔ)充遺忘信息并生成隱藏狀態(tài)提供給Self-Attention層。候選集生成網(wǎng)絡(luò)中的Self-Attention層對(duì)BiGRU層輸出的隱藏狀態(tài)進(jìn)行處理,凸顯重要性高的語(yǔ)義特征,并結(jié)合softmax函數(shù)生成行業(yè)分類候選集。鍵值對(duì)嵌入網(wǎng)絡(luò)對(duì)企業(yè)信息進(jìn)行處理,使模型更關(guān)注對(duì)行業(yè)分類貢獻(xiàn)度高的特征,以提高最終行業(yè)分類的準(zhǔn)確率。
XLNet的核心思想是在Transformer中通過(guò)Attention Mask矩陣對(duì)輸入序列重排列,通過(guò)學(xué)習(xí)不同排序的序列特征信息實(shí)現(xiàn)其雙向預(yù)測(cè)的目標(biāo),同時(shí)不會(huì)改變?cè)荚~順序,有效優(yōu)化了Bert中Mask機(jī)制下的信息缺失問(wèn)題。
2.2.1 BiGRU層
GRU是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)模型類似于LSTM模型,可以解決梯度消失和梯度爆炸的問(wèn)題。GRU由重置門(mén)和更新門(mén)兩個(gè)門(mén)結(jié)構(gòu)構(gòu)成,如圖2所示。
圖2 GRU單元結(jié)構(gòu)
各個(gè)門(mén)控單元計(jì)算公式如下:
(1)重置門(mén)rj控制過(guò)去狀態(tài)信息對(duì)候選狀態(tài)的貢獻(xiàn)度:
(1)
(2)更新門(mén)zj控制保留多少過(guò)去的信息和添加多少新信息:
(2)
(3)
(4)
當(dāng)重置門(mén)rj趨于0時(shí),隱藏狀態(tài)會(huì)強(qiáng)行忽略前一步隱藏狀態(tài),僅使用當(dāng)前的輸入進(jìn)行重置。這有效地實(shí)現(xiàn)了隱藏狀態(tài)丟棄任何將來(lái)不相關(guān)的信息。更新門(mén)控制有多少信息將從以前的隱藏狀態(tài)轉(zhuǎn)移到當(dāng)前的隱藏狀態(tài)。
在單向的GRU網(wǎng)絡(luò)結(jié)構(gòu)中,狀態(tài)是從前往后輸出的,僅能獲取文本前文信息,難以獲取整個(gè)文本的上下文信息。然而在文本分類中,當(dāng)前時(shí)刻的輸出可能與前一時(shí)刻的狀態(tài)和后一時(shí)刻的狀態(tài)都存在相關(guān)性。雙向門(mén)控循環(huán)單元可以有效獲取文本的上下文信息,為此使用BiGRU網(wǎng)絡(luò)作為信息提取網(wǎng)絡(luò),為輸出層提供輸入序列中每一個(gè)點(diǎn)的完整上下文信息。BiGRU結(jié)構(gòu)如圖3所示。
圖3 BiGRU結(jié)構(gòu)
雙向GRU由兩個(gè)方向的多個(gè)GRU單元組成,分為前向GRU和反向GRU。前向GRU能依據(jù)文本的上文信息來(lái)預(yù)測(cè)下文的輸出,而反向GRU則可以依據(jù)文本的下文信息來(lái)預(yù)測(cè)上文的輸出,從而實(shí)現(xiàn)文本上下文信息提取。
2.2.2 Self-Attention層
注意力機(jī)制通過(guò)將關(guān)注點(diǎn)聚集在焦點(diǎn)區(qū)域,從而獲得輸入文本的關(guān)鍵信息。自注意力機(jī)制是注意力機(jī)制的一種變體,利用注意力機(jī)制計(jì)算輸入特征中不同位置之間的權(quán)重,降低了對(duì)外部信息的依賴。同時(shí),借由注意力機(jī)制對(duì)關(guān)鍵信息的跳躍捕捉,提高關(guān)鍵信息的傳遞效率,使得自注意力機(jī)制更擅長(zhǎng)捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性。在企業(yè)經(jīng)營(yíng)范圍描述信息中,對(duì)于企業(yè)行業(yè)分類任務(wù)價(jià)值較高信息往往集中于部分關(guān)鍵詞上,因此引入自注意力機(jī)制對(duì)企業(yè)經(jīng)營(yíng)范圍信息中的關(guān)鍵內(nèi)容進(jìn)行提取。
在計(jì)算Self-Attention的過(guò)程中,對(duì)輸入的每一個(gè)部分進(jìn)行編碼后形成語(yǔ)義編碼Iembedding,通過(guò)建立參數(shù)矩陣WQ、WK和WV,將語(yǔ)義編碼線性映射到特征空間中,形成Q、K、V三個(gè)向量:
Q=WQ*Iembedding
(5)
K=WK*Iembedding
(6)
V=WV*Iembedding
(7)
之后針對(duì)Query和Key進(jìn)行相似度計(jì)算,得到計(jì)算注意力權(quán)重,并對(duì)得到的權(quán)值進(jìn)行歸一化操作,最后將權(quán)重與Value進(jìn)行加權(quán)求和得到最終的注意力得分Vout,整體機(jī)制實(shí)現(xiàn)如圖4所示。
圖4 鍵值對(duì)嵌入網(wǎng)絡(luò)
(8)
(9)
除了經(jīng)營(yíng)范圍描述外,企業(yè)還包含大量其他相關(guān)性的標(biāo)簽,單純利用某一類標(biāo)簽,可能存在難以理解某些模糊描述的情況,理解層次偏低。因此在完成候選集生成后,該文通過(guò)BiGRU網(wǎng)絡(luò)結(jié)合KV-Attention層構(gòu)建了一個(gè)基于企業(yè)其他標(biāo)簽(企業(yè)名稱、行政許可、知識(shí)產(chǎn)權(quán)、招聘信息、招投標(biāo)信息等)的鍵值對(duì)嵌入網(wǎng)絡(luò)來(lái)提高分類模型的理解層次。企業(yè)其他標(biāo)簽處理成如下鍵值對(duì)(key-value)列表形式:
L=[(s1,v1),(s2,v2),…,(sn,vn)]
其中,si表示企業(yè)標(biāo)簽名稱(例如企業(yè)名稱),vi表示對(duì)應(yīng)企業(yè)標(biāo)簽的具體內(nèi)容(例如安徽XXX公司)。鍵值對(duì)嵌入網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
(10)
(11)
(12)
(13)
(14)
p=softmax(WVconcat+b)
(15)
其中,W、b是可學(xué)習(xí)參數(shù),p是各類別的分類預(yù)測(cè)概率。
使用正確類別的負(fù)對(duì)數(shù)似然作為訓(xùn)練損失函數(shù):
(16)
其中,j是企業(yè)E的分類類別。
該文使用基于CUDA 9.0的深度學(xué)習(xí)框架PyTorch 1.1.0搭建網(wǎng)絡(luò)模型,操作系統(tǒng)為Ubuntu 18.04,硬盤(pán)為1 TB,內(nèi)存為32 GB,CPU為Intel(R)Core(TM)i7-7700CPU@3.60 GHz,GPU為GeForce GTX 1080 Ti。
在超參數(shù)的設(shè)置上,XLNet語(yǔ)言模型的嵌入維度為768維,多頭注意力機(jī)制的設(shè)置為12個(gè)注意力頭,隱藏層維度同樣設(shè)置為768維,隱藏層層數(shù)設(shè)置為12,GRU的隱藏層維度設(shè)置為128。在訓(xùn)練設(shè)置上,批處理大小設(shè)置為16,批處理以token為單位,每個(gè)輸入文本的token個(gè)數(shù)設(shè)置為200。同時(shí),模型使用學(xué)習(xí)率為1e-5的Adam優(yōu)化器。訓(xùn)練輪數(shù)設(shè)置為10輪(epoch=10)。
根據(jù)2017版《國(guó)民經(jīng)濟(jì)行業(yè)分類》標(biāo)準(zhǔn)規(guī)定,國(guó)民經(jīng)濟(jì)行業(yè)分類共有20個(gè)門(mén)類和1 380個(gè)小類。為了評(píng)估該行業(yè)分類方法的有效性,構(gòu)建了兩個(gè)由企業(yè)數(shù)據(jù)組成的數(shù)據(jù)集。數(shù)據(jù)集1包含60 000條數(shù)據(jù)(10個(gè)門(mén)類,100個(gè)小類,訓(xùn)練集50 000條,驗(yàn)證集5 000條、測(cè)試集5 000條),數(shù)據(jù)集2包含80 000條數(shù)據(jù)(20個(gè)門(mén)類,200個(gè)小類,訓(xùn)練集64 000條,驗(yàn)證集8 000條、測(cè)試集8 000條)。每條數(shù)據(jù)包括企業(yè)名稱、注冊(cè)資本、成立時(shí)間、經(jīng)營(yíng)范圍、行業(yè)類別、行政許可、產(chǎn)品信息、專利信息、軟件著作權(quán)信息、招聘信息等維度。
該文采用微平均F1值和宏平均F1值作為行業(yè)分類性能評(píng)價(jià)指標(biāo)。為了驗(yàn)證文中分類方法的性能,與多種基線方法進(jìn)行了對(duì)比。在基線方法中,文獻(xiàn)[11]、文獻(xiàn)[12]和文獻(xiàn)[14]使用textRank、TF-IDF等作為文本特征提取方法,并使用多項(xiàng)樸素貝葉斯、支持向量機(jī)等傳統(tǒng)機(jī)器學(xué)習(xí)方法作為分類器對(duì)行業(yè)進(jìn)行分類。文獻(xiàn)[1]、文獻(xiàn)[2]和文獻(xiàn)[20]使用神經(jīng)網(wǎng)絡(luò)方法對(duì)文本進(jìn)行分類。文獻(xiàn)[1]使用卷積核窗口大小分別為2、3、4的3個(gè)卷積層和相應(yīng)的池化層提取特征并進(jìn)行拼接,以此來(lái)獲得更豐富、不同粒度的特征信息。文獻(xiàn)[2]使用經(jīng)過(guò)詞嵌入之后的詞向量作為輸入并經(jīng)過(guò)RNN網(wǎng)絡(luò)和池化層完成文本分類。文獻(xiàn)[20]使用基于單詞層面注意力機(jī)制的BiGRU模型和基于句子層面注意力機(jī)制的BiGRU模型提取文本多層面的特征進(jìn)行文本分類。實(shí)驗(yàn)對(duì)比結(jié)果如圖5和圖6所示。
圖5 數(shù)據(jù)集1上基線方法分類對(duì)比結(jié)果
圖6 數(shù)據(jù)集2上基線方法分類對(duì)比結(jié)果
可見(jiàn),文中的行業(yè)分類方法在兩個(gè)數(shù)據(jù)集上均取得了比其他基線方法更好的分類效果?;谏窠?jīng)網(wǎng)絡(luò)的方法在分類效果上明顯優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)的方法,因?yàn)闄C(jī)器學(xué)習(xí)方法僅簡(jiǎn)單的對(duì)文本中的詞向量進(jìn)行加權(quán)平均,沒(méi)有使用文本更深層次的語(yǔ)義信息,而CNN和RNN可以獲取更深層次的語(yǔ)義信息從而得到更好的分類效果。然而,CNN無(wú)法獲取文本的上下文信息,RNN不能很好提取句子的局部特征,XLNet能有效提取文本的語(yǔ)義信息和上下文信息,因此其分類效果高于CNN和RNN方法??梢钥闯?,文中行業(yè)分類方法在XLNet的基礎(chǔ)上增加了候選集生成網(wǎng)絡(luò)和鍵值對(duì)嵌入網(wǎng)絡(luò),有效提升了行業(yè)分類的性能。
3.4.1 候選集生成網(wǎng)絡(luò)有效性
為說(shuō)明候選集生成網(wǎng)絡(luò)的有效性,定量比較了是否使用候選集生成網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果(將未使用候選集生成網(wǎng)絡(luò)的模型命名為XLNetwithoutCGN),對(duì)比結(jié)果如表1所示??梢?jiàn),XLNet-BiGRU-Attention在兩個(gè)數(shù)據(jù)集上的行業(yè)分類效果都優(yōu)于XLNetwithoutCGN。
表1 候選集生成網(wǎng)絡(luò)消融實(shí)驗(yàn)結(jié)果 %
3.4.2 鍵值對(duì)嵌入網(wǎng)絡(luò)有效性
為說(shuō)明鍵值對(duì)嵌入網(wǎng)絡(luò)的有效性,定量比較了是否使用鍵值對(duì)嵌入網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果(將未使用鍵值對(duì)嵌入網(wǎng)絡(luò)的模型命名為XLNetwithoutKVE),對(duì)比結(jié)果如表2所示。可見(jiàn),XLNet-BiGRU-Attention在兩個(gè)數(shù)據(jù)集上的行業(yè)分類效果都優(yōu)于XLNetwithoutKVE。
表2 鍵值對(duì)嵌入網(wǎng)絡(luò)消融實(shí)驗(yàn)結(jié)果 %
從圖7可以看出,提出的行業(yè)分類方法的分類準(zhǔn)確率優(yōu)于其他分類方法。
圖7 不同方法在部分類別上的分類準(zhǔn)確性比較
提出了一種基于XLNet-BiGRU-Attention企業(yè)行業(yè)分類方法。該方法將企業(yè)經(jīng)營(yíng)范圍文本信息輸入到XLnet網(wǎng)絡(luò)生成語(yǔ)義表征向量,通過(guò)基于BiGRU和Attention的候選集生成網(wǎng)絡(luò)來(lái)有效獲取上下文依賴關(guān)系和文本特征,并構(gòu)建基于企業(yè)其他標(biāo)簽的鍵值對(duì)嵌入網(wǎng)絡(luò)來(lái)進(jìn)一步提升行業(yè)分類的效果,將鍵值對(duì)向量和語(yǔ)義表征向量進(jìn)行拼接得到融合的特征向量輸入到分類器,最終完成企業(yè)行業(yè)預(yù)測(cè)。實(shí)驗(yàn)結(jié)果表明該方法相較于其他幾種基線方法都取得了更好的行業(yè)分類效果,消融實(shí)驗(yàn)說(shuō)明了該方法所構(gòu)建的候選集生成網(wǎng)絡(luò)和鍵值對(duì)嵌入網(wǎng)絡(luò)的有效性。