?

基于多任務學習的IT運維服務需求語義解析

2024-03-13 13:10許明陽劉振元王承濤
計算機集成制造系統 2024年2期
關鍵詞:命名意圖運維

許明陽,劉振元+,王承濤

(1.華中科技大學 人工智能與自動化學院,湖北 武漢 430074;2.圖像信息處理與智能控制教育部重點實驗室,湖北 武漢 430074;3.武漢問道信息技術有限公司,湖北 武漢 430040)

1 問題的提出

隨著新一代IT應用廣度和深度的不斷加強,IT運維逐漸成為企業和信息服務部門普遍關注卻不堪重負的問題。其中,作為服務提供者與用戶之間的橋梁,IT運維服務臺的主要職能為:對用戶的需求提供及時的辨識、分析和響應,最終形成服務任務清單。以人工坐席為主的客服服務臺存在工作重復性高、服務不及時、人力需求大等問題[1],對此IT服務商開發了許多端到端的自動化服務平臺。例如,IBM先后設計和開發出了工單分析與處理系統(System for Ticket Analysis and Resolution,STAR)[2]、IT工單自動推薦智能系統(An Intelligent System for online IT Ticket Automation Recommendation,AISTAR)[3]等工單自動推薦系統,可以及時為重復和相似的問題提供解決方案。有些服務平臺則利用文本分類[4]技術將運維工單自動分派給相應的運維人員。然而實際上,一些簡單重復的技術支持并不總是需要通知運維人員來解決,隨著系統自動化程度的提高,一些系統已經具備自主處理請求的能力。例如,對于用戶提出的“重置密碼”的請求,系統在收集到用戶的賬戶信息、關聯的應用軟件信息后,可以自動執行重置密碼操作。從實現智能IT服務臺的需求出發,本文提出一種IT運維服務領域用戶語義解析方法,將用戶的需求文本轉化為結構化的語義表達,從而為IT服務臺的進一步任務分解和工作分派提供基礎。該方法具體分為意圖識別(Intention Recognition,IR)和命名實體識別(Named Entity Recognition,NER)兩個子任務。

意圖識別用于確定用戶的基本需求,屬于文本分類任務。目前IT運維服務領域意圖識別的相關研究主要集中在特征提取以及各種傳統的機器學習方法[5-8]。人工提取特征與規則的方法擴展和遷移性差,近年來,深度神經網絡也被用來處理自然語言,并取得了較好的效果。IBM公司[9]曾采用卷積神經網絡(Convolutional Neural Network,CNN)對用戶的IT運維請求進行分類;劉鵬程等[10]在神經網絡模型中加入注意力機制,尤其關注故障件和故障模型兩類關鍵特征。

命名實體識別是一類序列標注任務,用于提取文本中的關鍵信息。IT運維服務領域命名實體識別相關的研究以軟件、設備、故障現象等實體的識別為主。HAN等[11]指出用戶通常會對軟件實體起別名或用縮略語,并采用雙向長短時記憶網絡(Bi-directional Long Short-Term Memory,BiLSTM)等深度學習模型進行識別;歐一鳴等[12-13]采用預先構建的知識圖譜提取文本中的設備和故障現象實體。中文語境下的IT運維文本中存在大量英文詞語,這些英文詞語大概率為需要識別的實體,如“VPN”“OA系統”,而動詞、名詞通常最能表征一個句子的語義,因此本文在模型中加入包含英文類詞性在內的詞性特征。另外,本文還將IT運維領域實體詞典作為先驗信息加入模型[14-15],將知識驅動的詞典方法和數據驅動的深度學習方法相結合。

在深度神經網絡模型中,首先通過詞嵌入的方法將文本轉化為向量形式。常用的詞嵌入技術有Word2vec,Glove等。然而傳統的靜態詞向量無法根據語境動態變化,也無法解決一詞多義的問題。2018年,Google公開了一種基于轉換器的雙向編碼表征(Bidirectional Encoder Representations from Transformers,BERT)模型[16],解決了語言的多義性,其除了可以對文本直接編碼外,還可以利用預訓練模型在下游任務中進行微調,在小樣本上也可以取得較好的效果[17]。IT運維領域暫無公開的數據集,數據的獲取和標注需要大量的人力成本,使用預訓練模型可以有效解決這一問題。

除此之外,考慮到意圖識別與命名實體識別兩個任務之間的關聯性,如果一句話中存在“軟件”類實體,則這句話的意圖大概率是“軟件安裝”或“軟件異?!?而不是“設備配送”,反之亦然。因此,本文采用多任務學習模型,通過參數共享機制將各個子任務結合起來[18]。常見的基于BERT的多任務學習通常共用一個編碼層,然后分別進行解碼[19-21],然而當輸入序列融入其他特征時,難以將這些特征傳遞給意圖識別模塊。因此,本文對常見的基于BERT的多任務模型的參數共享方式進行改進,使意圖識別模塊也可以共享這部分信息。

表1所示為語義解析的具體示例。對于“總部大樓301室,送一個無線鼠標過來”這個服務請求來說,通過意圖識別可以確定其意圖是“配送設備”,通過命名實體識別技術可以提取出需要配送的設備是“無線鼠標”,配送地點是“總部大樓”的“301室”。

表1 語義解析示例

綜上所述,本文提出一種IT運維服務領域用戶語義解析方法。為提高模型的識別性能,在MBBC(multi-BERT-BiLSTM-CRF)基準模型上,通過在編碼層融入詞性特征和實體詞典特征增強對領域語言特征和領域知識的學習;同時在多特征融合的基礎上,對MBBC模型的參數共享方式進行改進,提出增強的MBBC(Enhanced-MBBC,EMBBC)模型,以增強兩類任務在下游參數之間的共享能力。

2 問題描述

在IT運維服務中,用戶通過文本的形式向服務臺提出服務需求,這類文本被稱為需求文本,可以表示為T={t1,t2,…,tL},其中ti表示文本中的第i個字,L為文本的長度。

意圖識別常被看作是一項文本分類任務[22],即假設用戶的意圖存在于一系列預定義的類別中。假設存在N類意圖C={c1,c2,…,cN},其中ci表示第i類意圖,意圖識別就是根據用戶的需求文本,將用戶的意圖劃分到預定義的類別中。本文需要識別的意圖共17類,包括企業大部分的日常運維服務需求,總體分為服務請求和故障問題兩大類。

命名實體識別[23]實際上是一類序列標注任務,用于提取用戶需求文本中的關鍵信息。假設存在M類實體E={e1,e2,…,eM},其中ei表示第i類實體,每一類實體都采用BIO標記方法,B表示實體的開始,I表示實體剩下的部分,O表示非實體,實體標注示例如表2所示。命名實體識別就是將用戶需求文本T中的ti映射到對應的實體標簽。本文需要識別的命名實體共7類,除了IT運維相關的設備、實體、故障現象以及涉及的人員類實體,對于需要上門的服務還需要識別地點信息,本文地點信息具體到區域、樓、房間。

表2 命名實體BIO序列標注示例

3 模型結構

本文采用EMBBC模型聯合學習意圖識別和命名實體識別任務。模型結構如圖1所示,包括BERT共享層、意圖識別模塊、命名實體識別模塊3部分,其中意圖識別模塊和實體識別模塊共享BERT編碼向量。意圖識別模塊通過Softmax激活函數進行解碼得到意圖類別;命名實體識別模塊融入詞性特征和實體詞典特征,并依次通過BiLSTM和條件隨機場(Conditional Random Field,CRF)進行解碼得到實體標簽序列。除了共享BERT編碼向量外,EMBBC模型通過Hadamard乘積共享兩個模塊之間的其他下游參數。

3.1 BERT共享層

為了將用戶的需求文本轉化為計算機可以處理的向量形式,本文采用Google提供的中文BERT預訓練模型,包括12層編碼層、768個隱藏單元和12個自注意力頭部。中文BERT模型在大規模無標簽的《人民日報》數據集上預訓練得到,將其應用在IT運維服務領域驗證其適用性。在BERT模型中,輸入文本的編碼向量為3個詞嵌入特征的疊加(如圖2),包括通過WordPiece得到的字符嵌入,用于區分兩個句子的分割嵌入和表示字的位置信息的位置嵌入。

在WordPiece中,對文本的切分按照預定義的詞典進行,Google提供的中文詞典以中文漢字為單位,同時包括部分常用英文單詞,切分時默認去掉空格、換行符等空白字符。除此之外,因為BERT的輸入可以是一個句子,也可以是兩個句子,所以會在整個輸入的開頭加入特殊標記[CLS],用于得到整個輸入的編碼向量,并在每個句子的結尾加入特殊標記[SEP],用于區分兩個句子。假設輸入文本的編碼序列為[t[CLS],t1,…,tL,t[SEP]],通過BERT得到的編碼為

(1)

式中:n為編碼層的個數;ti∈R,R為BERT的隱藏層單元個數。通過BERT模型得到的編碼向量可以取代Word2vec等詞嵌入,作為共享編碼輸入后續兩個子任務中。

3.2 意圖識別模塊

意圖識別實際上是一類文本分類任務,即將整個句子劃分到預定義的類別中。而BERT模型的[CLS]位編碼向量就是對整個句子的編碼,將其作為句子特征輸入到一層激活函數為Softmax的全連接層進行解碼,從而實現意圖識別。

yintent=Softmax(Wintent·xCLS+bintent)。

(2)

式中:Wintent和bintent為可訓練的模型參數;Softmax為激活函數,

(3)

3.3 命名實體識別模塊

3.3.1 詞性與實體詞典特征

表3 詞性特征與實體詞典特征示例

最后,將詞性特征、實體詞典特征與BERT編碼向量拼接,然后饋送給上下文編碼層,其中第i個字符的向量

(4)

3.3.2 上下文編碼層

文本的上下文信息通常采用循環神經網絡(Recurrent Neural Network,RNN)來提取,長短時記憶網絡(Long Short Term Memory,LSTM)是RNN的一種變體,其通過加入門控機制解決RNN梯度爆炸和梯度消失問題。對于命名實體識別任務,句子中的一個實體既和句子的前文有關,也和句子的后文有關,LSTM模型只能捕捉一個方向的依賴關系,而BiLSTM將兩個不同方向LSTM模型的輸出進行了拼接,可以更好地捕捉前后文特征[25]。

假設上一步得到的特征向量為X={x1,x2,…,xL},LSTM網絡中的存儲單元更新過程定義如下:

it=σ(Wixt+Uiht-1+bi);

(5)

ft=σ(Wfxt+Ufht-1+bf);

(6)

ot=σ(Woxt+Uoht-1+bo);

(7)

(8)

(9)

ht=ot⊙tanh(ct)。

(10)

式中:σ表示Sigmoid函數;⊙表示元素乘法;t表示時間步;it表示輸入門;ft表示遺忘門;ot表示輸出門;ct表示單元狀態;ht表示隱藏狀態;W,U,b為可訓練參數。

單向LSTM只能捕獲句子的前向語義關系或后向語義關系,而BiLSTM可以捕獲句子的雙向語義關系,其模型結構如圖3所示,圖中包括兩個并行的不同方向的LSTM,在輸出端將兩個LSTM的輸出串行拼接得到雙向語義特征st,計算公式如下:

(11)

(12)

(13)

3.3.3 解碼層

序列的標簽是有約束關系的,例如O標簽后面不能跟隨I標簽,句子的開頭不能是I標簽。全連接輸出層對序列中的每一個元素進行獨立預測,不能考慮這種約束關系,因此本文采用CRF獲得全局最優的標記序列。

假設CRF輸入序列X′={x′1,x′2,…,x′L},實體的標簽序列Y={y1,y2,…,yL},標簽序列的得分為

(14)

式中:Ayi,yi+1為標簽yi轉移到標簽yi+1的概率;Pi+1,yi+1為輸入序列中第i+1個字對應標簽yi+1的概率。標簽序列Y的概率為

(15)

式中Y*為所有可能的標簽序列集合。訓練時,模型求解參數使p(Y|X′)最大化。預測時,通過Viterbi算法將得分最高的序列yentities作為最終的標注結果,

(16)

3.4 多任務建模

常見的基于BERT的多任務模型通常只在編碼層共享參數,由于在命名實體識別模塊中加入了詞性特征和實體詞典特征,為了與意圖識別模塊共享這部分信息,對通用模型進行了改進。如圖1所示,采用Hadamard對意圖識別模塊和命名實體識別模塊的編碼向量進行交叉相乘:

hintent=hCLS⊙hmean;

(17)

(18)

對于多任務學習,需要對子任務進行聯合優化,即將各個子任務損失函數的加權和作為總損失函數,訓練時對總損失函數進行迭代優化。其中,意圖識別采用交叉熵損失函數。假設共有N類意圖,則意圖識別損失函數

(19)

實體識別的損失函數是對實體標簽序列的概率值取負對數,即

(20)

損失函數L為兩者的加權和,即

L=a×Lintent+(1-a)×Lentites,

a∈(0,1)。

(21)

式中a和1-a是兩個子任務的權重,決定了不同子任務在訓練中的重要程度。

4 數據集和實驗

4.1 數據集

本實驗數據來自某企業IT運維服務中產生的工單,共8 903條數據,通過人工整理得到意圖識別樣本數分布如表4所示,實體分布如表5所示。其中共17類意圖、7類實體。

表4 意圖識別樣本分布

表5 命名實體分布

從表4可見,不同意圖之間樣本分布差距較大,“應用配置變更”的服務請求占大多數,“回收設備”和“激活軟件”的請求則比較少,這和企業的實際運行情況相關。對比每一類樣本的平均長度和最大長度可以發現,“開通賬號”“應用配置變更”“開通訪問權限”的樣本長度差距比較大,但均屬于短文本范圍。從表5可見,軟件類實體出現的概率較大,其為所有實體中變化最大的一類實體,不同用戶對同一類軟件的表述相差很大,例如“windows系統”也可以表達為“win系統”或“windows”。

4.2 評價指標

考慮到樣本分布對多分類問題的影響,實驗采用準確率(Accuracy意圖)和加權宏平均F1值(F1w)作為意圖識別結果的評價指標,計算公式如下:

Accuracy意圖=

(22)

(23)

式中:N為總類別數;F1i為第i類意圖的F1值;wi為第i類意圖樣本數占總樣本數的比例。

用F1值(F1實體)作為命名實體識別的評價指標,計算公式如下:

(24)

(25)

(26)

4.3 實驗設置

文本在操作系統為Ubuntu 18.04、顯卡為NVIDIA T4、內存為15 GB的服務器上進行實驗。模型搭建使用Keras深度學習框架;每條輸入序列的填充長度為50;訓練使用Adam優化算法,訓練批次大小(batch size)為32,訓練輪次(epoch)為20;BERT模型使用Google在GitHub上開源的中文預訓練模型,共12個編碼層、768個隱藏單元和12和自注意力頭部;學習率為1×10-5;BiLSTM每層的隱藏神經元個數為128;Doupout層的隨機丟棄率為0.5;意圖識別和命名實體識別任務的損失函數之比為0.5∶0.5;詞性特征的嵌入維度為50,實體詞典特征的嵌入維度為15。具體超參數設置如表6所示。

表6 超參數設置

5 結果及分析

5.1 模型對比

實驗將數據集以8∶1∶1的比例劃分為訓練集、驗證集和測試集,其中訓練集用來訓練深度神經網絡模型,驗證集用來在訓練的過程中調節參數,測試集用于測試模型效果。在BERT誕生之前,通常用CNN和RNN兩種神經網絡模型及其變體進行意圖識別和命名實體識別。為對比BERT模型與這兩種基線模型在IT運維服務領域語義解析任務中的性能,本文分別用CNN,BiLSTM,BERT模型進行對比實驗。其中,CNN模型采用文本卷積神經網絡(Text Convolutional Neural Network,TextCNN),包括大小分別為2,3,4的3個并行的卷積核,特征向量為3次卷積結果的串聯拼接;BiLSTM隱藏層神經元的個數為128,特征向量為兩個方向向量串聯拼接。除此之外,CRF可以對序列標簽有一定約束,因此將CRF也作為一項對比變量加入實驗。表7所示為各模型在單任務上的實驗結果,其中以CRF為輸出的模型只檢驗命名實體識別結果。

表7 單任務模型實驗對比 %

本文采用微調的方式,使用BERT預訓練模型。實驗結果表明,相對于TextCNN,BiLSTM基線模型,BERT對意圖識別的準確率和加權F1值以及命名實體識別任務的F1值都有顯著提升。對于意圖識別任務,BERT比TextCNN提升4.6%的準確率和4.89%的F1值,比BiLSTM提升6.51%的準確率和6.49%的F1值。對于命名實體識別任務,BERT比TextCNN提升2.67%的F1值,比BiLSTM提升4.03%的F1值。除此之外,在命名實體識別任務中,CRF對結果提升較大,其中TextCNN-CRF比TextCNN提升2.45%的F1值,BiLSTM-CRF比BiLSTM提升5.82%的F1值。在BiLSTM-CRF的基礎上加入BERT得到BERT-BiLSTM-CRF,使F1值提升了3.64%。

在最優模型BERT-BiLSTM-CRF的基礎上,將詞性特征和實體詞典特征應用到微調的BERT模型中,驗證其對命名實體識別任務的影響,實驗結果如表8所示。當添加詞性特征時,F1值從90.45%提升到91.16%;當添加實體詞典特征時,F1值提升到91.65%;當同時添加這兩種特征時,F1值可以達到92.07%。由此說明,融合詞性和實體詞典特征可以增強模型對詞法信息和領域知識的學習。除此之外,這兩種特征不需要基于大量的領域語料庫進行提取,因為一個采用通用詞性標注器,另一個采用先驗知識和外部資源。為了將領域知識融入模型,有很多將詞嵌入和字嵌入進行融合的模型,本文沒有這樣做,因為這需要大量的領域語料庫來訓練Word2vec等詞嵌入模型。

表8 詞性特征和實體詞典特征對NER的影響 %

由于意圖識別和命名實體識別在語義解析任務中有一定的關聯性,本文在融合詞性特征與實體詞典特征的基礎上,構建了3個多任務模型進行對比,分別是基于TextCNN+BiLSTM-CRF的多任務模型、MBBC模型和文本提出的EMBBC模型,表9所示為這3種多任務模型的實驗結果??梢?與單任務模型相比,多任務模型在兩類任務上均有一定提升,而EMBBC模型的結果最優,其中意圖識別的準確率達到97.19%,命名實體識別的F1值達到93.16%。這些結果說明,本文所提EMBBC模型可以增強兩個任務之間的信息共享能力。

表9 融合詞性特征與實體詞典特征的多任務模型實驗對比 %

5.2 錯誤分析

為了對語義解析的結果進行定性分析,計算每一類意圖和每一類實體的識別結果,如表10和表11所示。

表10 意圖識別結果分類統計 %

表11 命名實體識別結果分類統計 %

續表11

在意圖識別結果中可見,“安裝軟件”“連接網絡”“回收設備”“激活軟件”和“忘記密碼”類的各項指標均達到100%。對比表5可知,“激活軟件”類識別較好的原因可能是樣本量大,而剩下的幾類在小樣本上也能得到很高的F1值,因為這幾類文本的特征詞比較明顯,例如“聯網”“回收”“激活”“密碼”等詞,在對應意圖中出現的概率很大而在其他意圖中出現的概率很小。從中隨機抽出一些具有代表性的錯誤結果,如表12所示。

表12 意圖識別錯誤結果示例

在第1句中,關鍵詞“賬號”在“開通賬號”意圖中出現的概率很高,因此被分錯;第2句屬于歧義問題,“無法訪問”在該句中的意思為“無法登錄”,模型沒有很好地識別出這一點;第3句也是因為“數據”屬于“應用數據錯誤”類的關鍵詞,因此被錯分。

從表11可見,各類實體的F1值相差不大,從中隨機抽出一些具有代表性的錯誤結果,如表13所示。

表13 命名實體識別錯誤結果示例

在第1句中,雖然出現了兩個軟件類實體“WIN7”和“WIN10”,但是其意圖是“安裝軟件”,真正應該被識別出來的軟件類實體應該是“WIN10”,模型錯誤地識別出了“WIN7”;在第2句中,模型沒有能夠識別出“故障現象”這個實體,這類錯誤在每一類實體中都有出現,影響了模型的召回率;在第3句中,“打印機掃描一體機”屬于一個整體,因為在某些文本中,“打印機”和“掃描一體機”都屬于設備類實體,所以模型錯誤地將其識別為兩個實體。

綜上所述,模型對模糊語義和歧義問題的學習還不夠好,出現概率較小的樣本類型容易被出現概率較大的樣本類型影響。因此,今后研究可以考慮構建IT運維服務領域知識圖譜進行語義推理,輔助IT運維服務領域語義解析。

6 結束語

本文從實現智能IT服務臺的需求出發,通過分析IT運維服務領域語義解析的相關研究背景,提出一種IT運維服務領域語義解析方法,包括意圖識別和實體識別兩個任務。在融合詞性特征與實體詞典特征的基礎上,通過EMBBC模型對意圖識別和命名實體識別進行聯合學習。實驗結果表明,融合詞性和實體詞典特征能夠在一定程度上提升識別結果,EMBBC模型比MBBC模型更擅長捕捉意圖和命名實體之間的關聯。意圖識別和命名實體識別屬于語義解析的兩項基本任務,因此本文方法不僅適用于IT運維服務領域,未來還可根據其他服務領域的特點進行適當改進,應用于相應領域的智能服務系統中。

此外,在對錯誤的識別結果進行分析后發現,本文構建的模型還不能很好地解決語言的模糊性和歧義性。后續研究可以考慮構建IT運維服務領域知識圖譜進行輔助識別,還可以考慮研究IT運維服務領域實體的語義相似度,以實現相同實體的歸一化。

猜你喜歡
命名意圖運維
原始意圖、對抗主義和非解釋主義
陸游詩寫意圖(國畫)
命名——助力有機化學的學習
制定法解釋與立法意圖的反事實檢驗
運維技術研發決策中ITSS運維成熟度模型應用初探
風電運維困局
有一種男人以“暖”命名
為一條河命名——在白河源
雜亂無章的光伏運維 百億市場如何成長
基于ITIL的運維管理創新實踐淺析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合