鄭麗敏 喬振鐸 田立軍 楊 璐
(1.中國農業大學信息與電氣工程學院, 北京 100083; 2.食品質量與安全北京實驗室, 北京 100083)
近年來,食品安全問題頻發,為了更好地維護消費者合法權益,人們越來越重視食品安全法規問題[1],因此,研究開發食品安全法規自動問答系統具有重要應用價值。然而,食品安全法規問題涉及管理對象、法規內容、法規約束以及法規管理項目等,內容豐富且復雜[2-3],所以,法規問題的有效分類成為實現法規問答系統的關鍵[4]。
在傳統的分類方法中,每個樣本示例只屬于一個類別標記,即單標記學習[5]。文獻[6]提出TextCNN模型,將卷積神經網絡(Convolutional neural network, CNN)加入到自然語言處理任務中。隨后,深度學習[7-12]的方法被廣泛應用于單標簽文本分類任務中,取得了非常好的效果。但國內外關于多標簽文本分類問題尚處于研究階段[13]。
在問答系統的問題分類中,文獻[14-15]為深度學習在農業領域的文本分類提供了可行性的依據,但多為單標簽分類,且對食品安全法規領域的研究與應用尚顯不足。針對食品安全法規的相關問題,不同角度的分類往往涉及多個層次,每個層次同時包含多個類別。文獻[16]提出LEAM網絡模型,將文本分類的標簽轉換為語義標簽向量,從而使分類任務轉換為向量匹配任務。受該模型的啟發,根據食品安全法規問題特點引入BERT[17]預訓練模型,該模型以大量語料為基礎,采用自監督學習方法,可以得到較好的特征表示。針對具體問題,使用BERT特征可以明確地表達該問題的詞嵌入特征,因此,BERT可作為一個供其它方法遷移學習的模型,即特征提取模式。
針對目前單標簽文本分類方法存在的局限性,為了直觀反映食品安全法規問題的多義性,本文提出一種基于BERT-LEAM的多標簽文本分類方法。首先,采用多角度、分層次的多標簽標注方法將單個問題文本賦予多個標簽;其次,引入BERT遷移學習模型表示上下文特征信息,通過Attention機制學習標簽與文本的依賴關系,進行Word embedding的聚合,將標簽應用到文本分類過程中;最后,將常用方法與本文方法進行比較,得到驗證結果。以期實現食品安全法規問題的多標簽分類,為設計準確、高效的問答系統奠定基礎。
為了準確有效地分析用戶對于食品安全法規的需求[18],本文篩選出如表1所示業內公認的規模較大、可信度較高的5個公共法律咨詢服務網站以及常用的公共問答社區——“百度知道”。利用爬蟲技術爬取網站中有關食品安全法規的問答數據,共計7 936條。具體數據信息分布情況如表1所示。

表1 數據來源
本文直接爬取上述網站的食品安全法規相關問題數據,其中包含一部分重復問題數據,且具有與文本中心思想無關的標點、亂碼、語氣詞和特殊符號,為方便運算,上述實驗數據仍需進行清洗。此外,問題樣本數據中仍包含食品安全相關名詞的簡稱,如“QS(企業食品生產許可)”,與文本語義相關,為突出此類文本特征,仍需進行標準化操作,將其替換為漢語全稱。數據清洗和標準化具體操作為:①去除無關數字、字母、特殊符號。②去除標點及語氣詞。③替換名詞簡稱。④去除重復問題數據。經過預處理后,最終得到實驗數據為7 782條。
預處理完成,獲得有效數據,將其分為2部分,一部分作為BERT向量嵌入模型的輸入數據,無需進行分詞處理,另一部分用于驗證BERT特征表示模型效果,需要采用分詞操作。本文選用BERT預訓練模型作為文本分類模型的向量嵌入層,它是基于字符級別的文本特征表示方法,所以該實驗無需對數據集進行分詞。為了驗證BERT模型的特征表示效果,選取了MIKOLOV等[19]在2013年提出的預訓練詞向量工具Word2Vec作為對比方法。Word2Vec是基于詞級別的向量嵌入模型,為了確保對照實驗的效果最優,對數據集進行了分詞處理,將分詞之后得到的文本作為對照實驗的數據集。為了保證分詞結果的準確率,避免食品安全相關名詞被切分,在分詞過程中加載了食品安全法規詞典,該詞典由法規名稱、部門名稱、法規關鍵詞等名詞構成。
對食品安全法律法規相關問題進行分析,分析示例如圖1所示,其虛線框中為用戶提出的問題:“我在超市購買到過期飲品維權的話適用食品法96條還是適用消費者保護法55條”。
依照實際應用對法規問題從8個角度進行層次劃分,每個問題進行雙層次標簽標注,標簽層次類別劃分結果如表2所示。

表2 問題層次類別劃分
本文提出的模型主要由BERT文本特征表示層和LEAM標簽語義嵌入網絡層兩部分組成。將多個標簽與文本的組合轉換為單個標簽加該文本的形式,通過BERT嵌入層轉換為向量文本表示后,利用LEAM網絡模型計算獲得文本的最終概率分布,如圖2所示。
1.4.1BERT模型
BERT模型主要利用雙向Transformer結構捕捉語句中的雙向關系,記憶當前字的前、后字。Transformer是一種基于自我注意力機制的網絡,其編碼器結構如圖3所示。
編碼器的關鍵部分為自注意力機制(Attention),主要通過同一個句子中的詞與詞之間的關聯程度,調整權重系數矩陣來獲取詞的特征,公式為
(1)
式中Q、K、V——字向量矩陣
dk——embedding維度
多頭注意力機制通過多個不同的線性變換對Q、K、V進行投影,最后將不同的Attention結果進行拼接,計算公式為
MutiHead(Q,K,V)=Contact(head1,head2,…,headn)W0
(2)
其中
(3)
式中 MutiHead——多頭注意力機制
Contact——投影
W——權重矩陣
因此Transformer模型可以得到不同空間下的位置信息。
Transformer模型缺乏傳統神經網絡獲取整個句子序列的能力,因此,BERT模型在數據預處理前加入位置編碼,與輸入的向量數據求和得到每個字的相對位置。除了位置嵌入特征外,BERT模型對于輸入的文本還有WordPiece嵌入和分割嵌入2個嵌入特征。此外,BERT與傳統模型不同點在于,預訓練任務中,隨機遮蓋或替換一句話中的字詞,計算被遮蓋處的損失函數,此種操作便于捕捉詞語級別的表征。實驗選用了Google官方提供的12層Transformer的BERT模型,并選取BERT模型的1到12層輸出特征,設置問題文本最大長度為100,當問題內容相對較少時,在長度不足的位置補0。
1.4.2LEAM網絡模型
傳統文本分類流程中,直接將Word的embedding嵌入轉變為定長的向量表示,而LEAM模型在每個步驟均使用標簽信息(圖2)。如圖2中流程f0所示,模型學習了Label的embedding對Word的embedding影響,利用Label與Word之間的相關性進行embedding的聚合計算,計算公式為
G=(CTV)?
(4)
式中G——聚合計算結果
K——Label的類別數
L——Word長度
?——同位元素對應相乘
C——Label-embedding矩陣
V——Word-embedding矩陣
kl=‖ck‖‖vl‖
(5)
ck——第c個標簽向量嵌入
vl——第l個單詞向量嵌入
為了更好地獲取連續的Word之間的空間信息,模型引入卷積和ReLU激活函數,如圖2所示。用Gl-r:l+r衡量中心在l、長度為2r+1的Label-Phrase的相關性,第l個Phrase和k個Label的相似度向量計算公式為
ul=ReLU(Gl-r:l+rW1+b1)
(W1∈R2r+1,b1∈Rk)
(6)
式中Gl-r:l+r——以第l個詞為中心詞的片段
W1、b1——需要學習的參數
ul——相似度向量
R——標簽與單詞的共享向量空間
利用max_pooling得到最大相關系數,即ml=max_pooling(ul)。其中ml是長度為L的向量m中第l個元素。在獲得向量m的基礎上,經過softmax函數后得到Attention的系數,如圖2中的系數β。文本最終表示z通過基于標簽的Attention score加權詞嵌入得到,公式為
(7)
式中βl——第l個元素的Attention系數
針對本文中所研究的多標簽分類問題,模型將其拆解為M個單標記問題。訓練目標公式為
(8)
式中CE(ynm,f2(znm))——2個概率向量的交叉熵
N——類別數M——標簽數
ynm——類別標簽的概率表示
znm——類別標簽的文本特征表示
為了標簽起到增加類別判斷權重的作用,即相同類別的文本表示之間的距離小于不同類別的文本表示之間的距離。模型引入一個標簽的正則化項,公式為
(9)
(1)BERT-softmax模型:對BERT模型進行Fine-Tune,通過softmax激活函數計算標簽與樣本的差距,并輸出分類結果。
(2)TextCNN模型:文獻[6]提出TextCNN模型,將CNN在圖像領域中取得的成就應用到自然語言處理NLP任務中,與傳統機器學習方法相比,神經網絡會自己構建、選擇特征并分類,是端到端的訓練,可以達到一種聯動的效果,實現全局優化。
(3)VDCNN模型:文獻[20]提出的非常深度卷積神經網絡模型(Very deep convolution neural network, VDCNN),利用小尺度的卷積核池化操作,包含了29個卷積層,可以從簡單到復雜地提取文本特征。
(4)Self-Attention模型:文獻 [21]提出Self-Attention模型,自身進行Attention操作,改進了CNN模型只能捕捉局部文本特征,RNN模型難以并行化,且兩者缺乏對全局特征的理解等缺點。Self-Attention模型中每個詞與文本中所有詞均進行Attention計算,可以捕獲長距離依賴關系。
(5)CapsuleNet模型:文獻[22]提出了CapsuleNet膠囊網絡,該網絡引入動態路由,保留了文本特征的位置信息,解決了卷積神經網絡在識別實驗對象子結構特點的缺陷,從而保證句子語義不變。
(6)LEAM模型:參數較少,收斂速度快,其學習過程只涉及一系列的基本代數運算,因此,模型可解釋性較強,有效保證準確率的同時還降低了時間成本。
以上述模型為基礎,實驗對比Word2Vec與BERT 2種向量嵌入層的文本分類結果。
采用F1值和漢明損失[23](Hamming loss)作為性能評價指標。由于數據集中每個標簽之間的數據量不均衡,因此,將計算得出的F1值取加權平均值F1-W。計算公式為
(10)
(11)
(12)
式中P——精確率R——召回率
S——樣本數H——漢明損失值
Yi——真實標簽集合
△——異或運算符
F1值作為精確率(P)與召回率(R)的加權平均值,當出現精確率與準確率其中一個值為1而另一個值為0時這種極端情況時,F1值可以很好地避免這種情況對實驗結果的影響。F1-W值作為加權平均值,值越大多標簽分類效果越好。而H是衡量樣本中誤分標簽平均數量的指標,H值越小,說明誤分標簽數量越少,分類模型的效果越好。
2.1.1數據集劃分
實驗選取上述食品安全法規問題數據為研究對象,采用如圖1所示的分析方法,對經過預處理的所有數據依次進行層次和類別分析,并依據分析結果賦予問題文本單個或多個標簽,層次分析后的數據作為粗粒度多標簽數據集,類別分析后的數據作為細粒度多標簽數據集。2類數據集標簽情況見表3,其中粗粒度多標簽為表2中的劃分層次,細粒度多標簽為表2中的類別標簽。

表3 數據集標簽信息
表4為以上2種數據集中不同數量標簽的問題分布情況。本實驗中,2種數據集均將多標簽視為標簽組合類,采用StratifiedKFold[24]分層采樣方法對相同標簽組合下的數據進行訓練集與測試集劃分,確保劃分結果中各標簽組合類之間的比例與原始數據集相同。訓練集與測試集的劃分比例為4∶1,訓練過程中在訓練集中隨機抽取10%進行驗證。

表4 2種數據集的問題分布情況
2.1.2參數設置
為防止模型過擬合,設定全連接層單元丟棄比例為0.5。伴隨訓練輪次增加,梯度下降無法收斂至全局最優點,因此,設定學習率衰減系數為0.9,學習率衰減步長為1 000,即每間隔1 000次訓練,學習率乘以衰減系數為新的學習率。
實驗選用Top_K_Categorical_Accuracy[25]性能評估函數作為訓練時評價模型準確率的參數,即測試文本的真實值標簽在所有類別標簽預測準確率中排前k名。為保證訓練模型的最優化,實驗測試了選取不同k時,測試準確率產生的變化,結果見表5。由表5可知,當k=5時,分類效果最佳。分類模型訓練可以離線完成,因此,模型應更加關注結果的準確率。

表5 k值的確定
選用Adam[26]算法進行模型的優化,該優化算法是對隨機梯度下降算法的擴展,計算效率高,占用內存少,適合解決例如文本分類這種特征較為稀疏的問題。
本文所有實驗均在主頻為2.9 GHz的i5-9400F處理器和顯卡為NVIDIA GeForce GTX1660 super的計算機上進行,采用的神經網絡模型使用版本為2.2.4的Keras進行搭建。實驗以2.1.1節所述的粗、細粒度多標簽數據集為基礎,選取1.5節所述的模型與本文模型進行對比。細粒度標簽數據集實驗結果如圖4和表6所示。

表6 細粒度多標簽H
由圖4和表6可知,BERT-LEAM模型F1-W值為79.81%,H為0.288 9,分類對比效果表明,BERT作為向量嵌入層進行文本特征表示的方法明顯優于Word2Vec,尤其對LEAM模型分類效果的提升更為顯著。與BERT對接的其他網絡相比,LEAM模型將BERT的F1-W值提高了4.89個百分點,H減小了0.343 4,其優勢更為明顯。與直接對BERT進行Fine-Tune的方法相比,其他對接分類網絡的方法均提升了分類效果。
實驗方法首先將多標簽問題轉換成單標簽多分類問題,標簽數量較多,導致樣本數據極不均衡,從而導致實驗結果F1-W與H效果較差,實驗選取粗粒度多標簽數據集進行了對比,來驗證BERT-LEAM模型方法的魯棒性,實驗結果如圖5和表7所示。
由圖5和表7可知,BERT-LEAM模型F1-W值為93.35%,H為0.122 6,對粗粒度多標簽數據集的分類效果也明顯優于其他模型。實驗結果表明,無論是基于粗粒度多標簽數據集還是細粒度多標簽數據集,本文采用的BERT-LEAM模型均獲得了分類的最優效果。

表7 粗粒度多標簽H
由于分類模型的訓練可以離線進行,實驗對比了5種采用不同嵌入類型的模型在1 556條粗標簽測試數據上的響應時間,對比結果如表8所示。

表8 模型測試響應時間
由表8可知,無論分類網絡選擇何種嵌入類型,與其他3種模型對比,Self-Attention模型和LEAM模型響應時間均較低,其中Self-Attention模型主要計算為自身進行Attention,結構相對簡單,LEAM模型的參數較少,收斂速度快,時間較短的同時仍能保證分類準確率。但是,綜合細、粗粒度多標簽數據集上的表現,BERT-LEAM模型的分類效果更好。響應時間較長的TextCNN模型、VDCNN模型和CapsuleNet模型3種模型中,一維卷積層的TextCNN模型響應時間明顯優于VDCNN模型和CapsuleNet模型,VDCNN模型為深層的卷積神經網絡,卷積層數較多,因此,測試響應時間最長。CapsuleNet模型網絡神經元輸出由標量變為矢量,保留了子結構的位置特征,模型計算量較為復雜,因此測試響應時間相對較長。
除分類網絡不同以外,預訓練模型的選取也會影響模型的測試響應時間。實驗選用BERT向量嵌入模型,該模型為動態向量表征方法,能夠根據文本上下文語義特征生成句向量,輸出向量為768維,且計算參數較多,分類模型的響應時間相對較長。對照實驗選用Word2Vec預訓練向量工具,該工具為固態向量表征方法,當分類模型在訓練或測試過程中,加載預訓練完成的詞向量,且該嵌入層輸出向量為300維,計算量較小,因此時間成本較少。但是,綜合兩種嵌入模型在細、粗粒度多標簽數據集上的分類表現,BERT模型明顯優于Word2Vec模型。與Word2Vec模型相比,BERT在LEAM分類網絡上將F1-W值分別提高了10.43、6.99個百分點,在Self-Attention分類網絡上將F1-W值提高了8.19、4.82個百分點。因Word2Vec為固態向量表征模式,無法解決一詞多義問題,導致分類效果較差,而BERT模型動態生成句向量,可有效規避詞語多義性對分類效果的影響。
實驗分析了細粒度多標簽分類效果相對于粗粒度多標簽分類效果降低的原因,統計了測試集中不同量級標簽的分布情況,共計83種細粒度標簽類別,樣本數量大于100的標簽為9種,數量處于50~100之間的標簽有7種,數量在10~50之間的標簽有23種,包括50%以上的細粒度多標簽樣本數量在10個以下,其中大部分為食品類別標簽,該類別標簽所含樣本數量和特征較少,導致實驗結果不均衡,進而造成測試結果的F1值在50%以下。另一個重要原因是,細粒度多標簽分類的類別明顯多于粗粒度分類,從而使得細粒度分類中每一類的樣本數相對較少,進而導致細粒度標簽數據集樣本分布不均,分類效果較差。
(1)提出了針對食品安全法規問題的多標簽標注方法,并應用到文本分類任務中,有效實現了食品安全法規問題多角度、多層次的信息挖掘,切實改善了傳統單標簽問題分類數據特征單一、信息表達不完整的問題。
(2)提出了基于BERT-LEAM模型的多標簽分類方法,該方法能夠滿足問答系統的實際需求,可有效對食品安全相關問題進行自動分類?;贐ERT-LEAM模型的分類方法在細粒度標簽數據集和粗粒度標簽數據集上F1-W值分別達到了79.81%和93.35%,無論數據量還是數據特征,其分類效果均優于其他分類模型,有效實現了食品安全相關問題的多標簽文本分類。