陳鋼
(長三角信息智能創(chuàng)新研究院,安徽蕪湖 241000)
我國目前已有數(shù)千萬家企業(yè),并且每年都有大量新企業(yè)設(shè)立。市場監(jiān)督管理部門在企業(yè)注冊(cè)時(shí)都會(huì)強(qiáng)制要求其注明經(jīng)營范圍,但是從分散的經(jīng)營范圍中并不能直觀地得出該企業(yè)的行業(yè)歸屬[1]。除了上市公司會(huì)在網(wǎng)上公開自己的行業(yè)類別以外,其他大部分企業(yè)的行業(yè)類別都是未公開的。企業(yè)所屬行業(yè)由其經(jīng)營范圍描述而得,經(jīng)營范圍描述往往涉及到多個(gè)行業(yè)的描述,在現(xiàn)如今龐大的行業(yè)規(guī)模下人工進(jìn)行行業(yè)分類存在效率低下、準(zhǔn)確性不高等問題[2]。
行業(yè)分類自動(dòng)化的一般過程是從企業(yè)的經(jīng)營范圍文本中提取特征,然后使用分類器完成預(yù)測。企業(yè)經(jīng)營范圍文本需要向量化后才能作為分類模型的標(biāo)準(zhǔn)輸入。Word2vec、glove 等詞向量模型可以通過將自然語言中的詞轉(zhuǎn)換為稠密的詞向量嵌入到神經(jīng)網(wǎng)絡(luò)模型中,從而使神經(jīng)網(wǎng)絡(luò)模型可以獲取更多、更精確的語義信息,以提升分類的準(zhǔn)確率[3]。然而這類模型無法關(guān)注到上下文的關(guān)聯(lián)信息,在出現(xiàn)存在歧義的特征詞時(shí)可能無法正確表征,而包含大量先驗(yàn)知識(shí)的預(yù)訓(xùn)練語言模型可以有效解決這類問題[4]。門控循環(huán)單元(Gate Recurrent Unit,GRU)適合對(duì)文本建模、獲取文本全局的結(jié)構(gòu)信息[5]。注意力機(jī)制(Attention)可以為經(jīng)營范圍中重要的詞賦予更高的權(quán)重,進(jìn)而更好提取關(guān)鍵信息[6]?;诖耍岢鲆环N基于混合神經(jīng)網(wǎng)絡(luò)模型的企業(yè)行業(yè)分類方法,融合RoBERTa 預(yù)訓(xùn)練語言模型、GRU 網(wǎng)絡(luò)和注意力機(jī)制構(gòu)建候選集生成網(wǎng)絡(luò)和外部知識(shí)嵌入網(wǎng)絡(luò)。
為解決企業(yè)行業(yè)分類問題,通常會(huì)借助自然語言處理和機(jī)器學(xué)習(xí)的手段對(duì)經(jīng)營范圍進(jìn)行數(shù)據(jù)挖掘,從而自動(dòng)完成行業(yè)分類。主流分類方法分有兩種:基于機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法。基于機(jī)器學(xué)習(xí)的方法首先人工提取特征,然后將多個(gè)特征串聯(lián)起來組成一個(gè)高維度的特征向量,之后便可以使用傳統(tǒng)的機(jī)器學(xué)習(xí)的各種分類器,如樸素貝葉斯[7]、支持向量機(jī)、決策樹等完成行業(yè)分類。這種方法需要做大量的特征工程,特征的選取和分析方式復(fù)雜,需要耗費(fèi)較多的成本,并且這些特征都是針對(duì)常規(guī)文本分類問題提出的,不存在對(duì)具體問題的依賴,這就會(huì)造成前端特征與后端任務(wù)的脫節(jié),導(dǎo)致前端花費(fèi)大量精力構(gòu)思出來的特征可能根本與指定的任務(wù)不相關(guān)。另一種是基于深度學(xué)習(xí)的方法,如卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[8]、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[9]、基于長短期記憶的循環(huán)神經(jīng)網(wǎng)絡(luò)(Long Short Term Memory,LSTM)[10]完成自動(dòng)的特征提取和分類任務(wù)。相比行業(yè)門類,屬于不同行業(yè)小類的企業(yè)在經(jīng)營范圍描述上存在很多相似性,利用常規(guī)方法很難發(fā)現(xiàn)這種微小的差異,進(jìn)而較難作出正確的判斷。
使用深度學(xué)習(xí)方法雖然免去了一些人工特征提取的工作,但是由于經(jīng)營范圍的描述信息通常很分散,包含了多個(gè)行業(yè)的內(nèi)容,單從經(jīng)營范圍無法確定哪些信息對(duì)判斷行業(yè)類別是有效的。為克服上述行業(yè)分類方法的缺陷,提出一種基于混合神經(jīng)網(wǎng)絡(luò)的行業(yè)分類模型,首先將企業(yè)經(jīng)營范圍文本序列輸入RoBERTa 預(yù)訓(xùn)練語言模型,并將輸出的特征向量作為輸入到下一層網(wǎng)絡(luò)的語義表征向量;通過引入企業(yè)外部知識(shí),結(jié)合雙向門限循環(huán)神經(jīng)網(wǎng)絡(luò)(BiGRU)和注意力機(jī)制的外部知識(shí)嵌入網(wǎng)絡(luò),有效提高模型的理解層次,提升行業(yè)分類的準(zhǔn)確性。同時(shí),提出一種基于GRU 的候選集生成網(wǎng)絡(luò),通過GRU 生成分類候選集用于增強(qiáng)算法的分類能力,在此基礎(chǔ)上引入跳層連接機(jī)制,以解決深度網(wǎng)絡(luò)訓(xùn)練中的信息丟失和網(wǎng)絡(luò)退化問題。
行業(yè)分類模型主要由三個(gè)部分組成,如圖1 所示。語義表征部分使用RoBERTa 模型作為基本模型,該模型相對(duì)BERT 模型進(jìn)行了多項(xiàng)改進(jìn)。為了使RoBERTa 模型適用于中文環(huán)境下的企業(yè)行業(yè)預(yù)測,使用RoBERTa-wwm-ext 作為文本特征提取模型,并將企業(yè)經(jīng)營范圍文本序列輸入其中[11]。處理后的文本表征向量被送入到候選集生成網(wǎng)絡(luò),產(chǎn)生包含類別候選集的特征向量,外部知識(shí)作為補(bǔ)充信息,在使用BiGRU 向量化后與特征向量進(jìn)行拼接,得到融合的特征向量,融合后的特征向量最終輸入到分類器進(jìn)行類別預(yù)測,以實(shí)現(xiàn)行業(yè)類別預(yù)測。
圖1 模型結(jié)構(gòu)
候選集是一種對(duì)企業(yè)行業(yè)類別可能判斷的候選選項(xiàng)的集合,模型使用GRU 網(wǎng)絡(luò)作為候選集的生成網(wǎng)絡(luò)。GRU 使用門機(jī)制跟蹤序列狀態(tài),重置門和更新門共同控制當(dāng)前狀態(tài)要更新的信息量?;贕RU的候選集生成網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 候選集生成網(wǎng)絡(luò)結(jié)構(gòu)
經(jīng)過預(yù)訓(xùn)練模型編碼后的語義向量結(jié)果xt構(gòu)成集 合X={xt|t=1,2,…,n},將X與類別語義信息Cs={|i=1,2,…,m}作為模塊的輸入。更新門zt、重置門rt均由輸入向量xt與上一步隱藏狀態(tài)ht-1線性組合并經(jīng)過sigmod 激活函數(shù)非線性化處理后得到。候選狀態(tài)的計(jì)算方式與傳統(tǒng)的RNN 類似,由重置門rt與隱藏狀態(tài)ht-1的哈達(dá)瑪積和輸入向量xt線性組合后,經(jīng)過tanh 激活函數(shù)非線性化處理得到。新的隱藏狀態(tài)ht由更新門zt、隱藏狀態(tài)ht-1和候選狀態(tài)共同計(jì)算得到:
將不同時(shí)間節(jié)點(diǎn)隱藏狀態(tài)ht構(gòu)成集合H={ht|t=1,2,…,n,n+1,…,n+m},經(jīng)由全連接層以及softmax 函數(shù)后得到候選集C={ci|i=1,2,…,m}。對(duì)候選集使用全連接層進(jìn)行維度轉(zhuǎn)換,輸出與預(yù)訓(xùn)練語言模型同維度的結(jié)果VC={|t=1,2,…,n}。為了防止訓(xùn)練過程中網(wǎng)絡(luò)層數(shù)加深后可能存在的信息丟失和網(wǎng)絡(luò)退化問題,在候選集生成網(wǎng)絡(luò)中添加跳層連接[12],其主要過程是通過將網(wǎng)絡(luò)的輸入部分與輸出結(jié)果使用門控機(jī)制進(jìn)行相加,得到最終網(wǎng)絡(luò)輸出結(jié)果Vout:
其中,f(X)是主干網(wǎng)絡(luò),它是由多個(gè)網(wǎng)絡(luò)層組成的非線性變換得到的。
完成候選集生成后,構(gòu)建了基于企業(yè)描述信息的Query-Tag 預(yù)測模型。除了經(jīng)營范圍描述外,企業(yè)也包含大量其他存在相關(guān)性的標(biāo)簽,單純利用某一類標(biāo)簽可能存在難以理解某些模糊描述的情況,理解層次偏低。通過引入企業(yè)外部知識(shí),可以有效提高模型的理解層次,提升行業(yè)分類準(zhǔn)確性。因此,將企業(yè)其他信息作為外部知識(shí)信息引入分類模型,以鍵值對(duì)形式構(gòu)建出結(jié)構(gòu)化外部知識(shí)。輸入到模型中的結(jié)構(gòu)化知識(shí)庫表示為一個(gè)鍵值對(duì)列表:
其中,si表示企業(yè)信息對(duì)應(yīng)類型(例如企業(yè)名稱、注冊(cè)資本),vi表示對(duì)應(yīng)企業(yè)信息的具體內(nèi)容(例如安徽某有限公司、100 萬元人民幣)。
在單向神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,狀態(tài)是從前向后輸出的,難以抓取整個(gè)知識(shí)庫中的上下文信息。然而在文本分類中,當(dāng)前時(shí)刻的輸出可能與前一時(shí)刻的狀態(tài)和后一時(shí)刻的狀態(tài)都存在相關(guān)性。因此,使用BiGRU 網(wǎng)絡(luò)作為信息提取網(wǎng)絡(luò),為輸出層提供輸入序列中每一個(gè)點(diǎn)的完整上下文信息。注意力機(jī)制能選擇性地對(duì)這些外部信息進(jìn)行篩選并聚焦到有效信息上,因此在分類模型中還引入注意力機(jī)制來增強(qiáng)補(bǔ)充外部知識(shí)后的預(yù)測效果。外部知識(shí)嵌入網(wǎng)絡(luò)主要包括結(jié)構(gòu)化知識(shí)庫(Structured KB)、BiGRU 網(wǎng)絡(luò)和Attention 機(jī)制,外部知識(shí)嵌入網(wǎng)絡(luò)如圖3 所示。
圖3 外部知識(shí)嵌入網(wǎng)絡(luò)
將L經(jīng)過Embedding 得到向量L=[I1,I2,…,In]。向量L中的元素Ii分別輸入前向GRU 和反向GRU,得到前向隱藏狀態(tài)和反向隱藏狀態(tài),拼接前向和反向隱藏狀態(tài)得到BiGRU 的隱藏狀態(tài)對(duì)BiGRU 的隱藏狀態(tài)hi應(yīng)用注意力機(jī)制,并引入知識(shí)庫上下文向量u來衡量知識(shí)的重要性,從而得到有助于增強(qiáng)行業(yè)分類的外部知識(shí)向量V。最后,通過全連接網(wǎng)絡(luò)將外部知識(shí)向量V的維度轉(zhuǎn)換為與主干網(wǎng)絡(luò)相同維度的結(jié)果向量。
使用正確類別的負(fù)對(duì)數(shù)似然作為訓(xùn)練的損失函數(shù):
其中,j是企業(yè)E的分類類別。
使用基于CUDA 9.0 的深度學(xué)習(xí)框架PyTorch 1.1.0 搭建網(wǎng)絡(luò)模型,實(shí)驗(yàn)操作系統(tǒng)為Ubuntu 18.04,內(nèi)存32 GB,Intel(R)Core(TM)i7-7700CPU@3.60GHz,GeForce GTX 1080 Ti GPU。
為評(píng)估行業(yè)分類模型的有效性,構(gòu)建了由企業(yè)數(shù)據(jù)組成的數(shù)據(jù)集。數(shù)據(jù)集中的信息包括企業(yè)名稱、注冊(cè)資本、成立時(shí)間、經(jīng)營范圍、行業(yè)類別、行政許可、產(chǎn)品信息等。數(shù)據(jù)集中有60 000 條數(shù)據(jù),隨機(jī)選取了其中50 000 條數(shù)據(jù)作為訓(xùn)練集,5 000 條數(shù)據(jù)作為驗(yàn)證集,5 000 條數(shù)據(jù)作為測試集。
在超參數(shù)設(shè)置上,RoBERTa 模型的嵌入維度為768維,多頭注意力機(jī)制的設(shè)置為12 個(gè)注意力頭,隱藏層維度同樣設(shè)置為768維,隱藏層層數(shù)設(shè)置為12,詞匯表大小為21 128字,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),并且使用學(xué)習(xí)率優(yōu)化策略,每兩個(gè)epoch 學(xué)習(xí)率下降為原來的80%。為了更好地說明模型的分類性能,采用準(zhǔn)確率(acc)和F1 值作為評(píng)價(jià)指標(biāo)。
在數(shù)據(jù)集上與多種基線分類方法進(jìn)行了對(duì)比,對(duì)比結(jié)果如表1 所示。
表1 對(duì)比實(shí)驗(yàn)結(jié)果
1)機(jī)器學(xué)習(xí)方法
使用TF-IDF 和N-grams 作為特征提取方法,分別以機(jī)器學(xué)習(xí)方法MultinomialNB、SGD 和SVM 作為分類器對(duì)特征進(jìn)行分類。
2)深度學(xué)習(xí)方法
TextCNN[13]:使用卷積核窗口大小分別為2、3、4的三個(gè)卷積層和相應(yīng)的池化層提取特征并進(jìn)行拼接,以此來獲得更豐富、不同粒度的特征信息。
TextRNN[14]:使用經(jīng)過詞嵌入之后的詞向量作為輸入,經(jīng)過RNN 網(wǎng)絡(luò)和池化層進(jìn)行分類。
HAN[15]:使用基于單詞層面注意力機(jī)制的BiGRU模型和基于句子層面注意力機(jī)制的BiGRU 模型提取文本多層面的特征進(jìn)行文本分類。
XLNet-linear:采用預(yù)訓(xùn)練語言模型XLNet模型[16]提取特征,并使用linear 分類器進(jìn)行行業(yè)分類。
RoBERTa-linear:采用預(yù)訓(xùn)練語言模型RoBERTa模型提取特征,并使用linear 分類器進(jìn)行行業(yè)分類。
可以看出,RoBERTa-GRU-EKB 模型在兩個(gè)數(shù)據(jù)集上均取得了比其他基線模型更好的分類效果。在RoBERTa 的基礎(chǔ)上增加候選集生成網(wǎng)絡(luò)和外部知識(shí)嵌入網(wǎng)絡(luò),能夠有效提升行業(yè)分類性能。
為說明候選集生成網(wǎng)絡(luò)和外部知識(shí)嵌入網(wǎng)絡(luò)的有效性,定量地比較了是否使用候選集生成網(wǎng)絡(luò)和外部知識(shí)嵌入網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果。將未使用候選集生成網(wǎng)絡(luò)的結(jié)果命名為RoBERTa-EKB,將未使用外部知識(shí)嵌入網(wǎng)絡(luò)的結(jié)果命名為RoBERTa-GRU,對(duì)比結(jié)果如表2 所示。
表2 消融實(shí)驗(yàn)結(jié)果
由表2 可見,RoBERTa-GRU-EKB 模型在兩個(gè)數(shù)據(jù)集上的分類效果總是優(yōu)于RoBERTa-EKB 模型和RoBERTa-GRU 模型。圖4 展示了候選集生成網(wǎng)絡(luò)消融實(shí)驗(yàn)性能對(duì)比。圖4(a)中曲線②幾乎總是在曲線①之下,曲線④幾乎總是在曲線③之下;圖4(b)中曲線②幾乎總是在曲線①上方,曲線④幾乎總是在曲線③上方,這表明模型加入了候選集生成網(wǎng)絡(luò)后,其損失值和準(zhǔn)確率均優(yōu)于未加入候選集生成網(wǎng)絡(luò)的模型。因此,基于GRU 的候選集生成網(wǎng)絡(luò)可以有效提升分類準(zhǔn)確率。
圖4 候選集生成網(wǎng)絡(luò)消融實(shí)驗(yàn)性能對(duì)比
圖5 展示了候選集生成網(wǎng)絡(luò)消融實(shí)驗(yàn)性能對(duì)比。圖5(a)中曲線②幾乎總是在曲線①之下,曲線④總是在曲線③之下;圖5(b)中曲線②幾乎總是在曲線①上方,曲線④總是在曲線③上方,這表明模型加入了外部知識(shí)嵌入網(wǎng)絡(luò)后,其損失值和準(zhǔn)確率均優(yōu)于未加入外部知識(shí)嵌入網(wǎng)絡(luò)的模型。因此,外部知識(shí)嵌入網(wǎng)絡(luò)可以有效提升分類效果。
圖5 外部知識(shí)嵌入網(wǎng)絡(luò)消融實(shí)驗(yàn)性能對(duì)比
為更加直觀有效地展示行業(yè)分類效果,在實(shí)驗(yàn)部分給出了RoBERTa-GRU-EKB 模型測試結(jié)果的混淆矩陣熱力圖,如圖6 所示,圖6 中給出了部分類別預(yù)測準(zhǔn)確率各模型對(duì)比直方圖(其中A、B、C 等代表某個(gè)特定行業(yè)類別),圖中方格顏色深淺表示預(yù)測率大小,從圖6 可知對(duì)角線上的方格顏色較深,這表明RoBERTa-GRU-EKB 模型在每個(gè)類別上的分類性能均較好。
圖6 混淆矩陣熱力圖
該文提出了一種用于企業(yè)行業(yè)分類的混合神經(jīng)網(wǎng)絡(luò)模型,該模型采用RoBERTa 預(yù)訓(xùn)練語言模型提取企業(yè)經(jīng)營范圍的文本特征,使用候選集生成網(wǎng)絡(luò)與跳層連接模塊增強(qiáng)分類性能。此外,還利用BiGRU 與注意力機(jī)制實(shí)現(xiàn)了結(jié)構(gòu)化的知識(shí)庫嵌入,通過引入企業(yè)外部知識(shí)金額提升行業(yè)類別預(yù)測準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,該文提出的行業(yè)分類模型相較于其他幾種基線模型都取得了最好的分類效果。