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