记录一次与大神们的关于GAN应用于NLP的讨论 (后续)
這次的討論可能是因為題目不夠大眾,或者是做這方面的同學們太過羞澀,因此討論的內容基本偏題,最后形成了大家自由討論的局面。但是只要仔細觀察,是可以看到其中是有著耀眼的閃光點的,至少對于我來說是這樣的。
重申以下觀點:下邊的討論問題與解答有些是文不對題的,首先是因為按照發言順序整理,難免有插話的存在;第二,因為在討論中大家的關注點比較集中,很多問題的討論最后都會歸納到幾個矛盾點上;還有就是有些內容關注的人并不是很多,因此也沒有討論出什么結果。另外,下邊的問題有主題人按照議程提出的,有的是在討論過程中同學們提出的。
最后,以下記錄不代表本人立場,也不代表正確的解答。只是討論記錄。
那,繼續GAN
今天的主題是GAN4NLP~~~```A: 第一個話題是GAN for 對話系統
首先,我要問一下,這個話題的研究現狀,有哪些方法?
(直接偏題)...
B: 大家有做對話評價的嗎,gan能不能用在評價里面呢?
C: 對話評價感覺可以用gan做,嗯對話評價是其中一個子問題,能不能說下目前主流用什么方法做,是類似BLEU這些指標么?
D: 對,現在主要還是套用機器翻譯的評價指標,居多
E: 那gan理論上應該可以學到一個更自然的評價指標
F: 生成式對話的評價,做的人好像不多
G: 問題是這樣不好比較啊,不同的人訓練的評價器/判別器不一樣,得到的評分沒法對比
H: 我沒想明白怎么應用gan到評價里面
I: 或許可以這樣:D判斷對話是否“自然”,G生成對話,D的輸出可以當做評價指標
J: D輸出的概率值可以作為評價指標
K: 評價指標不能單從通順來判斷吧
L: 的確不能單靠通順,還要看是否符合當前上下文
M: 不只是通順吧,D學到最后應該具有判斷上下文符合程度的能力
N: 但是最主要的問題是,憑什么用你訓出來的 D 評價不用我的呢
O: nlp的世界中有一個跟imagenet一樣令人信服的數據集,跑出一個類似inception network的模型,搞一個類似inception score的指標,除非這種情況不然的確很難統一
P: 對話系統,Adversarial Learning for Neural Dialogue Generation 之前搜到這篇比較符合, 讀過的相關論文同學能共享下最近的paper嗎(有一個同學回到了主題)
Q: 判斷是否符合上下文,其實是一個conditional generation的問題,gan做conditional generation有一些套路,比如把那個condition(label啊上下文啊)跟生產的內容一起給判別器,要求判別器判斷是否匹配
R: 用GAN的方法做評價,只能說,它是適合當前的數據集的,換一個數據集不一定適用呢,畢竟還有文本風格的問題在里面
S: 如果你問的是能不能作為一個評價指標,那gan應該是不行的,但是你說在一次訓練中用來評價對話的好壞,進而輔助對話模型的訓練,這是可以的
T: 我覺得gan用在對話上就是把重點放在做生成上,gan做不了評價指標。基本上gan訓練完我們是把判別器扔掉的,沒有用到
因為判別器是會過擬合到當前訓練任務的
U: 我見過唯一一個有用到判別器的case,應該是gan做半監督學習,不知道有沒有別的
V: gan的判別器是用BLEU+RL嘛?或者其他指標+RL
W: GAN的判別器是可以替代BLEU,變成GAN+RL吧
X: 純粹RL做文本生成的話,是用BLEU沒錯,但是如果用上gan,那gan判別器的輸出就代替了BLEU的角色
Y: Adversarial Learning for Neural Dialogue Generation應該是比較經典的一篇
Q: 編碼層怎么做對抗訓練?大概講一下思路?
A: 讓編碼層像一個高斯分布,編碼分布為生成分布,高斯分布為真實分布,用gan對抗拉近,放個圖
Q: 判斷編碼層是真實的編碼還是直接生成器產生的?
A: 對
Q: 這個用VAE是不是更合適?
Q: AAE
A: 對就是AAE,它的好處是避開了文本的離散形式
Q: 可能VAE和這種方式差不多,但AAE好像容易理解點
A: 嗯,編碼是連續的
A: 本來文本是離散的,不可微,沒法直接用gan訓練,只好用RL的形式來做,但是AAE直接跑到中間編碼層去做對抗訓練,避開了這個問題
Q: 用aae主要解決什么問題?
A: 最重要的就是解決離散樣本不可微的問題
Q: 但是AAE最后也要把編碼翻譯成句子吧?這個還是避免不了離散的問題,是這樣嗎?
A: 但是不需要在句子那邊求導了
Q: AAE感覺就像一種對編碼方分布的正則而已
A: 是這樣的,原始gan的思路是從一個高斯分布映射到文本分布,要求生成的文本逼真,但是不好求導,AAE是建立真實文本分布到一個未知分布的可逆映射,然后要求這個未知分布像高斯分布,把思路顛倒過來了,再次上圖
A: 可以對比一下這張圖里面的AAE和GAN
B: 真實數據不一定符合高斯分布吧
C: 編碼可以啊,我們讓它符合高斯分布就讓它符合唄,這很合理
D: 為什么要讓中間層逼近高斯啊
E: 編碼可以要求是高斯分布的,VAE就是那么干的,把未知分布映射到高斯分布
F: 只是一個選擇,逼近別的分布比如uniform分布也可以,具體哪個更好得看實驗結果吧
G: 可能高斯分布比較好優化
H: 這種自編碼器如何應用呢
I: 我覺得可以把gan訓練做為一個輔助任務,放在正常對話生成模型旁邊,然后讓對話生成的decoder跟AAE的decoder共享參數
J: Adversarially Regularized Autoencoders for Generating Discrete Structures這篇好像就跟AAE略有不同,是用一個生成器去生成中間層編碼,而不是直接要求中間層編碼滿足高斯分布
A: 如果從文本生成圖像,是不是都不把編解碼放在GAN中,最近看了相關的幾篇paper,對文本都是先用RNN做編碼,然后直接當做條件做生成
B: 文本生成圖像,文本的編碼是作為條件輸入的
C: 這也是一個套路,conditional generation
D: 這個思路我之前做過,但是解釋不通
E: 是用上下文做為condition嗎,可以具體說說方案嗎
D: 是的,和老師聊了,理論上過不去,效果不好,就沒有調參
F: 這樣子,為什么理論上過不去
D: 因為你編碼器得到的是輸入句子的編碼,解碼之后還是原始句子
G: 而現在input 和output sequence不是同一個?所以有問題?
D: 嗯,對話生成不是這樣的,我當時做的比這個復雜,我做了3個模塊,一個是上下文編碼,一個是自編碼,一個是解碼
H: 如果你是在中間編碼層加對抗,那的確不合理,但是在output sequence上用RL加對抗,就講得通吧
I: 如果說把文本也做一個編解碼器,用GAN和VAE聯合的那個框架,不知道有沒有搞頭?
A: 我想討論 關于 訓練集很少的情況下,是否可以用GAN來提高模型
B: 你這個是半監督學習的問題
C: 有用gan,或者應該說是對抗訓練,來做文本分類的半監督學習,也算gan for nlp吧
D: 因為rl的reward,不是固定的某個度量,d可以根據場景學習reward 倒逼g
E: 而認為是一個比較“自然”的度量?
F: 我覺得他的reward很靈活 而且隨著g的改變d也會訓練適應
G: 就是找到了一個更好的supervise信號,不過這個信號很不穩定啊
H: 不是固定的,嗯 有得有失
I: 以前是深度學習替代了feature engineering,現在有可能gan替代loss engineering嗎
somebody: 這可能是一個趨勢哈哈
somebody: 感覺還是要設計 loss
... ...
...
第二個討論的話題:GAN for 標題生成。首先,誰來講一下標題生成是個什么任務?
A: 類似于summary嗎?
B: 根據摘要生成標題
C: GAN用于摘要生成,現有的摘要生成評價體系也沒有統一的吧,如何來設計判別函數。
D: 我覺得論文標題生成倒有戲,1,數據好找,2,abstract質量高,數據直接遍歷arxiv
E: Abstractive Text Summarization using Sequence-to-sequence RNNs andBeyond(劃重點)
F: 想過是不是他的rl改成gan。 不是固定用rouge l 不知道大家有沒有方法,他其實還是常用的加rl方法 但論文每周讀的兄弟提了 rl的reward用最終的評價函數。有點為跑分而跑分
G: 這種訓練時直接用評價指標當reward的做法感覺很不好
H: 設計個d來reward?
I: 我覺得如果有n個指標可以用,應該訓練用一個指標,評價用其他n - 1個指標,類似k fold cross validation
J: 嗯 其實他也這么做了,這樣做會魯棒一些
K: 是不是以前用rl的方法 如果能設計d來做的話就有機會提升?
L: 感覺是,BLEU也會過擬合吧
M: 不妨試試標題生成,數據集也有了
N: 可能可以哦 找個d 區分生成的標題和真正的標題,有點像seqgan 但d不用cnn用rnn可能可以試試
作者:加勒比海鮮王
鏈接:https://www.jianshu.com/p/92f6624135be
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
以上是生活随笔為你收集整理的记录一次与大神们的关于GAN应用于NLP的讨论 (后续)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录一次与大神们的关于GAN应用于NLP
- 下一篇: GAN原理潜析