ICBU可控文本生成技术详解
簡介:?文本生成(Text Generation)是自然語言處理(Natural Language Processing,NLP)領(lǐng)域的一項重要且具有挑戰(zhàn)的任務(wù)。顧名思義,文本生成任務(wù)的目的是生成近似于自然語言的文本序列,但仍可以根據(jù)輸入數(shù)據(jù)進行分類。本文我們聚焦于輸入文本生成文本的 Text-to-Text 任務(wù),具體地包括神經(jīng)機器翻譯、智能問答、生成式文本摘要等。
作者 | 劉森
來源 | 阿里技術(shù)公眾號
可控文本生成技術(shù)大圖
一 文本生成技術(shù)
文本生成(Text Generation)是自然語言處理(Natural Language Processing,NLP)領(lǐng)域的一項重要且具有挑戰(zhàn)的任務(wù)。顧名思義,文本生成任務(wù)的目的是生成近似于自然語言的文本序列,但仍可以根據(jù)輸入數(shù)據(jù)進行分類。比如輸入結(jié)構(gòu)化數(shù)據(jù)的 Data-to-text Generation,輸入圖片的 Image Caption,輸入視頻的 Video Summarization,輸入音頻的 Speech Recognition 等。本文我們聚焦于輸入文本生成文本的 Text-to-Text 任務(wù),具體地包括神經(jīng)機器翻譯、智能問答、生成式文本摘要等。
隨著深度學(xué)習(xí)的發(fā)展,眾多新興的技術(shù)已被文本生成任務(wù)所采用。比如,為了解決文本生成中的長期依賴、超綱詞(Out-of-Vocabulary,OOV)問題,注意力機制(Attention Mechanism),拷貝機制(Copy Mechanism)等應(yīng)運而出;網(wǎng)絡(luò)結(jié)構(gòu)上使用了循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks),卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks),圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks),Transformer 等。為了順應(yīng)“預(yù)訓(xùn)練-精調(diào)”范式的興起,在海量語料上自監(jiān)督地訓(xùn)練出的大體量預(yù)訓(xùn)練語言模型(Pre-trained Language Model;PLM),也被廣泛應(yīng)用在文本生成任務(wù)中。
為了展示上述結(jié)構(gòu)、模型、機制在文本生成任務(wù)上的應(yīng)用,本章第一小節(jié)會簡要梳理主流文本生成模型的結(jié)構(gòu),在第二小節(jié)會對于文本生成的評價指標(biāo)的方案進行歸納。
1 文本生成模型的結(jié)構(gòu)
文本生成模型的結(jié)構(gòu)常來自于人類撰寫文本的啟發(fā)。此處按照模型結(jié)構(gòu)的特征,將主流文本生成模型分為如下幾種:
圖1:各種文本生成模型結(jié)構(gòu)圖示
Encoder-Decoder Framework
“編碼器-解碼器框架”首先使用 encoder 編碼文本,再使用 decoder 基于原文編碼和部分解碼輸出,自回歸地解碼(Autoregressively Decoding)出文本。這類似于,人類首先理解素材(源文本、圖片、視頻等),然后基于對原文的理解和已寫出的內(nèi)容,逐字地撰寫出文本。也是目前序列到序列任務(wù)中應(yīng)用最廣泛的框架結(jié)構(gòu)。
Auto-regressive Language Model
標(biāo)準(zhǔn)的 left-to-right 的單向語言模型,也可以根據(jù)前文序列逐字地解碼出文本序列,這種依賴于前文語境來建模未來狀態(tài)的解碼過程,叫做自回歸解碼(Auto-regressive Decoding)。不同于編碼器-解碼器框架”使用 encoder 編碼源文本,用 decoder 編碼已預(yù)測的部分序列,AR LM 用同一個模型編碼源文本和已解碼的部分序列。
Hierarchical Encoder-Decoder
對于文本素材,人類會先理解單個句子,再理解整篇文本。在撰寫文本的過程中,也需要先構(gòu)思句子的大概方向,再逐字地撰寫出內(nèi)容。這類模型往往需要一個層次編碼器對源文本進行 intra-sentence 和 inter-sentence 的編碼,對應(yīng)地進行層次 sentence-level 和 token-level 的解碼。在 RNN 時代,層次模型分別建模來局部和全局有不同粒度的信息,往往能夠帶來性能提升,而 Transformer 和預(yù)訓(xùn)練語言模型的時代,全連接的 Self-Attention 弱化了這種優(yōu)勢。
Knowledge-Enriched Model
知識增強的文本生成模型,引入了外部知識,因此除了針對源文本的文本編碼器外,往往還需要針對外部知識的知識編碼器。知識編碼器的選擇可以依據(jù)外部知識的數(shù)據(jù)結(jié)構(gòu),引入知識圖譜、圖片、文本作為外部知識時可以對應(yīng)地選用圖神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、預(yù)訓(xùn)練語言模型等。融合源文本編碼與知識編碼時,也可以考慮注意力機制,指針生成器網(wǎng)絡(luò)(Pointer-Generator-Network),記憶網(wǎng)絡(luò)(Memory Networks)等。
Write-then-Edit Framework
考慮到人工撰寫稿件尚不能一次成文,那么文本生成可能同樣需要有“修訂”的過程。人工修訂稿件時,需要基于原始素材和草稿撰寫終稿,模型也需要根據(jù)源文本和解碼出的草稿重新進行編解碼。這種考慮了原文和草稿的模型能夠產(chǎn)生更加合理的文本內(nèi)容。當(dāng)然也會增加計算需求,同時生成效率也會打折扣。
表1:各種文本生成模型結(jié)構(gòu)及其代表性模型
2 文本生成的評價指標(biāo)
針對文本生成的評價指標(biāo),已有多年研究。根據(jù)不同的維度,可以對現(xiàn)有評價指標(biāo)有著不同的分類。比如,部分評價指標(biāo)僅考慮所生成的文本,來衡量其自身的流暢度、重復(fù)性、多樣性等;另一部分指標(biāo)還考慮到了源文本或目標(biāo)文本,來考察所生成的文本與它們之間的相關(guān)性、忠實度、蘊含關(guān)系等。
此處,我們從執(zhí)行評價的主體類型進行分類,來梳理當(dāng)前常用的文本生成的評價指標(biāo):
Human-centric evaluation metrics
文本生成的目標(biāo)是獲得人類能夠理解的自然語言。因此,邀請專家或受訓(xùn)練的標(biāo)注者來對生成內(nèi)容進行評價,或者比較多個模型的輸出文本,是最直觀的評價方式。人工評價在機器難以判別的角度也能發(fā)揮作用,比如:衡量生成文本句間的連貫性(Coherence),衡量生成文本近似于自然語言程度的通順度(Fluency),衡量生成文本中的內(nèi)容是否忠實于原文的事實正確度(Factuality),以及風(fēng)格、格式、語調(diào)、冗余等。此外,為了衡量人工打標(biāo)的可靠性,可以讓多個標(biāo)注者對進行同一樣本打標(biāo),并使用 IAA(Inter-Annotator Agreement)來對人工評價結(jié)果進行評估。常用的是 Fleiss' ,以及 Krippendorff's 。
Unsupervised automatic metrics
基于規(guī)則統(tǒng)計的無監(jiān)督自動指標(biāo),能夠適應(yīng)大體量測試集上的文本評價。最常見的就是 ROUGE-N(Recall-Oriented Understudy for Gisting Evaluation)和 BLEU-N(BiLingual Evaluation Understudy),這兩個指標(biāo)考慮了 N-gram overlapping 的召回率和精確率,能夠衡量文本的通順度及與源文本的字面一致性。通常,為了衡量文本用詞的多樣性,Distinct-N 計算僅出現(xiàn)過一次的 N-gram 占生成文本中總 N-gram 個數(shù)的百分比。
Machine-learned automatic metrics
為了衡量輸出文本在語義上的屬性,常需要用訓(xùn)練好的判別模型。比如,為了建模目標(biāo)序列與預(yù)測序列之間的相似度,可以使用 BERTScore 先利用 BERT 給出兩個文本序列的語境化向量表征,再進行相似度矩陣的計算;GeDi 中使用 RoBERTa 訓(xùn)練出一個 Toxicity Classifier 來判別模型生成的文本是否包含惡意中傷的內(nèi)容;自然語言推理任務(wù)中的文本蘊含(Textual Entailment)模型也可以用于衡量生成的摘要與原文之間在內(nèi)容上的忠實程度。
表2:各種測評指標(biāo)的性能優(yōu)劣勢
從上表我們可以看出,人工評價指標(biāo)雖然靈活,不適合用于對海量樣本評價。而無監(jiān)督的自動評價指標(biāo),雖然能低成本地解決評測問題,但能夠完成評價的角度甚少。“用模型來衡量模型”則是效率和靈活性之間的 trade-off。
但前提要保證判別模型本身的性能,才能保證測評結(jié)果的可靠性。Amazon 的工作證明開箱即用的 NLI 模型并不能保證內(nèi)容忠實度評測的良好效果,由此看來,該類型的評價指標(biāo)仍需要向 task-specific 和 data-specific 的方向上深挖,來彌合訓(xùn)練域與應(yīng)用域之間的鴻溝。
二 可控文本生成
可控文本生成的目標(biāo),是控制給定模型基于源文本產(chǎn)生特定屬性的文本。特定屬性包括文本的風(fēng)格、主題、情感、格式、語法、長度等。根據(jù)源文本生成目標(biāo)序列的文本生成任務(wù),可以建模為P(Target|Sourse);而考慮了控制信號的可控文本生成任務(wù),則可以建模為P(Target|Sourse,ControlSignal)。
目前可控文本生成已有大量的相關(guān)研究,比較有趣的研究有,SongNet(Tencent)控制輸出詩詞歌賦的字?jǐn)?shù)、平仄和押韻;StylePTB(CMU)按照控制信號改變句子的語法結(jié)構(gòu)、單詞形式、語義等;CTRL(Salesforce)在預(yù)訓(xùn)練階段加入了 control codes 與 prompts 作為控制信號,影響文本的領(lǐng)域、主題、實體和風(fēng)格。可控文本生成模型等方案也多種多樣,此處按照進行可控的著手點和切入角度,將可控文本生成方案分為:構(gòu)造 Control Codes、設(shè)計 Prompt、加入解碼策略(Decoding Strategy),以及 Write-then-Edit 共四類。
構(gòu)造 Control Codes 指的是引入一些符號或文本作為條件,訓(xùn)練條件語言模型;為預(yù)訓(xùn)練語言模型設(shè)計 Prompt 也能實現(xiàn)對 PLM 所執(zhí)行文本任務(wù)的控制;通過在解碼階段使用采樣策略,也能夠采樣出具有特定屬性的文本;最后,Write-then-Edit 指的是 PPLM 引入屬性判別模型來根據(jù)產(chǎn)生的草稿計算梯度并反向傳播,基于更新后的隱含狀態(tài)來產(chǎn)生最終文本序列。
圖2:可控文本生成技術(shù)方案類型圖示
此處,我們嘗試從時間維度來分析可控文本生成技術(shù)的發(fā)展過程和趨勢。
首先,在預(yù)訓(xùn)練語言模型的熱度高漲之前,使用解碼策略來控制文本屬性的方案較為流行,比如,引入多個判別器影響 Beam Search 中的似然得分的 L2W,以及改進解碼采樣策略的 Nucleur Sampling(2019)。
隨著 GPT-2(2019)、T5(2019)的提出,使得基于 Prompt 來控制同一預(yù)訓(xùn)練語言模型來完成多種任務(wù)成為可能。因其能夠更有效地利用模型在預(yù)訓(xùn)練階段習(xí)得的知識,Prompting LM 的方式受到了學(xué)術(shù)界的重視,Prefix-Tuning(2021)等也推動基于 Prompt 的文本生成向前一步。
而針對于如何基于預(yù)訓(xùn)練語言模型做可控文本生成,學(xué)術(shù)界也一直往“低數(shù)據(jù)依賴、低算力需求、低時間消耗”方向上推進。CTRL(2019)憑借海量數(shù)據(jù)和大體量結(jié)構(gòu)成為文本生成領(lǐng)域的代表性模型;PPLM (2019)則引入屬性判別器,僅需精調(diào)小部分參數(shù)起到了“四兩撥千斤”的效果;而 GeDi(2020) 為了解決 PPLM 多次反傳導(dǎo)致的解碼效率低下,直接在解碼階段加入屬性判別器來控制解碼輸出;CoCon(2021)同樣僅精調(diào)插入 GPT-2 中的 CoCon 層來提高訓(xùn)練效率,并通過精巧的目標(biāo)函數(shù)的設(shè)計來增強可控性能。
在本章,我們將針對上述提到的方案思路和模型細(xì)節(jié),進行詳細(xì)的介紹。
1 設(shè)計 Prompt
由于預(yù)訓(xùn)練任務(wù)與下游任務(wù)之間存在差距,為了充分利用模型在預(yù)訓(xùn)練階段習(xí)得的知識,可以通過設(shè)計 prompt 的方法,將下游任務(wù)建模為預(yù)訓(xùn)練任務(wù)。下面是 Prompting PLM 在非生成任務(wù)上的應(yīng)用,可以清晰地理解 prompt 相對于 fine-tuning 的價值。
我們對在 Masked Language Model 任務(wù)上預(yù)訓(xùn)練出的 BERT進行精調(diào),做實體類型識別(Entity Typing)任務(wù)。常規(guī)地,需要向 BERT 輸入[CLS]He is from New York.,然后用分類器根據(jù)[CLS]的隱含狀態(tài)對 New York 的實體類型做分類。然而,精調(diào)過程中的知識遷移無法避免地會造成知識損失,另外,為了訓(xùn)練新引入的分類器需要大量的訓(xùn)練樣本,不適應(yīng) few-shot 場景。
將訓(xùn)練數(shù)據(jù)嵌入 prompt,下游的分類任務(wù)即可被轉(zhuǎn)化為預(yù)訓(xùn)練的 MLM 任務(wù)。通過向模型輸入He is from New York. In this sentance, New York is a [MASK].,利用模型更能勝任的 MLM 任務(wù)預(yù)測[MASK]對應(yīng)的單詞,即判斷生成 New York 的實體類型。通過設(shè)計好的 prompt,可避免 fine-tuning。即不必調(diào)整 PLM 的結(jié)構(gòu)和參數(shù),完整保留預(yù)訓(xùn)練階段的知識。也可以通過 prompt 的設(shè)計規(guī)避將下游任務(wù)訓(xùn)練樣本的依賴,更適合 few-shot 和 zero-shot 場景。
Prompting 在非生成類任務(wù)上常用 Cloze-style 的 prompts 來適應(yīng)用 MLM 預(yù)訓(xùn)練任務(wù)。而對于生成類任務(wù),更常用的是 Prefix-style 的 prompts。相對于前者更側(cè)重于充分利用 PLM,后者還能夠?qū)ξ谋旧傻娜蝿?wù)實現(xiàn)可控。
GPT-2 作為通用的多任務(wù)模型,不僅要考慮源文本的信息,還要考慮將執(zhí)行的任務(wù),故被建模為P(Taget|Sourse,Task)。比如,將源文本嵌入模板[Sourse]TL;DR:作為 GPT-2 的輸入,模型能夠知曉下游任務(wù)是文本摘要,進而根據(jù)源文本自回歸地續(xù)接出摘要。
T5 希望將多個自然語言處理任務(wù)整合成 text-to-text 的形式,來統(tǒng)一模型在預(yù)訓(xùn)練、精調(diào)階段的任務(wù)。為了向 T5 模型明確所需執(zhí)行的任務(wù),源文本需要被嵌入模板。比如,輸入summarize:[Sourse]來生成摘要,或輸入translate English to German:[Sourse]來生成翻譯等。T5 論文提到,任務(wù)前綴也是超參數(shù),它們的 word,structure 對于下游任務(wù)的性能有潛在影響。這近似于預(yù)言了后來 prompting 的研究方向,Prompt Designing 也成為研究熱點。通常對于不同的任務(wù)和數(shù)據(jù)集針對性設(shè)計 prompts 來適應(yīng),圖2中展示了針對各生成相關(guān)任務(wù)的常用 prompts:
圖3:不同任務(wù)下常用的 prompts,[X] 是源文本,[Z] 是以期生成的答案
2 構(gòu)造 Control Codes
此處,Control Codes 指的是輸入模型的控制信號。控制信號的數(shù)據(jù)類型選擇非常廣泛,包括符號、單詞、文本段落等。為了使得模型在訓(xùn)練階段能捕捉并擬合控制信號的作用,進而能泛化到推理階段,控制信號需要與目標(biāo)序列高度相關(guān)。
構(gòu)造訓(xùn)練數(shù)據(jù)
GSum(Guided Summarization)引入了四種控制信號,包括重要句子、關(guān)鍵單詞、顯著實體三元組,以及檢索到的相關(guān)摘要。結(jié)構(gòu)上,GSum 基于 Transformer 改進。源文本和文本類型的控制信號共享編碼器,在編碼器頂層兩者各自有一層專屬編碼器。解碼器部分包含兩個 Multihead Cross Attention 分別關(guān)注源文本編碼和引導(dǎo)信號編碼。
圖4:GSum 模型結(jié)構(gòu)圖
為了保證控制信號與目標(biāo)序列中存在可被捕捉的聯(lián)系,實現(xiàn)摘要內(nèi)容的可控,如何獲取控制信號就顯得尤為重要,即所構(gòu)造的控制信號必須與目標(biāo)序列高度相關(guān)。GSum 的訓(xùn)練和測試數(shù)據(jù)集中的控制信號的獲取方式如下表所示:
表2:GSum 的訓(xùn)練、測試集上中控制信號的構(gòu)造方法
通過構(gòu)造與目標(biāo)序列高度相關(guān)的控制信號作為訓(xùn)練數(shù)據(jù),模型實現(xiàn)了內(nèi)容上的可控。然而,如果將訓(xùn)練數(shù)據(jù)集中控制信號的構(gòu)造方法替換為上述測試集的方法,導(dǎo)致模型性能下降。究其原因是相較于訓(xùn)練階段的控制信號的構(gòu)造方法,推理階段的方案獲得的控制信號與目標(biāo)序列之間的聯(lián)系更弱了。更強的控制信號與目標(biāo)序列屬性之間的相關(guān)性,可能帶來更好的控制性能。
類似地,CTRLsum 為了控制輸出摘要的和內(nèi)容長度,也考慮了如何在控制信號中體現(xiàn)目標(biāo)序列的長度屬性。針對內(nèi)容可控,CTRLsum 首先根據(jù)原文中的句子與目標(biāo)序列之間的 ROUGE 得分抽取出關(guān)鍵句子,然后篩選出關(guān)鍵句子與目標(biāo)序列中的最長公共子序列,去除重復(fù)和停用詞后獲得關(guān)鍵詞作為控制信號。
但 CTRLsum 并沒有顯式地給定控制信號,而是通過關(guān)鍵詞的個數(shù)來“暗示”。首先,將訓(xùn)練集中的樣本按照目標(biāo)摘要的長度排序后平分為 5 桶;然后,統(tǒng)計各桶中的平均關(guān)鍵詞個數(shù)。
在訓(xùn)練樣本中,僅保留目標(biāo)摘要所在桶所對應(yīng)個數(shù)的關(guān)鍵詞作為控制信號,測試階段即可利用所輸入關(guān)鍵詞的個數(shù)來控制摘要長度,利用關(guān)鍵詞的內(nèi)容來控制摘要內(nèi)容。
設(shè)計損失函數(shù)
通過設(shè)計損失函數(shù)來建模控制條件與目標(biāo)輸出之間聯(lián)系的典型例子,是 CoCon(Content Conditioner)。結(jié)構(gòu)上,CoCon 在 GPT-2 medium 的前 7 層和后 17 層之間一個 CoCon block,包括 Layer Normalization、Multihead Cross Attention 和 Feed Forward Networks。模型整體接受源文本輸入后,利用 CoCon 模塊引入控制條件信息,再做自回歸解碼以生成文本。
圖5:CoCon 模型結(jié)構(gòu)圖
為了構(gòu)造訓(xùn)練數(shù)據(jù),CoCon 從 GPT-2 Output Dataset 中采樣出 30 wordpieces 長度的樣本,從第 8 到 12 的位置上將文本切分為兩段。CoCon 建立控制條件文本與目標(biāo)文本之間關(guān)系的方式,由以下三個巧妙設(shè)計的損失函數(shù)來實現(xiàn)。為了方便介紹,我們考慮兩個文本樣本x,y,分別被切分為x1,x2和y1,y2。
- Self Reconstruction Loss
此處將前半段x1作為源文本,后半段x2作為條件,損失函數(shù)基于預(yù)測輸出與x2之間的負(fù)對數(shù)似然。之所以使用相同的后半段作為控制條件和目標(biāo)序列,是為了讓模型能夠捕捉并利用控制控制條件中的信息。
- Null Content Loss
將控制條件替換為符號?,模型退化為非可控文本生成模型,訓(xùn)練出 CoCon 作為單向語言模型的性能。
- Cycle Reconstruction Loss
首先將y1作為源文本,將x2作為條件輸入 CoCon,生成文本zy1,x2 。然后使用x1作為源文本zy1,x2作為條件,希望模型能夠生成x2。這就要求模型 1)在生成的結(jié)果zy1,x2中盡可能保留控制條件x2中的信息;2)在生成過程中盡可能利用上控制條件中保留的信息,即依據(jù)zy1,x2中保留的x2的信息復(fù)原x2。
另外,在 CoCon 的訓(xùn)練中還有一個 Adversarial Loss,因其與可控?zé)o關(guān),故在此不再展開。總體來看,CoCon 在沒有對數(shù)據(jù)集做繁重特征工程的情況下,通過上述的損失函數(shù),就能夠習(xí)得控制條件對于輸出的控制作用。這為可控文本生成也提供了一個非常有趣的思路。
3 加入 Decoding Strategy
不動預(yù)訓(xùn)練語言模型的參數(shù)與結(jié)構(gòu),僅通過解碼階段的策略入手,也能夠影響解碼輸出的結(jié)果。切入點有兩個,即 Beam Search 中似然得分的計算以及采樣策略。
改進采樣策略
Beam Search 是文本生成任務(wù)繞不開的話題。它介于局部最優(yōu)的 Greedy Search,以及全局最優(yōu)的 Global Search。Beam Search 在生成完整的預(yù)測文本序列的過程中,在每一個解碼步都僅維護k個似然得分最高的 track 及其得分。在k個 track 的基礎(chǔ)上進行下一步解碼,獲得k的平方個 track,再根據(jù)各自的似然得分進行采樣,保留k個 track,直到解碼過程終止。
其中,Beam Search 中每個 track 的似然得分計算方式如下:
為了控制輸出的文本長度,可以在似然得分上對于文本長度做懲罰,增加一個參數(shù)長度懲罰系數(shù)α:
此處,T為解碼長度,當(dāng)α越大則對長度的懲罰項越大,鼓勵從候選集中采樣出更短的 track;α越小越鼓勵采樣更長的序列。
另一類解碼策略從單詞采樣階段入手,通常通過改變單詞表上的概率分布,或根據(jù)規(guī)則限制候選集合的大小來實現(xiàn)。
單詞表上的條件概率分布P(yt|x,y<t)由解碼狀態(tài)映射到單詞表容量的維度后,經(jīng)過 softmax 進行歸一化所得。可通過影響 softmax 函數(shù)來控制當(dāng)前解碼時刻單詞表上的概率分布,進而影響 Beam Search 中的似然得分以及采樣結(jié)果。常見方案有 softmax with temperature,即在 softmax 上增加一個溫度系數(shù)T:
溫度系數(shù)越大則概率分布越平緩,越小則概率分布越尖銳。T→0輸出趨向于 one-hot 分布,T→∞結(jié)果趨向于均勻分布。我們可以適當(dāng)調(diào)高溫度系數(shù),在不影響輸出文本語言學(xué)質(zhì)量的情況下,提升用詞的豐富性。
除了操控候選集合上的概率分布之外,還可以篩選候選集合中的成員。Top-K Sampling 通過設(shè)置候選集容量 k,僅保留單詞表中概率最大的k個單詞,緩解了因采樣了不置信的長尾單詞對輸出結(jié)果的影響。Nucleus Sampling 通過設(shè)置一個概率值p,僅保留最少數(shù)量的累積概率達到p的候選單詞。相較于 Top-K Sampling,Nucleus Sampling 的候選詞表的維度即可動態(tài)地擴展或壓縮。
兩種采樣方式也可以和 Softmax-with-temperature 結(jié)合起來使用,通常K<100,p∈[0.9,1.0)且T>0.7。
引入外部反饋
L2W(Learn to Write)模型根據(jù)格萊斯準(zhǔn)則(Grice's Maxims),從 Quantity、Quality、Relation、 Manner 四個維度各引入了判別器,影響解碼階段的 Beam Search 中的似然得分。下表中介紹了 L2W 所引入的四種判別器,及其背后的動機。
表4:L2W 所使用的格萊斯準(zhǔn)則所對應(yīng)引入的判別器及所考慮因素
通過在解碼階段,L2W 通過各個判別器來衡量當(dāng)前采樣的候選結(jié)果,影響 Beam Search 的似然得分,鼓勵模型生成較少重復(fù)、不自相矛盾、忠實于原文,并且用詞豐富的文本。
由于訓(xùn)練語料未經(jīng)嚴(yán)格過濾,預(yù)訓(xùn)練語言模型能夠?qū)W會生成仇恨、偏倚或傷人的負(fù)面內(nèi)容。GeDi(Generative Discriminator)的目標(biāo)就是為預(yù)訓(xùn)練語言模型解毒(Detoxification)。諸如 CTRL 的可控文本生成模型可以學(xué)會“生成什么”,但不知道“不生成什么”。GeDi 可以通過計算單詞表上的概率分布時,用正反兩個類別的概率分布做標(biāo)準(zhǔn)化,從而明確模型鼓勵或抑制的內(nèi)容。
圖6:GeDi 生成過程中條件概率分布計算概念圖
條件語言模型可以建模為P(xt|x<t,c)∝P(xt|x<t)P(c|xt,x<t)w。其中,GPT-2 作為語言模型可以給出公式右側(cè)的PGPT2(xt|x<t)。GeDi 訓(xùn)練出一個類別條件語言模型 CCLM 來建模PGeDi(xt|x<t,c)。考慮到 GeDi 的訓(xùn)練樣本中 control code和 control code 總成對出現(xiàn),則根據(jù)貝葉斯定理可獲得公式右側(cè)的分類概率:
如此,即可通過類別條件語言模型 GeDi 來引導(dǎo)語言模型 GPT2 進行條件生成,即控制模型向類別c生成。除了用 positive、nagative 標(biāo)簽影響情感極性之外,還對于四個主題使用 [True] + 主題詞、[False] + 主題詞分別作為 control code 和 anti-control code 來訓(xùn)練類別條件語言模型 GeDi,實驗結(jié)果也證明 GeDi 模型能夠泛化到訓(xùn)練集中四個主題之外的領(lǐng)域上,實現(xiàn)主題可控。
4 Write-then-Edit 類
受到 CV 領(lǐng)域 PPGN(Plug and Play Generative Networks)的啟發(fā),通過插入屬性判別模型來引導(dǎo)模型生成特定屬性的文本的 PPLM 應(yīng)運而生。PPLM 作者按照場景將語言模型進行如下分類:
圖7:預(yù)訓(xùn)練語言模型的建模方式及其詳細(xì)信息
可以看到,為了適應(yīng)下游任務(wù)的需求通常需要對預(yù)訓(xùn)練語言模型進行 fine-tuning,比如 GPT2。并且為了構(gòu)造條件語言模型,還需要在條件語料上進行訓(xùn)練,比如 CTRL。而 PPLM 通過使用生成模型p(x),以及屬性判別模型p(a|x),來建模條件生成p(x|a)∝p(a|x)p(x),理論依據(jù)同 GeDi 一樣都是貝葉斯定理。如此,我們就不需要在海量包含屬性條件的標(biāo)注數(shù)據(jù)上,將大體量的預(yù)訓(xùn)練語言模型訓(xùn)練為p(x|a)。只需要訓(xùn)練出一個小體量的屬性判別模型P(a|x),即可引導(dǎo)語言模型P(x)做條件生成,起到“四兩撥千斤”的效果。
PPLM 使用 GPT-2 Medium 作為基礎(chǔ)語言模型,并引入兩種屬性模型。其一是為各個主題構(gòu)造詞袋模型(Bag of Words,BoW)。對于詞袋中的每個單詞,將模型輸出的其對數(shù)似然概率進行求和作為損失;其二是固定住語言模型后在上層添加單層判別器,獲得目標(biāo)類別的似然概率作為損失,對屬性模型進行訓(xùn)練。
在推理階段,使用梯度上升(Gradient Ascending)沿著語言模型p(x)的更高似然(體現(xiàn)語言建模性能)和屬性模型p(a|x)的更高似然(體現(xiàn)類別可控性能)的兩個梯度之和來影響歷史隱含狀態(tài),而不改變模型參數(shù)。
圖8:PPLM “預(yù)測-反傳-修正”的文本生成流程
通過如上圖所示的多次“預(yù)測-反傳-修正”的迭代,即可獲得最終的單詞表上的概率分布。實驗結(jié)果表示,PPLM 可以保證在不嚴(yán)重?fù)p失語言模型的通順性的情況下,實現(xiàn)屬性可控。
三 技術(shù)總結(jié)
1 可控的思路
對于控制信號,可以像 L2W 和 PPLM 選擇屬性判別器的似然概率;也可以同 CTRL 一樣設(shè)計 Prompts 和 control codes;或者可以像 GSum 引入句、詞、段落、三元組等多種形式的內(nèi)容。對于將控制信號反饋給模型的方式,可以如 PPLM 般基于梯度上升,也可以像 GeDi 直接修改單詞表上的概率分布,或者同 Hafez 一樣從 Beam Search 入手,將判別器給出的得分反饋到似然得分上。
然而,即使合理地引入了控制信號,也無法保證可控性能。還必須要確保訓(xùn)練數(shù)據(jù)集中控制信號與目標(biāo)序列的確存在著某種聯(lián)系。控制信號作為自變量,輸出文本作為因變量,自變量與因變量之間存在相關(guān)性,才可能用函數(shù)(可能是深度模型)進行擬合。
從 GSum、CTRLSum 的訓(xùn)練數(shù)據(jù)的構(gòu)造方式,以及 CoCon 訓(xùn)練目標(biāo)的設(shè)計思路都可以看出:為了實現(xiàn)推理階段生成文本的屬性受控制信號影響,就需要讓模型在訓(xùn)練階段就能夠捕捉控制信號,并且能夠建模控制信號與目標(biāo)序列之間的聯(lián)系。哪怕是像 CTRLSum 中為訓(xùn)練集中的摘要長度分桶后,用桶的標(biāo)簽作為控制信號,這也算是一種隱含的聯(lián)系。
由此,我們可以總結(jié)可控的基本思路是:選擇合理的控制信號,以合理的方式將控制信號輸入模型,進而對模型造成影響。
2 發(fā)展的趨勢
從時間上來看,Salesforce 在 2019 年發(fā)布的可控文本生成的代表性模型 CTRL,純依賴于數(shù)據(jù)來訓(xùn)練條件語言模型。CTRL 首先它學(xué)了個 250k 的 BPE 詞表,模型層數(shù)增加至 48 層,隱層維度為 1280,前饋層內(nèi)部維度 8192,預(yù)訓(xùn)練語料足足 180 Gb,因而訓(xùn)練成本高昂。
同年,UberAI 認(rèn)為訓(xùn)練完整的條件語言模型代價太大,因此推出了使用小體量的判別器來引導(dǎo)大體量預(yù)訓(xùn)練語言模型的 PPLM 來實現(xiàn)可控生成,理論基礎(chǔ)是貝葉斯定理。但 PPLM 的問題在于解碼過程中多次梯度反傳影響隱含狀態(tài)導(dǎo)致效率太低。
后繼在 2020 年,Salesforce 推出的 GeDi 同樣根據(jù)貝葉斯定理,將條件語言模型分解為語言模型和屬性判別模型,屬性判別模型直接影響單詞表上的概率分布,解決了 PPLM 解碼速度慢的問題。
2021 年,NTU 提出的 CoCon,為了通過“文本”作為可控生成的條件。結(jié)構(gòu)上,在 GPT-2 中插入了一層 CoCon Block 來編碼文本條件,并設(shè)計了四種巧妙的損失函數(shù)來訓(xùn)練 CoCon 層的可控性能,而不修改預(yù)訓(xùn)練語言模型的參數(shù)。
總結(jié)來看,這個發(fā)展的過程中的目標(biāo)是:1)對于海量標(biāo)注數(shù)據(jù)的依賴;2)精調(diào)階段對計算資源的高需求;3)推理階段高時耗;4)控制信號的種類限制。
除了最初的 CTRL 需要訓(xùn)練語言模型的全部參數(shù)之外,PPLM 固定 GPT2 Medium 的參數(shù),僅訓(xùn)練屬性模型;GeDi 中固定語言模型 GPT-XL 的參數(shù),僅訓(xùn)練 GPT2 Medium 作為 CCLM 來引導(dǎo)生成;CoCon 僅訓(xùn)練插入到 GPT2 的前 7 層和后 17 層之間的 CoCon Block,而不調(diào)整 GPT2 的參數(shù)。并且各工作在實驗中也常針對可控生成在不同領(lǐng)域的泛化性進行研究。
可以看出,可控文本生成研究的趨勢,并不是針對某個領(lǐng)域、某個主題、某種控制條件,訓(xùn)練出一個完整的條件語言模型做可控生成。而是,不僅要從效率和性能兩個角度更好地利用預(yù)訓(xùn)練語言模型,更要強調(diào)可控的效果和泛化性。
當(dāng)然,Prompt 相關(guān)方案的提出,也是為了拉近預(yù)訓(xùn)練階段的任務(wù)與下游任務(wù)之間的關(guān)系,從而使得在不必精調(diào)的情況下,獲得下游任務(wù)性能的提升。這個思路,同樣是為了更有效率地利用預(yù)訓(xùn)練語言模型,并以期能夠挖掘到“預(yù)訓(xùn)練”本身具有而“精調(diào)”無法帶來的性能增益。
四 ICBU 詳情頁底紋可控生成
基于搜索日志中 Item-query 之間點擊行為來獲得的詳情頁底紋,無法為沒有流量訪問的長尾商品關(guān)聯(lián)到 query 作為搜索底紋。為了解決長尾商品的數(shù)據(jù)冷啟動問題,這次暑期實習(xí)項目中,我們將可控文本生成技術(shù)應(yīng)用于 Query 生成任務(wù),來為基于點擊行為來關(guān)聯(lián)商品-query 的方案兜底,并形成了如下的技術(shù)框架。
該技術(shù)框架其中分為三個模塊,首先是基于 BART 訓(xùn)練條件語言模型,使得模型能夠根據(jù) control codes 來生成對應(yīng)實體的 query,實現(xiàn)實體類型可控;其次是召回數(shù)量可控,在 Beam Search 采樣階段不僅考慮候選集中元素的似然得分,并考慮上各元素的長度懲罰,使得模型能夠采樣出更相關(guān)、更符合表達習(xí)慣且更精煉的 query,從而能夠帶來更多召回;最后是 Query 價值判別模型,將生成的 Query 輸入判別模型獲得價值得分后反饋給生成器,從而生成潛在轉(zhuǎn)化價值更高的 query。
圖9:可控 query 生成方案鏈路圖示
我們做可控 Query 生成的動機是:用戶在搜索不同類目下的商品時所使用的搜索詞中,實體類型的分布不同。用戶在搜索電子產(chǎn)品的時候,搜索詞中出現(xiàn)型號類型的實體更多;而搜索美妝產(chǎn)品的時候會更側(cè)重于使用方式。此外,針對同一行業(yè),不同類目下的實體類型偏好分布也不同。服裝行業(yè)下,搜索裙裝類目時用戶更關(guān)注產(chǎn)品的風(fēng)格,搜索婚紗類目時用戶更偏好于材料。
因此,我們考慮,用戶看到更符合她/他輸入習(xí)慣的搜索詞后更愿意點擊,從而提升詳情頁搜索底紋模塊的滲透率。我們不僅希望為商品生成的 Query 中的實體類型符合用戶對該類目的偏好。此處的可控我們考慮兩點,一方面是生成 Query 中的實體類型可控,一方面是生成 Query 中實體順序可控。
此處我們在數(shù)據(jù)集構(gòu)造上入手,建立控制信號(實體類型序列)與目標(biāo) query(實體序列)之間在類型和順序上的對應(yīng)關(guān)系。為了加強這種關(guān)系,還對訓(xùn)練數(shù)據(jù)進行了數(shù)據(jù)增強,包括隨機 drop 實體,打亂實體順序等。在實體內(nèi)容層面上,考慮不多不少不重不漏的精確匹配率進行評測;在實體順序?qū)用嫔?#xff0c;我們使用 Levenshtein Distance 來評價。
此外,我們還考慮獲得表達更精簡的 Query,能夠在倒排索引階段召回更多商品,供給排序側(cè)能夠?qū)⒏嚓P(guān)的產(chǎn)品推給用戶。該需求通過解碼階段的 Beam Search 上增加 Length Penalty 來實現(xiàn),不僅考慮了似然得分(與標(biāo)題的內(nèi)容相關(guān)性),還考慮了長度懲罰(Query 表達簡潔性);
另外,我們設(shè)計了一個 Query 價值判別模型,為生成內(nèi)容的潛在價值進行評估。此處考慮了搜索日志中 Query 的點擊轉(zhuǎn)化、詢盤轉(zhuǎn)化、CVR、CTR 等指標(biāo),基于該數(shù)據(jù)訓(xùn)練了 XLNet-Base 來判別 Query 價值。可以在生成階段對 Query 價值進行反饋,采樣出潛在價值更高的 Query。
此處,我們展示了一些可控 Query 生成的例子,并且與抽取式基線模型進行對比。可以看出,生成的 Query 具有聯(lián)想相關(guān)產(chǎn)品、糾正表達錯誤、生成常用表達、生成專業(yè)表達、明晰實體搭配等特性。我們的可控 query 生成模型能夠為行為類方案覆蓋不到的商品提供高質(zhì)量的生成式 Query。
表5:可控文本生成模型與抽取式基線模型提供的 Query,及其召回數(shù)量
目前,詳情頁底紋推薦模塊上線的四種方案包括,Item2Query 基于點擊行為使用 TF-IDF 關(guān)聯(lián)商品的重要 Query 作為底紋,Item2Item2Query 基于主圖相似度關(guān)聯(lián)到的相似商品共享底紋,按照熱門實體類型從標(biāo)題中抽取實體的抽取式基線模型,以及我們的可控 Query 生成模型。上線后的指標(biāo)也顯示,在 CTR 指標(biāo)上,可控生成提供的 Query 的轉(zhuǎn)化率僅次于 Item2Query 基于行為關(guān)聯(lián)到的 Query。
圖10:業(yè)務(wù)上線指標(biāo)
五 可控文本生成相關(guān)數(shù)據(jù)集
六 參考文獻
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的ICBU可控文本生成技术详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云刘强:无影云电脑构建云上安全办公室
- 下一篇: ADBPGGreenplum成本优化之磁