王 喆,楊棟梁,況星園,劉 丹,馬 勇
(1.武漢理工大學 安全科學與應急管理學院,湖北 武漢 430070;2.武漢理工大學 中國應急管理研究中心,湖北 武漢 430070;3.武漢理工大學 航運學院,湖北 武漢 430063)
2021年,我國洪澇災害共造成5 901萬人次受災,因災死亡失蹤590人,倒塌房屋15.2萬間,直接經濟損失2 458.9億元[1]。洪澇災害多為極端天氣引發,形勢復雜嚴峻,決策環境瞬息萬變,經常出現應急響應滯后、應對措施不當等問題,為贏得洪澇災害應急處置主動權,應提高應急決策的時效性和科學性。現代應急決策離不開以情景推演、智能算法為代表的應急管理信息平臺及決策支持系統[2-4],自動問答通過自動推理快速、精準回答用戶所提問題以滿足用戶需求[5],將其引入洪澇災害應急處置中,有利于縮短研判會商工作流程,提高應急指揮團隊的決策能力和效率[6]。
目前,自動問答已成功應用于安全領域,例如鉆井安全問答系統[7]、食品安全事件問答系統[8]以及應急信息處理對話系統[9]。現有安全領域自動問答系統可以提供信息輔助功能,滿足不同應急情景下用戶常見問題解答和信息檢索需求,但現有自動回答系統的應急態勢感知能力及直接決策功能不足,實戰性能仍需提高。
通過模擬洪澇災害應急處置的決策邏輯,選擇摘要式問答對作為自動問答任務框架,并收集整理摘要式洪澇災害應急決策問答對數據集。針對NarrativeQA[10]等摘要式數據集,Frermann[11]設計檢索式問答模型,先檢索給定問題的相關段落,再從段落里抽取對應答案;錢錦等[12]提出基于多任務的生成式閱讀理解模型,將答案生成任務作為主任務,答案抽取和問題分類任務作為輔助任務。上述自動問答模型中各問題答案來源于問題背景,可以直接通過檢索或生成方式實現,然而洪澇災害場景復雜,所收集的數據集中問題背景僅包含雨情、水情等關鍵場景信息,答案的生成還需要引入防洪應急預案等外部知識。檢索式答案生成機制不能將決策信息和外部知識有效融合,需要針對洪澇災害應急決策特征設計生成式問答模型。
對于給定的生成式問答任務,通過微調預訓練模型GPT2、T5是常見技術[13],但所收集的洪澇災害應急決策問答對數據集較小,直接使用預訓練微調方法將增加過擬合風險。提示學習通過給下游任務數據添加一段合適的字符,使其與預訓練數據形式相似,并在預訓練模型基礎上訓練少量參數以預測模型輸出,可以避免或減少對大型監督數據集的需求[14]。其中,Daniel等[15]通過結合問題和問題背景創建合適的Prompt,將多種格式的問答任務轉化為文本生成問題,建立統一的自動問答模型;Brown等[16]使用手工方式創建前綴Prompt處理問答、翻譯和常識推理等多種任務。手工創建Prompt是自然且直觀的方式,但創建Prompt需要一定時間和經驗,即使是經驗豐富的領域專家也可能無法發現最佳Prompt,為解決該問題,Li等[17]提出“Prefix Tuning”方法,在輸入前添加1串連續向量,同時保持預訓練語言模型的參數不動,僅訓練合適的前綴。因此可以將預訓練模型與提示學習相結合,通過自動化生成連續型Prompt,設計生成式自動問答模型,在2種方法結合過程中,為使生成答案不受文本長度限制,選擇自回歸語言模型GPT2作為預訓練模型,進一步外部知識的融合也可以通過增量預訓練方式實現。
綜上,本文構建基于預訓練語言模型GPT2的洪澇災害應急決策自動問答模型以提高決策效率,設計摘要式洪澇災害應急決策問答對模擬應急決策邏輯,收集防洪應急預案,對預訓練模型進行增量預訓練從而實現外部知識融合,引入提示學習方法緩解數據集較小帶來的過擬合風險,并通過人工評估指標和自動評估指標對自動問答模型進行評價。
應急決策問答是洪澇災害應急處置過程中的重要環節,是在應急響應啟動后,由現場指揮部和防汛專家根據應急態勢即雨情、水情、險情等災害情景,進行科學研判會商,識別應急目標,進而做出相應工作部署的過程。摘要式問答是這個過程中通常采用的問答格式,以問答對形式出現,問題背景和問題答案均為非結構化文本,自動問答模型需要理解用戶所提問題和問題背景以生成問題答案。應急決策問答和摘要式問答在要素和操作流程上相似,如表1所示。
表1 應急決策問答和摘要式問答對應關系Table 1 Corresponding relationship between emergency decision-making question answering and abstractive question answering
根據表1顯示對應關系,當前應急情景分析中,感知應急態勢、識別應急目標、制定應急行動方案的過程,即可被描述為根據問答對中有關災害的問題背景和所提問題生成相應問題答案。因此,應急決策問答對可通過整理有關洪澇災害應急處置案例得出。
將收集到的武漢市防汛抗旱指揮部發布的防汛排漬通報與武漢市相關防洪應急預案結合,整理成應急決策問答對數據集。該數據集包含160個關于防汛排漬的應急決策問答對,該問答對以“如何巡堤查險”等具體應急目標作為問題,問題背景則描述具體應急情景,主要包括以下4個方面:1)雨情(可選),當前或者未來的雨水形勢;2)水情(可選),武漢市各水文站點的水位情形以及水庫狀況;3)漬情(可選),武漢市主次干道易漬水點以及其他道路漬水點漬水情況;4)工情(可選),當前已采取的應急響應級別及措施。問題答案則描述針對問題背景中的應急情景所制定的應急行動方案。整個問答對數據集按問題背景分類,大致可以分為水情處置、漬情處置、雨情處置3類。應急決策問答對示例如表2所示。
表2 應急決策問答對示例Table 2 Examples of question answering pairs of emergency decision-making
對于上述數據集,各問題背景均從官方發布的防汛排漬通報中獲得,其中刪除通報時間、通報組織以及應急情景的具體時間,各問題答案不完全從通報中獲得,部分根據通報中工情描述結合防洪應急預案得到。
給定1個洪澇災害應急決策問答對,其中包含有關洪澇災害的問題、問題背景、問題答案,把該問答對處理成qi,ci,ai。qi是當前應急情景的目標,即如何應急處置,ci是當前應急情景的描述,ai是針對當前應急情景應采取的措施。所需要問答生成模型以qi,ci為輸入,以ai為輸出。
GPT2模型是1種語言模型,被定義為1組樣本(x1,x2,x3,…,xn)的無監督分布估計,每個樣本由可變長度的符號序列(s1,s2,…,sn)構成,如式(1) 所示:
(1)
即可以根據上文預測下一個字符,同樣該方法允許語言序列以p(sn-k,…,sn|s1,…,sn-k-1)的形式出現。因此,對于本文所構建的摘要式應急決策問答對,根據輸入qi,ci,得到輸出ai的過程可以表示為求解聯合概率p(ai|qi,ci)的過程,其中qi,ci按順序連接作為輸入。
GPT2通過多層解碼器模塊組合構建,其內部結構如圖1所示,具體包括以下4個部分:
圖1 GPT2內部結構Fig.1 Internal structure of GPT2
1)輸入向量。GPT2的輸入向量由詞嵌入向量和位置編碼向量相加得到,其中詞嵌入向量、位置編碼向量需要分別查詢嵌入矩陣、位置編碼矩陣。
2)掩碼自注意力機制。自注意力機制是將輸入向量與1個隨機初始化的矩陣相乘,得到查詢向量(Q)、鍵向量(K)、值向量(V),然后根據式(2)計算注意力得分:
(2)
式中:dk表示輸入向量維度,該分數值決定輸入序列中某個位置的字符對其他字符的關注程度。
對序列中的每個字符進行同樣處理,即可通過自注意力機制實現字符間的相互理解。
在GPT2模型中,如果使用自注意力機制,將會導致當前字符學習到未來信息,造成信息泄露,因此需要掩碼自注意力機制,即在自注意力計算時,屏蔽來自當前計算位置右邊所有字符的信息。
3)N次堆疊。經過詞嵌入和位置編碼的輸入向量,首先接觸第1個解碼器模塊,其內部處理過程如下:輸入向量先通過掩碼自注意力層的處理,得到特征向量;該特征向量被傳遞到前饋神經網絡層,得到結果向量;將結果向量傳遞給第2個解碼器模塊進行計算,將此過程持續N次,實現解碼器模塊的N次堆疊。
4)模型輸出。經過最后1個解碼器模塊處理后,得到輸出向量,該向量與輸入向量具有相同維度,將此向量和嵌入矩陣相乘,可得到詞匯表中每個字符的得分,選取得分最高的字符即輸出結果。但訓練時通常設置top-k參數,考慮得分最高的k個字符。
1)Prompt基本操作
通常情況下Prompt基本操作有以下3步[12]:
①Prompt添加。主要通過Prompt函數將輸入文本x修改為x′=fprompt(x)。首先,建立1個文本字符串模板,該模板有2個空位置[X]和[Z],其中[X]用來填充輸入文本x,[Z]用來填充答案文本z,然后把輸入文本x填入空位置[X]中。
在問答生成任務中,以表2為例,輸入文本x有2個,即問題和問題背景,分別設為[X1],[X2]。手工建立文本字符串模板“根據預案[X1][X2][Z]”,得到的x′為“根據預案如何巡堤查險? 水情:當前,我市漢江仍持續高水位,隨著漢江上游來水快速消退、丹江口水庫逐步調減下泄量,漢江中下游將進入快速退水期。漢江新溝站水位27.89 m,超警戒水位0.39 m。工情:已啟動防汛3級應急響應。[Z]”。
(3)
式中:θ表示語言模型的參數;ffill(x′,z)表示將字符z插入輸入文本x′中;P(ffill(x′,z);θ)表示在參數θ下,各字符z插入輸入文本x′中的概率;Search表示搜索概率的搜索函數。
2)Prompt工程
Prompt工程是創建Prompt函數fprompt(x)的過程,該函數可以在提示學習過程中產生最有效的性能。
就城市商業銀行來說,交叉銷售是指借助CRM系統,在現有客戶資源的基礎上對于市場進行進一步細分,以發現更多客戶的潛在需求,進而有針對性地進行產品和服務的銷售或定制銀行提供的相關產品和服務。在這方面,城市商業銀行先應確定產品組介,鎖定目標客戶群,從而促進交叉銷售。
①考慮Prompt的形式。選擇哪種類型的Prompt取決于所要解決的下游任務,由于前綴Prompt是從左到右實現的,則和生成任務或使用自回歸語言模型的任務相匹配,因此在問答生成任務中非常適合選擇前綴Prompt。
②考慮Prompt的創建方式。P-tuning 重新考慮 “模版由自然語言構成”這一常規要求,將模版的構建轉化為連續參數優化問題,其模板構建過程如圖2所示。
圖2 P-tuning模板構建Fig.2 Construction of P-tuning template
其中,|Pi|表示模板中的第i個Prompt字符,hi是與|Pi|對應的可訓練的嵌入向量,e(|X|),e(|Z|)是模板中空位置[X],[Z]的嵌入向量。模板中的Prompt數目是1個超參數,其前后位置也可以進行調整。
針對所收集的應急決策問答對,將模板構建過程轉化為連續參數優化問題,設計出擁有不同Prompt長度、不同Prompt位置的模板。以8個Prompt為例,其位置設計如表3所示,其中[X1],[X2]用于填充問題、問題背景,[Z]用于填充問題答案;T1表示8個Prompt全部在輸入文本之前,T2表示4個Prompt在輸入文本之前,4個Prompt在輸入文本和輸出文本之間,T3表示8個Prompt全部在輸入文本和輸出文本之間。
表3 應急決策問答對模板Table 3 Template of emergency decision-making question answering pairs
3)訓練策略
在Prompt訓練策略中,選擇固定預訓練模型參數只訓練Prompt參數的策略,以8個Prompt為例,假設詞向量的維度是768,僅訓練Prompt參數時需要訓練的參數量是8×768=6 144,遠遠小于整個預訓練模型參數量。具體實施時直接利用詞匯表中模型未見過的字符作為Prompt來嵌入輸入向量中,進一步簡化訓練過程。
本文實驗選擇中文GPT2預訓練模型的基礎版本作為基礎模型,為了使模型學習到應急預案等洪澇災害相關外部知識,對該模型進行增量預訓練。從武漢市各區政府門戶網站下載防汛排漬應急預案等數據,收集數據共429條,15萬字符。以此數據作為訓練語料,訓練過程分為2步:第1步將序列長度設置為128,訓練10 000步;第2步將序列長度設置為1 024,訓練10 000步。最后得到本實驗所需的GPT2模型。
為了對模型生成的答案進行評估,請5位應急管理專家從以下3個方面對其進行評分:1)流暢度,生成答案的邏輯和可讀性;2)相關性,生成答案是否包含與應急情景相關的物體、動作、事件等;3)信息性,生成答案對支持快速應急決策有多大幫助,提供多少有效建議及措施。具體實施時,將測試集的模板隱藏,由各位專家獨立評分,分值從1~5,分值越大表示效果越好,最后對專家評分取平均值,表示生成答案的質量。
同時,選取幾個自動評估指標進行評估,如基于統計的文本評價指標BLEU-2、BLEU-4、NIST-4、METEOR以及基于預訓練模型的文本評價指標BERTScore。
利用表3中3個模板訓練GPT2模型,并利用測試集進行模型效果測試,5位應急管理專家的評估結果如表4所示。
表4 測試集專家評估結果Table 4 Human evaluation results of test sets
由表4可以得到以下3個結論:
1)GPT2結合提示學習的方法在流暢度、相關性、信息性3個指標上的得分整體上接近實際應急行動方案,這表明GPT2語言模型在問答生成任務中表現良好,且提示學習有利于減小過擬合風險,并提升答案生成效果。通過在輸入文本前后加入Prompt,使問答任務跟預訓練任務保持一致,充分利用預訓練模型,幫助模型快速回憶起外部知識,降低模型過度擬合小樣本問答對數據。微調GPT2模型時,信息性得分相對較低,模型在很大程度上更偏向學習小樣本訓練集中的知識,從而導致過擬合。
2)前綴式Promp在3個指標的得分略高于后綴式Promp。對于GPT2語言模型,前綴式Prompt的引入非常重要,只引入后綴式Prompt時效果變差。直觀上來說,前綴式Prompt更有利于模型回憶增量預訓練時獲得的相關外部知識,進而生成更符合預案的答案。因此,在實際應用時可以考慮增加前綴式Prompt的使用。
3)模型生成的答案有較高的流暢度和相關性指標評分,可以判斷其有較高的語言質量,在滿足可讀性、邏輯性等基本需求的同時,符合相應洪澇災害情景。但在信息性評分上生成的答案與實際應急行動方案仍有一定差距,還需要增加更多歷史案例等外部知識,以提高生成答案的信息性。
自動評估結果如表5所示,從表中可以得到以下2個結論:
表5 測試集自動評估結果Table 5 Automatic evaluation results of test sets
1)T1模板在BLEU、NIST、METEOR等基于統計的文本評價指標上的表現超過其他模板,與模型準確率和人工評估結果保持一致,進一步證明前綴式Prompt在提示學習中的優勢。但微調GPT2時,模型在上述指標上的得分均超過提示學習方法。分析發現,若測試集樣本中問題、問題背景不涉及應急響應級別,則會導致模型在這類樣本上的得分較高,造成總得分較高。因此,可以進一步證實使用微調方法會使模型只學習到小樣本訓練集中的知識,造成過擬合。
2)不同模板的BERTScore分數與模型準確率保持一致,且生成答案的平均長度均接近實際應急行動方案的平均長度,可以判斷生成答案與實際應急行動方案有較高的語義相似性,證明模型可以提供正確且決策信息豐富的答案。
給定1個洪澇災害相關問題背景,利用GPT2模型及不同模板生成的答案見表6,使用提示學習方法生成的答案內容充實、信息豐富,符合應急情景。針對問題背景中雨情、水情、工情,提出如何落實防汛2級應急響應,T1模板給出“全區防汛工作進入全面緊急狀態,全區主要干部群眾緊急疏散,轉移危險區域人員”;T2,T3模板分別對堤防、水位做出要求;GPT2僅給出“報送防汛信息”的答案。各模板給出的答案雖與實際應急行動方案不完全一致,但在流暢度、相關性、信息性上均基本滿足應急決策需求,且符合防洪應急預案應急響應行動要求,因此可以判斷提示學習方法對增量預訓練的外部知識進行有效融合,可以幫助模型生成更符合應急預案的答案。
表6 不同模型效果Table 6 Performance of different models
為驗證不同Prompt長度對模型的影響,以T1模板為基礎,修改Prompt長度,分別設置為P4,P8,P12,P16,通過同樣的訓練策略和超參數設置分別訓練模型,其模型準確率如圖3所示,隨迭代次數增加,所有模型的準確率均呈明顯上升趨勢;隨著Prompt長度增加,模型準確率提高,即Prompt 長度越大,模型效果越好。但受模型序列長度影響,未繼續增加Prompt長度進行訓練,因此,Prompt長度對模型的影響仍需進一步驗證。
圖3 不同Prompt長度對模型的影響Fig.3 Influence of different Prompt lengths on model
1)建立洪澇災害應急決策自動問答模型,首先收集洪澇災害應急決策問答對數據集,通過GPT2結合提示學習的方法構建出符合洪澇災害應急決策邏輯的問答生成模型,通過人工評估和自動評估指標對模型進行評價。
2)根據測試集評價結果,GPT2結合提示學習的方法,有效緩解數據集較少帶來的過擬合風險,且前綴式Prompt效果較好,模型生成的答案有較高的流暢度、相關性、信息性,能夠支持快速應急決策。
3)由于所收集的問答對數據集不夠豐富,數據量較小,即使通過提示學習方法使最終模型效果得到明顯改善,但仍有提升空間。