引言
文本生成作為人工智能領域研究熱點之一,其研究進展與成果也引發了眾多關注。本篇主要介紹了三篇ACL2022的三篇文章。主要包含了增強預訓練語言模型理解少見詞語能力的可插拔模型、利用對比前綴控制文本生成以及長文本生成的動態內容規劃。
文章概覽
1. A Simple but Effective Pluggable Entity Lookup Table for Pre-trained Language Models
一個簡單但有效的預訓練語言模型的可插拔實體查找表
論文地址:https://arxiv.org/pdf/2202.13392.pdf
預訓練語言模型(PLM)不能很好地回憶大規模語料庫中實體詞語的知識,尤其是那些少見的實體。這篇文章通過將實體在語料庫中多次出現的輸出嵌入表示結合起來,構建了一個簡單但有效的可插拔實體查找表(PELT)。PELT可以兼容地插入PLM,向其補充實體詞語的知識。與以往的知識增強PLM相比,PELT僅需要0.2% ~ 5%預訓練的計算量,并具有從不同領域語料庫獲取知識的能力。
2. Controllable Natural Language Generation with Contrastive Prefixes
帶有對比前綴的可控文本生成
論文地址:https://arxiv.org/pdf/2202.13257.pdf
為了引導預訓練語言模型的生成具有某種屬性的文本,以前的工作主要集中在微調語言模型或利用屬性鑒別器。這篇文章在前綴微調的基礎上進行改進,考慮了前綴之間的關系,同時訓練多個前綴。本文提出了一種新的監督學習和一種無監督學習來訓練單個屬性標簽控制的前綴,而這兩種方法的結合可以實現多個屬性標簽的控制。實驗結果表明,該方法能夠在保持較高語言質量的同時,引導生成文本具有所需的屬性。
3. PLANET: Dynamic Content Planning in Autoregressive Transformers for Long-form Text Generation
PLANET:用于長文本生成的自回歸Transformer中的動態內容規劃
論文地址:https://arxiv.org/pdf/2203.09100.pdf
現有的方法在長文本生成任務中存在邏輯不連貫的問題,這篇文章提出了一個新的生成框架PLANET,利用自回歸的自注意力機制來動態地進行內容規劃和表層實現。為了指導輸出句子的生成,該框架將句子的潛在表征補充到Transformer解碼器中,以維持基于詞袋的句子級語義規劃。此外,該模型引入了一個基于文本連貫性的對比學習目標,以進一步提高輸出的內容連貫性。在反駁論點生成和觀點文章生成這兩個任務中,該方法明顯優于base line,能生成更連貫的文本和更豐富的內容。
論文
動機
一些最新的研究表明,預訓練語言模型(PLM)可以通過自我監督的預訓練從大規模語料庫中自動獲取知識,然后將學到的知識編碼到模型參數中。然而,由于詞匯量有限,PLM難以從大規模語料庫中回憶知識,尤其是少見的實體。
為了提高PLM理解實體的能力,目前有兩種方法:
一是從知識圖譜、實體描述或語料庫中獲得外部實體詞嵌入。為了利用外部知識,模型將原始詞嵌入與外部實體嵌入對齊。缺點是忽略了從PLM本身探索實體嵌入,使得所學到的嵌入沒有領域適應性。
二是通過額外的預訓練將知識注入PLM的參數中,例如從語料庫構建額外的實體詞匯,或采用與實體相關的訓練前任務來強化實體表示。缺點是額外預訓練計算量過于龐大,增加了下游任務擴展或更新定制詞匯表的成本。
本文為了解決前兩種方法的缺點,引入了一個簡單有效的可插拔實體查找表(PELT),將知識注入到PLM中。優點是只消耗相當于0.2% ~ 5%的預訓練計算量,并且支持來自不同領域的詞匯。
模型
重新審視Masked Language Modeling
PLM進行自我監督的預訓練任務,如掩碼語言建模(Masked Language Modeling,MLM),從大規模未標記語料庫中學習語義和句法知識。MLM可以看作是一種完形填空任務,根據上下文表示來預測缺失的詞。
給定一個詞序列, MLM先將其中某個詞語替換為[MASK]標記,再將替換之后的進行詞嵌入和位置嵌入作為PLM的輸入,獲得上下文表示:
其中為Transformer的編碼器,為層歸一化,為詞嵌入,為位置嵌入。
然后PLM使用前饋神經網絡(FFN)來輸出被掩蓋位置的預測詞嵌入
進一步計算在所有單詞之間的交叉熵損失
重新審視上式中的損失,可以直觀地觀察到詞嵌入和PLM的輸出位于同一個向量空間。因此,我們能夠從PLM的輸出補充實體詞的嵌入,將其上下文知識注入到模型中。
構建可插拔的實體嵌入
具體地說,給定一個通用的或特定于領域的語料庫,本文的模型構建了一個實體詞查找表。對于實體,例如Wikidata實體或專有名詞實體,我們構造其嵌入如下:
步驟1:收集所有包含實體e的句子,并用[MASK]掩蓋
為了在PLM詞匯表中加入實體,可以在其他參數被凍結的情況下優化其嵌入。首先收集包含實體的句子,并用[MASK]替換。在中,對MLM損失的影響為
其中
步驟2:求
與整個詞匯量對的影響相比,的影響要小得多。如果忽略這部分影響,
求對的最優解,那么的結果與成正比,記為
其中為比例因子。
這里說明了將若干個相加即可得到實體的新嵌入表示,如下圖所示。
將實體知識注入PLM
由于上述得到的新的實體嵌入和原始詞嵌入都是從MLM中獲得的,因此新的實體嵌入可以看作是一個特殊的輸入表示。為了將實體知識注入到PLM中,本文使用一對括號將構建的新嵌入包圍起來,然后將其插入到原始實體詞嵌入之后。例如,原始輸入為Most people with COVID-19 have a dry [MASK] they can feel in their chest.,在注入新嵌入之后變為?Most people with COVID-19(COVID-19)have a dry [MASK] they can feel in their chest.
括號中的即為實體COVID-19新嵌入,而其他詞使用了原來的嵌入。本文只是將修改后的輸入傳遞給PLM進行編碼,而不需要任何額外的結構或參數,以幫助模型預測[MASK]處的單詞為"cough"。
實驗
論文比較了關系分類、知識獲取的準確率:
以及對低頻率實體性能的提升:
論文
動機
可控文本生成的任務是引導文本向著期望屬性生成。屬性之間往往存在相互關系,例如,對情感這個主題可以設定兩個對立的屬性:積極和消極,作者認為這種相反的關系有助于提高前綴的可控性,訓練時將某個主題的所有屬性一起訓練,但每個屬性都各自訓練一個前綴,且前綴互相獨立。
模型
本文的方法是使用前綴來引導GPT-2的文本生成,其中前綴是一個屬性特定的連續向量,位于GPT-2激活層之前。某個主題的前綴集合記為。與Li和Liang(2021)的每個屬性前綴都獨立訓練不同,作者考慮了屬性之間的關系,同時訓練多個前綴。
的維數為,其中為前綴數量,在單主題控制中,等于屬性的數量。為前綴向量的長度。,為GPT-2中激活層維度,其中為Transformer層數,為隱藏層大小,代表一個key向量和一個value向量。仿照Li和Liang(2021)的做法,作者通過一個大矩陣和有較小參數的對進行訓練,式子為。訓練結束后,只需要保留,和可以丟棄。由于GPT-2參數在訓練時被固定,因此也不需要保存。
下圖顯示了一個在訓練后的前綴控制下生成文本的示例。這些前綴可以以監督、半監督或無監督的方式進行訓練。由于半監督方法是監督方法和無監督方法的結合,所以文章將介紹監督方法和無監督方法。為了清晰起見,文章在單主題控制設置下介紹這些方法。
監督學習
假設相關主題有屬性集,每個訓練樣本都是一對,其中是輸入文本,,為的屬性。注意屬性同時表示中前綴的索引,因此在下面的描述中也表示前綴索引。
給定一個訓練樣本,對前綴進行優化以生成,而不鼓勵其他前綴生成。為了實現這一目標,中的所有前綴都應該同時進行訓練,且需要引入額外的損失函數。因此,總訓練損失是語言模型損失與對比損失的加權和:
損失能夠讓生成的文本包含鼓勵生成的信息,損失能夠讓生成的文本去除不鼓勵產生的信息,代表著不同屬性之間的“距離”。整個訓練過程如下圖所示。
無監督學習
在無監督學習中,假設相關主題的屬性集是已知的。訓練樣本只包含輸入文本。屬性不再可用,因此與x關聯的前綴的索引是未知的。因此,對應的前綴的索引是一個潛變量,其后驗分布遵循分類分布。
文章采用上述監督學習中的主要模型作為解碼器,并引入一個編碼器來參數化分類分布,根據選擇前綴索引,然后將前綴輸入解碼器。由于前綴的選擇過程不可微,作者使用Gumbel-Softmax松弛,計算如下:
其中是Gumbel-Softmax的溫度,是編碼器函數。
為了訓練前綴,總損失函數是三個損失項的加權和:
其中為語言模型損失。是KL散度,這里作者假設先驗是均勻分布。注意,這兩項構成了VAE的損失函數,優化這兩個損失項可以改善的證據下界。
為無監督對比損失,類似于監督學習中,但計算方式不同,因為真實屬性不可用。其中為預先設置的距離,是另一個表示相對前綴索引的潛在變量,計算方法如下
的目的是通過將從推開一段距離。的計算如下:
實驗
作者做了三個實驗,分別是情感控制、去除有害文本、主題控制。結果說明了模型在引導生成文本具有某種屬性的能力上有提升
論文
動機
盡管預訓練語言模型在生成流暢文本方面取得了進展,但現有的方法在長文本生成任務中仍然存在邏輯不連貫的問題,這些任務需要適當的內容規劃,以形成連貫的高級邏輯流。現有的方法大致分為兩類,一類是全局規劃,利用潛在變量作為全局規劃來指導生成過程,但是沒有考慮細粒度的句子級規劃。
另一類是兩階段規劃,首先生成句子級的內容規劃,然后將內容規劃傳遞給表層實現模塊生成文本,但是內容規劃和表層實現模塊是脫節的,無法反向傳播,會導致錯誤累積。
因此文章提出了一個新的生成框架PLANET,利用自回歸的自我注意力機制來動態地進行內容規劃和表層實現。
模型
任務描述
輸入:
(1)一個語句,該語句可以是論點生成的主題,也可以是文章生成的標題,
(2)與該語句相關的一組無序的關鍵短語,作為話題的引導信號,對長文本生成任務進行建模。
輸出:
一個由多個句子組成的文本,以連貫的邏輯恰當地反映了主題和關鍵短語。
訓練目標:
整體框架如圖
潛在表征學習
為每個目標句子引入一個潛在表征,來表示整個語義信息,并指導詞的生成。
步驟一:在每個目標句子前插入一個標記,并將解碼器在對應位置的隱藏層作為目標句子的潛在表征。
步驟二:當產生第j個輸出句子時,潛在表征首先通過前面的潛在表征和前面句子計算得到。
步驟三:在句子表層實現時,之前生成的句子和潛在表征都參與到當前句子的計算中,且以當前潛在表征為指導。
內容選擇
關鍵詞潛在表征
先將關鍵詞用分隔符拼接,輸入編碼器以獲得潛在表征,再收集這些潛在表征,構建關鍵詞存儲庫
內容選擇層
內容選擇層從關鍵詞存儲庫B中檢索關鍵詞信息,并將所選信息集成到解碼過程中。
步驟一:在解碼時間步,Transformer解碼器的頂層表示通過多頭注意力連接到關鍵詞存儲庫,獲得加入所選關鍵詞信息的上下文向量
步驟二:通過前饋層和殘差連接(RC)將關鍵詞上下文向量合并到解碼器的隱藏層中
步驟三:通過softmax將增強后的隱藏層傳遞到另一個前饋層,估計每個輸出詞的概率
句子級詞袋規劃
該部分的目的是監督潛在表征SN的學習過程。目的是通過目標句子的詞袋來反映全局語義規劃,從而為潛在表征的意義奠定基礎。
將第j個目標句子的詞袋定義為整個詞匯上的分類分布。其中,為多層前饋網絡。我們期望該分布能夠捕捉到對應句子的整體語義規劃。
損失函數:最大化預測每個目標句子詞袋的可能性。
基于一致性的對比學習
該部分的目的是加強內容規劃,并驅動模型學習更加連貫的輸出。于是進一步設計了一個對比學習(CL)的訓練任務。
負樣本構造
將原始目標句子視為代表邏輯連貫輸出的正樣本,并構造不連貫的負樣本。
對于一個正樣本,根據以下策略創建4個負樣本:
?SHUFFLE:隨機打亂目標句子
?REPLACE:將50%的原始目標句子隨機替換為語料庫中的隨機句子
?DIFFERENT:將所有原始目標句子全部替換為語料庫中的隨機句子
?MASK:從關鍵詞集合中隨機掩蓋與關鍵詞相關的20%的非停詞,并采用BART填充掩蓋的位置
損失函數
模型將內容選擇層的輸出表征映射到0到1之間的一致性得分,并且強制原始目標句子的得分比所有對應的負樣本都大,即設定一個固定的邊界
其中,是sigmoid變換,和是正樣本和負樣本在內容選擇層的輸出表征,是平均池化層
訓練目標函數
損失函數聯合優化了內容規劃和表層實現模型,結合了以下目標函數:
?句子級詞袋規劃損失函數()
?交叉熵損失函數()
?對比學習損失函數()
其中α和β被為超參數。
實驗
在論點生成和觀點文章生成任務上進行了實驗。實驗結果證明了方法在兩種任務上都有提升。
審核編輯 :李倩
-
人工智能
+關注
關注
1791文章
47183瀏覽量
238263 -
PLM
+關注
關注
2文章
121瀏覽量
20863 -
文本
+關注
關注
0文章
118瀏覽量
17082
原文標題:ACL2022 | 文本生成的相關前沿進展
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論