模型[8]是一个端到端的模型,不需要专家领域知识。它试图模仿人类写作前先规划一个写作大纲的过程。整个诗歌生成框架由两部分组成:规划模型和生成模型。 规划模型:将代表用户写作意图的Query作为输入,生成一个写作大纲。写作大纲是一个由主题词组成的序列,第i个主题词代表第i句的主题。 生成模型:基于encoder-decoder框架。有两个encoder,其中一个encoder处理主题词,另外一个encoder处理历史生成的句子,decoder负责生成下一句话。decoder生成的时候,利用Attention机制,对主题词和历史生成内容的向量一起做打分,由模型来决定生成的过程中各部分的重要性。 前面介绍的几个模型,用户的写作意图,开奖,基本只能反映在第一句,随着生成过程往后进行,后面句子和用户写作意图的关系越来越弱,就有可能发生主题漂移问题。而规划模型可以使用户的写作意图直接影响整首诗的生成,因此在一定程度上,避免了主题漂移问题,使整首诗的逻辑语义和情感更为连贯。 总体框架图如下:
生成模型框架图如下:
诗歌图灵测试例子:
现代概念诗歌生成例子:
i, Poet: Automatic Poetry Composition through Recurrent Neural Networks with Iterative Polishing Schema 模型[7]基于encoder-decoder框架,一个比较有意思的地方,是想模拟人类写诗反复修改的过程,加入了打磨机制,通过反复迭代来提高诗歌生成质量。 encoder阶段:用户提供一个Query作为自己的写作意图,由CNN模型获取Query的向量表示。 decoder阶段:使用了hierarchical的RNN生成框架,由句子级别和词级别两个RNN组成。 句子级别RNN:输入句子向量表示,输出下一个句子的Context向量。字符级别RNN:输入Context向量和历史生成字符,输出下一个字符的概率分布。当一句生成结束的时候,字符级别RNN的最后一个向量,作为表示这个句子的向量,送给句子级别RNN。 总体框架图如下:
Generating Topical Poetry 模型[9]基于encoder-decoder框架,分为两步。先根据用户输入的关键词得到每句话的最后一个词,这些词都押韵且与用户输入相关。再将这些押韵词作为一个序列,送给encoder,由decoder生成整个诗歌。这种机制一方面保证了押韵,另外一方面,atv,和之前提到的规划模型类似,在一定程度上避免了主题漂移问题。 SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient 模型[10]将图像中的对抗生成网络,用到文本生成上。生成网络是一个RNN,直接生成整首诗歌。而判别网络是一个CNN。用于判断这首诗歌是人写的,还是机器生成的,并通过强化学习的方式,将梯度回传给生成网络。 模型框架图如下:
总结 从传统方法到深度学习,诗歌生成技术有了很大发展,甚至在一定程度上,已经可以产生普通人真假难辨的诗歌。但是目前诗歌生成技术,学习到的仍然只是知识的概率分布,即诗句内,诗句间的搭配规律。而没有学到诗歌蕴含思想感情。因此尽管生成的诗歌看起来有模有样,但是仍然感觉只是徒有其表,缺乏一丝人的灵性。 另外一方面,诗歌不像机器翻译有BLEU作为评价指标,目前仍然依赖人工的主观评价,缺乏可靠的自动评估方法,因此模型优化的目标函数和主观的诗歌评价指标之间,存在较大的gap,也影响了诗歌生成质量的提高。AlphaGo已经可以击败顶尖人类选手,但是在诗歌生成上,机器尚有很长的路要走。 参考文献 [1] 一种宋词自动生成的遗传算法及其机器实现 [2] i,Poet: Automatic Chinese Poetry Composition through a Generative Summarization Framework under Constrained Optimization [3] Generating Chinese Classical Poems with Statistical Machine Translation Models [4] Recurrent neural network based language model [5] Chinese Poetry Generation with Recurrent Neural Networks [6] Chinese Song Iambics Generation with Neural Attention-based Model [7] i, Poet: Automatic Poetry Composition through Recurrent Neural Networks with Iterative Polishing Schema [8] Chinese Poetry Generation with Planning based Neural Network [9] Generating Topical Poetry [10] SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient 作者 王哲,中国科学技术大学在读硕士,研究方向为文本生成和深度学习。 知乎专栏炼丹实验室zhuanlan.zhihu.com/easyml 博客 freecoder.me PaperWeekly第一期在线讨论 关于PaperWeekly (责任编辑:本港台直播) |