


摘要:隨著大數據和人工智能技術的發展,福建煙草積極響應國家和行業的號召,開展數字化轉型探索。隨著自然語言處理技術的快速發展,人們已經逐步適應通過自然語言進行人機交互,并基于此開展日常工作。本文根據福建煙草的大數據建設基礎,通過自然語言模型抽取企業的非結構化文本數據,構建企業知識圖譜,并建設知識圖譜問答。
關鍵詞:自然語言;煙草行業;知識抽取;智能問答
一、引言
通過將結構化和半結構化的數據轉化為知識圖譜,可以幫助企業構建一種基于知識的智能問答系統,并使用自然語言處理和人工智能技術來實現對問答的自動化處理和智能回答,有助于提高業務效率和決策的準確性,促進知識共享和管理,提高客戶服務質量和企業競爭力,是企業數字化轉型和智能化發展的重要手段之一。
二、知識抽取方法
(一)知識抽取的常用方法
知識抽取或信息抽取(IE)是信息從文本到結構的轉換過程。常見的實體、關系、事件分別采取Span、Triplet、Record形式的異構結構。以下是知識抽取中常用的幾種方法:
1.規則驅動的方法:通過手工制定規則或利用正則表達式來識別特定文本模式,從而提取實體、關系、事件等信息。這種方法需要人工先驗知識和手動標注大量樣本數據,適用于特定領域的知識抽取。
2.基于統計的方法:使用自然語言處理和機器學習技術,從大量文本語料庫中學習模式和規律,通過詞頻、共現等統計特征來識別實體、關系、事件等信息。這種方法不需要人工先驗知識,但需要大量的標注數據和計算資源。
3.基于深度學習的方法:使用深度神經網絡模型,如CNN-BiLSTM-CRF、BERT、ERNIE、PCNN、DYGIE++等,通過端到端的訓練方式,直接從原始文本中提取實體、關系、事件等信息。這種方法不需要手動設計特征和規則,能夠自動學習復雜的語言模式和規律,但需要大量的標注數據和計算資源。
4.基于模板的方法:使用預定義的模板來匹配文本中的實體、關系、事件等信息。這種方法適用于特定領域的知識抽取,可以根據不同的領域和任務設計不同的模板。
5.基于半監督學習的方法:使用少量標注數據和大量未標注數據進行訓練,通過半監督學習算法來提高抽取效果和泛化能力。這種方法能夠充分利用未標注數據,降低標注成本,但需要更復雜的算法和技術。
本文基于深度學習模型展開信息知識的抽取與知識圖譜的構建。
(二)統一結構生成的通用信息提取
大部分情況下,當面對各種復雜多樣的IE任務時,人們總會造各式各樣IE模型的輪子,來滿足不同復雜任務的多變需求。多樣的抽取目標、相異的復雜結構、多變的領域需求導致信息抽取模型難以實現統一建模,極大限制了IE系統的高效架構開發、有效知識共享、快速跨域適配。根據Yaojie Lu等人發表的論文《構建通用信息抽取的一體化結構生成》,UIE(全稱Universal Information Extraction)框架是一個整合性的文本結構化生成方案,旨在為多樣化的信息抽取需求定制模型,靈活構建所需的目標結構,并在多個知識源中共同發展出普適的信息抽取技術[1]。通過結構化提取語言,UIE能夠執行信息抽取任務,統一編碼不同的提取結構,通過基于模式的提示機制(結構模式指導器)自適應地生成目標結構,并通過大規模預訓練實現從文本到結構的模型建模,從而具備對常見信息的提取能力。實驗表明,UIE在4個信息提取任務、13個數據集和所有監督、低資源和少樣本設置上均實現了最先進的性能。這些結果驗證了UIE在不同信息提取任務、設置和場景下的有效性、通用性和可轉移性。
UIE的整體框架包含SSI和SEL兩大模塊,其中,SSI(Structural Schema Instructor)是指結構模式指引,旨在提示哪些類型的數據需要被定位和關聯。給定結構化模式的抽取類型SSL以及文本的序列Text,通過UIE模型可以生成SEL結構化的信息。
UIE模型結構使用的是Transformer模型,包含了Encoder和Decoder模塊。其中,SSI屬于編碼階段,SEL屬于解碼階段。首先,將SSI信息和句子拼接,輸入至Encoder模塊中,得到每一個Token的隱層表示。然后,使用隱層表示在Decoder端生成的目標結構化信息。論文中描述,UIE主要做的就是用Text-to-Structure(類Seq-to-Seq)解決信息抽取問題,論文中用的是Transformer的放大版模型-T5。UIE的復現難點在于構造大量監督數據,論文應該是利用維基百科的知識圖譜和遠程監督構造了千萬級的訓練數據。與此類似的是OpenAI Whisper,Whisper團隊從網上爬取了68萬小時的語音文本對,直接放進Transformer訓練,最終的模型既能做語音識別、歌曲識別,還能將語音翻譯成英文[2]。
就目前來看,當前的知識抽取方式本質上并沒有對神經網絡模型進行多大的改動或優化,更多是通過構造大量弱標簽監督數據去訓練一個Transformer結構的網絡。所以相關論文中未提及怎么解碼、怎么獲取關系、怎么判斷實體,將一切都交給Transformer完成。
三、知識圖譜構建
(一)知識抽取
1.知識建模
以漳州煙草公司的企業內部制度文件為知識圖譜的構建數據來源,通過梳理漳州煙草的企業制度文檔數據,建立以下知識模型:通過信息抽取模型,從人力資源制度、專賣制度文檔中提取關鍵信息實體,包括但不限于發文號、發文部門、抄送部門、印發部門、發文時間、印發時間、核對人員、打印人員等。這些信息實體的提取不僅提高了文檔檢索的精確性,通過分析實體間的關聯性,還可為員工提供一種直觀的方式來理解文檔的核心內容。通過構建實體間的關系網絡,使得員工能夠快速把握文檔的核心內容,并清晰地識別文檔間的廢止和更新關系,從而形成一條邏輯性強、易于追蹤的廢止關系鏈條。這種關系鏈條的可視化呈現,極大地增強了文檔管理的透明度和可追溯性,為企業制度的執行和監督提供了堅實的信息基礎。
2.實體抽取
實體抽取,是指識別文本中具有特定意義的實體。在開放域信息抽取中,抽取的類別沒有限制,用戶可以自己定義。比如有這樣一個句子:七匹狼(藍)煙賣12元。提取這句話中所有有意義的詞語,例如圖1(a)所示。這個關鍵詞提取任務就為實體抽取,文中的“七匹狼(藍)”和“12元”被稱為實體。常用的實體抽取深度學習方法包括序列標注方法和指針網絡方法。序列標注方法是對需要抽取的文本中的每一個字(Token)進行分類,其本質是基于Token的分類任務。比如對上述例子做序列標注任務,得到的結果如圖1(b)所示。
序列標注方法采用了BIO的標注方法,可以使用BiLstm+CRF或者Bert+CRF模型做該序列標注任務。模型的輸出為每個Token所屬的類別。序列標注模型存在一個比較大的缺陷,無法解決實體重疊的問題。
指針網絡方法通過對每一個實體單獨做預測,以解決實體之前的重疊和沖突問題。比如,在上述例子中不僅要提取品規,還要提取品規類型,本文所期望的提取結果如表1所示。
現在,要同時預測品規和品規類型這兩個實體。指針網絡方法是通過設計一個多頭網絡(Multi-Head)分別預測這兩個實體的實體詞。通過構建多頭任務,指針網絡方法能夠分別預測每種實體類型中的實體詞對應的開始/結束位置。多頭指針網絡方法能夠很好地解決實體重疊問題,但缺點在于不夠靈活。當實體類型發生變化時,訓練數據和模型結構都會發生改變。所以,UIE模型在使用指針網絡方法的同時引入了不同類型對應的Prompt,把它與輸入文本拼接在一起輸入到模型中。上述實體抽取任務是通過將不同的實體類型作為Prompt與輸入文本拼接起來輸入到模型中,用于激活模型參數跟當前實體類型相關的參數,從而輸出不同的實體抽取結果。
3.屬性/關系抽取
UIE中的屬性/關系抽取任務和上述描述的UIE中的實體抽取方法一樣,都是基于不同類型的Prompt拼接輸入文本后輸入的模型,使用指針預測對應關系類型的開始/結束位置。如下圖2所示。
4.模型訓練
基于UIE的實體抽取和關系抽取都是在經過預訓練的UIE模型(如Uie-Base、Uie-Tiny等)上進行微調。通過不同類型的Prompt拼接輸入文本到Transformer的Encoder模塊中,得到每一個Token的隱層表示。然后使用隱層表示在Decoder端生成目標的結構化信息,采用多頭指針網絡預測不同類型的開始/結束位置。由于每一個Token都是一個二分類任務,因此選用二分類交叉熵損失函數BCE Loss 作為損失函數,分別計算起始/結束向量的 BCE Loss ,再取平均值即可。最終,通過微調后的模型預測可以抽取文本中對應的實體和實體之間的關系。
(二)圖譜轉化
1.數據存儲
知識圖譜是以圖結構形式對知識進行建模和表示,所以,也常將知識圖譜中的知識作為圖數據進行存儲。這里使用最常用的Neo4j圖數據庫來存儲數據。Neo4j通過節點(Node)和邊(Edge)的形式來存儲數據。node可以代表知識圖譜中的實體,edge可以代表實體間的關系。關系具有方向性,從開始節點指向結束節點。
2.數據轉化
知識圖譜中的數據存入圖數據庫Neo4j后,可以通過Neo4j自己設計的查詢語言Cypher,實現對圖譜中的節點和邊等知識的高效查詢和轉換。通過模式匹配來查詢、修改節點和關系等。
(三)知識圖譜問答
1.知識圖譜問答方法
知識圖譜問答目前有兩種主流的方法:基于語義解析的方法和基于信息檢索的方法。
語義解析技術的操作流程包括:初始階段,將用戶提出的問題轉換成知識圖譜可以識別和處理的格式化查詢(也就是語義層面的表達)。隨后,直接在知識圖譜上運行這個格式化查詢,以獲取與問題相匹配的答案。語義表示結果可通過對輸入問題進行短語檢測(實體及其關系),然后將識別到的短語映射到知識庫中的特定元素,此過程可通過深度學習模型進行相似度計算等。最后將元素整合成相應的邏輯結構。對于簡單查詢,例如那些只涉及單一實體和單一關系的問題,直接將它們鏈接起來就足夠了。然而,對于更復雜的問題,涉及多個實體和多重關系,就需要考慮這些實體和關系之間的所有可能的配對和組合。信息檢索技術的操作流程涉及從問題中識別關鍵實體,并在知識庫中檢索這些實體以獲得以這些實體為核心的子圖。在這個子圖中,每個節點和連接線都被視為潛在的答案。通過信息抽取技術,問題被轉化為一個特征向量,隨后利用這個向量來訓練一個分類模型。該模型將根據輸入的問題特征向量對所有潛在答案進行評估和排序,最終確定問題的答案。
2.構建KBQA問答系統
(1)推理問答算法
①實體-屬性問答。“實體-屬性問答”知識圖譜驅動的問答系統(KBQA)主要分為兩大核心任務:實體的識別與屬性的關聯。該流程首先涉及對自然語言提問進行初步處理,接著利用自定義詞匯庫來識別提問中的命名實體,并依據屬性數據庫進行屬性關聯。通過Cypher查詢模板在知識圖譜中檢索答案,如果檢索成功,系統不僅提供答案,還會展示相關的類似提問;若檢索未果,則系統將推薦可能的替代提問。如果用戶提交了一個用自然語言表述的問題:“我住在田頭村,我這邊的合理布局標準是什么?”首先,必須運用實體識別技術來定位“田頭村”這一實體;接著,利用屬性鏈接技術提取問題中的屬性“合理布局標準”。通過完成實體和屬性的識別,我們已經獲得了三元組中的兩個關鍵部分:即“田頭村”和“合理布局標準”。最終,通過執行Cypher查詢語句“MATCH(n:Entity{name:\"田頭村\"})-[r:relation{name:\"合理布局標準\"}]-gt;(p:Node)return p”,在知識圖譜中檢索與“田頭村”實體和“合理布局標準”屬性相關的具體數值:“根據所在區域戶籍人口每300人設置1個零售點,且新設零售點與已設零售點之間的距離不少于100米”,這將成為問題的答案。同時,系統還會提供相關的類似問句。如果無法找到答案,系統將提供相關的推薦問句。[3]
②實體-關系問答。“實體-關系問答”與上述“實體-屬性問答”相似。不同的是,在完成對問句中的命名實體的識別之后,依據實體間的關系,利用Cypher查詢語句在知識圖譜數據庫中檢索相應的答案。
作者單位:劉海龍" "黃恒博" 福建省煙草公司漳州市公司
林勇泉 廈門海晟融創信息技術有限公司
參考文獻
[1] 《Unified Structure Generation for Universal Information Extraction》Yaojie Lu, Qing Liu, Dai Dai, Xinyan Xiao, Hongyu Lin, Xianpei Han, Le Sun, Hua Wu
[2] Niranjan A , Sharma M C , Gutha S B C ,et al.End-to-End Whisper to Natural Speech Conversion using Modified Transformer Network[J]." 2021.
[3]吳賽賽.基于知識圖譜的作物病蟲害智能問答系統設計與實現[D].中國農業科學院,2021.