预训练
一个模型a和一个模型b,a是已经训练好的,a和b是解决相似问题,a和b的浅层神经网络很像,因此直接对b使用a的浅层神经网络,使得b不需要太多的数据,解决了b数据不够的问题
统计语言模型
统计语言模型是做什么的,首先他是个语言模型,就是对语言进行预测的模型
1.求P(“这个词的磁性”)和P(“这个词的词性”)哪个的概率更大
2.“这个词的——”
解决这个问题的办法就是统计办法。所以是统计语言模型
统计
1.
简而言之,就是有后面三个词的情况下,出现前面的词的概率。
如图所示,这个概率是每个词出现的概率的连乘,代表了这句话出现的概率。
2.对于第二个问题
对于下一个词的概率就可以表示为
P(“磁性”|“这个”,“词”,“的”)
P(“词性”|“这个”,“词”,“的”)等
前面这个词具体是谁,假设你有一个词典,这个概率的计算就是计算词典中每一个词在这三个词出现时出现的概率
n元语言模型
很明显,如果这句话的长度太长,计算量是非常庞大的。因此我们可以计算
P(“磁性”|“的”)
P(“词性”|“的”)等
一元的概率
P(“磁性”|“词”,“的”)
P(“词性”|“词”,“的”)等
二元以此类推,可以减少计算量
神经网络语言模型
独热编码
设置一个词典,每个词对应他的一个向量
“磁性”[0,0,0,1,0,0]
用这种方式让计算机认识单词,缺点是求不了每个词的相似度
接下来是神经网络语言模型,
如图所示,所做的操作是
w1,w2,w3,w4
w1*Q = c1
每个w都是如此操作,将c连起来组成C向量,用softmax函数激活就可以得到每个词的概率
Q是一个可以学习的参数,也就是说,只要我得到了Q就可以用w*Q得到任意一个词的词向量,求出两个词之间的概率
词向量
Q是神经网络语言模型的副产品,用w*Q得到的c就是词向量,w也算一种词向量。
但是通过Q得到的c可以用来求两个词的相似度,也可以求两句话的相似度,因此神经系统网络在解决第二个问题的同时,也能很好地解决第一个任务,也就是说第一个问题是下游问题
余弦相似度
余弦相似度就是用来评判两个向量的相似度,或者说夹角,夹角越小相似度越高
余弦相似度基于这样一个观点:两个向量的夹角越小,即它们越指向相同的方向,它们的相似度就越高。数学上,如果我们将两个向量A和B在多维空间中表示出来,那么这两个向量的夹角θ的余弦值可以通过下面的公式计算:
余弦相似度(𝐴,𝐵)=cos(𝜃)=𝐴⋅𝐵\∥𝐴∥∥𝐵∥,就是他们的cos角的大小
学习视频连接如下
该文章是学习b站up主水论文的程序员的笔记,链接如下可自行学习