姬澤陽, 楊春剛, 李富強, 歐陽穎, 劉祥林
(1. 西安電子科技大學通信工程學院, 陜西 西安 710071; 2. 西安電子科技大學杭州研究院,浙江 杭州 311200; 3. 中國電子科技集團公司數據鏈重點實驗室, 陜西 西安 710068)
隨著網絡用戶大幅增長,通信網絡規模和協議棧種類隨之增加,傳統網絡中依靠管理者手動配置進行網絡運維的方式已經無法適用,經常會出現人為導致的錯誤。因此,實現網絡的自動配置、自動管理和自動優化至關重要[1]。意圖驅動網絡關聯用戶意圖和網絡資源,弱化了用戶對底層網絡知識的要求,通過意圖轉譯、驗證、優化和部署等實現網絡自動配置,并實時檢測網絡狀態,實現網絡的動態優化,為解決傳統網絡管理問題的自動性、時效性和魯棒性等提供了解決方案[2-7]。
現有意圖驅動的網絡管理方案仍存在諸多問題。例如,若要使用可編程的高級語言表達意圖,管理員需要了解網絡知識,學習不同的編程語言[3];在基于特定參數[8-9]表達意圖時,可能會導致參數冗余,占用過多的網絡資源;使用自然語言[1,4]或是人機交互[4]的方式表達意圖,將意圖轉譯為網絡策略,簡化了用戶的操作流程;然而該策略不具備學習用戶表達習慣的能力,而且增加新的網絡參數時,需要將新的參數手動添加到數據庫中,且隨著用戶意圖類型和數量的不斷增長,意圖存儲與復用愈發困難。
針對上述問題,本文介紹了一種基于自然語言處理與知識圖譜相結合的意圖驅動網絡表征系統,包括意圖輸入層和意圖表征層。意圖輸入層使用自然語言處理將用戶意圖轉化為文本意圖,意圖表征層則提取文本意圖的關鍵參數,以知識圖譜的形式保存,實現知識推理和用戶意圖的復用。具體地,本文的貢獻如下:
(1) 設計了一種新的意圖表征系統,使用自然語言技術處理用戶意圖,并將意圖表征的結果以知識圖譜的形式保存,形成標準、統一的語法規則,有利于解決多類意圖表征的沖突問題。
(2) 用戶可選擇語音或文本等多種形式智簡表達異構意圖,系統將語音識別結果和用戶輸入的文本進行檢錯和糾錯處理,避免由于輸入錯誤而導致網絡配置異常。
(3) 將實體參數知識庫以知識圖譜的形式保存,有利于知識推理,在參數映射失敗時,可以通過相似度檢測得到實體參數,不斷學習用戶的表達習慣,提高意圖表征的成功率。
本文是對意圖表征流程和系統的有效改進。第1節介紹了意圖表征的背景和研究進展;第2節介紹了意圖表征的系統和規范化設計。第3節介紹了意圖表征系統的實現。第4節通過實驗驗證了融入文本檢錯、糾錯和相似度檢測對提高意圖表征所起到的效果。第5節是對本文的總結。
意圖表征規范化包括意圖描述語言規范化和意圖表征形式規范化。隨著人工智能的發展,意圖的輸入形式逐漸由格式化的網絡語言發展為自由輸入的自然語言,同時意圖表征的形式也逐漸向規范化、可視化和語義方向發展。
在意圖驅動網絡中,意圖是對用戶期望的準確表達,是對網絡策略的抽象描述,將作為意圖驅動網絡的輸入。意圖表征是將用戶意圖轉化為規范化的意圖。因此,意圖表征應具備通用靈活、可移植等特性。設計合適的意圖描述語言,可降低用戶對底層網絡信息的依賴程度,降低同類軟件的學習成本,提高用戶使用體驗。
意圖表征的現有方案對比如表1所示。使用現有的網絡語言,可以將用戶意圖轉譯為相應的網絡語言,驗證意圖的正確性,實現網絡的自動交付,然而對于知識能力受限的用戶,需要學習編程語言和編程思維,阻礙網絡自動管理的發展。將網絡參數以配置文件或資源描述框架(resource description framework, RDF)方式輸入,可驗證意圖的正確性,同時需要用戶掌握底層網絡資源和狀態。而以人機交互的方式表達意圖,需要根據不同的業務類型指定參數。使用自然語言表達意圖,能夠最大限度地降低由用戶操作引發的網絡配置錯誤。綜上所述,用戶以自由輸入的方式表達意圖,使用自然語言處理技術,可以提高網絡管理的效率;然而,現有方案[8-12]并沒有對用戶輸入的意圖進行糾錯和檢錯,可能出現人為錯誤,影響意圖的下發。

表1 意圖表征的現有方案對比Table 1 Comparison of existing schemes for intentional characterization
針對復雜多變和內涵豐富的自然語言輸入,需經過自然語言處理得到一種可復用的規范化表征形式。意圖表征的規范化形式將用于意圖驗證、策略生成等環節,因此意圖表征需要具備推理和解決策略沖突[16]的能力,表2對現有意圖表征的規范化形式進行了對比。

表2 意圖表征形式對比Table 2 Comparison of forms of intentional representation
正則表達式是一種字符串匹配的模式,可以用來檢查一個字符串是否含有某種子串、將匹配的子串做替換或者從某個字符串中取出符合某個條件的子串等。正則表達式可實現快速匹配,只適合匹配字面意思,不適合匹配文本意義,不具備推理的能力。此外,正則表達式可讀性差,需要單獨設計,不可復用。
XML是一種用于標記電子文件、使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。XML提供統一的方法來描述結構化數據[17]。然而,XML文件格式文件龐大,格式復雜,代碼異常復雜并且不容易進行維護。
RDF是一種用于描述實體和資源的數據模型,由節點和邊組成,形式上表示為三元組。RDF的表達能力有限,無法區分類和對象,無法定義和描述類的關系和屬性,缺乏抽取能力。
知識圖譜[18]是一種基于圖數據結構的語義網絡。知識圖譜由節點和邊組成,節點表示實體,邊表示實體之間的關系,可以最有效、最直觀地表達出實體間的關系,并根據現有知識進行推理。
正則表達式和XML使用結構化形式來存儲數據,代碼復雜,不易維護。RDF結構簡單,易于維護,但是缺乏抽象能力,推理能力有限。知識圖譜將大量不同種類的信息連接在一起,得到一個關系網絡,為人們提供了從“關系”的角度分析問題的能力,為后續的策略生成提供了推理的能力[19]。
本文設計的意圖規范化表征形式通過引入知識圖譜,可以對現有知識進行推理,解決了策略沖突的問題,簡化策略生成的流程,提高策略生成的準確性。
基于自然語言處理與知識圖譜相結合的意圖驅動網絡表征系統如圖1所示。

圖1 基于自然語言處理與知識圖譜相結合的意圖表征系統Fig.1 Intent representation system based on natural language processing combined with knowledge graph
第1層是意圖輸入層,用戶可選擇語音或文本等形式智簡表達異構意圖,輸出文本糾錯后的用戶意圖。針對語音輸入方式,用戶在錄音結束后進行提交,語音識別模型對其進行識別,得到文本格式的意圖,文本糾錯模型對意圖中可能出現的錯誤進行檢錯、糾錯處理,在糾錯完成后輸出正確的文本意圖。
第2層為意圖表征層,首先對文本意圖進行實體抽取,獲得意圖的關鍵信息,例如網絡節點、時間、業務等級、業務類型等,經過關系抽取形成三元組。實體映射模塊將意圖關鍵信息轉換為網絡參數。如果可以找到對應的參數,直接返回輸出結果;如果沒有找到對應的參數,則將該實體和數據庫中的所有實體進行相似度對比,選擇相似度最大的實體,并把該實體對應的參數作為此實體的參數,并將結果返回至前端界面。若用戶確認表征結果正確,則將該“{實體,參數類型,具體參數}”保存在知識圖譜庫中。
意圖實體類型包括:源地址、目的地址、時間、業務類型、業務等級。其中,業務類型包括數據、語音和視頻等,其中數據業務類型包括圖像、游戲、E-mail、交易業務和批量數據傳輸等;語音業務分為語音電話、語音消息和高質量語音媒體等;視頻業務包括視頻電話和可視媒體等。表3展示了意圖實體的類型和實例。

表3 實體類型和實例Table 3 Entity types and instances
參數映射是指將三元組中的實體進行參數匹配,輔助后續策略生成,具體實例如圖2所示。將“視頻”實體映射為抗丟包率、帶寬、時延、抖動等參數類型,并約束參數范圍,例如帶寬為2M等。其中,參數的范圍根據意圖的種類和重要等級劃分。

圖2 參數映射實例Fig.2 Parameter mapping example
用戶在表達意圖時可能使用不同的詞匯來表示相同的實體,例如對于三元組“{北京,開通,南京}”可以使用“{首都,開通,南京}”進行表示。針對“北京”可以映射得到正確的IP地址,但是針對“首都”可能會導致參數映射失敗。此時,通過相似度檢測將選擇近似度最高的實體“北京”,并將“北京”的IP地址作為映射結果,返回到前端界面讓用戶選擇。若用戶同意,則將該實體和實體參數保存在數據庫中,若用戶不滿意,由用戶選擇手動修改參數,將“{實體,參數,參數值}”保存在知識圖譜庫中,使系統可以學習用戶的表達習慣。
圖3為用戶意圖表征規范化實例,用戶經過實體和關系將意圖抽取轉化為三元組,進而將意圖三元組的參數進行映射,形成知識圖譜。

圖3 用戶意圖表征實例Fig.3 Example of user intent representation
意圖表征面向用戶,如圖4所示,用戶選擇語音或者文本等形式輸入意圖。當用戶選擇語音輸入時,語音識別模型將識別用戶語音為文本格式,用戶也可選擇直接輸入文本意圖。意圖表征系統將對文本進行檢錯處理,當出現文本錯誤時進行文本檢錯、糾錯,沒有文本錯誤將直接輸入到實體和關系抽取模型中進行三元組抽取。接下來將對意圖三元組進行參數映射,如果參數映射失敗,將對映射失敗的實體和知識圖譜庫中的實體進行相似度檢測,選擇相似度最大的實體作為實體參數,并向用戶進行反饋。如果用戶同意,則將三元組“{實體,參數類型,參數值}”添加到知識圖譜庫中,對知識圖譜庫進行更新,學習用戶的表達習慣。

圖4 意圖表征功能流程圖Fig.4 Flowchart of intention representation function
在意圖驅動網絡中,用戶可以使用語音作為系統的輸入,利用語音識別模型,將用戶語音轉化為文本。語音識別實現方法可分為5種:隱馬爾可夫模型、基于動態時間規劃、神經網絡、端到端語音識別[20]。
本系統使用的是基于注意力機制的端到端語音識別模型。語音識別模型的輸入形式為特征向量,用戶語音不能直接傳入到語音識別模型中,需要對用戶輸入的語音信號做預濾波、預加重和分幀等預處理操作,再利用頻率倒譜系數(mel frequency cepstral coefficients, MFCC)算法,提取每一幀語音的多維向量。編碼層使用循環神經網絡(recurrent neural network, RNN)對語音向量進行特征抽取。注意力層為輸入的每一個序列劃分權重系數,重點通過關注輸入序列的某一部分來預測輸出。按照注意的范圍分為全局注意力機制和局部注意力機制,全局注意力機制關注編碼層的所有隱藏狀態,局部注意力機制關注當前輸入位置的一部分[21-22]。本文使用局部注意力機制,使用前一時刻隱藏狀態計算權重系數。解碼層利用編碼層的輸出和權重系數計算當前時刻語音特征的識別結果。
使用語音輸入用戶意圖時,需要將用戶語音轉化為文本,這個環節可能會出現識別錯誤;在用戶輸入文本意圖時,也可能發生拼寫錯誤。常見的文本錯誤有:發音相近混淆、字形相近混淆、次序顛倒、常識錯誤、語境錯誤等[23-24]。為提高系統對用戶輸入意圖的容錯率,需要對用戶輸入進行檢錯和糾錯。
本系統使用雙向門循環神經網絡(bidirectional gate recurrent unit, Bi-GRU)作為檢錯模型,使用Transformer作為文本糾錯模型。首先使用詞嵌入模型將文本轉化為詞向量,檢錯模型對詞向量的正向編碼和反向編碼的隱藏狀態橫向合并,通過全連接層進行二分類學習,輸出結果為字符的二分類錯誤概率。糾錯網絡是一種基于來自Transformer的雙向編碼器表示(bidirectional encoder representations from Transformer, BERT)的順序多類標注模型[25]。當用戶輸入意圖“從西安太白南陸2號到北京建立一條普通等級的話音業務,2022年9月18日結束”。將用戶文本意圖轉化為嵌入向量,檢錯系統根據上下文信息檢測到“陸”字錯誤概率比較大,在候選集中選擇最大概率的字符“路”作為輸出結果。
實體和關系抽取提取用戶意圖的實體信息,并建立實體和實體之間的關系。實現方法有管道抽取和聯合抽取[26],管道抽取是先提取句子中的實體,然后對實體進行關系分類,各個過程之間沒有聯系;聯合抽取是將實體抽取之后的輸出和隱藏層作為關系抽取的輸入,損失函數是實體抽取和關系抽取的損失函數之和。
本文使用聯合抽取的方式提取用戶意圖的關鍵信息。實體和關系抽取使用雙向長短期記憶網絡(bidirectional long-short term memory, Bi-LSTM),將實體抽取模型的輸出和隱藏層作為關系抽取的輸出。例如,對于一個訓練樣本“從南京到北京建立一條普通等級的話音業務,時間要求為2022年9月8日到2022年9月10日”,需要將訓練樣本調整為“[[“南京”,“建立業務”,“北京”],[“北京”,“等級”,“普通等級”],[“北京”,“開始時間”,“2022年9月8日”],[“北京”,“結束時間”,“2022年9月10日”]]”進行訓練。當需要進行實體和關系抽取時同時抽取實體、關系和客體,得到結果,其中關系屬性不必是樣本中的詞語,可以重新定義關系。
由于用戶輸入與知識庫中的知識可能存在差別,為了提高意圖表征的效果,需要使用相似度檢測提高關鍵詞匹配的效果。
相似度檢測可以通過基于同義詞詞典庫或基于大規模語料實現。基于同義詞詞典庫,使用詞義詞典來判斷文本的相似度,詞典內容有限,需要針對特定場景進行訓練;基于大規模語料的方法是對語料進行訓練,為每一個字、詞計算出一個維度合適的向量,通過計算詞嵌入向量的平均值、詞移距離、余弦、皮爾森系數等方法實現[27-29]。
相似度檢測的實現流程如圖5所示。

圖5 相似度檢測Fig.5 Similarity detection
使用騰訊基于方向跳躍圖的方法訓練的詞向量模型得到詞向量。相似度檢測輸入詞語與每一組詞中的參考詞進行計算,兩個詞嵌入向量之間的余弦值計算公式如下:
由上式可以得到詞語之間的相似度。計算值的輸出范圍為-1到1,計算值越趨近于1,表明兩個詞相似度越大;越接近-1,表示為反義詞。
為了實現高效選擇,相似度計算只與每一組的參考詞計算。同時,為了避免無意義的相似詞輸出,需要使用分界值對相似度檢測的結果進行判定。分界值的選擇根據用戶進行反饋,結果符合預期則參考值不變,結果不符合預期則對參考值進行更改。
用戶輸入的文本需要經過知識抽取和關系抽取形成意圖三元組,通過參數映射得到網絡參數,形成知識圖譜,最后通過遍歷知識圖譜的拓撲信息,得到滿足需求的方案。同時,用戶所需的資源需要實時更新,使用知識圖譜構建用戶意圖能夠抽象底層網絡的資源,保障網絡的正常運行。
使用Py2neo構建知識圖譜,Py2neo是一個圖形可視化的工具包,配合圖數據庫neo4j可以實現知識圖譜的構建和使用[30]。圖6為使用Python程序實現知識圖譜的部分代碼。在知識圖譜中修改屬性,例如時延、帶寬等,實時更新網絡的資源狀態。圖7為知識圖譜構建實例。

圖7 知識圖譜構建實例Fig.7 Knowledge graph construction instance
意圖表征可以實現異構意圖的標準化表征,如圖8所示,用戶在文本輸入框中輸入“從南京到北京建立一條普通等級的華陰業務,時間要求為從2022年9月8日到2022年9月10日”,點擊“開始”提交用戶意圖,用戶輸入有誤,文本糾錯框顯示糾錯后的文本,點擊“submit”提交用戶意圖,將進行意圖表征;圖9將用戶意圖表征信息,如源地址、目的地址、時延、帶寬等,以知識圖譜的形式保存,用戶可以選擇“執行”來下發意圖,選擇“暫緩”將意圖保存在知識圖譜庫中,但是不會下發策略;選擇“撤銷”將結束意圖表征;圖10是將意圖表征結果保存在知識圖譜庫中,實現用戶意圖的復用。實驗結果表明,基于自然語言處理與知識圖譜相結合標準的意圖驅動網絡表征系統可以實現用戶意圖的標準化。

圖8 意圖表征前端界面Fig.8 Intentional representation front-end interface

圖9 意圖表征結果展示Fig.9 Presentation of intentional representation results

圖10 用戶知識圖譜庫Fig.10 User knowledge graph database
為了驗證文本檢錯、糾錯性能,將錯誤率為30%的文本分別輸入到傳統意圖表征和本框架下的意圖表征模塊中進行對比,驗證文本檢錯、糾錯對意圖表征的提升效果。
由圖11可知,在輸入樣本相同的情況下,傳統架構下意圖表征的準確率為67%,新架構下意圖表征的準確率為78%,引入文本糾錯、檢錯能夠在用戶輸入時提高意圖的準確率,進而能夠提高意圖表征的效果。

圖11 文本檢錯、糾錯實驗Fig.11 Text error detection and error correction experiments
本實驗將添加相似度檢測模塊的意圖表征系統和傳統意圖表征系統進行對比,驗證相似度檢測的優勢。
測試流程:將輸入樣本中20%的關鍵詞替換為知識圖譜庫中未出現的關鍵詞,將正確參數和測試參數進行對比,得到測試結果。
由圖12可知,輸入相同的樣本,相似度檢測的正確率為90%,傳統架構準確率為80%,融入相似度檢測可以提高意圖表征的效果。

圖12 相似度檢測實驗Fig.12 Similarity detection experiments
本文介紹了一種基于自然語言處理與知識圖譜相結合標準的意圖驅動網絡表征系統,使用語音或者文本等形式表達異構意圖,實現了用戶意圖的自由輸入。針對用戶文本可能出現的輸入錯誤問題,對用戶意圖進行檢錯和糾錯,提高了用戶意圖的準確性。對用戶輸入意圖進行實體和關系抽取得到意圖三元組,并對意圖三元組進行參數映射。當實體參數映射失敗時,選擇相似度最大的實體參數作為映射結果,動態更新實體參數知識圖譜庫,學習用戶表達習慣,并將意圖表征的結果以知識圖譜的形式保存,有利于后續的策略生成。目前,意圖表征系統使用靜態知識圖譜保存用戶意圖,未來將引入動態知識圖譜實現網絡狀態的動態更新。