寫在前面
在一文詳解生成式文本摘要經(jīng)典論文Pointer-Generator中我們介紹了生成式摘要的經(jīng)典模型,今天我們來分享一篇帶風(fēng)格的標(biāo)題生成的經(jīng)典工作。
以往的標(biāo)題模型產(chǎn)生的都是平實(shí)性標(biāo)題,即簡單語言描述的事實(shí)性標(biāo)題。但是,實(shí)際上我們可能更需要有記憶點(diǎn)的爆款標(biāo)題來增加點(diǎn)擊量/曝光率。因此,衍生出了一個新任務(wù)——帶有風(fēng)格的標(biāo)題生成,即Stylistic Headline Generation,簡稱SHG。
本篇文章將介紹TitleStylist模型,該模型是針對SHG任務(wù)提出的,它可以生成相關(guān)、通順且具有風(fēng)格的標(biāo)題,其中風(fēng)格主要包括三種:幽默、浪漫、標(biāo)題黨。
論文名稱:《Hooks in the Headline: Learning to Generate Headlines with Controlled Styles》
論文鏈接:https://arxiv.org/abs/2004.01980v1
代碼地址:https://github.com/jind11/TitleStylist
1. 問題定義
首先假設(shè)我們有兩類數(shù)據(jù)和:是由文章-標(biāo)題對組成的數(shù)據(jù);是由具有某種特定風(fēng)格的句子組成的數(shù)據(jù)。
我們用來表示數(shù)據(jù),其中表示文章,表示標(biāo)題。此外,我們用來表示數(shù)據(jù)。需要注意的是,中的句子可以是書本中的句子,不一定是標(biāo)題。
假設(shè)我們有、、。那么,SHG任務(wù)目的是從中學(xué)習(xí),也就是從分布、中學(xué)習(xí)出條件分布。
2. 核心思想
TitleStylist模型整體上是一個Transformer結(jié)構(gòu),分為Encoder(編碼器)和Decoder(解碼器)。TitleStylist利用多任務(wù)學(xué)習(xí),同時進(jìn)行兩個任務(wù):
標(biāo)題生成:有監(jiān)督任務(wù);在數(shù)據(jù)S上,根據(jù)文章原文生成相應(yīng)標(biāo)題。
帶有風(fēng)格的文本重構(gòu):無監(jiān)督或自監(jiān)督;在數(shù)據(jù)上,輸入為擾亂后的句子,生成原句。
標(biāo)題生成與帶有風(fēng)格的文本重構(gòu)兩個任務(wù)的數(shù)據(jù)集和模型都是獨(dú)立的。為了生成帶有風(fēng)格的標(biāo)題,TitleStylist通過參數(shù)共享將二者融合。
3. 模型細(xì)節(jié)
3.1 序列到序列模型架構(gòu)(Seq2Seq Model Architecture)
如上圖,TitleStylist采用了Transformer架構(gòu)的seq2seq模型,它包含編碼器和解碼器。為了提高生成的標(biāo)題的質(zhì)量,TitleStylist使用MASS模型來初始化模型參數(shù)。
3.2 多任務(wù)學(xué)習(xí)
為了分離文本的風(fēng)格和內(nèi)容,模型引入多任務(wù)學(xué)習(xí)框架。在這里主要包含兩個任務(wù):標(biāo)題生成及DAE(Denoising Autoencoder)。根據(jù)論文描述,我們在這里將DAE稱為帶風(fēng)格的文本重構(gòu)。
有監(jiān)督的標(biāo)題生成
在標(biāo)題生成任務(wù)中,首先我們輸入文章原文,然后經(jīng)過編碼器獲得向量表征;接著,再利用解碼器生成標(biāo)題。
換句話說,在標(biāo)題生成任務(wù)中,我們是利用編碼器和解碼器學(xué)習(xí)條件分布。我們設(shè)是編碼器的待優(yōu)化參數(shù),是解碼器的待優(yōu)化參數(shù),那么標(biāo)題生成任務(wù)的損失函數(shù)如下:
其中是單向語言模型,即:
這里代表句子的長度。
無監(jiān)督/自監(jiān)督的風(fēng)格文本重構(gòu)
在文本重構(gòu)任務(wù)中,對于句子,我們通過隨機(jī)刪除或者遮蓋某些詞,或者改變文本中詞的順序可以獲得破壞版本的句子。將作為模型輸入,經(jīng)過編碼器獲得中間表征,再經(jīng)過解碼器進(jìn)行還原獲得。這個任務(wù)的目的是在還原句子時使模型學(xué)到風(fēng)格化句子的能力。
同樣我們設(shè)是編碼器的待優(yōu)化參數(shù),是解碼器的待優(yōu)化參數(shù),那么文本重構(gòu)任務(wù)的損失函數(shù)如下:
聯(lián)合學(xué)習(xí)
最終,多任務(wù)學(xué)習(xí)會最小化將兩部分的損失函數(shù)之和:
3.3 如何生存帶有特定風(fēng)格的相關(guān)標(biāo)題
到目前為止,大家可能會有所疑問:兩個任務(wù)除了損失函數(shù)是一同優(yōu)化外再沒有看到其他任何關(guān)聯(lián), 那么TitleStylist怎么可能學(xué)到問題部分定義的終極目標(biāo),畢竟我們只有來自分布、的數(shù)據(jù),并沒有來自分布的數(shù)據(jù)。
實(shí)際上,TitleStylist通過設(shè)計(jì)參數(shù)共享策略,讓兩個任務(wù)的編碼器及解碼器存在某種關(guān)聯(lián),最終以此來建模。那么如何進(jìn)行參數(shù)共享呢?
最簡單的,可以直接共享所有參數(shù)(與共享,與共享)。這樣模型等于同時學(xué)了標(biāo)題生成與帶風(fēng)格的文本重構(gòu)兩個任務(wù)。其中標(biāo)題生成的任務(wù)讓模型學(xué)到了如何生成與文章內(nèi)容相關(guān)的標(biāo)題;帶風(fēng)格的文本重構(gòu)則讓模型學(xué)到了如何在還原文本時保留文本具有的風(fēng)格。在兩個任務(wù)的相互加持下,模型就可以生成和文章相關(guān)的又具有特定風(fēng)格的標(biāo)題。
好了,我們就想到這里。接下來看看TitleStylist究竟是怎么做的。
3.4 參數(shù)共享
剛才我們所說的直接共享所有參數(shù)的方式存在一個問題,就是模型并沒有真正地顯式地區(qū)分開文本內(nèi)容與文本風(fēng)格,那么模型就是又學(xué)了中的事實(shí)性風(fēng)格,又學(xué)了中的特定風(fēng)格(比如幽默、浪漫或標(biāo)題黨)。
TitleStylist為了更好地區(qū)分開文本內(nèi)容與文本風(fēng)格,顯式地學(xué)習(xí)數(shù)據(jù)中所包含的風(fēng)格,選擇讓編碼器共享所有參數(shù),解碼器共享部分參數(shù)。個人認(rèn)為編碼器端之所以完全共享參數(shù),是想在編碼時盡可能保留原文信息。
如上圖所示,解碼器端的參數(shù)主要被分成兩部分:黃色部分表示不依賴風(fēng)格的參數(shù),是共享的;剩余依賴風(fēng)格的參數(shù),不共享。
具體地,存在于Layer Normalization及Decoder Attention,即層歸一化及解碼器注意力兩部分:
(1) 帶風(fēng)格的層歸一化(Style Layer Normalization)
帶風(fēng)格的層歸一化這個部分是借鑒圖像風(fēng)格遷移的思想。其中分別是的的均值和標(biāo)準(zhǔn)方差,是模型需要學(xué)習(xí)的與風(fēng)格相關(guān)的參數(shù)。
(2) 帶風(fēng)格的解碼器注意力(Style-Guided Encoder Attention)
TitleStylist認(rèn)為兩個任務(wù)的解碼器端在逐個生成下一個詞時的注意力機(jī)制應(yīng)該有所不同。在這里,TitleStylist主要是設(shè)置了不同的,以此生成不同的從而形成不同的注意力模式。
這里代表風(fēng)格,對標(biāo)題生成而言其實(shí)可以算作事實(shí)性風(fēng)格;對文本重構(gòu)而言,可能是幽默、浪漫或標(biāo)題黨風(fēng)格。
TitleStylist結(jié)合完全共享參數(shù)的編碼器與部分參數(shù)共享的解碼器來實(shí)現(xiàn)其目標(biāo)模型,最終可以生成帶有特定風(fēng)格的又與原文內(nèi)容相關(guān)的標(biāo)題。
總結(jié)
好了,帶風(fēng)格的標(biāo)題生成論文《Hooks in the Headline: Learning to Generate Headlines with Controlled Styles》的內(nèi)容就到這里了。在本篇文章中,我們就論文思想與論文所提出的模型的結(jié)構(gòu)設(shè)計(jì)進(jìn)行了介紹。論文實(shí)驗(yàn)部分小喵沒有細(xì)看,大家感興趣的話可以下載原文并結(jié)合源碼進(jìn)行學(xué)習(xí)。
審核編輯 :李倩
-
解碼器
+關(guān)注
關(guān)注
9文章
1129瀏覽量
40641 -
編碼器
+關(guān)注
關(guān)注
45文章
3575瀏覽量
134011
原文標(biāo)題:文本生成 | 一篇帶風(fēng)格的標(biāo)題生成的經(jīng)典工作
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論