Transformer详解一:transformer的由来和先导知识

目录

  • 参考资料
  • 前言
  • 一、预训练
  • 二、神经网络语言模型(NNLM):预测下一个词
    • one-hot编码的缺陷
    • 词向量(word embedding)
  • 三、Word2Vec模型:得到词向量
    • CBOW
    • Skip-gram
    • Word2Vec和NNLM的区别
    • Word2Vec的缺陷
  • 四、ELMO模型:通过预训练得到词向量

参考资料

感谢我的互联网导师:水论文的程序猿
参考资料和图片来源:Transformer、GPT、BERT,预训练语言模型的前世今生(目录)
预训练语言模型的前世今生 - 从Word Embedding到BERT
B站教学视频:预训练语言模型(Transformer、BERT)的前世今生

前言

一、预训练

Transformer详解一:transformer的由来和先导知识_第1张图片

通过 ImageNet 数据集我们训练出一个模型 A,由于上面提到 CNN 的浅层学到的特征通用性特别强,我们可以对模型 A 做出一部分改进得到模型 B(两种方法):

  1. 冻结:浅层参数使用模型 A 的参数,高层参数随机初始化,浅层参数一直不变,然后利用领导给出的 30 张图片训练参数
  2. 微调:浅层参数使用模型 A 的参数,高层参数随机初始化,然后利用领导给出的 30 张图片训练参数,但是在这里浅层参数会随着任务的训练不断发生变化

二、神经网络语言模型(NNLM):预测下一个词

one-hot编码的缺陷

  1. 独热编码无法计算词语之间的相似度(余弦相似度),比如fruit为[1,0,0,0,0,0,0,0], banana为[0,0,0,0,0,0,0,1],这两个词在词义上有从属关系,但是若计算余弦相似度,则为0.

  2. 如果使用独热编码来对词汇进行存储的话,占用的存储空间会很大,3000个词就需要一个3000*3000的独热编码矩阵。

Transformer详解一:transformer的由来和先导知识_第2张图片

w1*Q = c1

词向量(word embedding)

神经网络的副产品:词向量

使用Q矩阵来降维,如果Q矩阵足够小,如维度为30001,那么30003000的词向量与Q矩阵相乘就会变成一个3000*1的向量,这就是一个词向量。

词向量优势:可以选择词向量的维度,可以求两个词之间的相似程度

Transformer详解一:transformer的由来和先导知识_第3张图片

三、Word2Vec模型:得到词向量

主产品:得到词向量
Transformer详解一:transformer的由来和先导知识_第4张图片

CBOW

给出词的上下文,预测到当前词。

Skip-gram

给出一个词得到该词的上下文。

Word2Vec和NNLM的区别

NNNL -> 重点是预测下一词,双层感知机softmax(w2(tanh((w1(xQ)+b1)))+b2)

Word2Vec -> CBOW 和 Skip-gram 的两种架构的重点都是得到一个 Q 矩阵,softmax(w1 (xQ) +b1),得到词向量

Word2Vec的缺陷

词向量无法做到一个单词的多义性。

e.g. 苹果有水果中的苹果和苹果手机两个意思,但是如果在训练时训练出来的词向量是代表水果苹果的意思,那么在应用预测这个词时就只有水果的意思而没有手机的意思。

四、ELMO模型:通过预训练得到词向量

改进无法识别多义词的问题。
Transformer详解一:transformer的由来和先导知识_第5张图片
ELMO:可以把词语的上下文信息融合在Q矩阵中,将词的上下文信息叠加起来形成一个词向量,从而解决在不同语境中一个词语可以有不同意思的问题。

Transformer详解一:transformer的由来和先导知识_第6张图片

你可能感兴趣的:(transformer,深度学习,人工智能,机器学习,神经网络,python)