日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

预训练生成模型:结合VAE与BERT/GPT-2提高文本生成效果

發布時間:2024/10/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 预训练生成模型:结合VAE与BERT/GPT-2提高文本生成效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

論文標題:

Optimus: Organizing Sentences via Pre-trained Modeling of a Latent Space

論文作者:

Chunyuan Li, Xiang Gao, Yuan Li, Xiujun Li, Baolin Peng, Yizhe Zhang, Jianfeng Gao

論文鏈接:

https://arxiv.org/abs/2004.04092

代碼鏈接:

https://github.com/ChunyuanLI/Optimus


本文提出首個大規模預訓練生成模型OPTIMUS,在VAE之上進行預訓練,既利用了預訓練的優勢,又利用了生成模型在文本生成上的優勢,可以輕松擴展到各類文本生成任務上。

在語言模型、受控文本生成、語言理解等任務上,OPTIMUS都取得了顯著的效果。

背景:生成式模型與隱變量模型

文本生成任務就是要求模型生成一段文本,這可以分為兩類:給定了輸入和沒給定輸入。這二者都可以形式化為,其中為空,如果沒有給定輸入。在自然語言處理中,我們把這種生成文本的模型叫做生成式模型。

生成式模型在過去的幾年里大都基于Transformer,比如GPT,BERT的變體等,這類模型直接去優化條件概率。我們把這類模型稱為典型生成式模型。

但是,在諸多生成式模型中,有一種特殊的模型,它去建模一個隱式的語言空間,每次在語言空間中采樣一個點,代表語法/語義等語言學信息,也就是說,它并不是直接建模,而是首先建模一個隱空間,然后再基于這個隱空間建模文本。

使用這種模型,我們可以在某種意義上“操縱”隱變量,對不同的隱變量,模型可以輸出不同的文本,這就給文本生成帶來了靈活性。我們把這種模型稱為隱變量生成模型。

過去的預訓練大都是基于典型生成模型,這一方面是因為這類模型簡單直觀,調參、訓練也比較簡單;另一方面是因為隱變量模型通常難以優化,尤其是對離散型的文本。

但是,預訓練隱變量生成模型就不能實現嗎?本文給出了一個答案,通過仔細地設計模型結構、調整訓練過程,我們依然能夠在隱變量生成模型上進行大規模文本預訓練,并且可以取得非常好的效果!

本文的貢獻如下:

  • 提出首個大規模預訓練隱變量生成模型OPTIMUS;

  • 高效地將隱變量和預訓練的GPT-2相結合;

  • 發現大規模預訓練可以減緩KL Vanishing的問題;

  • 在多個任務上取得顯著的效果。

OPTIMUS:大規模預訓練隱變量生成模型

和傳統的預訓練模型一樣,OPTIMUS有預訓練(Pretraining)和微調(Finetuning)兩個階段,下面分別進行介紹。

預訓練

OPTIMUS采用VAE(變分自編碼器)和預訓練的BERT與GPT-2的結合作為整體模型。模型的生成基于隱變量,對于給定的文本,生成目標是,這里表示的是用于文本生成的解碼器。

而隱變量是通過一個編碼器得到的,可以形式化為。

對于給定的輸入文本,它的步驟是:首先經過編碼器得到隱變量,然后基于隱變量重構,這可以用一個重構損失表示:?。

此外,還有一個KL散度損失,用于讓得到的隱變量逼近一個先驗:。

所以,總的損失就是:

上述公式就表達了VAE的訓練過程,其中加入可以更好地控制訓練過程。下圖則呈現了OPTIMUS的模型結構,即編碼器是什么模型,解碼器是什么模型。

可以看到,模型的編碼器是預訓練的BERT,用來得到隱變量;模型的解碼器是預訓練的GPT-2,用于基于隱變量去生成文本。

注意到,這里的預訓練和OPTIMUS的預訓練不同,OPTIMUS的預訓練是對整個模型而言,而BERT和GPT-2的預訓練是對它們各自而言。

現在有一個問題(其實還有好幾個問題,我們忽略其他更細節的問題,請讀者參考原文):我們該如何把隱變量提供給解碼器呢?

本文提供兩種方法,分別為記憶(Memory)和嵌入(Embedding):

  • Memory: 在得到之后,再通過一個變換把它轉換為L個向量,每個向量服務解碼器的一層,作為額外的記憶單元讓解碼器在生成的每一步去關注(相當于一個特殊的詞);

  • Embedding: 在得到之后,用一個線性變換先把它轉換為一個向量,然后在生成的每一個,直接把它和解碼器每一步的狀態向量相加。

下圖是這兩種方法的圖示。

實驗表明,Memory比Embedding好,而二者合起來使用最好。因此,在后面的實驗部分,我們默認二者一起使用。

最后就是詳細的預訓練細節了。預訓練數據是1990K個Wikipedia的句子。在訓練的過程中,由于熟知的KL Vanishing問題,我們還要對訓練過程做一些優化。具體來說,本文采用如下優化:

  • 對使用循環調度(cyclical schedule);

  • 在訓練的前一半,設置,對后一半的前一半,將其增長到1,對最后四分之一,固定為1;

  • 當不等于0的時候,加入hinge loss,保證KL項始終大于一個數。

微調

在預訓練OPTIMUS之后,剩下的就是對不同的任務進行微調了。本文在三類任務上實驗:語言模型、受限文本生成和自然語言理解。每個任務和數據集在微調上都有一些細微的差別,筆者建議讀者閱讀原文進行了解。

實驗

現在就到了見證OPTIMUS威力的時刻了。下面我們根據任務來看看OPTIMUS的效果。

語言模型

語言模型的數據集有PTB、SNLI和Yelp,度量方式有PPL、Active Units (AU)和Mutual Information (MI)。基線模型有GPT-2、Annealing-VAE、AggressiveTraining-VAE、AE-FB。

下表是實驗結果。可以看到,單純的VAE(第二組,Small VAE)在各個指標上都表現得很差,這歸結于:(1)傳統VAE的模型很小,表達力不夠;(2)KL Vanishing嚴重,難以充分訓練。

在PPL指標上,即使和典型生成模型GPT-2相比,依舊非常有優勢。注意到不同的實際上是在PPL和互信息中進行了一個平衡。

受限文本生成:數學運算

我們在最開始提到,隱變量模型的一大優勢是,我們可以“操縱”隱變量,從而得到不同的文本。

為了探究OPTIMUS所得到隱空間的表示能力,我們首先在“文本算術”任務上進行實驗。

給定三個文本A,B,C,首先用編碼器得到它們的隱變量,然后得到一個新的隱變量。

它的意思是,如果OPTIMUS能夠得到足夠光滑、分布良好的隱空間,那么將文本編碼為隱變量之后,隱變量之間的線性運算就代表了文本語義之間的運算。

如下圖所示,在給定了A,B之后,不斷給定新的C,模型通過上式生成新的句子D。可以看到,句子A表達的是單數、日常生活,句子B表達了復數、運動。

因此,對所有給定的C,模型都能把其中的單數變成復數,把日常生活主題變為運動主題。這就可以從側面表明,OPTIMUS得到的隱空間是比較好的。

另一個展示隱空間良好性的方法是插值。給定兩個句子A,B,得到它們的隱變量,我們在它們之間進行線性插值,得到新的隱變量,然后用這個新的隱變量生成新的文本,目的就是看,根據系數的不同,所生成的句子是更偏向A還是更偏向B。下圖是例子:

可以看到,系數越大,生成的文本約偏向句子A,反之偏向句子B。

受限文本生成

下面在具體的任務——普通對話生成、風格化對話生成和基于標簽的文本生成上進行實驗。數據集分別是Dailydialog和Yelp。下面三個表分別是這三個任務的實驗結果。

可以看到,在普通對話生成上,OPTIMUS優于基線模型,在風格化對話生成上,OPTIMUS優于StyleFusion,而尤其在基于標簽的文本生成上,OPTIMUS效果顯著。

自然語言理解

下面來看看OPTIMUS在NLU任務上的效果,這類任務旨在度量模型“理解”文本的能力。下表是在GLUE上的結果。注意到,比較的Feature-Based模型,也就是微調的時候只更新分類器,而不更新模型主體,這樣就會大大減少訓練開支。

可以看到,在Feature-Based上,OPTIMUS顯著優于BERT,尤其是在比較大的數據集上。當更新整個模型的時候(Finetune-Based),OPTIMUS和BERT的效果相似。

下面繼續來探究在低資源條件下,OPTIMUS的效果。對Yelp數據集,隨機對每一類采樣若干樣本,在Feature-Based和Finetune-Based兩種設置下,看不同模型的效果,下圖是結果。

在Feature-Based下,OPTIMUS顯著優于BERT,這表明,在資源比較少的時候,OPTIMUS更能區分不同類別,這得益于它的隱變量性質;而在Fintune-Based下,二者結果差別不大,但在資源特別少的時候,OPTIMUS顯著優于BERT,這說明OPTIMUS有更好的遷移能力。

小結

本文提出了一個大規模預訓練隱變量生成模型OPTIMUS,它結合了VAE和預訓練的典型生成式模型BERT/GPT-2,以VAE的方式在額外的數據上預訓練之后,能夠兼具VAE和BERT/GPT-2的優點,在多個任務上取得比較好的效果。

本文在自然語言處理上成功使用VAE邁出了成功的一步,這極有可能是NLP下一個時代產生突破的重點領域。

????

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

總結

以上是生活随笔為你收集整理的预训练生成模型:结合VAE与BERT/GPT-2提高文本生成效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。