摘 要:目前通用大語言模型(如GPT)在專業(yè)領域問答應用中存在不穩(wěn)定性和不真實性。針對這一現(xiàn)象,提出了一種在通用大語言模型上耦合領域知識的意圖識別精準性增強方法(EIRDK),其中引入了三個具體策略:a)通過領域知識庫對GPT輸出結(jié)果進行打分過濾;b)訓練領域知識詞向量模型優(yōu)化提示語句規(guī)范性;c)利用GPT的反饋結(jié)果提升領域詞向量模型和GPT模型的一致性。實驗分析顯示,相比于標準的GPT模型,新方法在私有數(shù)據(jù)集上可以提升25%的意圖理解準確性,在CMID數(shù)據(jù)集上可以提升12%的意圖理解準確性。實驗結(jié)果證明了EIRDK方法的有效性。
關鍵詞:大語言模型知識問答;意圖精準性增強;領域知識集成;GPT反饋學習
中圖分類號:TP391 文獻標志碼:A 文章編號:1001-3695(2024)10-002-2893-07
doi:10.19734/j.issn.1001-3695.2024.02.0022
Intention recognition accuracy enhancing method for large language model
Ren Yuankaia, Xie Zhenpinga, b
(a.School of Artificial Intelligence & Computer Science, b.Jiangsu Key University Laboratory of Software & Media Technology under Human-Computer Cooperation, Jiangnan University, Wuxi Jiangsu 214122, China)
Abstract:Large language models (such as GPT) exhibit instability and inauthenticity in professional domain Q&A applications. To address this issue, this paper proposed a method to enhance intent recognition by domain knowledge (EIRDK) for large language models. The method involved three specific strategies: a)scoring and filtering the GPT output using a domain knowledge base, b)training the domain knowledge word vector mode to optimize prompt, c)utilizing feedback from GPT to improve the coherence between the domain word vector model and the GPT model. Experimental analysis demonstrates that, compared to the standard GPT model, the new method achieves a 25% improvement in intent understanding accuracy on the private dataset and a 12% increase on the CMID dataset. The results validate the effectiveness of the EIRDK method.
Key words:knowledge Q&A with large language models; intent recognition accuracy enhancement; domain knowledge integration; feedback learning from GPT
0 引言
信息化時代下,問答系統(tǒng)已經(jīng)成為人工智能領域備受矚目的研究和應用方向,涵蓋搜索引擎、虛擬助手、在線教育、醫(yī)療保健等。其核心目標在于使人與計算機之間的交互更為自然和智能,用戶通過自然語言提出問題,而問答系統(tǒng)則以相應的反饋作出回應[1,2]。基于問答系統(tǒng)的工作原理和實現(xiàn)方式,主要可分為檢索式問答系統(tǒng)和生成式問答系統(tǒng)兩個類別。生成式問答系統(tǒng)直接根據(jù)用戶提問生成相應答案,能夠處理各類問題,但無法確保生成結(jié)果的真實性和可靠性。當面對復雜問題時,這類系統(tǒng)可能誤導用戶,提供不準確或不完整的信息,從而降低用戶體驗和信任度。相較之下,檢索式問答系統(tǒng)在一定程度上能夠規(guī)避這一問題。該系統(tǒng)依賴高質(zhì)量的知識庫,通過對用戶輸入的自然語言查詢(query)進行檢索匹配,從大規(guī)模文本或知識庫中獲取準確的答案或信息,確保了問答系統(tǒng)的可用性。然而,在理解用戶輸入的自然語言方面,檢索式問答系統(tǒng)存在一些限制,難以準確理解用戶的意圖。
隨著大語言模型(LLM)的快速發(fā)展,問答系統(tǒng)的研究人員逐漸嘗試利用大語言模型對用戶的意圖進行解析。最近,OpenAI推出了ChatGPT,這是一種基于GPT-3.5架構的革命性大規(guī)模語言模型,能夠勝任目前幾乎所有的自然語言處理任務,包括信息抽取、文本摘要、風格續(xù)寫、代碼生成等[3~5]。與現(xiàn)有大規(guī)模語言模型不同的是,ChatGPT利用人類的反饋數(shù)據(jù)進行訓練,通過強化學習的方式,使得ChatGPT能夠生成類似人類的回復[6~8]。由于在各類任務上均表現(xiàn)出了驚人效果,ChatGPT發(fā)布僅兩個月后就吸引了全球1億活躍用戶。隨后在2023年的3月,OpenAI推出了GPT-4,一個更為強大和智能的語言模型,與GPT-3.5相比,GPT-4擁有更多的參數(shù)以及更大的規(guī)模,在多任務學習方面有著突破性的進展,在各個任務上均有著顯著的提升。
盡管目前的大語言模型(如ChatGPT)已經(jīng)能夠作為生成式問答系統(tǒng)提供高質(zhì)量的問答交互服務,但仍然無法避免生成虛假或有害信息,尤其在專業(yè)領域的問答上,面對一些未知信息,大語言模型可能會編造出一些與事實無關的回答返回給用戶,這將帶來災難性的后果。因此,本文將專注于檢索式問答的模式,利用ChatGPT優(yōu)秀的意圖對齊以及文本生成能力,對用戶的query進行意圖解析并從知識庫中檢索召回相應的答案?;谠撃J?,本文提出了一種基于領域知識的意圖識別精準性增強框架(enhance intent recognition by domain knowledge, EIRDK),該框架通過與領域知識庫的有機結(jié)合,旨在尋求一種經(jīng)濟有效的方法,以提升生物醫(yī)藥領域中檢索式問答系統(tǒng)對自然語言問題的意圖理解能力。
1 相關工作
1.1 語言模型
自然語言處理領域的語言模型通常采用預訓練的方法進行初始化,隨后通過特定數(shù)據(jù)微調(diào)的方式應用于下游任務[9],這一方法的應用使得語言模型在一定程度上能夠理解和生成自然語言文本。預訓練語言模型可分為靜態(tài)和動態(tài)兩類,早在2003年,Bengio等人[10]提出了NNLM模型,催生了一系列靜態(tài)預訓練模型,如word2vec、GloVe、FastText等[11~13],然而,這些模型在解決多義性和下游任務改進方面存在一定限制。動態(tài)預訓練模型的概念首次出現(xiàn)于2018年3月,ELMo利用雙向LSTM進行預訓練,有效處理詞語多義性[14]。同年12月,Google發(fā)布雙向語言模型bidirectional encoder representation from Transformers(BERT),引入了雙向Transformer結(jié)構,BERT的出現(xiàn)標志著預訓練技術的新時代[15]。自那時以來,涌現(xiàn)了許多改進型模型,如RoBERTa、ALBERT、自回歸語言模型XLNet、通用統(tǒng)一框架T5等[16~19]。
1.2 意圖識別
意圖識別是自然語言處理領域的YCU72+D5OFiR2GHOQUx6Rg==重要研究方向,旨在解決計算機對人類語言的意圖理解和問題推斷。這一技術的核心目標是識別并解釋用戶在交流過程中所表達的意圖,以便更好地響應用戶的需求。在實際應用中,意圖識別通常與問答系統(tǒng)、虛擬助手和自動客服等領域相結(jié)合,以提升計算機系統(tǒng)對用戶輸入的理解程度[20~22]。
為了實現(xiàn)有效的意圖識別,研究人員采用了多種方法,早期流行基于規(guī)則的方法,隨著統(tǒng)計學習和深度學習的發(fā)展,意圖識別的技術也隨之進步[23~26]。2018年,以BERT為代表的預訓練語言模型橫空出世,在自然語言處理的各項任務上均取得了顯著效果[15]。這些預訓練語言模型通過大規(guī)模數(shù)據(jù)進行學習,能夠捕捉文本中的復雜語義和上下文信息,同時擁有極強的泛化性,這使得基于預訓練語言模型的意圖識別方法也擁有較高的精度和泛化性[27,28]。
隨著問答系統(tǒng)的普及,意圖識別在人機交互、智能客服等場景中的應用逐漸增多。通過準確識別用戶的意圖,系統(tǒng)能夠更加智能地回應用戶的需求,提升用戶體驗。然而,面對多樣化的語言表達和復雜的語境,意圖識別仍然面臨一系列挑戰(zhàn),如歧義消解、長對話建模等問題,需要不斷的研究和改進。
1.3 提示工程
隨著參數(shù)量超百億的大規(guī)模語言模型(例如ChatGPT)展現(xiàn)出卓越的文本生成能力,提示工程(prompt engineering)逐漸成為自然語言處理領域的新興范式[29]。提示工程的核心目標在于為預訓練模型設計恰當?shù)奶崾荆源_保在下游任務中獲得出色的效果,這催生了一種被稱為“預訓練、提示、預測”的新興范式[30~33]。具體而言,提示工程創(chuàng)建了一個提示x′=fprompt(x),其中x∈X,為文本輸入(例如“找出治療糖尿病的所有藥物”),并描述了具體的下游任務(例如文本摘要、text2sql、代碼生成等)。具備提示后,大語言模型執(zhí)行得到最終的答案y=fLLM(x′) 。
目前prompt主要通過四5IQ9CILxHR+hpbBU7Qx4rA==種方式生成:
a)手工構建。手工編寫文本段落用于提示語言模型進行相關回答,這是一種簡單而有效的提示生成方式,但性能較為不穩(wěn)定,需要細致的調(diào)試。
b)大語言模型生成。利用大語言模型為每個文本輸入生成對應的提示,可以彌補手工構建的不足,但較為復雜的場景下,提升的效果無法得到保證。
c)基于檢索的提示。依賴于良好標注的外部資源(例如百度百科)來減輕生成不穩(wěn)定性的問題。
d)提示學習。構建了一個有監(jiān)督模型,根據(jù)大語言模型的生成和真實標簽(ground truth)自動更新提示。
2 方法框架
本文EIRDK方法框架如圖1所示,整個框架的輸入為用戶的query(例如“糖尿病應該吃什么藥物”),框架輸出對應意圖(例如“drug|disease_name:糖尿病”),整個框架可分為兩個部分:
a)本文利用領域詞向量和領域知識庫對prompt進行規(guī)范化。根據(jù)用戶輸入的query,從領域知識庫中提取相關信息補充到prompt中,提升ChatGPT的領域背景知識,這一步的目標是確保系統(tǒng)能夠更精準地理解用戶的意圖,使得整體框架在處理意圖識別問題時表現(xiàn)更為卓越。
b)本文借助領域知識對ChatGPT輸出的意圖進行打分和排序,以增強意圖識別的穩(wěn)定性。本文旨在提高系統(tǒng)的魯棒性和適用性,確保系統(tǒng)在各種情境下都能可靠地識別用戶的真實意圖,使其在復雜的問答環(huán)境中表現(xiàn)更為可靠。
最后,本文探索了一種將領域詞向量模型與ChatGPT對齊的方法。通過ChatGPT的反饋結(jié)果對本地領域詞向量模型進行優(yōu)化,并評估其對意圖識別準確性的提升效果。通過這一創(chuàng)新性的嘗試,本文期望在領域知識與先進生成技術的協(xié)同作用下,進一步優(yōu)化意圖識別性能,為生物醫(yī)藥領域的檢索式問答系統(tǒng)提供更為強大的解決方案。
2.1 prompt規(guī)范化策略
2.1.1 通用prompt構建
考慮到本文定義的意圖識別結(jié)構較為復雜,決定采用人工構建prompt的方案,以此來引導ChatGPT進行意圖識別并生成一個SOLR(search on lucene replication)可識別的檢索式。隨后利用部分數(shù)據(jù)集進行測試和優(yōu)化,確保最終得到的prompt在生物醫(yī)藥的常規(guī)問題上都能有一個較好的效果。由于ChatGPT的性能對prompt的設計非常敏感,本文參考Wei等人[34]提出的思維鏈(chain of thought,CoT)策略,按照如下形式構建prompt:
a)角色和概念定義。首先對ChatGPT進行角色定義:“你現(xiàn)在是一位生物醫(yī)藥領域的專家,請幫我根據(jù)下面的例子完成意圖識別任務”。接著對生物醫(yī)藥領域的知識庫進行抽象的表示,包括實體的語義標簽(semantic type)、屬性的標準名稱、意圖所在的索引等。同時,在給出相關定義后會提供1、2個例子作為該條定義的解釋和補充。
b)少樣本學習(few-shot learning)。對ChatGPT進行角色定義和相關概念描述后,根據(jù)定義的索引,提供若干條例子作為few-shot learning的例子。理想情況下給出的例子越多越好,但由于prompt長度的限制以及生物醫(yī)藥領域query的多樣性和復雜性,無法窮舉所有情況的query。因此,本文只提供一些相對通用的例子作為ChatGPT學習的模板。prompt構成示例如圖2所示,其中第1行表示對ChatGPT角色的定義,第2~5行表示對實體標簽的定義,第7~11行表示數(shù)據(jù)源的定義,第12行表示屬性的定義,第14行開始表示給定的few-shot示例,期望ChatGPT按照示例的格式進行意圖識別。最終的prompt在此基礎上進行補充,由于篇幅過長,不進行詳細的展示。
2.1.2 領域知識引入
領域知識在自然語言處理任務中扮演著至關重要的角色,它有助于模型更深刻地理解和生成特定領域相關的文本,提供更為準確和實用的答案。尤其是在信息檢索和意圖識別任務中,它可以協(xié)助模型更好地理解用戶的query,識別出關鍵信息,生成相關性更高的回復。以生物醫(yī)藥領域為例,如果用戶提出與醫(yī)學相關的問題,模型需要具備關于醫(yī)療術語、疾病、藥物、治療方法等方面的知識,以生成準確的回答。
為了提升ChatGPT的專業(yè)性,本文在之前定義的提示中引入生物醫(yī)藥領域的相關知識,主要包含兩個步驟。
a)query領域基本信息。利用領域知識對query中的實體(entity)信息進行解析和抽取,將解析后得到的領域基本信息添加到prompt中。
b)query領域相關信息。利用領域知識進行預訓練得到BERT詞向量模型,隨后利用BERT模型對輸入的query進行相似度匹配,從已有的領域知識庫中選取與之最相似的若干條結(jié)果,將其作為query的相關領域知識和相關結(jié)構知識補充添加到prompt中。
通過以上兩個步驟,本文將領域知識動態(tài)地添加到prompt中,使得ChatGPT在生成回復時能夠獲取到這些領域知識,產(chǎn)生更為精準的意圖結(jié)果。本文將引入了領域知識的意圖識別任務定義為
y=f(x′,d|θ)(1)
其中: f(·|θ)表示參數(shù)為θ的神經(jīng)網(wǎng)絡;x′表示預先定義的prompt;d表示額外引入的領域知識;y表示最終得到的意圖。值得注意的是,本次實驗發(fā)現(xiàn)領域知識添加的位置對意圖識別的效果也會存在一定影響,在prompt結(jié)尾加入領域知識相比于其他位置更有助于ChatGPT的利用。
最終,本文利用領域知識庫作為預訓練數(shù)據(jù),以雙語BERT為基礎模型,采用經(jīng)過三個epoch進行預訓練后的BERT作為領域詞向量模型,通過該詞向量模型對領域知識庫中的文檔和用戶輸入的query進行向量化處理并儲存,以此來生成領域知識庫詞向量。
應用自動引入領域知識的策略時,用戶輸入的query首先被映射成和領域知識向量相同維度的詞向量,然后通過余弦相似度算法進行計算并排序,系統(tǒng)根據(jù)排序后的結(jié)果返回與輸入query相似度得分較高的top-k示例(k值可以作為超參數(shù)設置,實驗中發(fā)現(xiàn)k=5的效果為最佳),作為領域知識的補充,這些示例不僅能夠提供額外的信息和實例,還有助于模型更全面地理解用戶的query并生成相關的回復。后續(xù)在實際的應用中時,可以考慮將用戶的意圖進行收集,不斷地更新領域知識庫并定期進行詞向量模型的更新,實現(xiàn)整個策略的良性循環(huán)。為了更精準地提取query的相關信息,本文構建了一個領域知識詞典,利用后向最大匹配算法,對query中的領域詞進行抽取。prompt引入領域知識的具體算法邏輯如算法1所示。
算法1 基于領域知識的prompt自動優(yōu)化算法
輸入:D={d1,d2,d3,d4,d5,…,dn},D represents samples in domain knowledge base, and x represents the input query。
輸出: a prompt that integrates domain knowledge。
a) embed D to edoc and embed x to eq /*對領域知識和輸入的問題進行向量化*/
b) calculate similarity score sq,doc between eq and edoc /*計算相似度文檔和輸入問題的相似度*/
c) sort sq,doc in descending order and select top-5 docs Dsub /*獲取和輸入問題最相近的前5條數(shù)據(jù)*/
d) extract entities wx information from x /*利用領域知識詞典進行信息提取*/
e) merge Dsub and wx into prompt /*合并第三步和第四步的知識加到prompt中*/
舉例來說,用戶提出一個生物醫(yī)藥領域的query:“治療高血壓的最新藥物有哪些?”。本文根據(jù)這條query從知識庫中匹配出基本信息和相關信息?;拘畔ǎ骸癲isease:高血壓”,“date:最新”,相關信息包括:“治療高血壓的藥物=>drug|disease_name:高血壓”,“降血壓的藥物有哪些?=>drug|disease_name:降血壓”。
2.2 意圖打分排序策略
生成式大語言模型一直以來以輸出多樣性而著稱,但是在某些任務中需要限制輸出的多樣性以此來確保結(jié)果的穩(wěn)定性。當使用ChatGPT進行意圖識別任務時,可以發(fā)現(xiàn)它的輸出結(jié)果通常會隨時間而變化,這對于意圖識別任務來說可能會導致嚴重的不穩(wěn)定性問題。針對上述問題,本文通過領域知識訓練打分排序模型,利用ChatGPT能夠一次性生成k條結(jié)果的特性,在其輸出k條意圖后,用領域模型進行排序和過濾,選取最佳的結(jié)果,以此來幫助模型獲取穩(wěn)定的意圖結(jié)果。
鑒于query和意圖結(jié)果都需要強大的知識理解和表征能力,本文選擇了BERT語言模型作為領域判別模型的基礎模型,用于文本表示和語義理解。BERT通過特定領域數(shù)據(jù)的微調(diào),可以適應該領域的語言風格和術語,對query和意圖結(jié)果將有更好的知識理解和表征能力。模型結(jié)構如圖3所示。
在微調(diào)階段,本文根據(jù)BERT預訓練數(shù)據(jù)的結(jié)構,構建出類似的形式,以滿足BERT對query和意圖結(jié)果進行聯(lián)合理解的需求。模型的輸入由query和意圖結(jié)果構成,將它們拼接后得到一個聯(lián)合的表征(representation)。這種聯(lián)合表征的構建允許模型同時考慮query和意圖結(jié)果的信息,幫助模型更好地捕捉它們之間的關聯(lián)性及上下文信息,這一特性在解決信息檢索和意圖識別任務時顯得尤為關鍵。由于query和意圖結(jié)果之間的語義關系往往復雜多變,通過拼接的方案,本文為模型提供了更為豐富的輸入,以此來幫助模型理解query和意圖識別結(jié)果之間的內(nèi)在聯(lián)系。打分排序模型的目標函數(shù)如下所示。
score=fBERT(x;y|θ)(2)
其中: fBERT(·|θ)表示基于BERT的打分模型;x表示用戶輸入的query;y表示ChatGPT從query中解析出的意圖?;陬I域知識的語義判別算法如下所示。
算法2 基于BERT的語義判別模型
輸入: training samples,Di={(x1,y1),(x2,y2),(x3,y3),(x4,y4),…,(xm,ym),},m represents the number of samples。
輸出: semantic discrimination model after parameter updates。
a) for j=1,…,L
b) for the jth similarity score do
c) assign a null value to Dj;
d) for (x,y)∈Dj
e) build samples for each x, Dsub={(x1,y1),(x1,y2),(x1,y3),(x1,y4),(x1,y5)} /*利用對比學習生成的訓練樣本組成正負樣本*/
f) minimize the contrast loss between positive and negative samples in Dsub//最小化正樣本的損失,最大化負樣本的損失
g) back propagation
h) end for;
i) end for;
j) end for
為了進一步提高BERT模型的性能,本文采用對比學習的方法來進行訓練。對比學習是一種自監(jiān)督學習方法,通過正樣本與負樣本進行比較來學習有意義的表示[35]。本次研究的場景中,正樣本是query和正確意圖結(jié)果的聯(lián)合表示,而負樣本則是來自query和錯誤意圖結(jié)果的聯(lián)合表示。
具體地,本文從訓練數(shù)據(jù)中隨機挑選若干對query和意圖結(jié)果,拼接后得到它們的聯(lián)合表示,作為正樣本。隨機將query和不同的意圖結(jié)果拼接得到負樣本。模型的目標是使正樣本的表示更加相似,同時使得負樣本的表示更加不同,本文通過最小化正樣本與負樣本之間的對比損失來實現(xiàn)。對于當前的意圖識別任務,同一層級的實體位置可以互相轉(zhuǎn)換,因此,本研究中的正樣本可以通過實體之間位置的互換增強模型的魯棒性。模型的輸入如圖4所示。
本文利用對比學習的訓練方式,幫助模型學習更具判別性的表示,提升信息檢索和意圖識別的性能。通過強化相同領域的query和意圖結(jié)果之間的關聯(lián)性,使得整個模型框架可以更好地捕獲領域特定的知識和語義信息。
2.3 詞向量模型對齊策略
通常情況下本地領域詞向量模型和調(diào)用的ChatGPT模型并不能完全匹配,由于它們之間缺乏一些對齊的手段,有時候經(jīng)過領域詞向量模型推薦篩選出來的信息并不是ChatGPT模型最期望的,導致某些query語句生成的prompt不是最優(yōu)。
想要解決本地領域詞向量模型與ChatGPT模型之間的不匹配問題,需要深入研究它們之間的差異,并尋找一些對齊的方法來提高它們的一致性。首先,需要認識到ChatGPT模型和本地詞向量模型在訓練任務、數(shù)據(jù)集和架構設計上存在顯著的差異。ChatGPT-3.5是一種基于生成的語言模型,通過大規(guī)模的對話數(shù)據(jù)進行無監(jiān)督學習。相比之下,本地詞向量模型是在特定領域的監(jiān)督任務上進行訓練,使用的數(shù)據(jù)集和目標不同于ChatGPT。這種差異可能導致本地詞向量模型在某些情境下難以準確捕捉到ChatGPT模型的語境和偏好。為了彌補這一差距,本文提出一種創(chuàng)新性的方法,利用ChatGPT生成的結(jié)果作為優(yōu)化信號,輔助本地詞向量模型學習到ChatGPT的偏好。
在這一新的方法中,本文將ChatGPT生成的結(jié)果作為監(jiān)督信號,幫助本地詞向量模型學習到ChatGPT在特定任務中的期望輸出。具體而言,首先利用本地詞向量選取query的若干條相關數(shù)據(jù)組成新的prompt,然后利用ChatGPT進行意圖識別,最后利用本地詞向量模型分別對GPT返回的結(jié)果和真實標簽進行向量化并計算余弦相似度Loss,最終引導本地詞向量模型朝著ChatGPT更傾向的方向調(diào)整參數(shù)。由于訓練時采用真實標簽進行相似度計算,而非無監(jiān)督學習,并且在得到ChatGPT的結(jié)果后,會利用規(guī)則進行判別,丟棄和預定義結(jié)構或者內(nèi)容偏差過大的結(jié)果,以防止ChatGPT生成的異常結(jié)果造成過大的干擾。因此,盡管ChatGPT在生成結(jié)果時存在不確定性和不真實性,但可以將這些異常結(jié)果造成的影響盡可能地降低。
這種監(jiān)督信號的引入有望使本地模型學習到ChatGPT的一些偏好,進而提升本地模型召回領域相關知識的能力。然而,這仍然是一個初步的嘗試,需要在實踐中進行深入研究和驗證。通過進一步的實驗和調(diào)整,有望在兩種模型之間建立更為有效的橋梁,提高它們的協(xié)同效應,為用戶提供更準確、流暢的生成式語言服務。
本次實驗主要涉及ChatGPT和BERT語言模型,其中ChatGPT是一個生成式模型,它負責接收用戶的輸入query并生成相關的回復,BERT語言模型作為一個語義理解的詞向量模型,它利用ChatGPT生成的意圖結(jié)果和真實標簽進行訓練,具體算法流程如下所示。
算法3 基于ChatGPT反饋的領域詞向量對齊方法
輸入: training samples,Di={(x1,y1),(x2,y2),(x3,y3),(x4,y4),…,(xm,ym),}, m represents the number of samples。
輸出: semantic discrimination model after parameter updates。
a) for j=1,…,L
b) for the jth similarity score do
c) assign a null value to Dj;
d) for (x,y)∈Dj
e) dynamically generate prompt for x and get response y′from GPT API /*針對輸入問題動態(tài)生成prompt并從GPT獲取對應的意圖結(jié)果*/
f) embed y and y′ to ey and ey′ by BERT model /*利用BERT對問題的意圖結(jié)果和GPT生成的意圖結(jié)果進行向量化*/
g) calculate similarity score between ey and ey′ /*計算相似度損失函數(shù)*/
h) back propagation //反向傳播
i) end for
j) end for
h) end for
3 實驗及結(jié)果分析
3.1 任務定義
主流意圖識別任務主要用于標簽分類,這個標簽通常是預定義的類別,代表用戶的目的或意圖,比如訂票、查詢天氣、提問等。而在生物醫(yī)藥問答中,無法窮舉這些意圖,為了結(jié)合已有的數(shù)據(jù)庫進行檢索式問答,本次的意圖識別任務主要定義為query到SOLR檢索式的生成,將一個自然語言描述的query解析成一個符合SOLR檢索式格式的句子,通過這種意圖轉(zhuǎn)換,可以將大部分的問題進行轉(zhuǎn)換,然后從數(shù)據(jù)庫中進行相應的知識檢索。例如query“新冠病毒的最新研究進展”,本文定義的是任務是將這個query轉(zhuǎn)換成“disease|disease_name:新冠病毒 AND date:最新 AND key_words:研究進展”。其中“|”左側(cè)表示意圖的類型,右側(cè)表示意圖涉及的實體和關系。
3.2 數(shù)據(jù)集
本次實驗的數(shù)據(jù)集分為和本領域強關聯(lián)的私有數(shù)據(jù)集和通用數(shù)據(jù)集CMID兩部分,其中私有數(shù)據(jù)集一共有1 060條query,由生物醫(yī)藥領域內(nèi)的專家結(jié)合實際問題構造而成,具有一定的權威性。通用數(shù)據(jù)集CMID為中文醫(yī)學QA意圖理解數(shù)據(jù)集,該數(shù)據(jù)集用于中國醫(yī)療質(zhì)量保證意圖理解任務,由好大夫在線提供。下面是兩份數(shù)據(jù)集的處理方式:
1)私有數(shù)據(jù)集
人工對其進行意圖解析和抽象表達式的轉(zhuǎn)換。按照1∶4的比例進行劃分后得到,訓練集848條,測試集212條。利用ChatGPT分別對每一條query進行意圖解析5次,即每一條query共有6對結(jié)果(1條人工標注的標準結(jié)果,5條ChatGPT的結(jié)果),私有數(shù)據(jù)集的示例如圖5所示。
2)CMID數(shù)據(jù)集
由于該原始數(shù)據(jù)集包含一些和本研究無關的query,故對此數(shù)據(jù)集進行一系列的數(shù)據(jù)清洗和篩選,選取問題長度不超過10的query,剔除其中的一些停用詞、標點符號并進行去重后,得到1 474條query。同樣按照4∶1的比例進行數(shù)據(jù)集劃分,得到1 176條訓練集數(shù)據(jù)和298條測試集數(shù)據(jù)。最后按照私有數(shù)據(jù)集的標注方法對其進行意圖解析和抽象表達式的轉(zhuǎn)換,CMID原始數(shù)據(jù)集如圖6所示,處理后的形式和圖5類似,故不進行額外的展示。
3.3 評價指標
為了比較不同方法對ChatGPT生成意圖的提升效果,本文選擇準確率(accuracy)作為主要評價指標,以直觀地評估ChatGPT生成的意圖與人工標注的意圖之間的一致性。準確率是一個重要的評估指標,它通過計算生成結(jié)果中正確預測的意圖數(shù)與總生成意圖數(shù)的比例,為本文提供了一個量化的度量,反映了模型生成結(jié)果的準確性。
意圖結(jié)果對實體順序不敏感,為了更全面地比較結(jié)果,本文引入了一致性解析的步驟。具體而言,本文對生成的意圖結(jié)果進行分塊處理,以捕捉語義一致性,而不僅僅是表面匹配。這意味著即使存在實體順序上的差異,只要語義塊在生成結(jié)果和人工標注結(jié)果中相對應,仍然可以將其視為一致,這將有助于確保模型評估的一致性。
這種一致性解析的方法使得本文能夠更細致地評估ChatGPT生成的結(jié)果與人工標注結(jié)果之間的相似性,從而提高了評估的靈敏度和準確性。這種對語義一致性的關注是因為在自然語言生成任務中,僅僅依靠表面匹配可能無法充分反映生成結(jié)果的質(zhì)量,尤其是在語境復雜或模糊的情況下。因此,本文強調(diào)在評價中綜合考慮了實體順序不敏感性和語義一致性,以便全面地了解ChatGPT在生成意圖方面的性能。
3.4 實驗結(jié)果及分析
3.4.1 實驗結(jié)果
本文聚焦于GPT-3.5與GPT-4,并針對提出方法進行系統(tǒng)的實驗驗證。實驗數(shù)據(jù)集中既包括專屬的私有數(shù)據(jù)集,也包括了廣泛應用的CMID數(shù)據(jù)集,兩者均用以檢驗意圖識別準確率的變化情況。
表1匯總了在不同方法應用前后,GPT-3.5和GPT-4在兩個數(shù)據(jù)集上的準確率對比,結(jié)果顯著揭示了提出方法的有效性;表2則提供了消融實驗的準確率差異,為評估各組件的單獨貢獻提供了準據(jù);表3比較了不同的領域模型過濾策略,表現(xiàn)了領域排序模型的篩選效力。實驗結(jié)果揭示了模型性能的顯著提升,特別在結(jié)合領域模型過濾和領域知識增強策略之后。
3.4.2 領域排序模型
為了評估領域模型對ChatGPT輸出的穩(wěn)定性提升,本文嘗試了三種不同的篩選方案,以表3的形式展現(xiàn)。在不施加任何控制的條件下,隨機選擇策略的表現(xiàn)作為基線,反映了ChatGPT在常規(guī)場景下的表現(xiàn);投票選擇策略則聚焦于多次輸出中的共識意圖,該策略能反映出ChatGPT在不穩(wěn)定性和不真實性情況下的真實表現(xiàn);而領域模型排序策略旨在優(yōu)選與領域相關性更高的意圖,該策略能在一定程度上反映出ChatGPT輸出的上限。
根據(jù)兩個數(shù)據(jù)集上三種策略的性能對比,可以看出Chat-GPT的不穩(wěn)定性,在多次輸出的情況下會更加傾向于輸出正確結(jié)果,私有數(shù)據(jù)集的投票選擇性策略有0.029的提升,CMID數(shù)據(jù)集上有0.027的提升。而領域模型的排序策略則有更高的提升,兩個數(shù)據(jù)集上分別達到了0.057和0.034。分析數(shù)據(jù)可以發(fā)現(xiàn),只要ChatGPT能在多次輸出中得到一次準確結(jié)果,本文提出的領域排序模型就有很大的概率將其篩選出來,證明了領域模型在篩選最佳意圖方面展現(xiàn)出的卓越性和可靠性。
3.4.3 領域知識引入
從表1可以觀察到,通過向GPT-3.5和GPT-4引入領域知識,使得私有數(shù)據(jù)集的準確率分別從0.443和0.642躍升至0.679和0.755,實現(xiàn)了顯著提高。在公共數(shù)據(jù)集CMID上的實驗結(jié)果雖不如私有數(shù)據(jù)集上那么突出,但也有0.1和0.03左右的提升。盡管它們的提升可以表現(xiàn)出領域知識嵌入對大語言模型能力的提升,但兩份數(shù)據(jù)集的表現(xiàn)差距有點明顯,尤其是在GPT-4上。針對這一現(xiàn)象,本文對數(shù)據(jù)集進行了觀察和分析,發(fā)現(xiàn)CMID數(shù)據(jù)集內(nèi)容十分的豐富,在引入訓練集的領域知識時,很多例子并沒有一些相關的數(shù)據(jù)可以被引入,這也就導致了領域知識引入的提升較小,私有數(shù)據(jù)集則沒有這種情況,這也就導致了私有數(shù)據(jù)集提升明顯,而CMID數(shù)據(jù)集提升不明顯的情況。隨后本文在CMID的訓練集中添加部分和測試集擁有共性的數(shù)據(jù)進行測試驗證,新的領域知識數(shù)據(jù)能夠使得CMID的測試集有進一步的提升。
這些結(jié)果表明領域知識的引入對于增強大型預訓練模型在特定領域中的意圖識別能力至關重要,而且與傳統(tǒng)模型微調(diào)相比,提出方法既簡便又成本效益顯著。
3.4.4 模型對齊
如表1所示,采用領域詞向量模型對齊后,私有數(shù)據(jù)集上在GPT-3.5的模型對齊下有一定的提升,但是在GPT-4的模型對齊下并沒有效果。CMID數(shù)據(jù)集上有類似的情況,僅在GPT-3.5下有提升,但GPT-4的下面沒有任何效果。初步分析,由于GPT在進行意圖識別時會存在一定的不穩(wěn)定性和不真實性,模型在訓練時受到了一部分干擾或者進行了一部分數(shù)據(jù)的丟棄,影響了詞向量模型的訓練。同時,由于本實驗的數(shù)據(jù)集較為干凈,補充上一些無關信息的prompt不會導致GPT的回答變差,不會降低其回復的效果,因此出現(xiàn)了結(jié)果無變化的情況,這也表明了該方法在一定程度上能使得本地詞向量模型對齊GPT模型,但由于GPT模型的不穩(wěn)定性,會引入一些干擾導致模型沒有提升。
通過迭代訓練,在一定程度上可以使得領域詞向量模型更加精準地定位與特定知識領域相關的語義要點,從而在增強ChatGPT輸出意圖的準確性方面發(fā)揮了作用。此外,這一模型對齊策略不僅優(yōu)化了ChatGPT與本地數(shù)據(jù)的適配度,也豐富了模型對領域內(nèi)復雜用戶需求的理解,為達成高度個性化和精準化的意圖識別奠定了基礎。
總體來看,無論是在私有還是公共數(shù)據(jù)集上,利用Chat-GPT的反饋結(jié)果來優(yōu)化領域詞向量模型的策略均得到了驗證,顯現(xiàn)了在具體領域上提升意圖識別準確性的潛力,但仍然需要進一步的研究,保證本地詞向量模型可以穩(wěn)定地對齊GPT模型。
3.4.5 消融實驗
如表2所述,進行消融實驗揭示了各個組件對整體意圖識別性能增益的分量。領域打分模型本身就將準確率提高至05的層次,而基于領域知識優(yōu)化的prompt進一步將這一數(shù)字提升至0.66。在CMID數(shù)據(jù)集上,實驗展示了本文方法在更廣泛和多樣化環(huán)境中的魯棒性,領域知識的引入使準確率從0453提升至0.537,證明即便在規(guī)模更廣的公共數(shù)據(jù)集上,領域知識增強同樣能夠提供有效的性能提升。同樣地,領域打分模型也有一定的效果,將準確率從0.453提升至0.487。
對比表2兩份數(shù)據(jù)的消融實驗結(jié)果以及表1不同方法的準確率提升,可以發(fā)現(xiàn),領域數(shù)據(jù)的引入使得打分排序模型的增益降低了。換句話說,引入領域數(shù)據(jù)增強在一定程度上提升了大語言模型的穩(wěn)定性,使其能夠更穩(wěn)定地輸出正確結(jié)果,無需借助打分排序模型進行過濾。消融實驗進一步驗證了領域知識引入對大語言模型的提升效果。
3.4.6 錯誤分析
為了更好地分析本文方法的效果提升,針對錯誤部分選取一些典型例子進行分析。
如query1“脊髓灰質(zhì)炎口服疫苗有哪些”,真實的意圖結(jié)果為“drug|disease_name:脊髓灰質(zhì)炎 AND drug_type:口服疫苗”。在默認prompt情況下,GPT容易將該條的意圖識別成“drug|drug_name:脊髓灰質(zhì)炎口服疫苗”。這類query本身需要較多的信息補充才能幫助GPT理解藥物內(nèi)部的適應癥和藥物類型,這類query在生物醫(yī)藥領域中存在較多,如果全部都補充到prompt中,會導致prompt過于冗余并且可能對GPT造成一定干擾,同時浪費GPT的性能。query2 “Zanidatamab的組合物專利有哪些”,真實的意圖結(jié)果為“patent|drug_name:Zanidatamab AND patent_type:組合物”。在默認的prompt情況下,GPT容易忽略“組合物”這個標簽或者將其識別成藥物類型。這類query如果單純地將定義全部補充上去,反而會導致GPT識別錯,而在默認定義下補充一些領域知識則能大大提升其準確率。
query1經(jīng)過了本文提出的領域知識增強框架后,在輸入之前,會從領域知識庫中補充一些相關的例子,如:“肺炎疫苗 表示 drug|disease_name:肺炎 AND drug_type:疫苗”。而query2則會返回 “阿莫西林的組合物專利 表示 patetn|drug_name:阿莫西林 AND patent_type:組合物”。通過這些領域數(shù)據(jù)的增強后,原本GPT識別的錯誤問題得到了解決。
盡管如此,還有一些無法解決的例子,如:query“仲景制藥的歸脾丸”,這類query在原本的領域知識庫中缺乏相關信息,導致本文提出的領域知識增強方案失效,無法提升ChatGPT的識別效果。此類問題后續(xù)可以通過增強領域知識庫的方案解決,但目前來說這部分需要人工審核才能做到,未來希望可以找到自動化的解決方案。
3.4.7 實驗總結(jié)
通過這些實驗,本文得以理解引入領域模型、引入領域知和模型對齊等策略在復雜語言模型應用背景下的效能和適應性。為了能夠在更多的實際應用中實現(xiàn)高精度的意圖識別,未來也可以考慮將現(xiàn)有方法與其他機器學習技術相結(jié)合,如強化學習等,以引導模型自我學習和適應不斷變化的用戶需求和語境。
總體來看,實驗結(jié)果驗證了本文策略在特定領域的提升,同時也為未來語言模型在各專業(yè)領域內(nèi)的深度定制和優(yōu)化提供了實踐依據(jù)。通過增強領域知識、細化模型對齊技術,以及設計更精妙的交互優(yōu)化策略,未來的工作有望在語言理解和信息提取方面達到更高的高度。
4 結(jié)束語
本文成功地展示了如何通過整合領域排序模型和精確引入領域知識來增強ChatGPT的意圖識別能力。借助領域知識,ChatGPT不僅在深入理解復雜用戶意圖方面實現(xiàn)了可觀進步,而且促進模型在特定場景中性能的顯著提升,在某些場景下實現(xiàn)超越GPT-4原有的界限,并在降低經(jīng)濟成本方面取得了積極的效益。此外,根據(jù)ChatGPT的反饋優(yōu)化本地詞向量模型,進一步提升了系統(tǒng)對領域知識的捕獲能力。
未來研究可以在自動化采集領域知識這方面下功夫,以期從廣闊的信息源中快速更新和增強模型的知識庫,這將為系統(tǒng)的動態(tài)演進提供堅實的支持,并大幅提高其可擴展性和可持續(xù)性。此外,將用戶即時的反饋整合到意圖識別框架中,不但能夠推動模型走向持續(xù)自我優(yōu)化的軌道,而且能令模型對用戶的真實需求有更深入的理解。未來方向是研究如何將這些研究成果實際運用到工業(yè)環(huán)境中,并探討它們?nèi)绾卧谡鎸嵤澜缰刑嵘僮餍芎陀脩魸M意度。
參考文獻:
[1]閆悅, 郭曉然, 王鐵君, 等. 問答系統(tǒng)研究綜述[J]. 計算機系統(tǒng)應用, 2023, 32(8): 1-18. (Yan Yue, Guo Xiaoran, Wang Tiejun,et al. Review of research on question-answering systems[J]. Computer Systems & Applications, 2023, 32(8): 1-18.)
[2]劉嬌, 李艷玲, 林民. 人機對話系統(tǒng)中意圖識別方法綜述[J]. 計算機工程與應用, 2019, 55(12): 1-7, 43. (Liu Jiao, Li Yanling, Lin Min. Review of intent detection methods in Human-Machine dialogue system[J]. Computer Engineering and Applications, 2019, 55(12): 1-7, 43.)
[3]Zhang Kai, Gutiérrez B J, Su Yu. Aligning instruction tasks unlocks large language models as zero-shot relation extractors [EB/OL]. (2023-05-18). https://arxiv.org/abs/2305.11159.
[4]Becker B A, Denny P, Finnie-Ansley J,et al. Programming is hard-or at least it used to be: educational opportunities and challenges of ai code generation[C]// Proc of the 54th ACM Technical Symposium on Computer Science Education. New York: ACM Press, 2023: 500-506.
[5]Yang K, Tian Yuandong, Peng Nanyun,et al. Re3: Generating longer stories with recursive reprompting and revision[C]// Proc of Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2022: 4393-4479.
[6]Bai Yuntao, Jones A, Ndousse K,et al. Training a helpful and harmless assistant with reinforcement learning from human feedback[EB/OL]. (2022-04-12). https://arxiv.org/abs/2204.05862.
[7]Wu Tianyu, He Shizhu, Liu Jingping,et al. A brief overview of ChatGPT: the history, status quo and potential future development[J]. IEEE/CAA Journal of Automatica Sinica, 2023, 10(5): 1122-1136.
[8]Ouyang Long, Jeff W, Jiang Xu,et al. Training language models to follow instructions with human feedback[J]. Advances in Neural Information Processing Systems, 2022, 35: 27730-27744.
[9]Vaswani A, Shazeer N, Parmar N,et al. Attention is all you need[C]// Proc of the 31st International Conference on Neural Information Processing Systems. Red Hook, NY: Curran Associates Inc., 2017: 6000-6010.
[10]Bengio Y, Ducharme R, Vincent P. A neural probabilistic language model[J]. The Journal of Machine Learning Research, 2000, 13: 1137-1155.
[11]Mikolov T, Chen Kai, Corrado G,et al. Efficient estimation of word representations in vector space[EB/OL]. (2013-09-07). https://arxiv.org/abs/1301.3781.
[12]Pennington J, Socher R, Manning C D. GloVe: global vectors for word representation[C]// Proc of Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2014: 1532-1543.
[13]Bojanowski P, Grave E, Joulin A,et al. Enriching word vectors with subword information[J]. Transactions of the Association for Computational Linguistics, 2017, 5: 135-146.
[14]Peters M, Neumann M, Iyyer M,et al. Deep contextualized word representations[C]// Proc of Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Stroudsburg, PA: Association for Computational Linguistics, 2018: 2227-2237.
[15]Devlin J, Chang Mingwei, Lee K,et al. BERT: pre-training of deep bidirectional transformers for language understanding[C]// Proc of Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Stroudsburg, PA: Association for Computational Linguistics, 2019: 4171-4186.
[16]Liu Yinhan, Ott M, Goyal N,et al. Roberta: a robustly optimized BERT pretraining approach [EB/OL]. (2019-07-26). https://arxiv.org/abs/1907.11692.
[17]Lan Zhenzhong, Chen Mingda, Goodman S,et al. Albert: a lite bert for self-supervised learning of language representations [EB/OL]. (2020-02-09). https://arxiv.org/abs/1909.11942.
[18]Yang Zhilin, Dai Zihang, Yang Yiming,et al. XLNet: generalized autoregressive pretraining for language understanding[C]// Proc of the 33rd International Conference on Neural Information Processing Systems. Red Hook, NY: Curran Associates Inc., 2019: 5753-5763.
[19]Raffel C, Shazeer N, Roberts A,et al. Exploring the limits of transfer learning with a unified text-to-text Transformer[J]. The Journal of Machine Learning Research, 2020, 21(1): 5485-5551.
[20]Weld H, Huang Xiaoqi, Long Siqu,et al. A survey of joint intent detection and slot filling models in natural language understanding[J]. ACM Computing Surveys, 2022, 55(8): 1-38.
[21]曹亞如, 張麗萍, 趙樂樂. 多輪任務型對話系統(tǒng)研究進展[J]. 計算機應用研究, 2022, 39(2): 331-341. (Cao Yaru, Zhang Liping, Zhao Lele. Research progress on multi-turn task-oriented dialogue systems[J]. Application Research of Computers, 2022, 39(2): 331-341.)
[22]周天益, 范永全, 杜亞軍, 等. 基于細粒度信息集成的意圖識別和槽填充聯(lián)合模型[J]. 計算機應用研究, 2023, 40(9): 2669-2673. (Zhou Tianyi, Fan Yongquan, Du Yajun,et al. Joint model for intent recognition and slot filling based on fine-grained information integration[J]. Application Research of Computers, 2023, 40(9): 2669-2673.)
[23]Zhang Xiaodong, Wang Houfeng. A joint model of intent determination and slot filling for spoken language understanding[C]// Proc of the 25th International Joint Conference on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2016: 2993-2999.
[24]Liu Bing, Lane I R. Attention-based recurrent neural network models for joint intent detection and slot filling[C]// Proc of the 17th Annual Conference of the International Speech Communication Association. [S.l.]: ISCA, 2016: 685-689.
[25]Purohit H, Dong Guozhu, Shalin V,et al. Intent classification of short-text on social media[C]// Proc of IEEE International Confe-rence on Smart City/SocialCom/SustainCom. Piscataway, NJ: IEEE Press, 2015: 222-228.
[26]Schuurmans J, Frasincar F. Intent classification for dialogue utte-rances[J]. IEEE Intelligent Systems, 2019, 35(1): 82-88.
[27]Chen Qian, Zhuo Zhu, Wang Wen. BERT for joint intent classification and slot filling[EB/OL]. (2019-02-28). https://arxiv.org/abs/1902.10909.
[28]王堃, 林民, 李艷玲. 端到端對話系統(tǒng)意圖語義槽聯(lián)合識別研究綜述[J]. 計算機工程與應用, 2020, 56(14): 14-25. (Wang Kun, Lin Min, Li Yanling. A review of joint intent and semantic slot recognition in end-to-end dialogue systems[J]. Computer Engineering and Applications, 2020, 56(14): 14-25.)
[29]Liu Pengfei, Yuan Weizhe, Fu Jinlan,et al. Pre-train, prompt, and predict: a systematic survey of prompting methods in natural language processing[J]. ACM Computing Surveys, 2023, 55(9): 1-35.
[30]Shrivastava D, Larochelle H, Tarlow D. Repository-level prompt gene-ration for large language models of code[C]// Proc of International Conference on Machine Learning. [S.l.]: PMLR, 2023: 31693-31715.
[31]White J, Hays S, Fu Quchen,et al. ChatGPT prompt patterns for improving code quality, refactoring, requirements elicitation, and software design[M]// Nguyen-Duc A, Abrahamsson P, Khomh F. Generative AI for Effective Software Development. Cham: Springer, 2024: 71-108.
[32]王培冰, 張寧, 張春. 基于prompt的兩階段澄清問題生成方法[J]. 計算機應用研究, 2024, 41(2): 421-425. (Wang Peibing, Zhang Ning, Zhang Chun. Two-stage clarification question generation method based on prompt[J]. Application Research of Compu-ters, 2024, 41(2): 421-425.)
[33]劉濤, 蔣國權, 劉姍姍, 等. 低資源場景事件抽取研究綜述[J]. 計算機科學, 2024, 51(2): 217-237. (Liu Tao, Jiang Guoquan, Liu Shanshan,et al. A review of event extraction in low-resource scenarios[J]. Computer Science, 2024, 51(2): 217-237.)
[34]Wei J, Wang Xuezhi, Schuurmans D,et al. Chain-of-thought promp-ting elicits reasoning in large language models[C]// Proc of the 36th International Conference on Neural Information Processing Systems. Red Hook, NY: Curran Associates Inc., 2022, 35: 24824-24837.
[35]Zeng Zhiyuan, He Keqing, Yan Yuanmeng,et al. Modeling discriminative representations for out-of-domain detection with supervised contrastive learning[C]// Proc of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2012: 870-878.