目录
- 参考资料
- 前言
- 一、预训练
- 二、神经网络语言模型(NNLM):预测下一个词
- one-hot编码的缺陷
- 词向量(word embedding)
- 三、Word2Vec模型:得到词向量
- CBOW
- Skip-gram
- Word2Vec和NNLM的区别
- Word2Vec的缺陷
- 四、ELMO模型:通过预训练得到词向量
参考资料
感谢我的互联网导师:水论文的程序猿
参考资料和图片来源:Transformer、GPT、BERT,预训练语言模型的前世今生(目录)
预训练语言模型的前世今生 - 从Word Embedding到BERT
B站教学视频:预训练语言模型(Transformer、BERT)的前世今生
前言
一、预训练
通过 ImageNet 数据集我们训练出一个模型 A,由于上面提到 CNN 的浅层学到的特征通用性特别强,我们可以对模型 A 做出一部分改进得到模型 B(两种方法):
- 冻结:浅层参数使用模型 A 的参数,高层参数随机初始化,浅层参数一直不变,然后利用领导给出的 30 张图片训练参数
- 微调:浅层参数使用模型 A 的参数,高层参数随机初始化,然后利用领导给出的 30 张图片训练参数,但是在这里浅层参数会随着任务的训练不断发生变化
二、神经网络语言模型(NNLM):预测下一个词
one-hot编码的缺陷
-
独热编码无法计算词语之间的相似度(余弦相似度),比如fruit为[1,0,0,0,0,0,0,0], banana为[0,0,0,0,0,0,0,1],这两个词在词义上有从属关系,但是若计算余弦相似度,则为0.
-
如果使用独热编码来对词汇进行存储的话,占用的存储空间会很大,3000个词就需要一个3000*3000的独热编码矩阵。
w1*Q = c1
词向量(word embedding)
神经网络的副产品:词向量
使用Q矩阵来降维,如果Q矩阵足够小,如维度为30001,那么30003000的词向量与Q矩阵相乘就会变成一个3000*1的向量,这就是一个词向量。
词向量优势:可以选择词向量的维度,可以求两个词之间的相似程度
三、Word2Vec模型:得到词向量
主产品:得到词向量
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模型:通过预训练得到词向量
改进无法识别多义词的问题。
ELMO:可以把词语的上下文信息融合在Q矩阵中,将词的上下文信息叠加起来形成一个词向量,从而解决在不同语境中一个词语可以有不同意思的问题。