之前考虑要不要往NLP靠,浏览了些这方面的博客,也算是入门吧
首先是整个NLP的发展历程,参考:
https://blog.csdn.net/Zhangbei_/article/details/85036948
关于seq2seq:
https://blog.csdn.net/Jerr__y/article/details/53749693
关于transformer:
https://www.jianshu.com/p/bb7935f5c717
https://zhuanlan.zhihu.com/p/39034683
关于Bert:
https://zhuanlan.zhihu.com/p/53099098
https://zhuanlan.zhihu.com/p/51413773
自己稍微总结下:
Transformer
抛弃循环or卷积神经网络,仅依赖注意力机制。一整句话编码转为词向量后(word enbedding),一口气输入Encoder,这样
- 并行加速(对比RNN时序先后运算);
- 不会因为时序导致信息传递时衰减(通过attention直接关联到前后信息);
- 使用位置编码来替代RNN中的时序信息
Bert
无监督,不标注,feed大量数据pretrain。
Model structure:a multi-layer bidirectional Transformer encoder
训练过程:
- 随机mask掉15%的words,让model去猜
- 猜两个句子是否构成上下文(50%样本取自上下文,另外一半是完全无关两个句子),两个loss加一起构成一个总的loss来优化
- 训练好encoder后,针对不同任务外接不同layer再finetune即可
上述浅显理解可能不够准确,以后有空还是看原文以及代码吧~