论文浅尝 | WWW2022 - “知识提示”之知识约束预训练微调
本文作者 | 陳想(浙江大學)、張寧豫(浙江大學)、謝辛(陳想)、鄧淑敏(浙江大學)姚云志(浙江大學)、譚傳奇(阿里巴巴),黃非(阿里巴巴),司羅(阿里巴巴),陳華鈞(浙江大學)
接收會議 | WWW2022
論文鏈接 | https://arxiv.org/abs/2104.07650
代碼 | https://github.com/zjunlp/KnowPrompt
一、引言
最近一年以來蓬勃發展的自然語言處理新范式“提示學習”(Prompt Learning),通過構造提示模板和標簽映射,顯著提升了模型的少樣本、跨領域、多任務等能力。在提示學習中,如何針對具體任務,構建出最合適的模板提示和標簽映射組合,是提升任務性能的關鍵。因此,通過植入相關的任務和領域知識來構建提示模板,以“知識提示”指導預訓練語言模型,可以提升模型對任務和領域的感知,充分的激發預訓練語言模型的潛力,提升任務性能。本文梳理了有關“知識提示”的學習方法,并介紹了被TheWebConf(WWW)2022錄用的新工作:KnowPrompt。
二、背景知識
2.1 自然語言處理的“第四范式”:提示學習
早年的自然語言處理方法嚴重依賴特征工程、特征工程,通過精心設計數據特征和網絡架構來實現下游任務。近幾年隨著語言模型如GPT、BERT、BART的出現,“預訓練”+“微調”成為了自然語言處理的標準范式,并以統一的模型架構顯著提升了大量任務的性能。然而,在預訓練和微調的過程中,不同階段的優化目標不一致。于是,起源于GPT3,并由PET[1,2]、LM-BFF[3]發展而來的一種全新的范式----“提示學習”[4],引起了學者的廣泛關注。通過構造提示模板和標簽映射,“提示學習”可以統一預訓練和微調的優化目標,并實現輕量、高效的下游任務微調,從而更好的完成任務。
隨著技術的不斷發展,新的提示學習方法不斷涌現,不同團隊在同一時期提出了大量了新思路、新方法。清華大學提出了可自動學習模板的P-tuning[5]和預訓練提示方法PPT[6],以解決需要人工構建模板和最優初始化等問題;斯坦福大學提出了Prefix-tuning[7]以參數可學習的前綴來實現高效的預訓練語言模型微調;谷歌提出了FLAN[8]通過自然語言指令微調實現更快、更小、更好的模型優化;Huggingface提出了T0[9]以更加多樣化的提示和多任務學習使模型具備更加魯棒、泛化的能力;浙江大學和阿里巴巴達摩院提出了可同時學習模板和標簽映射的DART[10]以實現全流程端到端微調降低模板提示構建成本。更多的工作開始嘗試將提示學習應用在如實體識別與分類[11,12,13,14]、關系抽取[15]、自然語言生成[16]、事件抽取[17,18,19]、情感分析[20,21]、語義解析[22]、視覺定位[23]、圖像生成[24]、多模態問答[25,26]等任務。相關工作可以參見https://github.com/thunlp/PromptPapers以及CCF關于提示學習的術語解讀[27]。
從本質上講,提示學習通過引入任務相關的模板將下游任務轉換成和預訓練目標一致的形式。其中,如何構建模板和標簽映射至關重要。模板提示在一定程度上是任務和預訓練模型交互的接口,通過將任務、領域相關的先驗知識植入提示設計,顯然可以讓模型更加懂任務、懂數據。我們將這一技術思路稱作“知識提示”,并介紹相關的方法。
2.2、知識提示學習:Knowledge-informed Prompt Learning
“知識提示學習”旨在通過植入任務、領域相關的知識,通過“Knowledge as Prompt”來降低提示學習的模板構建和標簽映射成本,提升預訓練模型對領域、任務的感知,激發預訓練模型的潛能,提升下游任務的性能。清華大學曾提出了將邏輯規則植入提示學習的方法PTR[28]和通過外部知識圖譜擴展標簽映射的方法KPT[29],在關系抽取、文本分類等任務場景取得較大的性能提升。一般來說,植入外部知識可以通過輸入增強、架構增強、輸出正則等形式[30]。然而針對知識提示,如何高效的將外部知識植入提示模板和標簽映射仍面臨一定的挑戰。針對第一問題,我們在提示學習框架中引入實體關系約束,提出了一種高效的知識植入提示學習方法KnowPrompt。
三、KnowPrompt:“知識提示”學習之知識約束
3.1 動機
提示學習在具體的任務中面臨諸多挑戰。以關系抽取(RE)為例,如下圖所示:一方面,為關系抽取構建合適的提示模板需要專業的領域知識,且模板需要大量的驗證集進行驗證,成本高昂;另一方面當關系抽取的標簽的個數發生變化時,標簽詞搜索過程的計算復雜度非常高(通常與類別個數呈指數關聯),因此較難在語言模型詞匯表中針對特定的關系標簽獲得合適的標簽詞。我們觀察到,關系標簽之間存在豐富的語義知識,即關系三元組之間存在結構約束。例如,如果一對實體包含“person”和“country”的類型,則[MASK]在關系“org:city_of_headquarters”上的預測概率會相對較低。此外,關系也約束它的實體的類型。
受此啟發,我們將實體關系約束知識植入提示學習過程,并提出了KnowPrompt方法。我們通過可學習的虛擬答案詞和虛擬類型詞構建知識注入的提示,并通過實體關系約束植入外部結構化知識,以降低模板構建成本并提升任務對領域任務的感知。
3.2 方法
具體來說,KnowPrompt模型分為提示的構建和優化兩個步驟:
3.2.1 Prompt Construction with Knowledge Injection
因為一個經典的提示由兩個部分組成,即模板和一組標簽詞映射,我們提出了虛擬類型詞(實體)和虛擬答案詞(關系)的構建,用于關系抽取任務的知識注入。
(1)Entity Knowledge Injection
Type Marker 方法可以額外引入實體的類型信息以提高性能,但需要對類型信息進行額外注釋,而實體類型標注在數據集中并不總是可用的。因此,我們通過特定關系中包含的先驗知識而不是注釋來獲得潛在實體類型的范圍。例如,給定關系“per:country_of_birth”,很明顯與該關系匹配的頭實體屬于“人”,而與該關系匹配的尾實體屬于“國家”。直觀地說,我們根據關系類型分別估計在候選集𝐶𝑠𝑢𝑏和𝐶𝑜𝑏𝑗上的潛在實體類型對應的先驗分布𝜙𝑠𝑢𝑏和𝜙𝑜𝑏𝑗,其中先驗分布是通過頻率統計來得到的。我們在實體周圍分配虛擬類型詞,這些詞使用一組潛在實體類型的聚合嵌入進行初始化。由于初始化的虛擬類型詞對于特定實體來說不是精確類型,這些可學習的虛擬類型詞可以根據上下文動態調整,起到類弱化的Type Marker的作用。具體初始化方法如下:
(2)Relation Knowledge Injection
以往關于提示學習的研究通常通過自動生成在詞匯表中的一個標簽詞和一個任務標簽之間建立一對一的映射,這種搜索計算復雜度高,且未能利用關系標簽中豐富的語義知識。為此,我們假設在語言模型的詞匯空間中存在一個虛擬答案詞𝑣′∈V′,它可以表示關系的隱含語義。從這個角度來看,我們在MLM Head 層拓展額外的可學習關系嵌入來作為虛擬答案詞集 V',以表示相應的關系標簽 Y。我們用掩碼位置處的 V′上的概率分布重新形式化 𝑝(𝑦|𝑥)。具體來說,我們設置𝜙𝑅=[𝜙𝑟1,𝜙𝑟2, ...,𝜙𝑟𝑚]和C𝑅=[C𝑟1,C𝑟2, ...,C𝑟𝑚],其中𝜙𝑟表示通過分解關系標簽𝑟得到的關系語義詞在候選集C𝑟上的概率分布,𝑚是關系標簽的數量。此外,我們采用𝜙𝑟的加權平均函數來平均C𝑟中每個單詞的嵌入并初始化這些關系表示,這可以為提示構建注入關系的語義知識。虛擬答案詞𝑣′=M(𝑦)的可學習關系嵌入初始化如下:
其中 ???是虛擬標簽詞𝑣′的嵌入,e 表示 L 的詞嵌入層。
3.2.2 Synergistic Optimization with Knowledge Constraints?
由于實體類型和關系標簽之間存在密切的交互和聯系,且虛擬類型詞以及答案詞應該與周圍的上下文相關聯,我們進一步引入了包含結構約束的協同優化方法來優化虛擬類型詞和虛擬答案詞{??,??,??}以植入關系約束知識。
(1)Context-aware Prompt Calibration?
盡管虛擬類型和答案詞是基于知識初始化的,但它們在潛在變量空間中并非最優,它們應該與周圍輸入的上下文相關聯。因此,需要通過感知上下文來校準它們的表示。給定掩碼位置 V′上的概率分布 𝑝(𝑦|𝑥)=𝑝([MASK]=V′|𝑥prompt),我們通過下列損失函數優化虛擬類型詞以及答案詞:
(2)Implicit Structured Constraints?
為了融合結構化知識,我們使用了額外的結構化約束來優化提示。具體來說,我們使用三元組(𝑠,𝑟,𝑜) 來描述關系事實,并定義隱式結構化約束的損失如下:
其中(𝑠′𝑖, 𝑟, 𝑜′𝑖)是負樣本,𝛾是margin,𝜎指sigmoid函數,𝑑𝑟是評分函數。
3.3 實驗
為了驗證KnowPrompt的效果,我們在五個常見的關系抽取數據集上評測(具體的數據已在Github開源發布),并在全監督和少樣本兩個設定下進行了實驗。如下表所示,KnowPrompt在全監督場景和低資源少樣本場景都取得了最優的性能。具體的實驗結果和分析可以參見論文。
四、一些思考和展望
在本文中,我們介紹了基于知識提示的預訓練微調,并解讀了我們的工作KnowPrompt,通過“Knowledge as Prompt”的思想實現高效的知識植入、知識選擇,促進模型對領域任務的感知,提升下游任務的性能。我們也對提示學習的未來提出了如下思考:
提示學習是人機交互的媒介?
在一定程度上,提示學習可能是人類語言指令和大規模預訓練模型交互的媒介,通過操作提示可以高效的利用大模型,發揮挖掘大模型的潛力。[33]探討了提示學習在少樣本情境和大模型交互中扮演的角色。
提示學習的理論分析?
提示學習為什么這么高效?[34]以隱馬爾科夫理論探討了提示學習的工作原理;[35] 提出了知識神經元,并分析了語言模型提示對FFN層知識的激活情況;[36]提出了“任務的公共低維本征子空間”。此外,[37]等多個工作曾發現模型可以習得一定程度的人類知識,而[38]發現外部知識提示可以顯著提升開放域問答能力。模型何時需要知識,需要何種知識仍值得繼續探索。
后提示學習時代可以做什么?
目前已有數百篇關于提示學習的工作,在后提示學習時代,更多的工作開始關注多模態、多任務、多語言提示學習,并將提示學習擴展到更加豐富的下游任務和應用場景中,如軟件工程、語音識別等。
提升學習目前帶來收益已經越來越少了,如何更好將提示學習落地?
隨著提示學習研究進入深水區,目前提示學習帶來的性能提升收益已經越來越小了,如何更加高效得將提示學習技術落地是一個很有價值的方向。復旦大學提出黑箱優化方法[39]不失為一種高效的大規模語言模型落地方式;清華大學開發了提示學習開源工具包OpenPrompt[40];浙江大學和阿里巴巴達摩院團隊也提出了可微分提示學習技術DART[10],降低了提示學習的人工成本。
五、參考文獻
[1] Exploiting cloze-questions for few-shot text classification and natural language inference EACL2021
[2] It’s not just size that matters: Small language models are also few-shot learners NAACL2021
[3] Making Pre-trained Language Models Better Few-shot Learners ACL2021
[4]Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing 2021
[5] GPT Understands, Too 2021
[6] Pre-trained Prompt Tuning for Few-shot Learning 2021
[7] Prefix-Tuning: Optimizing Continuous Prompts for Generation ACL2021
[8] Fine-tuned Language Models Are Zero-Shot Learners 2021
[9] Multitask Prompted Training Enables Zero-Shot Task Generalization 2021
[10] Differentiable Prompt Makes Pre-trained Language Models Better Few-shot Learners ICLR2022
[11] Lightner: A lightweight generative framework with prompt-guided attention for low-resource ner 2021
[12] Plug-Tagger: A Pluggable Sequence Labeling Framework Using Language Models 2021
[13] Template-free Prompt Tuning for Few-shot NER 2021
[14] Prompt-Learning for Fine-Grained Entity Typing 2021
[15] Label Verbalization and Entailment for Effective Zero and Few-Shot Relation Extraction EMNLP2021
[16] Few-Shot Text Generation with Pattern-Exploiting Training 2021
[17] Learning to Ask for Data-Efficient Event Argument Extraction AAAI2022(SA)
[18] Eliciting Knowledge from Language Models for Event Extraction 2021
[19] DEGREE: A Data-Efficient Generative Event Extraction Model 2021
[20] Sentiprompt: Sentiment knowledge enhanced prompt-tuning for aspect-based sentiment analysis 2021
[21] Open Aspect Target Sentiment Classification with Natural Language Prompts 2021
[22] The Power of Prompt Tuning for Low-Resource Semantic Parsing 2021
[23] CPT: Colorful Prompt Tuning for Pre-trained Vision-Language Models 2021
[24] Learning to Prompt for Vision-Language Models 2021
[25] Multimodal Few-Shot Learning with Frozen Language Models NeurIPS2021
[26] An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA 2021
[27] 聯手信息系統專業委員會:“提示學習”術語發布 | CCF術語快線https://mp.weixin.qq.com/s/WMWn9aA6UFRZdeJuhGeWwA
[28] PTR: Prompt Tuning with Rules for Text Classification 2021
[29] Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification 2021
[30]Knowledgeable machine learning for natural language processing. Communications of the ACM 2021
[31] K-BERT: Enabling Language Representation with Knowledge Graph AAAI2021
[32] Drop Redundant, Shrink Irrelevant: Selective Knowledge Injection for Language Pretraining IJCAI2021
[33] Prompt Programming for Large Language Models: Beyond the Few-Shot Paradigm CHI2021
[34] Why Do Pretrained Language Models Help in Downstream Tasks? An Analysis of Head and Prompt Tuning NeurIPS2021
[35] Knowledge Neurons in Pretrained Transformers 2021
[36] Exploring Low-dimensional Intrinsic Task Subspace via Prompt Tuning 2021
[37] Acquisition of Chess Knowledge in AlphaZero 2021
[38] A few more examples may be worth billions of parameters 2021
[39] ?Black-Box Tuning for Language-Model-as-a-Service 2021
[40] Openprompt: an open-source framework for prompt-learning 2021
OpenKG
OpenKG(中文開放知識圖譜)旨在推動以中文為核心的知識圖譜數據的開放、互聯及眾包,并促進知識圖譜算法、工具及平臺的開源開放。
點擊閱讀原文,進入 OpenKG 網站。
總結
以上是生活随笔為你收集整理的论文浅尝 | WWW2022 - “知识提示”之知识约束预训练微调的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 研究综述 | 知识图谱划分算法研究综述
- 下一篇: 会议交流 | 第十五届全国知识图谱与语义