用文本指导文本:基于文本的自监督可控文本生成模型
論文標題:
CoCon: A Self-Supervised Approach for Controlled Text Generation
論文作者:
Alvin Chan, Yew-Soon Ong, Bill Pung, Aston Zhang, Jie Fu
論文鏈接:
https://arxiv.org/abs/2006.03535
可控文本生成
過去的幾年學界對可控文本生成(CTG)的研究逐漸開始增多,已經在情感控制、主題控制、寫作風格控制等方面取得了較為突出的成就。
比如給定的控制變量是情感中的“積極”,給定的輸入句子是“這個電影真難看”,那么模型就會生成滿足變量的、在語義上和源句子保持一致的目標句子“這個電影真好看”。
和傳統的語言模型相比,CTG顯然有更好的應用場景:在小說創作中,可以給定人物、場景的一些變量然后讓模型生成符合條件的文本,而不是憑空想象憑空捏造出一些劇情。
一個CTG模型可以看作是一個標準的Seq2seq模型,編碼器編碼源句子,解碼器接受編碼特征和給定條件,生成對應句子。
但現存的一大問題就在于“給定的條件”——當前的大多數模型研究的是一些簡單的變量,比如從積極到消極情感控制,從科學到政治的主題控制,從書面語到口語的表述控制,這在實際應用中是非常受限的。
一方面,這些給定的變量范圍非常狹隘,要么是情感,要么是主題;另一方面,現實中人們往往傾向用句子表達想要控制的內容而不是像機器一樣用結構化的數據。
本文基于以上現狀,提出以文本為控制變量實現CTG。本文所提出的模型稱為CoCon,除了標準的編碼器和解碼器之外,還用了一個輕量級的CoCon模塊用于融合控制文本與輸入文本的信息。
由于文本生成的空間理論上是無窮大的,標注語料很難獲取,所以CoCon采用了自監督的方式訓練,提出三種自監督損失,在預訓練的語言模型GPT2上繼續訓練,從而取得好的in-domain效果。
用文本指導文本的好處在于,文本不需要進行結構化,讓模型自行學會控制,而且可以輸入若干控制文本,只需要把它們拼接成一段文本即可,這比結構化的變量更加靈活。
總的來說,本文的貢獻如下:
提出CoCon,一個基于文本變量的可控文本生成模型;
提出三個自監督學習損失,用于訓練CoCon;
文本型CTG比結構化控制變量模型更加靈活和通用;
實驗結果表明相比PPLM和CTRL,CoCon能生成高質量的文本。
模型:CoCon
模型結構
CoCon的基本流程是,給定一段引導文本和一段控制文本,模型去生成和保持流暢,內容上大致包含的文本,和一起形成一段完整的文本,其中。這個過程可以用一個Seq2seq模型表達:
下圖是CoCon的模型結構。首先用一個編碼器(enc)分別編碼給定的引導文本和控制文本,得到它們的特征和,然后把這兩個送到CoCon模塊中,通過自注意力讓它們交互,得到對應的新的特征,然后再像語言模型一樣通過去預測下一個詞。
編碼器和解碼器我們在此不多贅述,主要介紹Cocon的實現。CoCon是一個單層Transformer Block,也就是Self-Attention->FFN的模式。首先得到引導文本和控制文本的Q,K,V:
然后把它們的K和V分別拼接起來,再經過自注意力:
注意到這里的是引導文本產生的,因為控制文本只用于K和V。是注意力矩陣的權重。在得到之后,再經過一個FFN,就得到了CoCon的輸出,再把這個輸出作為解碼器(dec)的輸入,就可以像語言模型一樣一個詞一個詞地生成了。
那么如果有多個控制文本怎么辦呢?只需要把它們拼接起來作為一個整體就好了。
最后,我們還可以在注意力權重矩陣上加一些偏置項,以調整對控制文本的關注程度。
損失函數
介紹了模型結構,下面就要考慮如何訓練CoCon。顯然,我們沒有現成的監督語料,只能用無監督的方式完成。
下面假定任何一個句子可以分為兩部分,就可以當做引導文本,就是要生成的文本,現在的問題是,控制文本是什么。
自重構損失
自重構損失就是讓控制文本,之后要生成的就是自己,這一步是為了讓模型能夠學習結合控制文本的內容。
無文本損失
第二個損失無文本損失,即令,這時候CoCon退化為一個簡單的語言模型,這是為了能夠生成流暢的文本。
循環重構損失
只有上面兩個損失當然不過,循環重構損失通過兩個不同文本互為控制文本來生成質量更高的文本。假定現在有兩個不同的文本,進行如下操作:
首先將作為引導文本,將作為控制文本,生成新文本。顯然,的目的是在和保持流暢,且盡可能包含的內容;
再將作為引導文本,將作為控制文本,生成新文本。這里想讓和保持流暢,且盡可能包含的內容;
既然包含的內容,而又包含的內容,要么就是要包含的內容,且要和保持流程,這不 就是本身嗎!
所以,就是以為真值去優化,反過來也可以以為真值去優化。
對抗損失
最后是過去的工作都會用的對抗損失,即讓生成的文本接近真實的文本:
這里是原來的文本,是生成的文本。
把上面四個損失合起來就是最后要優化的目標:
實驗
任務??
本文在三個可控文本生成任務上實驗:情感可控生成,主題可控生成,文本可控生成。
模型??
CoCon采用預訓練的GPT2作為模型主干,前7層是編碼器,后17層是解碼器,固定所有參數,只訓練CoCon模塊;采用BPE編碼,的劃分隨機地在第8到第12個BPE位置產生。
默認使用和。由于GPT2的參數是固定的,所以訓練CoCon僅需在單個V100上訓練不到24小時。
其他實驗設置詳見原文。
文本引導文本生成
文本引導的文本生成評估指標有BLEU、NIST、METEOR、PPL和Dist-1/2/3。由于沒有現成的該任務的數據集,故本文隨機從預訓練的GPT-2中采樣3000個樣本,均勻分為三組,每組的控制文本的長度為5,10,20個BPE長度,所生成的句子長度都是100。把它們作為測試集。
訓練集則是隨機從GPT-2所產生的句子中獲取。此外,CoCon還在大小為250K的Webtext上訓練,以探究不同訓練數據來源的影響。
結果如下表所示??梢钥吹?#xff0c;CoCon在結合控制文本上比GPT2好太多。在這個實驗上,不加一些損失會有更低的PPL以及更高的BLEU、NIST、METEOR等值,比如去掉或者模型的BLEU值會更高,這是因為這兩個損失相比之下更關注生成文本的流暢度而不是與控制文本相結合。
主題可控文本生成
在主題可控任務上,比較的基線模型有PPLM和CTRL,都是當前很強的模型。為驗證主題相關性,訓練一個分類器用于評估主題程度。下表是實驗結果:
CoCon所生成的文本和主題最相關,在PPL上三個模型都優于GPT2。
情感可控文本生成
情感可控任務采用二分類情感,下表是實驗結果。和主題任務類似,CoCon在情感相關度上顯著優于其他模型,這說明CoCon能夠更加緊密地結合控制文本。
實例分析
下圖是不同的生成的不同文本,顯然,值越大就越和控制文本(Posotive)相關,但是越容易生成不相關的內容。
下圖是多個控制文本一起輸入時,CoCon生成的內容。第一個例子輸入了三個控制文本:一段純文本,一個主題和一個情感。
可以看到,生成的文本和這幾個內容相關。第二個例子輸入了兩個控制文本:一段純文本,一個主題。盡管生成的文本非常高深,但至少還是和控制文本貼合得很緊密。
小結
本文提出CoCon,一個以文本為控制變量的可控文本生成模型,能夠更加全面地從多個角度控制文本生成的內容。CoCon完全依賴無監督訓練,依靠預訓練的GPT2,只需要訓練CoCon模塊的部分即可,訓練非常高效。
從結果來看,CoCon所生成的文本能夠很好地貼合給定的控制文本,而且能夠保持文本整體的流暢。盡管生成的文本仍然不知所云,但這是當前所有文本生成模型的通病,至少CoCon在可控這一層面邁出了一步。
結合CoCon,未來可控文本生成的一個方向是從非結構化文本中提取出結構化信息作為控制變量。比如“喬峰愛上了阿朱”,就可以構造一個三元組(喬峰,愛,阿朱),那么把這個作為控制變量進行文本生成,可以有更廣闊的應用前景。
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的用文本指导文本:基于文本的自监督可控文本生成模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 富士康计划在墨西哥建造全球最大的英伟达
- 下一篇: 套期保值具有风险,控制风险的方法有三种!