韓旭/HAN Xu,張正彥/ZHANG Zhengyan,劉知遠/LIU Zhiyuan
(清華大學,中國北京100084)
20世紀90年代前,研究人員將大量的精力投入到語法理論和專家系統(tǒng)的研究中。無論是語法理論中的語言規(guī)則還是專家系統(tǒng)中的知識庫,其背后的核心思想均為使用符號體系來表示語言理解所需的各類知識。這些離散稀疏的符號系統(tǒng)有利于抽象豐富的人類知識,并通過人為設計的精密規(guī)則實現語言理解中的知識推理。
近些年來,陸續(xù)構建的大型知識圖譜(知識庫),諸如Wikidata、YAGO和DBpedia,就采用了結構化的符號形式來存儲海量的世界知識,并在語言理解中發(fā)揮重要作用。近些年的研究也證明,大規(guī)模知識圖譜中的豐富知識可以有力驅動一系列人工智能和自然語言處理的應用,例如問答系統(tǒng)、對話系統(tǒng)、文本檢索和推薦系統(tǒng)。
符號知識的一大痛點在于難以發(fā)揮機器所擅長的數值計算優(yōu)勢。此外,早期的語法規(guī)則與專家系統(tǒng)在泛化性上也存在問題。這就需要一套基于數值計算且具有一定泛化性的知識表示框架。統(tǒng)計學習也由此被應用于自然語言處理任務中。20世紀90年代后,支持向量機、決策樹、條件隨機場的諸多經典統(tǒng)計模型被廣泛應用,在各類自然語言處理任務上取得了一系列突破。這些統(tǒng)計方法用模型參數來隱式地表示各類知識,并基于概率計算來進行推理。相對于符號知識的“人類友好”,這種連續(xù)數值化的模型知識更加“機器友好”。
統(tǒng)計模型拉開了從符號知識到模型知識的序幕,開啟了用數值表示知識的新紀元,但統(tǒng)計模型本身的性能是十分有限的。近年來,神經網絡蓬勃發(fā)展,它為數值化的知識表示及語義理解提供了更強大的工具。淺層神經網絡首先被應用于知識表示中。分布式詞向量表示旨在利用低維連續(xù)向量來表示詞匯相關的語言知識,并通過海量無標簽文本的自監(jiān)督學習來學習詞向量。得益于分布式詞向量中蘊含的豐富語言知識,詞的向量化表示已經成為當前完成各類自然語言處理任務的標準范式,也有效地填補符號知識與數值計算間的鴻溝。
隨著神經網絡的深度與參數量的增加,大規(guī)模預訓練語言模型(PLM)被提出,這推動了一系列自然語言處理任務的發(fā)展。預訓練語言模型的主要特點在于其兩階段的構建方法:第1階段,與分布式詞向量表示類似,在海量無標簽文本上進行自監(jiān)督學習,以學習通用的語言特征和規(guī)則(即預訓練);第2階段,將預訓練模型在具體的自然語言處理任務上進行小規(guī)模、有標注數據的二次訓練(即微調),以快速提升模型在這些任務中的性能,最終形成可部署應用的模型。研究表明,在自監(jiān)督學習過程中,預訓練語言模型可以捕捉到豐富的詞法知識、句法知識、語義知識、世界知識,并通過龐大的參數將這些知識存儲起來。這樣一來,微調模型的參數可以有效地將模型知識遷移到具體的任務上。
圖1顯示了自然語言處理技術的發(fā)展脈絡,清晰地表明了各個時期知識是如何表示的,以及是如何被運用于語言理解的。在使用上,符號知識與模型知識也各有優(yōu)勢。盡管預訓練語言模型已經在當前諸多自然語言處理任務上取得了很好的效果,但大量數據驅動下的預訓練語言模型依然在可解釋性、魯棒性上存在不足。數據驅動的預訓練語言模型具有善于學習的語義特征,同時符號表示的結構化知識有著善于認知推理的特征。綜合發(fā)揮以上兩個優(yōu)勢,形成知識指導的預訓練語言模型,對于揭示自然語言處理機理,實現智能語言理解,具有重要的理論意義與實用價值。
圖1 自然語言處理技術發(fā)展脈絡[11]
對于如何將知識有效地應用在預訓練語言模型中,我們已在文獻[11]中做了簡要介紹。本文中我們進一步擴展并提出了知識指導的預訓練語言模型。如圖2所示,一般來講,預訓練語言模型有4個要素:模型輸入、模型架構、訓練目標和參數空間。
圖2 知識指導的預訓練語言模型范式[11]
?對模型輸入而言,知識是輸入的重要補充,為文本中的關鍵詞句提供更加有效的語義解釋和語義特征;
?對模型架構而言,知識可以引入先驗指導模型內部的特征處理流程,進而提升模型性能;
?在訓練目標上,知識可用于構造新的訓練任務,提供更加豐富的訓練目標,促進預訓練語言模型能力的多樣化;
?在參數空間里,相比于隨機初始化,用引入知識的方式來約束參數空間可以提供一個更好的參數空間初始點,有利于加速收斂,優(yōu)化出更好的模型參數。
正如圖2所示,知識可被應用于其中任意一部分,以起到強化預訓練模型性能的作用。接下來,我們將介紹這個框架的具體內容。在圖中,我們給出了結構風險函數在知識指導前后的變化。其中,x、y是樣本的輸入輸出,k是引入的知識信息或者知識驅動的模塊,f是預訓練語言模型本身,F、K分別是參數空間、知識約束的參數空間。
在語言表達過程中,人們習慣省略一些眾所周知的背景知識。這并不影響人類對語言的理解,卻不利于機器對語言的理解。知識增強旨在將這部分背景知識顯式地作為補充輸入,豐富上下文信息,以幫助模型更好地進行文本理解。
知識增強的方式主要有兩種。第一種是直接將知識轉換成文本形式,并拼接到已有文本中作為輸入。最簡單的做法就是將相關的結構化圖譜信息轉換為文本內容。在此過程中,如何找到和輸入相關的知識就是一個主要挑戰(zhàn)?;谛畔z索的預訓練語言模型是一個有效的解決方案,例如REALM和RAG。其預訓練一個文本檢索器,用于構建輸入文本和背景知識文本的關聯,使用時再將檢索到的知識文本與輸入文本拼接起來,給模型提供更加豐富的信息。
知識增強的另一種方式則是通過設計特定的知識融合模塊,將文本的表示向量和相關知識向量融合在一起。這與上述文本拼接有明顯不同:知識不再以符號形式進行表達,而是被蘊含在模型參數中。ELMo是該方向的代表性工作。由于ELMo是一個在超大規(guī)模語料上訓練的語言模型,其表示向量可以提供豐富的語言知識,解決一詞多義等問題。人們通常使用ELMo來代替?zhèn)鹘y(tǒng)詞向量,以提升模型的基本文本理解能力。更進一步地,不少工作將知識圖譜中的實體與關系表示為向量,并將這些向量輸入到預訓練語言模型以進行知識融合,這也是非常有效的知識增強方法。
知識支撐可以利用大量已有的知識來構建更好的結構先驗。具體而言,在模型底層,知識支撐可以作為一種數據預處理模塊;而在模型頂層,知識支撐可以指導模型的預測。
知識記憶網絡是數據預處理模塊的代表技術。根據輸入特征,底層的網絡結構會動態(tài)調整,以連接對應的記憶區(qū)域,從而將記憶模塊中的知識注入到模型的推理計算中。在此過程中,知識的表示形式通常為低維稠密向量,也就是所謂的模型知識。采用了記憶機制的預訓練語言模型在多跳推理、長文本處理等需要長距離語義關系處理的任務上有顯著效果。
當知識支撐作為頂層的預測指導模塊時,其目標是借助知識的先驗信息,構建答案之間的關聯,更好地對備選答案進行篩選。在此過程中,知識的表示形式通常是符號化、層次化的。結構化知識庫支撐的語言模型是該方向具有代表性的研究工作。在生成句子的過程中,語言模型可以利用知識庫信息生成更加適合當前語境的詞。
對于知識約束,我們既可以基于已有輸入數據并結合相關知識來構建訓練目標,也可以直接使用外部知識來構建新數據和新目標。
知識蒸餾是一種代表性的知識約束方法,也是知識結合已有輸入數據來構建訓練目標的典型案例。知識蒸餾能夠利用大模型對已有數據進行預測,從而提供新的監(jiān)督信號,幫助小模型學習取得更好的效果。具體而言,知識蒸餾要求小模型的中間計算結果和大模型的中間計算結果盡可能保持一致,包括隱層表示以及預測的標簽分布。相比于單一的人工標注標簽,知識蒸餾能提供更加豐富的模型知識信息。知識蒸餾已被廣泛用于預訓練語言模型以提升其計算效率與模型表現。
遠程監(jiān)督是另一種具有代表性的知識約束方法,能夠根據已有知識圖譜和無監(jiān)督文本自動生成大量新訓練數據。遠程監(jiān)督在信息抽取領域獲得廣泛應用,大大降低了數據標注成本,顯著提升了模型性能。我們給出了一個遠程監(jiān)督的簡單示例:給定知識圖譜中的三元組(包含頭實體、尾實體及其關系),找出同時包含頭尾實體的文本,并將其標注為該關系類型的樣例?;谏鲜鰡l(fā)式規(guī)則,我們可以自動獲取大量知識相關的文本分類數據來訓練預訓練語言模型。盡管這種自動標注方式存在噪音,如標注的樣例可能并不反映頭尾實體間的標注關系,但不少工作表明,遠程監(jiān)督數據依然能夠有效地幫助模型的訓練。這些使用遠程監(jiān)督數據增強的預訓練語言模型被驗證具有強大的實體關系理解能力。
知識遷移的目的在于利用知識進行參數空間的約束,以降低參數空間的搜索代價,提升最終模型的性能。知識遷移技術已被廣泛應用于自然語言處理。遷移學習和自監(jiān)督學習都是知識遷移的重要研究方向。各種預訓練語言模型的微調階段本身就是一種知識遷移,旨在將預訓練階段獲取的豐富模型知識遷移到具體任務上。
對于預訓練過程而言,最近的一些工作嘗試以已有的預訓練語言模型為基底來訓練新的預訓練模型。部分工作側重于利用較小的預訓練語言模型的模型知識,來降低大規(guī)模預訓練模型的訓練代價;而另一些工作則基于已有預訓練語言模型的通用知識,來指導更多垂直領域的知識。
無論是對于預訓練語言模型的預訓練還是下游任務適配,充分遷移已有的模型知識相較于毫無基礎的重新學習,在計算效率和模型效果上均有顯著優(yōu)勢。
總之,我們從預訓練語言模型的模型輸入、模型架構、訓練目標和參數空間4個方面入手,構建了全面的知識指導的預訓練語言模型框架。在該框架下,符號知識和模型知識均可以得到充分利用,有效提升預訓練模型的學習能力和模型表現。
在上一章節(jié)中,我們關注的是如何將知識注入預訓練語言模型之中。在這一章節(jié)中,我們將簡單介紹如何激發(fā)預訓練模型中的知識。這對于應用知識指導的預訓練語言模型具有重要意義。
預訓練語言模型能夠通過微調顯著提升下游任務性能,卻仍然面臨著兩個重要挑戰(zhàn):(1)預訓練和微調之間的任務形式存在較大差別,預訓練只考慮語言建模,但下游任務目標形式可能各有不同,這種差別會顯著影響知識遷移的效能。(2)隨著預訓練模型參數規(guī)模迅速增加,即使進行模型微調,也需要大量技術資源。為了解決這些問題,最近學術界提出了一種新的微調技術,即提示學習(Prompt Tuning)。該技術能夠有效利用大規(guī)模的模型知識,日益獲得廣泛關注。
提示學習的目的是將下游任務轉化為類似于預訓練目標的填空任務。采用相同的優(yōu)化目標有利于在下游任務中更好地激發(fā)預訓練模型中的知識。以情感分類的提示學習為例(圖3),模型的輸入由兩部分組成:輸入數據以及提示學習所需的提示模板。基于該輸入,預訓練語言模型在一組標簽詞中選擇概率最高的詞進行填空,再將預測的詞映射到相應的分類標簽上。圖3中,提示模板為“It was[Mask]”,“[Mask]”代表需要進行填空的位置。標簽詞為“great”和“terrible”,“great”對應正向情感,“terrible”對應負向情感。提示微調也在一系列自然語言處理任務上取得了成效,包括文本分類、序列標注、文本生成等任務。
圖3 預訓練、微調、提示學習示意圖
為了在下游任務上取得成功,提示模板和標簽詞(提示語)需要進行精細的設計和選擇。為了避免費力而復雜的提示語設計,自動搜索高質量的提示語成為目前工作的一個重點:研究者探索使用梯度優(yōu)化來搜索最佳提示語,或使用生成模型來提供多個候選提示語,然后逐一評估其有效性,以選擇最佳提示語。目前,自動搜索提示語的成本仍然很高,這限制了這些自動方法的使用場景。為此,也有研究者提出用邏輯規(guī)則指導提示學習。這種方法將先驗知識編碼到提示語中,降低搜索以及訓練難度,使模型知識可以更好地為下游任務服務。為了避免復雜的提示設計,一些工作采用了可學習的提示向量來驅動預訓練語言模型進行提示微調,無須變動預訓練模型的任何參數,只須調整提示向量即可。
不少知識探測工作表明,通過設計提示模板,預訓練語言模型甚至可以補全結構化知識信息。上述研究表明,除了知識模型的性質外,預訓練語言模型也有一定的符號知識特性。輸入提示能充分激發(fā)出預訓練語言模型中各個層面豐富的知識信息,以解決具體問題。預訓練語言模型在推動自然語言處理中模型知識的使用方面有著重要作用。從某種程度上而言,預訓練模型也將影響自然語言處理中符號知識的使用范式。盡管預訓練語言模型仍需符號知識進行強化,但其本身也是一種符號知識的優(yōu)秀載體,有利于符號知識與模型知識的融合與統(tǒng)一。
在文章中,我們圍繞知識對于自然語言處理的重要性、知識指導的預訓練范式、預訓練語言模型的知識激發(fā)3個方面,介紹了知識指導的預訓練語言模型的相關技術。在各個方向上,盡管目前均已獲得一些成果,但仍有許多尚未解決的重要問題。這需要研究者進一步努力,以取得突破。
清華大學姚遠、李涓子和孫茂松在文章的撰寫過程中,給出了寶貴的建議,在此表示感謝。