首页 > 其他分享 >transformer 的发展历史

transformer 的发展历史

时间:2023-02-01 23:35:53浏览次数:67  
标签:NLP transformer Word2Vec NNLM 模型 历史 发展 向量

最近看了很多关于transformer的教程,做一个阶段性的总结。也是写博客的试水文章啦~ 今天也要加油呀!

参考资料:

  1. b站up去钓鱼的程序猿的课程:https://www.bilibili.com/video/BV11v4y137sN/?spm_id_from=333.788&vd_source=98ed4f76b2f858b6bc7c03d166f126b5
  2. 知乎文章:https://zhuanlan.zhihu.com/p/49271699
  3. 李宏毅老师的相关课程连接:https://www.bilibili.com/video/BV1Xp4y1b7ih/?spm_id_from=333.788.top_right_bar_window_custom_collection.content.click&vd_source=98ed4f76b2f858b6bc7c03d166f126b5
  4. Datawhale开源github:https://github.com/datawhalechina/learn-nlp-with-transformers

transformer 的发展历史

问题引入

图像领域常使用Pre-train + Frozen/ Finetune 的组合方式来加快模型训练 完成 数据量不足的任务。ImageNet

这种解决问题的方式能否在NLP领域可行? → 可行

模型发展

几个代表性的模型:(统计语言模型 → NNLM → Word2Vec → ELMO → GPT → Transformer → Bert)

我们先忽略语音问题,文本的NLP问题处理的是词向量,最早起的NLP领域的预训练就是 word embedding

NLP处理的问题是什么?→ 语言模型

(仅考虑文本问题):文本 → 文本/分类(预测、翻译、情感辨识.....)

1. 统计语言模型(基于统计学方法的语言模型):

和机器学习到深度学习经过的历程类似,起初也是用统计数学的方法来处理问题:

使用条件概率的链式法则来进行:

链式法则

把一句话看为是一个序列,后面词出现的概率都建立在前面词出现的条件基础上。

理解这个公式最合适的文本问题是预测:

  • 填空:eg:“狗狗是人类最好的___“

可以做翻译等任务吗

PS:对于统计语言模型的改进 → n元统计语言模型:

忽略预测词前面的一些词:(马尔科夫链)

马尔科夫链

P(朋友|狗狗,是,人类,最好的) 简化为 P(狗狗|最好的,人类)......

2. NNLM 神经网络语言模型

从统计学模型往神经网络改进。

NNLM是两层感知机的简单结构。 副产品是词向量。

NNLM

感知机的公式:wx+b

输入的最初是one hot 编码的词向量。完成填空任务后,我们得到一个训练得不错的W,这个W*x,就是一个word embedding的形式。

这样我们得到了具有更多信息的词向量编码,并且可以控制大小。

3. Word2Vec

得到NNLM的启发后,NLP领域开始把创造好的word embedding编码作为一个重要的任务。

Word2Vec就是为了得到更好的词向量提出,NNLM只考虑前文,对此做了改进。

Word2Vec

  • CBOW:上下文预测单词
  • Skip-gram:词预测上下文

Word2Vec不在乎预测的准确性,而是想要得到更多信息的词向量编码。

4. ELMO

Word2Vec在处理多义词时遇到困难。

ELMO

双向的lstm(理解LSTM)

为什么同样考虑上下文ELMO有更好的表现? → lstm是动态记忆的,而非Word2Vec的静态输入上下文。(比较直觉式的解释)

缺点:

lstm长期依赖消失

lstm无法并行计算

5. GPT ATTENTION transformer ...

这些模型后面展开说。

标签:NLP,transformer,Word2Vec,NNLM,模型,历史,发展,向量
From: https://www.cnblogs.com/moonlight1209/p/17084393.html

相关文章