语言模型理论基础-持续更新-思路清楚
1.预训练相似的任务A、B,任务A已经用大数据完成了训练,得到模型A。
我们利用-特征提取模型的-“浅层参数通用”的特性,利用模型A的浅层参数,其他参数再通过任务B去训练(微调)。
2.统计语言模型
通过条件概率,办理“完型填空”标题和“预测句子出现概率”标题。
3.神经网络语言模型 -- 为了预测next
就是通过mlp,利用已有的词库将单词编码为onehot * Q矩阵(可学习),拟合一个预测下一个单词的模型。末了输出的softmax维度是词库的维度巨细。
softmax(w2(tanh((w1x+b1)))+b2)
x是输入的词编码
缺点:onehot的维度==词库的巨细,轻易出现维度爆炸。我们希望去训练一个Q去控制词embedding巨细。
得出:onehot * Q = V,V向量就能体现一个单词的词向量。且能调解巨细、能盘算词的余弦相似度。
但是:一个Q矩阵,全部的词都在用?
4.Word2Vec类模型 -- 为了得到词vec
· CBOW
给出一个词的上下文,预测这个词。--完形填空
· Skip-gram
给出词预测上下文。--没啥用
w2v是一种预训练模型,由于这个模型可以预训练好一个Q矩阵,供别的卑鄙任务直接利用,无需重新训练。
而onehot不是预训练,是一一对应的表查询。
但是:词向量不能进行多义词体现。
5.ELMo--办理上述标题
https://i-blog.csdnimg.cn/direct/9ba572e4c96240d8b9245e30c1fdf7ec.png
留意双向双层
输入:很平常的w2v词向量E;
输出:融合上下文信息的新词向量T。对于一个同一词,T的编码也会不一样了,而且相关性应该是负的。
但是:lstm不能并行,长期依靠。
6.attention
理解:“Query,Key,Value的概念取自于信息检索体系,举个简朴的搜刮的例子来说。当你在某电商平台搜刮某件商品(年轻女士冬季穿的红色薄款羽绒服)时,你在搜刮引擎上输入的内容便是Query。 然后搜刮引擎根据Query为你匹配Key(例如商品的种类,颜色,形貌等)。 然后根据Query和Key的相似度得到匹配的内容(Value)。”
理解:Q,K,V是三个矩阵。 是 X 输入与 Wq,Wk,Wv 点积的结果。 最开始Wq,Wk,Wv 是随机生成的, 后面通过训练 Wq,Wk,Wv 会不断调解,通过loss 函数进行。 Wq,Wk,Wv 就是必要训练的参数。
理解:每个token都会发出一个Q去询问其他token,点乘他们的K,得到相对的告急性,为了消除较大的K对softmax的影响除以根号dk,再做softmax得到概率后,点乘V,得到具体必要留意多少
https://i-blog.csdnimg.cn/direct/40cf9349455a4408a17ce4d9c540713a.png !!从分布的角度表明。
7.self-attention
经典
8.67的区别
· 留意力机制没有规定QKV的来源
· 自留意力规定QKV必须是源于X,只是乘了差异的矩阵,在空间上做了差异的伸缩旋转。
9.self和rnn lstm的比较
rnn:
https://i-blog.csdnimg.cn/direct/6905e01e96d34e59b1805aa9ac1bcafc.png,x0的信息传的远了就消失了。
lstm:
https://i-blog.csdnimg.cn/direct/8f75c947af034c0e856e47308c32e9e2.png,通过门,选择性记忆/加强前文的信息。
二者都不能并行,存在长序列依靠标题。
10.mask attention
生成模型是一个单词一个单词的生成,以是对已生成的单词想要做attention的话,attention map会像是下阶梯形矩阵。
https://i-blog.csdnimg.cn/direct/5ec2dd4a884a46e7bd907159544185fb.png
11.多头自留意
就是将X分成8块,每个头有本身的QKV,同样得到一个Z,拼接后再经过一个线性变更得到原来巨细的Z。
12.位置编码
· 由于attention可以并行盘算,导致它不能像rnn一样完全顺序进行盘算。
· 而且假如没有位置编码,即使话的顺序是乱的,也不影响attention的盘算。以是应该有位置编码来体现语序。加到原来的词向量中。
盘算方式:
https://i-blog.csdnimg.cn/direct/4d5c20c849ab4f2ca4c25595bcdccb43.png 对于每个pos的编码,偶数位置用sin奇数位置用cos。2i的目的仅是为了转换为对应的三角函数。
再根据三角函数和差化积:
https://i-blog.csdnimg.cn/direct/5dde0eb363294d0a83707f8309d24956.png
得到:PE = sin(将posi分为两数之和) = 这两个数的PE的线性组合。
理解为:较大posi的编码中蕴含了较小posi的PE信息。即,相当于递归的意思,后面的pos必须依靠之前的值。
13.transformer框架
seq2seq模型
encode:将输入变成词向量
decode:输入词向量,生成下步预测
N层encoder,代表输入经过了N个encoder渐渐加强词向量体现。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]