論文《Chinese Poetry Generation with Recurrent Neural Network》閱讀筆記
這篇文章是論文‘Chinese Poetry Generation with Recurrent Neural Network’的閱讀筆記,這篇論文2014年發表在EMNLP。
ABSTRACT
這篇論文提出了一個基於RNN的中國古詩生成模型。
PROPOSED METHOD
第一句的生成
第一句的生成是規則式的。
先自定義幾個keywords,然後通過《詩學含英》(這是清朝人編寫的)擴展出更多的相關短語。然後生成所有滿足格式約束(主要是音調方面的)的句子,接下來用一個語言模型排個序,找到最好的。
原文中有挺重要的一句,但是我沒看懂。
In implementation,we employ a character-based recurrent neural network language model (Mikolov et al., 2010) interpolated with a Kneser-Ney trigram and find the n-best candidates with a stack decoder.
接下來句子的生成
一個字一個字的生成。
已經有了前面的1,2,3..i句話,句子\(S_{i+1}\)的條件概率:
\[
P(S_{i+1}|S_{1:i}) = \prod_{j=1}^{m-1}P(W_{j+1}|w_{1:j},S_{1:i})
\]
也就是構成這個句子的每個字的概率乘積。每個字概率依賴於前面的j-1個字以及前面的i句話。
整個模型由三個子模型構成:
1, CSM模型,convolution sentence model
這個模型的任務是把已經生成的句子\(S_i\)映射到一個vector \(v_i\)
\[
v_i = CSM(S_i)
\]
這裏采用的是基於CNN的senence model, Kalchbrenner and Blunsom (2013)
這個模型的把CSM對前面i個句子生成的i個向量映射到\(u_{i}^{j}\)
\[ u_i^{j}=RCM(v_{1:i},j) \]
這是個encode-decode模型,先把前i個句子encode到一個向量,然後再decode到m個向量,每個向量對應一個位置,如果是五言絕句那就是decode出5個向量,分別對應著5個字。然後把這些向量拼接起來。
3,RGM模型,recurrent generation model
預測下個輸出是字w的概率(w是字典裏面的任意一個字),以RCM的輸出、前j個字、字本身的信息(這個模型用的是one-hot encoding向量)為輸入。
這裏其實是個語言模型
\(e(w_j)\)是字w的one-hot encoding.Y需要註意,“matrix \(Y\subset R^{|V|\times q}\) decodes the hidden representation to weights for all words in the vocabulary”
CONTRIBUTION
這篇文章有兩個創新點:
- 通過RNN模型把格式的約束和內容的選擇一起做了
- 在生成的過程中考慮了所有前面已經生成的句子
RESULT
欣賞一下整個模型生成的詩歌吧
論文《Chinese Poetry Generation with Recurrent Neural Network》閱讀筆記