学完 DeepLearning 系列课程后就想作一个小应用试试。一开始基于 RNN 训练了个古诗机器人,这个作的人不少,因而换了宋词。宋词是基于词牌生成,相对数据量比较少,基于 RNN 训练效果很通常。后来了解到了 Transformer 算法感受发现了生机,训练了一下感受效果然是不错。算法
使用效果测试的话能够直接扫码访问这个小程序玩玩, 或者小程序搜索 【小诗一首】:小程序
这是生成的例子:学习
Transformer 是 Google 于 2017 年在 Attention Is All You Need 论文中提出,基于 Attention 机制,在机器翻译及其余语言理解任务有着以往没法比拟的效果,后 2018 年又提出 Universal Transformer, 在多项有难度的语言理解任务上泛化效果明显更好。Transformer 解决 RNN 存在的长序列信息丢失的问题,像宋词这种讲究格式讲究押韵的语句,在 RNN 中就很难训练到好的效果,可是 Transformer 就能够很好的提取训练宋词中的格式以及押韵特征。测试
想深刻学习 Transformer 以及算法能够看 Tensorflow 官方的教程. 等下篇文章我也详细介绍如何基于 Transformer 训练一个宋词机器人,包括如何预处理训练数据,如何使用模型生成序列文本。spa