鮑琛龍,呂明陽,唐晉韜,李莎莎,王 挺
(國防科技大學 計算機學院,湖南 長沙 410073)
知識抽取,是通過識別、理解、篩選、格式化,把文本中的各個知識點抽取出來,以一定形式存入知識庫中的過程[1],是構(gòu)建知識圖譜的關(guān)鍵一環(huán),在自然語言處理領(lǐng)域備受矚目,其方法也隨著自然語言處理方法的發(fā)展而發(fā)展。早期的自然語言的處理方法大多是完全監(jiān)督學習方法,這類方法嚴重依賴特征工程[2-3];隨著神經(jīng)網(wǎng)絡(luò)的出現(xiàn),自然語言處理出現(xiàn)了新范式——基于神經(jīng)網(wǎng)絡(luò)的深度學習[4-5],雖然不需要手動設(shè)置特征,但仍需要精心設(shè)計最適配下游任務(wù)的網(wǎng)絡(luò)架構(gòu)。近幾年,隨著預訓練語言模型(Pre-trained Language Model, PLM),如GPT[6]、BERT[7]、BART[8]等的出現(xiàn),“預訓練”+“微調(diào)”成為了自然語言處理的標準范式,并以統(tǒng)一的模型架構(gòu)顯著提升了大量任務(wù)的性能[9]。然而,在預訓練和微調(diào)時,不同階段的優(yōu)化目標不一致,在預訓練語言模型去適配任務(wù)的過程中,會給模型的性能帶來損失;并且預訓練語言模型的體量越來越大、訓練越來越繁瑣,導致很多時候無法對所使用的預訓練語言模型進行“微調(diào)”。因此,預訓練模型存在適配下游任務(wù)造成性能損失與較難“微調(diào)”的問題,需要探索出一種更小巧輕量、更普適高效的方法。
因為提示學習可以充分激發(fā)預訓練語言模型的潛能,所以成為當下研究熱點。提示學習是指對輸入文本信息按照特定模板進行轉(zhuǎn)換,把任務(wù)重構(gòu)成一個更能充分利用預訓練語言模型處理的形式。在構(gòu)造提示模板和標簽映射的過程中,“提示學習”將預訓練和微調(diào)的優(yōu)化目標進行統(tǒng)一, 充分激發(fā)預訓練語言模型的潛力,提升了任務(wù)的性能。表1展示了不同任務(wù)的示例。對于不同任務(wù),通過設(shè)計特定的模板,無論是分類任務(wù)、序列標注任務(wù)還是生成任務(wù),均可以被重構(gòu)為掩碼語言模型任務(wù),這使得下游任務(wù)與預訓練語言模型無需借助“微調(diào)”的方式來適配。提示學習拓展了預訓練語言模型的適用性,并且打破了不同任務(wù)之間統(tǒng)一建模的困難。
表1 不同任務(wù)的提示學習示例
目前提示學習相關(guān)工作尚處于初期探索階段,還面臨巨大挑戰(zhàn),Liu等人[10]已指出提示模板設(shè)計是影響提示學習效果的一個重要問題,并指出與知識相結(jié)合可能是解決該問題的一條路徑。近兩年間,提示學習與知識抽取相結(jié)合的方向已經(jīng)逐步成為新的研究熱點,基于提示學習的知識抽取在各具體任務(wù)中取得了領(lǐng)先水平,在提示學習中引入知識的相關(guān)研究也嶄露頭角。
提示學習的動機是幫助預訓練語言模型回憶“知識”;對于知識抽取任務(wù)而言,其目的是抽取知識,與此同時,利用抽取的知識也能提升提示學習的效果,二者相輔相成。因此,開展提示學習與知識相結(jié)合的研究將成為一個重要趨勢。對該領(lǐng)域進行全面總結(jié)和系統(tǒng)梳理,將有助于研究者了解相關(guān)研究前沿和主要挑戰(zhàn)。區(qū)別于Liu等人[10]對整個提示學習從基本概念到各種任務(wù)應(yīng)用的系統(tǒng)綜述,本文主要關(guān)注基于提示學習的知識抽取任務(wù)和基于知識的提示學習相關(guān)文獻。因此,本文在歸納整理了表2所列文獻的基礎(chǔ)上,嘗試歸納總結(jié)拓展該方向的概念與方法,旨在為感興趣的研究人員提供參考。
表2 提示學習與知識相結(jié)合的任務(wù)/方法分類
本節(jié)對提示學習中涉及的概念進行闡述,以Liu等人[10]的規(guī)范為主要參考。提示學習的核心是重構(gòu)下游任務(wù),例如情感分類任務(wù),原有任務(wù)的輸入為“今天的天氣真好”,輸出則是“正面情緒”類別。如果運用提示學習,輸入通過提示函數(shù)被改寫為“今天的天氣真好,我的心情是[MASK]的?!?輸出則是“開心”,然后通過標簽詞映射,將“開心”識別為“正面情緒”標簽。
具體而言,在提示學習中,需要以下三個步驟:
① 模板構(gòu)建: 用提示函數(shù)fprompt(x)將輸入的文本x修改為提示x′=fprompt(x);
② 答案搜索: 將x′傳給預訓練模型,得到“最高分”的輸出;
③ 標簽詞映射: 在第二步中得到的輸出是滿足預訓練任務(wù)形式的輸出,可能會與下游任務(wù)的輸出形式存在差別,需要一個函數(shù)映射來進行轉(zhuǎn)換。
模板構(gòu)建步驟通常被稱為提示工程,而標簽詞映射通常被稱為答案工程。
提示工程(也可稱為模板工程)是創(chuàng)建提示函數(shù)fprompt(x)的過程,這會影響下游任務(wù)的表現(xiàn)。對于提示工程而言,首先要考慮提示的模式,然后再考慮采用人工或者自動化的方式創(chuàng)建所需模式的提示。
提示的模式主要分為完型填空式提示和前綴提示兩種。完型填空式提示就是表1中的模板給出的示例,用于填充文本字符串中的空白部分;而前綴提示則是在輸入文本前添加一組可訓練的向量作為提示[31],訓練時固定預訓練語言模型中的其余參數(shù),對這些向量進行優(yōu)化;在最新研究中,前綴提示的概念也在不斷擴充,在特定字符串周圍使用一些特殊的標記來進行標注作為提示,這種方法也納入到了前綴提示的范疇,例如@ Bill @ was born in # Seattle #.,其中Bill實體和Seattle實體周圍都有特殊標記。
傳統(tǒng)的提示工程主要依靠人工構(gòu)建模板[11-12,18],過于依賴專家知識;同時研究者還探索了自動構(gòu)建提示模板的方法,主要包括離散提示[32]和連續(xù)提示[21]兩種。離散提示是指讓計算機自行搜索添加文本字符串;考慮到構(gòu)建提示的目的是找到讓語言模型能夠有效執(zhí)行任務(wù)的方式,而不是供人類閱讀或使用,沒有必要將提示限制為人類可讀的文本,因此衍生出了由連續(xù)向量構(gòu)成的連續(xù)提示,避免了語言模型參數(shù)對模板的限制;此外,還有人工設(shè)計和自動生成相結(jié)合的混合提示,采取在人工設(shè)計的提示中插入一些可訓練的向量[33]。在上述自動構(gòu)建提示的探索中,研究者們已經(jīng)發(fā)現(xiàn)在提示中引入知識,對構(gòu)建過程進行約束能夠取得更好的效果[28]。
答案工程旨在設(shè)計合適映射,即從預訓練語言模型輸出到答案空間中所對應(yīng)標簽詞的過程,這同樣需要考慮模式和設(shè)計方法。
答案的模式有標記[34](Token)、跨度[35](Span)、句子[31](Sentence)這三種。在實踐中,答案模式的選擇取決于執(zhí)行的任務(wù),例如,標記、跨度模式可以用于實體抽取和關(guān)系抽取任務(wù),跨度、句子模式可以用于文本生成任務(wù)。
答案模式設(shè)計方法分為手動設(shè)計、離散答案搜索、連續(xù)答案搜索這三種。手動設(shè)計即人為定義映射函數(shù)[35];離散答案搜索常用的方法有: ①擴充原答案空間,使用回譯的方法,將答案翻譯成另一種語言,然后返回生成多個釋義答案的列表[36];②先剪枝再進行搜索,先利用模型生成可能的答案,組成初始答案空間,即對所有答案的搜索空間進行剪枝,然后再使用一個具體的算法在這個剪枝后的空間內(nèi)進一步搜索以選擇最終答案[37];③標簽分解[14],將標簽分解為組成的詞,并將這些詞作為答案。目前,連續(xù)答案搜索在具體工作中運用較少,使用梯度下降的方式能夠優(yōu)化可變長答案標記[21]。
多提示學習是指在模板構(gòu)建的過程中使用多個提示,這能進一步增強提示學習的效果。常用的多提示學習有提示融合[25]、提示增強[15]、提示合成[26]、提示分解[12]這幾種方式。
提示融合是在預測時使用多個未回答的提示作為輸入,最終使用均值、加權(quán)平均、投票等多種方案得到輸出。這種提示融合的方式可以很好利用不同提示之間的互補優(yōu)勢,降低搜索出表現(xiàn)最好提示的成本,避免不同提示的差異對模型表現(xiàn)產(chǎn)生的影響,穩(wěn)定下游任務(wù)的性能。
提示增強又可以稱作演示學習,通過為語言模型提供帶有答案的示例作為提示,相當于一種數(shù)據(jù)增強,在一定程度上能解決小樣本問題[38]。例如,給模型輸入“湖南的省會是[Z]”作為提示時,在提示前面加上“江蘇的省會是南京”等示例;這種方式利用了預訓練模型學習重復模式的能力,可以很好處理小樣本問題,但存在示例選擇和示例排序[39]問題,后文中會探討示例選擇的解決方案[15]。
提示合成是指在處理一些可以分解成更基礎(chǔ)的子任務(wù)時,使用多個子提示,每個子提示對應(yīng)一個子任務(wù),然后將這些子提示組合為一個完整的提示。這種方法常用于關(guān)系抽取任務(wù)中,利用子提示處理實體識別和關(guān)系分類,然后根據(jù)標簽映射完成關(guān)系抽取任務(wù)。
提示分解是將完整的提示分解為不同的子提示,然后分別對每個子提示進行預測。這種方法往往用于序列標注任務(wù),例如命名實體識別任務(wù)。在輸入中可能存在多個實體,同時預測出所有實體的類型極其困難,因此需要為可能是實體的跨度創(chuàng)建子提示,分別對每個跨度進行預測。
提示學習在自然語言處理的各類任務(wù)中應(yīng)用廣泛,如Wang等人[40]利用提示學習重新建模了對話和推薦任務(wù),用一個預訓練語言模型就可以實現(xiàn)兩個任務(wù)的統(tǒng)一;Rajagopal等人[41]利用提示學習,引入特定域的概念,實現(xiàn)了序列到序列模型的跨域推理;Zhao等人[42]利用提示學習在一定程度上解決了對話摘要任務(wù)中的領(lǐng)域遷移問題,減少了對大量標注數(shù)據(jù)的依賴。此外,提示學習還運用于機器翻譯[43]、語義解析[44]等任務(wù)。
知識抽取的主要任務(wù)有實體抽取、關(guān)系抽取和事件抽取,這些任務(wù)在具體場景中會受到不同目標、異構(gòu)結(jié)構(gòu)和特定需求的影響,存在遷移性弱、域適應(yīng)受限、重新訓練代價高的問題。通過提示學習,可以進一步挖掘大規(guī)模預訓練語言模型的能力。實際上,因為知識抽取任務(wù)的形式與完型填空任務(wù)較為接近,提示學習的方法可以有效指導模型自適應(yīng)地完成抽取任務(wù),減輕人工標注大量數(shù)據(jù)的負擔,提升模型在小樣本與領(lǐng)域遷移場景下的表現(xiàn)。
傳統(tǒng)的實體抽取采用序列標注的方式[45],而基于提示學習的方法則將其通過掩碼很自然地表述為完型填空問題,能更充分地利用預訓練語言模型蘊含的知識,在實驗中取得不錯的效果。
基于提示學習方法進行實體抽取的基本模型框架如圖1所示,將輸入文本和提示輸入預訓練語言模型,再通過標簽詞映射將[MASK]預測為城市實體。通過完型填空式提示的方式實現(xiàn)對實體的預測,并將實體發(fā)現(xiàn)、實體分類兩個子任務(wù)分解為兩個子提示,但提示分解方法跨度檢測時會受錯誤傳播影響,且候選跨度過多增加了構(gòu)造提示的代價。研究者們嘗試采用前綴提示或提示增強的方式來解決問題。
圖1 基于提示學習的實體抽取基本模型框架
2.1.1 基于提示分解的實體抽取方法
在實體抽取任務(wù)中,對提示學習最早的探索來自于Ding等人[11]將提示學習用于實體分類任務(wù)的研究。提出PLET框架來處理細粒度的實體分類問題,通過人工創(chuàng)建了三種模板對實體分類進行建模, 并提出了帶有特殊標記的模板,證明了不同長度的模板會影響提示學習的效果。PLET框架使用的模板如圖2所示,圖2左半部分給出了3個定長模板和一個帶有特殊標記的不定長模板,右半部分解釋了圖中符號的含義,并闡述了模板的設(shè)置效果。
圖2 PLET的幾種模板
TemplateNER[12]最先將提示學習應(yīng)用于序列標注任務(wù),采用提示分解的方式,將輸入轉(zhuǎn)化為文本跨度,然后利用BART模型[8]為每一個子提示進行預測打分。在枚舉文本跨度時,為保證效率,設(shè)定了跨度上限為8,但為句子中的不同跨度生成提示仍會帶來巨大的開銷,而且這種方式在預測同一句子中不同跨度的實體時忽略了實體間的相互依賴性。
2.1.2 基于前綴提示的實體抽取方法
為了解決枚舉跨度的問題,Zhou等人[13]提出了插件標記器(plug-tagger),利用前綴提示來使用預訓練語言模型解決序列標注問題。在輸入文本前添加一系列可訓練的向量,輸入變?yōu)閄′=[θx;x′1,…x′n],這里的θx就是前綴提示,x′n是原輸入。為了增強這些向量的影響,這些向量還被添加到模型的每一層中作為額外輸入,在訓練時,凍結(jié)插入向量之外的參數(shù)。
LightNER[14]同樣是使用前綴提示解決實體抽取問題的探索,在編碼和解碼層都加入了可調(diào)節(jié)的參數(shù)作為前綴提示,同樣凍結(jié)其余參數(shù)對模型進行微調(diào),這樣就不需要通過枚舉所有可能的跨度和構(gòu)建模板的方式來促使預訓練模型抽取實體。
2.1.3 基于提示增強的實體抽取方法
基于提示增強的實體抽取方法通過構(gòu)造任務(wù)演示讓模型學習上下文,不需要使用完形填空式提示進行實體抽取,避免了利用提示分解進行抽取產(chǎn)生的問題。
Lee等人[15]提出的提示增強方法沿用了傳統(tǒng)序列標注模式,直接將任務(wù)演示拼接到原輸入后作為輸入。該方法的關(guān)鍵是選擇合適的實體示例,以兩種不同的方式構(gòu)建任務(wù)演示:
① 面向?qū)嶓w類型的演示,從訓練數(shù)據(jù)中為每個實體類型選擇(三種選擇策略: 隨機選擇、頻率最高、搜索策略)一個實體示例來構(gòu)建演示,使得模型通過學習其實體示例來更好地了解實體類型;
② 面向?qū)嵗难菔?在訓練數(shù)據(jù)中檢索(SBERT[46]或BERTScore[47]方法)與輸入句子相似的實例示例,使得模型通過學習相似的實例及其實體來更好地了解任務(wù)。
其中,面向?qū)嶓w類型的演示優(yōu)于面向?qū)嵗难菔?且搜索策略的表現(xiàn)最好。
類似于面向?qū)嶓w類型的演示構(gòu)建,Ma等人[16]提出EntLM,但無須拼接演示,直接通過預訓練語言模型檢索實體類型來挖掘模型能力,大幅提升模型的效率。
對于關(guān)系抽取任務(wù),提示學習通過引入前綴標記提示,讓模型更多地關(guān)注句子中的實體信息,充分激發(fā)模型的性能。
2.2.1 基于標記提示的關(guān)系抽取方法
Zhou和Chen[17]采用類型化實體標記的方式,先標記實體跨度和實體類型,然后將處理后的句子輸入模型獲得上下文輸入,最后使用分類器完成任務(wù),這種方法簡單卻能取得較好結(jié)果。圖3介紹了5種標記方法并給出樣例,展示了不同方法之間的區(qū)別。
圖3 類型化實體標記
2.2.2 基于人工提示的關(guān)系抽取方法
AdaPrompt[18]同樣使用標記提示,在實體兩側(cè)加入標簽來強調(diào)實體,與上文工作不同的是,使用離散模板和標簽詞映射將任務(wù)轉(zhuǎn)化為掩碼語言模型任務(wù)。
模板主要依賴專家知識進行人工設(shè)計,例如,“[實體1]是[實體2]的[MASK]”或者“[實體1]和[實體2]之間的關(guān)系是[MASK]”。在實際輸入時,模型分別掩碼關(guān)系詞和實體名稱來構(gòu)造兩個提示,這樣能更充分使用儲存在預訓練模型中的知識。
在答案工程部分,采用自適應(yīng)標簽選擇機制進行映射。通過將關(guān)系標簽分解,僅留下名詞并補全屬性詞,將搜索空間縮減到詞匯表,從而可以處理多關(guān)系標簽的映射。
Chen等人[19]在提示工程部分的做法與AdaPrompt做法相似,但對答案工程進行優(yōu)化,在標簽詞映射時引入從訓練集檢索的關(guān)系實例輔助決策,從而提高模型的魯棒性和通用性。
RelationPrompt[20]使用人工設(shè)計的模板,通過一個關(guān)系生成模型和關(guān)系抽取模型為零樣本關(guān)系抽取任務(wù)提供新的研究思路。具體而言,利用關(guān)系名稱當作語言模型的提示,生成未見過的關(guān)系類別的新句子樣本,類似于遠程監(jiān)督方法生成數(shù)據(jù)[48],然后利用這些偽數(shù)據(jù)去訓練模型完成抽取。但由于手工設(shè)計的提示過于簡單,存在生成數(shù)據(jù)質(zhì)量不高、抽取語義關(guān)系不符的情況。
2.2.3 基于連續(xù)提示的關(guān)系抽取方法
使用提示標記和離散答案搜索,AdaPrompt可在數(shù)據(jù)充足的情況下取得理想效果;但手工設(shè)計的模板依賴專家知識且無法應(yīng)對小樣本情況,因此研究者們嘗試使用連續(xù)模板和連續(xù)答案搜索挖掘模型的性能,提升在小樣本情況下的表現(xiàn)。
DART方法[21]使用一類特殊的非語義標記作為模板和標簽詞映射,并使用反向傳播在連續(xù)空間內(nèi)進行優(yōu)化。模型仍以BERT為基礎(chǔ),優(yōu)化目標是關(guān)系分類。
對于模板T={[T0:i],[MASK][Ti+1:j]},不同于離散模板的語義標記嵌入表示{w([T0:i]),w([MASK]),w([Ti+1:m])},DART采用可訓練的參數(shù)替換語義標記,模板變?yōu)閧h0,…,hi,w([MASK]),hi+1,…,hm},這些可訓練參數(shù)hi能在訓練過程中學習到最優(yōu)的表示效果;對于標簽映射,DART不同于AdaPrompt分解關(guān)系標簽的方法,而是采取連續(xù)映射,即M(Yj)={hm+j};另外,為了減少外部參數(shù)的使用,來增強方法的遷移性,{h1,…,hm,…,hm+n}作為嵌入?yún)?shù),是語言模型中未使用的標記或詞表中的特殊標記。
從自然語言文本中抽取事件實例是一個關(guān)鍵又十分具有挑戰(zhàn)性的工作。目前對事件抽取的任務(wù)研究大多數(shù)都遵守ACE 2005評測會議[49]中的規(guī)范進行抽取。
目前主流的事件抽取方法分為基于序列標注的方法[50-51]、基于問答的方法[52-54]和基于生成的方法(TANL[55], Text2Event[56]),這些方法依賴大量的訓練數(shù)據(jù)或精心設(shè)計的高質(zhì)量問題,無法適應(yīng)事件抽取的實際需要,研究者們希望通過引入提示學習,減輕數(shù)據(jù)處理的負擔,完成在小樣本情況下的事件抽取任務(wù)。
當前,基于提示學習的事件抽取主要有以下研究方向: 面向要素抽取的提示學習、面向流水線模式事件抽取的提示學習、基于提示融合的事件抽取。這些方法都是建立在編碼器-解碼器模型的基礎(chǔ)上的,基本模型架構(gòu)如圖4所示。
圖4 基于提示學習的事件抽取
(1) 將文本和提示輸入編碼器(Encoder);
(2) 解碼層(Decoder)負責輸出文本;
(3) 對輸出文本進行處理得到結(jié)構(gòu)化數(shù)據(jù)。
2.3.1 面向要素抽取的提示學習
L2A[22]將要素抽取任務(wù)視為問題的完型填空任務(wù),并用陳述句作為問題模板,以增加跨上下文語言的一致性并提高預測性能。利用模板將輸入句子轉(zhuǎn)換為[CLS]question[SEP]sentence[SEP]的形式。對于模板的構(gòu)建, 文中提出了手動和自動構(gòu)建的方法。手動構(gòu)建是將要素角色替換為[MASK],并將必要的信息(例如事件類型和要素跨度標記)添加到問題模板中;自動構(gòu)建是引入了未占用的標記[u1]~[u8]并利用反向傳播搜索最佳偽問題模板。
2.3.2 面向流水線模式事件抽取的提示學習
DEGREE[23]通過在輸入文本中添加包含觸發(fā)詞和要素的結(jié)構(gòu)化句子提示,將事件抽取任務(wù)轉(zhuǎn)換為生成任務(wù)。為了生成結(jié)構(gòu)化的句子,設(shè)計了特定事件類型的模板來編碼每種事件類型。模型的輸入是將輸入段落與設(shè)計好的提示用特殊分隔符[SEP]連接,提示是由對應(yīng)事件的語義信息描述和事件類型的預定義模板組成的。該模型可以按照特定事件類型的模板生成輸出文本,這些模板包含用于填充觸發(fā)詞或要素的占位符,最終通過比較模板和輸出文本來得到抽取結(jié)果。
GDAP[24]使用三個編碼器-解碼器模型,每個模型分別對應(yīng)事件類型檢測、觸發(fā)詞抽取、要素抽取模塊,其中觸發(fā)詞抽取和要素抽取兩個模塊均采用提示學習的方式。先對句子進行事件類型檢測,根據(jù)事件的類型,分別進行觸發(fā)詞抽取和要素抽取,并根據(jù)模板生成相應(yīng)的序列。圖5介紹了觸發(fā)詞抽取和要素抽取相應(yīng)的模板和預期輸出。
圖5 GDAP提示模板
2.3.3 基于提示融合的事件抽取
PoKE[25]利用多種提示的互補優(yōu)勢使模型更好地理解答案和理解上下文的聯(lián)系,在流水線模式的事件抽取任務(wù)中取得了較好效果。
在事件檢測任務(wù)中,將任務(wù)分成了兩步,先檢測出主要類型,再映射為子類型。為提取主要類型的觸發(fā)詞,設(shè)計了兩個聯(lián)合觸發(fā)提示,對事件進行交互建模。對于外部聯(lián)合觸發(fā)提示,在輸入文本后添加8種主要類型的提示,使模型共同生成觸發(fā)詞,這樣就能檢測出不同事件類型的差異。對于內(nèi)部聯(lián)合觸發(fā)提示,掩碼句中的觸發(fā)詞,學習事件的內(nèi)在聯(lián)系。
為了提取事件要素,文中提出了單一要素提示和聯(lián)合要素提示。對于前者,在ACE 注釋的描述中進行掩碼,促使模型生成相應(yīng)單詞,并將事件類型和相應(yīng)的觸發(fā)詞附在句尾。另外,由于在描述事件時,相同的要素可能在多處出現(xiàn),為使模型學習到這一點,文中提出聯(lián)合要素提示,對事件內(nèi)要素和事件間要素的交互進行建模。對于每個包含事件的句子都生成提示,并掩碼句子中的要素。
提示學習的動機就是通過提示使預訓練語言模型回憶起相關(guān)“知識”,因此提示學習在知識抽取相關(guān)任務(wù)中都獲得了較好的效果。提示學習可用于復雜的知識抽取任務(wù),但存在模板工程和答案工程過于復雜、可遷移性不強的問題,如何結(jié)合知識抽取任務(wù)特點,進一步提高提示學習的性能將成為研究者下一步探索的方向。
基于提示學習的方法已經(jīng)在知識抽取等任務(wù)上取得較好效果,但如何針對具體任務(wù),構(gòu)造出最合適的提示模板和標簽映射,從而進一步提高任務(wù)性能成為研究者面臨的一個重大挑戰(zhàn)。從GPT-3[38]、AutoPrompt[32]到P-tuning[33],模板構(gòu)造經(jīng)歷了從人工構(gòu)造到自動生成離散或連續(xù)模板三個階段。然而在其快速發(fā)展的背后,提示學習仍然面臨構(gòu)造提示成本高、無法應(yīng)對專業(yè)領(lǐng)域場景、缺乏常識性知識等問題。針對上述問題,研究者嘗試引入外部知識輔助模板生成,通過知識約束提升模型對任務(wù)和領(lǐng)域的感知。
知識約束方法是指在構(gòu)建提示和標簽映射的過程中注入外部知識,壓縮搜索空間。主要介紹PTR[26]、KPT[27]、KnowPrompt[28]等;其中,PTR是利用邏輯規(guī)則構(gòu)建提示;KPT是通過知識庫來擴展標簽映射;KnowPrompt在模板構(gòu)建和標簽映射過程中均注入了知識,上述方法的示意圖見圖6和圖7。
圖6 PTR和KPT方法示意圖
圖7 本體知識注入示意圖
PTR[26]等工作關(guān)注利用知識對提示工程進行約束,主要采用提示組合策略,過程如圖6(a)所示,手動設(shè)計一些基本的子提示,然后利用邏輯規(guī)則制定知識約束,能自動將子提示構(gòu)建成與任務(wù)相關(guān)的提示,降低了構(gòu)造提示的代價。
具體而言,PTR設(shè)計了本質(zhì)是一階謂詞邏輯的條件函數(shù),為條件函數(shù)手動設(shè)計子提示;采用類似的方法設(shè)計適合于分類任務(wù)的二元函數(shù),并將這些一元和二元函數(shù)的設(shè)計方法組合為多變量函數(shù),提供更強大的提示。當需要為任務(wù)組合子提示時,采取具有合取范式的邏輯規(guī)則,直接連接與規(guī)則相關(guān)的函數(shù)的子提示形成模板。PTR引入的邏輯規(guī)則知識并不復雜,但在關(guān)系分類任務(wù)上進行的實驗,超過了現(xiàn)有的最佳基線模型,這證明了利用知識指導模板構(gòu)建的有效性。
KPT[27]主要關(guān)注利用知識對答案工程進行約束;通過注入知識擴充答案空間,使模型的更多輸出能被映射到標簽詞,能對專業(yè)領(lǐng)域的小樣本問題進行數(shù)據(jù)增強。
具體而言,先使用外部知識為每個標簽生成一組相關(guān)詞,這組相關(guān)詞涵蓋了不同粒度和角度的同義詞及近義詞;再使用預訓練語言模型對擴展的相關(guān)詞集合進行去噪。例如,對于主題分類,利用ConceptNet[57]與WordNet[58]等知識庫引入相關(guān)詞,通過邊緣表示相關(guān)性篩選;對于情緒判斷這種二分類問題,步驟如圖6(b)所示,引入情感字典獲得擴展詞,構(gòu)建擴展標簽詞詞匯表,通過映射完成預測。
KnowPrompt[28]在PTR和KPT的思想上更進一步,彌補提示學習缺乏常識性知識的缺點。
對于Typed entity marker 這種標記提示(圖3),需要給出具體的實體類型,而虛擬類型詞就是使用潛在實體類型的聚合嵌入作為標記,這種標記是可學習上下文的向量,這樣向量中就有了與實體有關(guān)的知識。
在標簽詞映射時,通過構(gòu)建虛擬答案詞來實現(xiàn)連續(xù)答案搜索,將關(guān)系知識注入。離散答案搜索只能自動生成在詞匯表中的一個標簽詞,并和一個任務(wù)標簽之間建立一對一的映射;而使用向量作為虛擬答案詞,可以得到關(guān)系語義詞在候選集上的概率分布,利用這個概率分布初始化這些向量,然后使用三元組(s,r,o)描述關(guān)系事實進行約束,并調(diào)整損失函數(shù)以便感知上下文優(yōu)化向量,這樣可以利用預訓練語言模型的語義知識完成連續(xù)答案搜索。
Ye等人提出的PL-Marker[29]采用前綴標記提示,類似于KnowPrompt的知識注入方法,僅對提示的位置進行了調(diào)整與優(yōu)化,在關(guān)系抽取任務(wù)上達到目前最佳模型的性能。
由于知識噪聲和異構(gòu)性問題,并不是所有的外部知識都能有助于提示學習模型性能提升。針對這一問題,OntoPrompt[30]基于知識線性轉(zhuǎn)化和注意力掩碼矩陣實現(xiàn)了本體知識的選擇性注入。
OntoPrompt利用任務(wù)相關(guān)的本體知識生成文本作為輔助的標記提示。其主要思路就是將從外部知識圖譜中提取本體的描述文本作為輔助提示,并將其直接附加到輸入序列模板中。如圖7所示,箭頭指向的是輸入序列模板,其中[CLS]和[SEP]是開始符號與分隔符,[Input Text]代表原始輸入,[Template]代表處理后的輸入,[Ontology Text]和[Meta-Relation Text]代表圖中對應(yīng)方框的文字。但不加選擇的知識植入可能會給原始文本引入一些噪聲,并導致性能下降。為了解決這一問題,OntoPrompt基于K-BERT[59],提出了跨片段選擇性知識植入方法。使用一個可見矩陣調(diào)節(jié)“Ontology Text”和“Meta-relation Text”的權(quán)重,減緩知識注入對輸入文本可能造成的負面影響。另外,由于從本體庫植入的知識應(yīng)與輸入文本序列相關(guān)聯(lián),因此采用類似于前綴提示的做法,將“u1u2u3u4”置于[MASK]標簽周圍,并使用實體詞嵌入來初始化和優(yōu)化,能學習外部的本體序列表示和輸入文本序列的表示。
目前,基于知識的提示學習方法在文本分類、關(guān)系抽取、事件抽取等任務(wù)中驗證了模型的性能,并在小樣本場景下取得了很好的效果,證明了知識注入、知識選擇可以對模板構(gòu)建、標簽映射進行指導,減輕人工設(shè)計的負擔,提升小樣本環(huán)境下的遷移能力。
追本溯源,提示學習主要從預訓練語言模型里面獲取和任務(wù)相關(guān)的知識,這對預訓練模型的規(guī)模、預訓練數(shù)據(jù)的來源等都提出了要求[60]。而提示工程、答案工程都是為了能更好的指導如何從預訓練模型中獲取任務(wù)相關(guān)知識,人工設(shè)計模板的方法主要也是利用了專家知識;因此,基于知識約束及輔助的提示工程、答案工程必然會在提示學習研究中發(fā)揮越來越重要的作用。
提示學習的方法不僅僅在知識抽取任務(wù)上取得了較好表現(xiàn),并對小樣本場景下的運用進行了探索,還在自然語言處理的各個方向上有了一定的突破,但從構(gòu)建、原理和選擇三個具體角度來看,仍面臨提示學習的模板設(shè)計問題以及預訓練模型的選擇問題。這些問題制約了提示學習的深入研究和廣泛應(yīng)用,亟待后續(xù)研究加以解決。
4.1.1 提示學習的模板設(shè)計問題
目前應(yīng)用提示學習的工作大多集中于分類工作和生成工作,其他工作則較少。另外,“模板”和“標簽詞”的分割也亟待解決。模型的效果同時依賴于應(yīng)用“模板”和“標簽詞”的映射,僅自動生成最優(yōu)的連續(xù)模板或者搜索出最優(yōu)的答案空間就是一項非常復雜的工作,同時讓二者達到最優(yōu)極富挑戰(zhàn)性。此外,提示學習的模板設(shè)計效果存在可解釋性差的問題,部分意義相近的模板會對模型性能產(chǎn)生巨大影響。例如,Liu等人對LAMA-TREx P17案例進行分析[33],對哥倫比亞陽光海岸的所屬國家進行提問,模板中的“In”使準確率存在20%的波動,見表3。結(jié)合知識開展提示工程和答案工程的一體化設(shè)計,并通過知識約束使提示學習的模型更穩(wěn)定、效果更可解釋,這可能是解決提示學習設(shè)計問題的可行之道。
表3 提示模板影響研究
4.1.2 提示學習的預訓練模型選擇問題
提示學習的效果會受預訓練模型選擇的影響,目前各種自動生成提示和自動搜索答案的方法層出不窮,研究者們忽略對預訓練語言模型的選擇,并沒有探究不同的自動生成方法和自動搜索方法在不同預訓練模型下的表現(xiàn)。此外,面向大規(guī)模知識圖譜的圖預訓練模型中蘊含了更為密集的知識,而當前提示學習方法忽略了圖預訓練模型中知識的利用;對于知識密集型任務(wù),提示學習也沒做針對性的預訓練模型優(yōu)化。結(jié)合基于大規(guī)模知識圖譜的圖表示和圖預訓練模型[61-63],開展提示學習以及結(jié)合提示學習進行知識抽取,可能會取得更好的效果。
4.2.1 聯(lián)合知識抽取的探索
在基于提示學習的知識抽取方面,對于關(guān)系抽取和事件抽取,目前基于提示學習的方法都是流水線模式的,流水線模式存在固有的錯誤傳播問題,會影響模型的性能。近期,百度與中科院的UIE[64]基于提示學習,統(tǒng)一了抽取任務(wù),并在13個數(shù)據(jù)集的全監(jiān)督、低資源、少樣本設(shè)置下均達到目前最佳模型的性能,證明了基于提示學習的聯(lián)合抽取方法是極具價值的研究方向。
4.2.2 更復雜的知識注入
在結(jié)合知識的提示學習方面,目前注入的知識以三元組中的實體關(guān)系為主,注入的方法僅為簡單的謂詞邏輯或前綴提示;但知識圖譜蘊含的知識結(jié)構(gòu)信息、推理信息尚未得到充分利用,如何設(shè)計更好的知識約束方法,將這些復雜的知識通過提示學習的方式引入模型中,是基于知識的提示學習方法未來發(fā)展的重點方向。
本文對提示學習方法在知識抽取任務(wù)上的運用做了綜述,對具體方法中的提示工程、答案工程和多提示學習進行了分類和對比分析,已有的研究表明提示學習適用于知識抽取任務(wù)。針對提示學習中模板和標簽映射的構(gòu)造問題,闡述了基于知識約束的解決方案與知識選擇注入方法,并分析了與知識相結(jié)合的提示學習研究面臨的問題和未來發(fā)展趨勢。從目前形勢看,在基于提示學習的知識抽取方面,聯(lián)合抽取方法是極具價值的研究方向;在基于知識的提示學習方面,更復雜的知識注入與針對圖模型的提示學習可能是未來的重點發(fā)展方向。相信隨著更深入研究,與知識相結(jié)合的提示學習方法將會成為自然語言處理的一個新范式。