說實話,是聆聽了大神們,本人只是捧哏似的嗯、啊了幾句。
之前paperweekly的GAN討論組要進行一次討論,給出了很多議題進行投票。里邊有GAN in NLP、GAN and RL、半監督GAN等我比較感興趣的話題。也有圖像相關的關于GAN的正統問題。
沒想到最后GAN in NLP獲得了最多的票數。我原來對于把GAN應用于NLP叫做劍走偏鋒,沒想到志同道合的人這么多…
接下來是對討論內容的完全記錄,本文的最后是本人的一點點感悟。
下邊的討論問題與解答有些是文不對題的,首先是因為按照發言順序整理,難免有插話的存在;第二,因為在討論中大家的關注點比較集中,很多問題的討論最后都會歸納到幾個矛盾點上;還有就是有些內容關注的人并不是很多,因此也沒有討論出什么結果。另外,下邊的問題有主題人按照議程提出的,有的是在討論過程中同學們提出的。
最后,以下記錄不代表本人立場,也不代表正確的解答。只是討論記錄。
- 第一個問題: GAN目前在NLP中都嘗試了哪些任務,主要思路是怎樣的,效果如何?
A:有對話系統的,有純文本生成的,有機器翻譯的,也有IR的,越來越多的嘗試。
B:還有做中文分詞,文本分類的。
C:純文本又可以做各種奇怪的任務,還有詩歌生成什么的。
D:見過有寫唐詩的。
E:主要思路都是考慮d用來做真假判別,然后用rl的policy gradient的方式來打分和更新。
- 為什么采用policy gradient,而不是直接用gradient?
A:這感覺是NLP本身的一個難點,很多應用還缺乏非常合理的評價標準。
B:D本身就是作為一個判別器,所以說概率輸出,就是這個概率作為分數。
C:因為文本是離散的,不能傳導吧。
D:因為離散的序列在梯度微調時沒有意義。
E:做過一些字符級生成的例子,效果不太好。
F:還是在原有任務上加rl效果比較好。
G:即使用的是word2vec之類連續的,微調之后可能得到一個什么都不代表的向量。
H:policy gradient的bias會比較大吧?
I:在文本生成里面,尤其是用了word2vec的。我這邊提一個問題,我也不知道業界有沒有方案。就是生成的向量是在空間里的,基本不可能對應到有意義的點(word),那么只能取最近的,那么如果這個向量做了優化,對GAN來說是非常敏感的,也許判別器就更難判斷了,但是對詞典里的詞,是不敏感的,也許距離這個生成的向量的距離的排序沒有改變。
A:我記得IR上做得最好的應該是IRGAN吧。
B:我覺得nlp上的gan和傳統的不同,不是給噪聲讓他生成 而是在原有任務上改進,對就像irgan ,比如它的g ,其實是候選句 還是要sofmax。
C:G和D都是IR system,文章說,兩個系統在對抗訓練下,一般都會有一方比直接訓練效果好。
D:SeqGAN是比較早做的,
16年底放在arxiv上,但是效果目前可能有更好的,比如lecun剛放在arxiv上他們投
17年nips的文章,用了wgan;IRGAN和SeqGAN都是UCL的Wang Jun老師和上交的Zhang Weinan組做的。
E:irgan有點像以前八十年代的minmax game theory。irgan的reward也是放g上,也不直接生成,而且從候選里面用softmax挑
F:另外我看irgan開源代碼qa部分 沒有用q和a的attention 引用的paper中有試過,所以還有提升空間 可能,g的reward通過d計算。
G:我看了代碼,網絡結構寫得很簡單,沒有attention機制。
- 其他任務目前的效果呢?比如對話系統,機器翻譯,有沒有同學來解答一下?
A:看過對話系統有一篇,思路和seqgan差不多。
B:seqgan算是一個開創之作?
C:
16年底放arxiv上,算是最早的了吧,效果因此也沒有很好,那時候wgan什么的才剛提出來。
D:不過g網絡是seq2seq,d是hierarchical encoder (而非CNN)。
E:SeqGAN 的一作是個本科生,很是佩服。
F:除了Adversarial Learning
for Neural Dialogue Generation之外,在chatbot 不知道還有其他沒有,好像
...沒有了。
- 第二個問題: 目前對抗生成文本的方法都有哪些?說說你看過的相關論文吧
A:話說gumble softmax似乎還沒人提過。
B:一種可生成離散數據的可導的方法,但是一直沒弄得很明白過。
C:中午我剛看了gumble softmax,它可以代替policy gradient,直接可導了。
D:這是簡單粗暴的解決辦法。
E:但是看結果也并沒有好到哪里去,算是比較有潛力的方法之一吧。
提供了一種思路。
F:畢竟只是近似。
G:目前的方法主要是這兩種嗎?policy gradient和gumble softmax,還有其他的嗎?(沒有回答)
- 有個基礎的問題想請教一下,生成離散數據沒法回傳梯度,但隱層不是連續的么?為什么不直接用隱層的表示?像seq2seq 不也是在softmax 的輸出基礎上算的損失?
A:因為真實數據是離散的哦,為了給D和真實數據對應的生成數據,G所以也要生成離散的了。
B:因為在隱層上的細微更改沒有意義
- 第三個問題: GAN解決NLP問題,G和D的網絡設計有哪些常見結構?各有什么優缺點?
A:這個方面可能比較多的架構就是seq2seq,還有hierarchy seq2seq
前面有同學提到g用seq2seq, d用hierarchical encoder
(接下來的回答又漸漸偏向了離散這個老生常談)
B:可以用某種embedding方法把真實數據對應到某個表示空間,不過還是逃不過這個空間里的連續性問題
C:embedding的方法也會遇到問題,ian goodfellow講過,詞向量雖然是smooth的,但是詞典是離散的
D:還原回去也只是近似的
E:所以我在想對loss加一項或者加權會不會有效,就針對離散,比如對最近的word的向量的距離+
1,作為權值乘上原來的loss
F:讓G生成的越接近離散loss越小?(對)
G:這個其實WGAN做的很好
- 想起了沒怎么認真看的IRGAN,他是怎么“選擇”query對應的document的來著?想到如果可以有做出”選擇”這個功能來似乎離散問題也不是特別大了?
它是通過一個
G網絡提特征,最后用softmax判斷哪個document跟
query最匹配
- G和D的采用RNN,CNN都有文章做過了吧?有沒有什么先驗知識(玄學),可以指導我們什么情況下該用哪種?
A:感覺CNN做判別器比較多
B:CNN目前有沒有拿去做generator的?
C:有吧,不過好像效果不太好
A:包括,Ian Goodfellow說的,離散數據的連續embedding空間的矛盾,只能做近似;policy gradient和gumble softmax存在bias
B:在生成text時,GAN對整個文本序列進行建模打分。對于部分(partially)生成的序列,十分難判斷其在之后生成整個 (fully) 序列時的分數。
C:另一個潛在的挑戰涉及RNN的性質(生成文本大多采用RNN模型)。假設我們試圖從latent codes生成文本,error就會隨著句子的長度成指數級的累積。最開始的幾個詞可能是相對合理的,但是句子質量會隨著句子長度的增加而不斷變差。另外,句子的長度是從隨機的latent representation生成的,所以句子長度也是難以控制。
D:話說這個誤差一直積累的問題,能不能加上self attention搞搞事情
attention現在有用到GAN的框架下了嗎?
E:沒有的話確實可以搞事情,效果不錯的話,說不定一篇paper就出來了
F:jiwei li那篇用GAN做對話生成的文章就是seq2seq+attention來著
- 下一個問題:你認為哪些NLP問題可能適合用GAN解決,現有的GAN方法可能坑太多,不一定適合那類NLP問題
A:我覺得,GAN做半監督還是比較有希望的,我覺得文本分類是一個可行的應用
B:對話生成如果有評估指標就應該可以做,但是現在沒有
C:哈,在機器翻譯中證明了gan的確是work的
D:半監督是比較有希望的哎,是不是可以通過GAN來做數據增強
(此時主持人召喚出大神一枚)?
-?你有篇工作吧 ,gan in nmt 可以給大家介紹一下
a:不過這個d的accuracy 包括d的設計也是很關鍵。另外得非常注意控制學習率,Adversarial neural machine translation
q:控制學習率有什么特別的技巧嗎?
a:因為當把更新方式換成rl 的policy gradient之后,需要特別注意更新的學習率
q:D的設計能夠展開說一下嗎?
a:一般來說經驗的設計,rl中對于學習率盡量保證小
a:我嘗試了不同的學習率,發現規律的確是大了會影響結果
q:是因為policy gradient的variance太大嗎?
a:恩,可以這么說
a:另外,盡量需要加入bilingual的supervised training,這點的確能夠使訓練更為stable
a:我個人覺得用gan的思路以及rl的方式去更新,的確是有幫助
- 進入今天最后一個問題:目前GAN和基于檢索方式的問答有哪些結合方法?
A:IRGAN是一種
B:大體看過的對話生成好像都是生成式的,那用IRGAN同樣的思路做個檢索式的對話系統似乎不是很難
A:generative和discriminative的檢索方式都可以做,從IRGAN來看
填坑式創新。。感覺這算是IRGAN的特例了。。
A:大體上就分為生成模型和判別模型,IRGAN已經涵蓋了這兩種,或許我們可以再往細了討論
A:generative/discriminative的檢索式對話系統跟GAN有哪些結合方式?
A:我記得IRGAN里面說過,G可以直接生成樣本,但是它們沒有這么做,而是直接用softmax挑選
A:那么,直接生成樣本是否也是一種方式?可行性如何?
C:檢索式對話沒有價值
A:也不是沒有價值,我覺得檢索出信息以后提取關鍵信息,后續可以定制個性回答
這是最后一個問題,可以看出來關注這個問題的同學已經不是很多了,因此也沒有什么人來回答,一直是主持人在表達自己的看法,直到!!!C同學說了一句“檢索式對話沒有價值”…討論就此結束。?
因為對于這個問題我也不了解,所以無法進行評價。
接下來就我對于整個討論表達一點點看法:
首先,文本是離散的。這一點毋庸質疑,也正是GAN應用在NLP的魅力所在。
從上邊的討論就可以看出,大部分都是會回歸到這個問題的身上。
隨后,同學們提到的最多的一個成果就是IRGAN。這篇論文我并沒有看過,打算學習一下。?
附上一個解讀該論文的鏈接
關于seqgan,可以算是一個開創之作,提供了rl應用于GAN的思想。
還有gumble softmax,它可以代替policy gradient,只能說是提出了一種思路,因為它的生成效果不是很好,也說明這種思路的提升空間很大。
同學們還有的提到了GAN做半監督應用于文本分類的可能性,這也是我目前比較關注的方向之一。
最后,請大神們指教。
再附上一張大神對于本次討論的總結圖
原文地址:?http://blog.csdn.net/yinruiyang94/article/details/77618344
總結
以上是生活随笔為你收集整理的记录一次与大神们的关于GAN应用于NLP的讨论的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。