论文阅读
transformer是google提出的一种新的网络结构,其最大的特点是它的self-attention模块,相比于RNN和CNN,self-attention可以直接捕获整个序列的全局信息,同时可以并行计算,速度要快很多。了解该模型最直接的方式就是阅读论文原文:Attention Is All You Need。
模型解析
网上关于该模型解读的文章非常多,自己觉得讲解的比较清楚的是这篇文章:BERT大火却不懂Transformer?读这一篇就够了。英文比较好的同学,可以阅读对应的英文文章:The Illustrated Transformer。
模型实战
由于google的开源项目tensor2tensor包含了transformer模型,因此最简单的方式是通过该项目使用transformer。网上比较好的demo演示是transformer demo1和transformer demo2。亲测这些demo都是可以跑通的,需要相关代码的同学可以联系原博文作者或者联系我。
源码阅读
网上关于transformer有不同版本的代码实现方式,比较好的方式是google开源的tensor2tensor项目:tensor2tensor源码。个人比较推荐方式是先阅读tensorflow项目里面transformer代码样例,代码结构比较清晰:transformer代码样例。
参考文献:
- https://arxiv.org/pdf/1706.03762.pdf
- https://mp.weixin.qq.com/s/s2mvrF2pWBQ1M3fmwpf0Cg
- https://jalammar.github.io/illustrated-transformer/
- https://blog.csdn.net/csa121/article/details/79605215
- https://zhuanlan.zhihu.com/p/51245148
- https://github.com/tensorflow/tensor2tensor
- https://tensorflow.google.cn/tutorials/text/transformer?hl=zh_cn