文案生成論文速讀

歡迎交流指正

1. CTRL - A Conditional Transformer Language Model for Controllable Generation

https://arxiv.org/pdf/1909.05858.pdf
模型應該沒變, 變得是訓練數據的格式,會將數據分類,每一個分類變成 比如, book x,y 或者wiki x, y。

2. GPT2 (轉自 https://zhuanlan.zhihu.com/p/57251615)

GPT2的核心思想就是認爲可以用無監督的預訓練模型去做有監督任務。GPT2模型的結構還是和GPT一樣,如上圖中間部分,它所適用的任務恰好是語言模型,即預測 [公式] ,這是大家再熟悉不過的公式。那爲什麼這個就能做有監督任務呢?平常的套路難道不是語言模型預訓練+微調嗎?反正當時我是一臉懵逼的,反覆看了兩三遍才理透這個邏輯,下面我給大家梳理一下,如果這個思想懂了,那上面的問題就不是問題了。

按照原文的思路,作者是這樣論述的:

- 語言模型其實也是在給序列的條件概率建模,即 [公式]
- 任何的有監督任務,其實都是在估計 [公式] ,通常我們會用特定的網絡結構去給任務建模,但如果要做通用模型,它需要對 [公式] 建模。對於NLP任務的input和output,我們平常都可以用向量表示,而對於task,其實也是一樣的。18年已經有研究對task進行過建模了,這種模型的一條訓練樣本可以表示爲 [公式] ,或者表示爲 [公式] 。也就是說,已經證實了,以這種數據形式可以有監督地訓練一個single model,其實也就是對一個模型進行有監督的多任務學習。
- 語言模型=無監督多任務學習。相比於有監督的多任務學習,語言模型只是不需要顯示地定義哪些字段是要預測的輸出,所以,實際上有監督的輸出只是語言模型序列中的一個子集。舉個例子,比如我在訓練語言模型時,有一句話“The translation of word Machine Learning in chinese is 機器學習”,那在訓練完這句話時,語言模型就自然地將翻譯任務和任務的輸入輸出都學到了。再比如,又碰到一句話“美國的總統是特朗普”,這一句話訓練完,也就是一個小的問答了。


如果以上思想懂了,那文章開始的兩個問題就迎刃而解:第一個問題答案就是上面的三點。那單向Transformer和雙向Transformer的區別,我認爲主要是目標函數的區別,因爲BERT的Masked language model是對 [公式] 進行建模,這個建模思想的區別,也就使得目前的BERT無法做 [公式] 這樣的任務。

上面就是GPT2的主要思想,下面講一下其他細節。

1.2 其他細節

1.2.1 Training dataset

	目前大部分的數據集都是針對特定任務的,而GPT2需要的是帶有任務信息的數據,因此作者蒐集了40GB的高質量語料進行訓練。

1.2.2 Input representation

	Word-level去做embedding的話需要解決OOV的問題,char-level的話又沒有word-level做出的模型好,作者選擇了一種折中的辦法,將罕見詞拆分爲子詞,參考論文《Neural Machine Translation of Rare Words with Subword Units》。

1.2.3 Model

主要有以下改動:

- Layer norm放到了每個sub-block前(我還是有些沒懂具體在哪裏,之後看下源碼)
- 殘差層的參數初始化根據網絡深度進行調節
 - 擴大了字典、輸入序列長度、batchsize
  1. 總結

    我覺得GPT2還是蠻驚喜的,首先是它爆出的生成文本真的寫得好,還有就是整個模型的思想,提出了“NLP通用模型”。從Word2Vec->ELMo->GPT->BERT->MT-DNN->GPT2,可以看出NLP技術越來越傾向於用更少的有監督數據+更多的無監督數據去訓練模型,而GPT2也在一定程度上解釋了爲什麼用language model預訓練出的模型有更好的效果和泛化性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章