<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          擴(kuò)散模型在文本生成領(lǐng)域的應(yīng)用

          共 6623字,需瀏覽 14分鐘

           ·

          2022-10-14 12:38

          6927879002c6cb19ad32a1b72bb71da2.webp


          ?? 新智元報(bào)道??

          來(lái)源:知乎 編輯:桃子
          【新智元導(dǎo)讀】擴(kuò)散模型在文本生成領(lǐng)域的應(yīng)用有哪些?本文就3篇論文展開(kāi)解讀。

          本文主要討論以下幾篇論文

          1. Structured Denoising Diffusion Models in Discrete State-Spaces(D3PM)
          2. Diffusion-LM Improves Controllable Text Generation
          3. Composable Text Control Operations in Latent Space with Ordinary Differential Equations


          Structured Denoising Diffusion Models in Discrete State-Spaces(D3PM)


          在近期北大出的一篇綜述里看到擴(kuò)散模型對(duì)文本生成的應(yīng)用的章節(jié)里提到了D3PM,就去看了看這篇論文。實(shí)質(zhì)上參考意義非常有限,僅粗讀了一遍在此簡(jiǎn)單記錄一下。 D3PM筆者認(rèn)為最大的亮點(diǎn)在于泛化了擴(kuò)散過(guò)程里的擴(kuò)散方式。還記得在 大一統(tǒng)視角理解擴(kuò)散模型 里,筆者復(fù)述了擴(kuò)散模型的變分推導(dǎo)過(guò)程,其中推導(dǎo)到最終將得到以下主要優(yōu)化的損失函數(shù)。 fffb0b4d0453445c4549350104337b32.webp擴(kuò)散模型里的去噪匹配項(xiàng)


          而具體怎么優(yōu)化該損失函數(shù),主要應(yīng)用的是擴(kuò)散模型里每一步加噪都是加高斯噪聲的性質(zhì),使得最終該函數(shù)里的每一項(xiàng)都可求得具體的解析表達(dá)式。但應(yīng)用了高斯分布加噪主要是因?yàn)閿U(kuò)散模型主要針對(duì)圖像或者波形的生成,那么如果要將擴(kuò)散過(guò)程加入到離散的變量里,是否可以用不同的加噪方式?論文指出,主要要滿(mǎn)足以下兩點(diǎn):
          1. 該加噪方式應(yīng)使得xt從q(xt|x0)中的采樣方便快捷。使得我們能夠?qū)σ陨系娜ピ肫ヅ漤?xiàng)里的L_t-1在任意時(shí)間步上方便計(jì)算。
          2. 同時(shí)該加噪方式應(yīng)使得q(xt-1| xt, x0)有方便計(jì)算的解析形式,使得我們計(jì)算去噪匹配項(xiàng)的KL散度成為可能。


          很明顯,高斯噪聲完美符合以上兩個(gè)要求。而作者則提出了對(duì)于離散變量的加噪方式。具體的數(shù)理推導(dǎo)筆者按下不表,但簡(jiǎn)單來(lái)說(shuō)就是定義了一系列轉(zhuǎn)移矩陣。其中關(guān)于文本生成的轉(zhuǎn)移矩陣的特點(diǎn)在于基于概率在不同時(shí)間步將一個(gè)離散詞轉(zhuǎn)為MASK 字符或者保持不變。

          17765aa7bf3868f4b7e7ea6b0705b57e.webp

          D3PM在文本生成上的擴(kuò)散過(guò)程


          筆者看到這里的時(shí)候,發(fā)現(xiàn)這個(gè)形式和筆者之前調(diào)研的 非自回歸式生成里的CMLM 特別相像。感興趣的讀者可以看看。如果是類(lèi)似該架構(gòu)的擴(kuò)散的話(huà),筆者認(rèn)為該擴(kuò)散模型的實(shí)現(xiàn)方式在語(yǔ)言質(zhì)量上仍難談優(yōu)秀。CMLM類(lèi)的非自回歸模型,在文本生成質(zhì)量上的確難以匹敵自回歸式的生成模型。在逐漸去噪的過(guò)程中逐步確定生成詞的方式,實(shí)際上和CMLM的做法沒(méi)有太大本質(zhì)區(qū)別。筆者認(rèn)為對(duì)比CMLM不太可能有質(zhì)的提升。

          Diffusion-LM Improves Controllable Text Generation


          相比于D3PM,這篇論文的主要?jiǎng)?chuàng)新點(diǎn)在于定義了一個(gè)詞嵌入的方程統(tǒng)一了擴(kuò)散過(guò)程里離散到連續(xù)的狀態(tài)。我們可以看到D3PM本質(zhì)上的擴(kuò)散是在離散序列上做的。但是Diffusion-LM的具體做法是前向時(shí)離散的字詞首先通過(guò)詞嵌入轉(zhuǎn)為一系列連續(xù)的潛在向量。之后對(duì)每個(gè)連續(xù)向量不斷加高斯噪聲進(jìn)行前向擴(kuò)散。后向時(shí)不斷去噪并且最終將每個(gè)潛在向量量化到一個(gè)距離最近的詞嵌入上。具體來(lái)說(shuō)前向時(shí)從離散的詞序列w到x0的過(guò)程為: bba6aa53dc9ca48129d2bb2de73661a3.webpEmb為詞嵌入方程,前向?yàn)閺碾x散到連續(xù)


          反向去噪到x0后,則要對(duì)每個(gè)潛在向量求一個(gè)距離最近的離散詞。和生成過(guò)程中的解碼類(lèi)似,用softmax即可。 ee568050d6920817b587af76332760e4.webp后向?yàn)閺倪B續(xù)到離散


          大一統(tǒng)視角理解擴(kuò)散模型 里,論文作者解釋了擴(kuò)散模型的不同解讀最終可以看做其變分下界里的去噪匹配項(xiàng)里對(duì)每一個(gè)時(shí)間步的潛在向量均值mu_q的不同變形。其具體形式如下: 7103942b01058f38350117fe5726ff0b.webp擴(kuò)散模型的變分下界的最主要優(yōu)化項(xiàng)的等價(jià)形式


          而在將擴(kuò)散模型應(yīng)用到文本生成領(lǐng)域以后,因?yàn)槎喑龅脑~嵌入的關(guān)系,作者在該基礎(chǔ)上增添了兩項(xiàng)詞嵌入的優(yōu)化: caac1c2fadc26cd1b364a4ff251af71a.webp多出的兩項(xiàng)都和詞嵌入直接相關(guān)


          大一統(tǒng)視角理解擴(kuò)散模型 里,論文作者提到不同的擴(kuò)散模型對(duì)每一時(shí)間步的均值的估計(jì)可以拆解成三種不同的解法。DDPM里是直接對(duì)噪聲進(jìn)行預(yù)測(cè),而作者lisa發(fā)現(xiàn)如果直接預(yù)測(cè)噪聲會(huì)導(dǎo)致最終去噪后的結(jié)果不對(duì)應(yīng)任何詞嵌入。為了解決這個(gè)問(wèn)題作者改為使用三種解法里的第一種,即直接預(yù)測(cè)初始輸入x0。 8cf8ffe4b284f2d44cb6166b8eb46247.webp每一步的優(yōu)化目標(biāo)其中之一是直接預(yù)測(cè)初始輸入


          基于從連續(xù)到離散難以對(duì)應(yīng)的這個(gè)觀察,作者還進(jìn)一步提出了在解碼做下游推斷的時(shí)候,用clamp的方法把每一次f_theta預(yù)測(cè)出的初始輸入“夾”到一個(gè)對(duì)應(yīng)的詞嵌入上后,再繼續(xù)去噪。并宣稱(chēng)這樣可以讓預(yù)測(cè)更準(zhǔn)確,減少rounding error。 當(dāng)然這篇論文主要在討論條件生成這件事。從論文標(biāo)題也可以看出。具體在條件生成上,作者用的是SongYang博士的Score-matching的角度用貝葉斯法則做的推導(dǎo): 2b195395e49e737a5f0c262fed29ff57.webp將條件生成拆解為兩項(xiàng)


          其中第二項(xiàng)是個(gè)需要單獨(dú)訓(xùn)練的分類(lèi)器,其分類(lèi)的梯度score用來(lái)更新擴(kuò)散的輸出。其中作者每一步擴(kuò)散的時(shí)候都使用了多次梯度更新計(jì)算(3次adagrad),為了加速解碼作者將擴(kuò)散步數(shù)T由2000步下降為200步。 至此這篇論文的核心要點(diǎn)筆者認(rèn)為已經(jīng)梳理完成。但筆者對(duì)這篇論文有幾點(diǎn)質(zhì)疑。
          1. 作者提到該擴(kuò)散模型的速度比自回歸式的預(yù)訓(xùn)練模型慢了7倍。但筆者試跑了一下作者代碼發(fā)現(xiàn),用transformer做初始詞的誤差估計(jì),并且做200次去噪過(guò)程。實(shí)際生成一個(gè)句子在A100顯卡上要花4-5分鐘,是自回歸式生成類(lèi)似長(zhǎng)度的句子所耗時(shí)間的數(shù)十倍。
          2. 作者給的源代碼十分混亂,難以閱讀和使用。但筆者對(duì)于其提到的即在有引導(dǎo)的條件生成上表現(xiàn)良好,又在無(wú)引導(dǎo)的開(kāi)放生成上表現(xiàn)突出持保留態(tài)度。該質(zhì)疑主要來(lái)源于筆者在非自回歸模型里的一些感性經(jīng)驗(yàn)。該擴(kuò)散模型的主要優(yōu)化目標(biāo)是每個(gè)潛在向量與其詞嵌入的預(yù)測(cè)誤差。似乎并沒(méi)有對(duì)句子的整體性有任何的要求。甚至就連P(w|x0)文章采取的建模方式也是每個(gè)字詞的概率的獨(dú)立連乘。這樣強(qiáng)假設(shè)先驗(yàn)下的建模方式對(duì)模型能力要求很高。可能在小數(shù)據(jù)集小領(lǐng)域上可以達(dá)到較好效果,但復(fù)雜的文本領(lǐng)域恐怕難以建模。筆者按照作者的開(kāi)源代碼所訓(xùn)練出的結(jié)果也不理想。但存在筆者簡(jiǎn)單嘗試下誤用的可能。


          Composable Text Control Operations in Latent Space with Ordinary Differential Equations


          筆者自身對(duì)使用預(yù)訓(xùn)練模型作為基底的VAE生成模型比較熟悉,也一直在思考擴(kuò)散模型和文本生成的最佳方式是什么。Diffusion-LM在筆者看來(lái)仍有幾個(gè)缺陷,其中比較大的一個(gè)是沒(méi)有顯式建模全句的生成質(zhì)量。這點(diǎn)也是筆者自身想實(shí)驗(yàn)的點(diǎn)。另一個(gè)是其生成需要預(yù)先固定長(zhǎng)度再開(kāi)始去噪生成極大地限制了使用場(chǎng)景。 恰好最近發(fā)現(xiàn)了這篇text control with ODE論文。筆者認(rèn)為在技術(shù)路線(xiàn)上,該論文比Diffusion-LM更為自洽和完善。一方面該論文是在VAE里的潛在空間上做擴(kuò)散,同樣是在連續(xù)空間上做擴(kuò)散,該方法避免了Diffusion-LM仍需要訓(xùn)練詞嵌入并且引發(fā)的一系列優(yōu)化技巧(包括損失函數(shù)的增添項(xiàng),clamp trick等)。該論文的做法使得擴(kuò)散過(guò)程僅僅在一個(gè)低維的連續(xù)空間上負(fù)責(zé)文本性質(zhì)的控制。而在使得潛在向量具有相應(yīng)的性質(zhì)后,再將潛在向量交由解碼器去生成文本。這樣做有三個(gè)好處。一方面,該做法避免了Diffusion-LM的定長(zhǎng)生成的限制,另一方面因?yàn)槲谋旧梢廊唤挥勺曰貧w解碼器生成,文本通暢程度也得到了一定保證。最重要的是,類(lèi)似于stable-diffusion的出圈, diffusion+VAE這種做法相比diffusion-LM快了將近兩個(gè)數(shù)量級(jí)!

          0b74d341f7e43cb891c2af732059216f.webp

          論文的核心流程圖


          對(duì)于擴(kuò)散的具體流程來(lái)說(shuō),如果給定一個(gè)向量a={a_1, a_2, ..., a_n}為我們所希望擁有的所有性質(zhì)的值的向量,并且規(guī)定f_i 為一個(gè)判斷潛在向量z是否擁有相關(guān)性質(zhì)a_i的能量模型(Energy-Based-Model)。那么我們可以得到以下表達(dá)式: a6f20f99ace8536a4e49ee60a33fd9f5.webp其中假定f_i為輸出玻爾茲曼分布的能量模型


          其中Pprior是VAE的高斯先驗(yàn)分布,而E(a|z)是定義在整個(gè)性質(zhì)向量上的能量函數(shù),其形式可以拆解為每個(gè)性質(zhì)的能量函數(shù)的加權(quán)和。 f7cd18346e18e726c70e2951addf231a.webp對(duì)性質(zhì)向量的能量函數(shù)可以定義為對(duì)每個(gè)性質(zhì)的能量函數(shù)的加權(quán)和


          并且每個(gè)能量函數(shù)都會(huì)以以下形式正則化以避免尺度差異。
          5ecc5d7392a453a489fd5d39a65d13a8.webp這是負(fù)的對(duì)數(shù)似然函數(shù)的表達(dá)式(normalized logits)


          注意對(duì)于擴(kuò)散的起點(diǎn)P(T)來(lái)說(shuō),這是個(gè)標(biāo)準(zhǔn)的高斯分布,而擴(kuò)散的終點(diǎn)P(0)是我們所定義的VAE的高斯先驗(yàn),也是標(biāo)準(zhǔn)高斯分布。那么實(shí)際上我們擴(kuò)散的每一步Pt(z)都服從標(biāo)準(zhǔn)高斯分布。將P(z), P(a|z)代入我們的ODE采樣表達(dá)式后我們可以得到以下的ODE表達(dá)式 cc0c8dbd933b5adbddbbf10414e999d4.webp該擴(kuò)散過(guò)程的ODE解


          那么整個(gè)擴(kuò)散采樣的流程就很確定了。如果是生成新文本類(lèi)的任務(wù),我們先從高斯先驗(yàn)中采樣一個(gè)潛在向量Z,然后根據(jù)我們定義的能量模型的能量函數(shù)求解以上表達(dá)式。當(dāng)然純高斯先驗(yàn)與VAE的后驗(yàn)不可能完全貼合。所以作者訓(xùn)練了一個(gè)單層的GAN來(lái)近似VAE的后驗(yàn)網(wǎng)絡(luò)以采樣P(T)。而如果是修改已有句子的話(huà)就比較簡(jiǎn)單,直接通過(guò)VAE的encoder得到潛在向量z來(lái)作為P(T)。 本論文的主要貢獻(xiàn)如上。那么該論文的VAE+Difussion的路線(xiàn)和普通的CVAE相比有什么差異呢:
          1. CVAE 如果需要對(duì)某個(gè)性質(zhì)做條件生成(如情感,關(guān)鍵詞)需要大量數(shù)據(jù)對(duì)全量模型訓(xùn)練。但VAE+Diffusion不用,只需要固定VAE額外訓(xùn)練一個(gè)潛在向量的分類(lèi)器做擴(kuò)散引導(dǎo)即可。而在潛在向量上的分類(lèi)器,首先維度低,參數(shù)量少,訓(xùn)練資源相比原預(yù)訓(xùn)練模型低幾個(gè)數(shù)量級(jí)!并且所需的訓(xùn)練數(shù)據(jù)也極少(原論文僅使用200條訓(xùn)練)
          2. CVAE難以做到性質(zhì)聚合,往往需要對(duì)不同性質(zhì)的條件生成單獨(dú)訓(xùn)練且訓(xùn)練出來(lái)的模型難以有效地聚合。但VAE+Diffusion在理論上展現(xiàn)了這種可能(當(dāng)然是否有效仍需具體觀察)。


          不過(guò)VAE+Diffusion的模式仍存在幾個(gè)問(wèn)題筆者覺(jué)得會(huì)導(dǎo)致條件生成的成功率不高,或者不如論文里“宣稱(chēng)”的那么高:
          1. 首先是分類(lèi)器的準(zhǔn)確度是需要考慮的問(wèn)題。直接用VAE里的潛在向量去做分類(lèi)而不是BERT的CLS去做分類(lèi)筆者與筆者的同事做過(guò)相關(guān)實(shí)驗(yàn)。準(zhǔn)確率相比CLS分類(lèi)是有較為明顯的下降的。這樣的下降必然會(huì)影響擴(kuò)散引導(dǎo)的效果。
          2. 其次是解碼器生成時(shí)的采樣策略必然會(huì)導(dǎo)致一定的隨機(jī)性存在。哪怕是筆者自身訓(xùn)練的CVAE,在做特定的條件生成時(shí)往往也需要對(duì)同一個(gè)潛在向量重復(fù)采樣以保證條件生成滿(mǎn)足相關(guān)性質(zhì)。
          3. 再次是關(guān)于多個(gè)條件聚合時(shí),不同性質(zhì)的條件聚合是否會(huì)出現(xiàn)明顯的互相干擾,是否需要手動(dòng)調(diào)整各個(gè)性質(zhì)的比重系數(shù)也值得考慮。


          自身實(shí)踐


          筆者根據(jù)論文DELLA [1] 復(fù)現(xiàn)訓(xùn)練了一個(gè)由兩個(gè)Transformer-XL組成的VAE(其中transformer的每一層都會(huì)出一個(gè)潛在向量Z),根據(jù)上篇論文對(duì)一個(gè)電商正負(fù)情感評(píng)論的分類(lèi)數(shù)據(jù)集做了以下幾個(gè)步驟:
          1. 根據(jù)有標(biāo)簽數(shù)據(jù)集生成一批帶標(biāo)簽的Latent-Vec數(shù)據(jù)
          2. 用這些帶有特定性質(zhì)的Latent-Vec訓(xùn)練一個(gè)情感二分類(lèi)器
          3. 已知擴(kuò)散過(guò)程的起點(diǎn)(Encoder的輸出)和終點(diǎn)(帶標(biāo)簽的Latent-vec)用分類(lèi)器進(jìn)行Nueral-ODE擴(kuò)散。


          其中筆者發(fā)現(xiàn):
          1. 分類(lèi)器的準(zhǔn)確度的確不高,最高只能達(dá)到八成左右(分類(lèi)器的架構(gòu)沒(méi)有進(jìn)行太多探索,只嘗試了MLP的一些超參調(diào)整)。分類(lèi)器雖然準(zhǔn)確率一般但對(duì)性質(zhì)改變已經(jīng)足夠。
          2. 生成的潛在向量確定性比較高,且速度很快。相比于Diffusion-LM需要5分鐘左右的擴(kuò)散時(shí)間生成一句話(huà),VAE+diffusion的做法只需要幾秒鐘。
          以下是幾個(gè)情感極性扭轉(zhuǎn)的生成樣例(沒(méi)有經(jīng)過(guò)任何挑選):
          1. 原句1(負(fù)面):呵呵了 這物流速度也是沒(méi)誰(shuí)了 同城網(wǎng)購(gòu)竟然三天了還不到。
          2. 改寫(xiě)句1:呵呵了 這物流速度也是沒(méi)誰(shuí)了 同城網(wǎng)購(gòu)居然還可以很不錯(cuò) 哈哈.
          3. 原句2(正面): 還不錯(cuò),等試用一段時(shí)間再說(shuō)
          4. 改寫(xiě)句2: 還不行,等試用一段時(shí)間再說(shuō)
          5. 原句3(負(fù)面): 買(mǎi)錯(cuò)了,自己是榮耀7,悲哀了,不管商家的事,鬼火綠
          6. 改寫(xiě)句3:買(mǎi)對(duì)了,自己是榮耀7,呵呵,感謝商家的事,快樂(lè)了,不管火鬼綠
          7. 原句4(負(fù)面):一次很差的購(gòu)物 手機(jī)到手后 沒(méi)仔細(xì)檢查 晚上檢查發(fā)現(xiàn)手機(jī)背面有劃痕聯(lián)系了客服說(shuō)換 但是 后面他們打電話(huà)說(shuō)不能更換 反正就是各種各樣的借口
          8. 改寫(xiě)句4: 一次很漂亮的購(gòu)物 手機(jī)上檢查 后手機(jī)沒(méi)受劃 具體使用體驗(yàn)可以打電話(huà)客服詢(xún)問(wèn) 后來(lái)她說(shuō)我不錯(cuò) 而且說(shuō)都是精心計(jì)劃 以后說(shuō)但是一定要注意換三端的電話(huà) 感覺(jué)沒(méi)有各種各樣的借口

          參考資料:

          ^ DELLA? https://arxiv.org/abs/2207.06130

          https://zhuanlan.zhihu.com/p/561233665 本文來(lái)自知乎答主 中森,若進(jìn)行二次轉(zhuǎn)載 ,向原作者進(jìn)行申請(qǐng)。

          18459addd53115c89ed32d56a32c5536.webp

          58c8b00cd6277a5b436324c085a33fbc.webp


          瀏覽 85
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天射天天射av 天天综合永久入口 | 成人在线2| 91精品国产乱码 | 传媒一二三区在线视频 | 九九热视频精品在线 |