CS224n学习笔记1

CS224n学习笔记 Lecture 2: Word Vector

参考链接:Word2Vec Tutorial - The Skip-Gram Model
[NLP] 秒懂词向量Word2vec的本质
CS224n笔记2 词的向量表示:word2vec
word2vec是如何得到词向量的(crystalajj的回答)

前言:
本人还是小白,开通此博客是作为笔记使用,记录平时的学习心得。数学公式虽有涉及,但暂且不会放在博客上,着重记录算法思想。如有错误,欢迎交流指正,不胜感激!

skpi-gram模型训练

在skpi-gram模型中,我们最终目的是获得模型基于训练数据学得的隐层权重。文字截图自Word2Vec Tutorial - The Skip-Gram Model
在这里插入图片描述

训练数据:词对(input word,output word)。输入层输入的是input word 的one-hot vector(但在实际代码中, 输入的并不是one-hot vector,因为独热向量编码有很多都是0,所以也会转成哈希特征,加快效率),输出层输出的是output word 的one-hot编码。
开始训练:初始化权重W、W`为随机值,前向传播,得到输出层的概率分布,使用交叉熵作为代价函数,反向传播,采用梯度下降算法更新权重。
完成训练:权重W就是我们要的词向量矩阵。输入层的每个单词(one-hot vector)与矩阵W相乘得到的向量的就是我们想要的词向量(word embedding)。输出层得到的是概率分布,意思是当前位置代表的词与input word 共现的概率。 eg:假设字典是【我,你,好,是】,在训练完模型后,输入“是”,one-hot编码为[0,0,0,1],如果输出层输出的概率是[0.4,0.4,0.1,0.1],第一个0.4就代表“我”与“是”共现的概率。

NB:W中的向量叫input vector,W’中的向量叫output vector。所以每个词都有两个向量表示。把所有参数写进向量θ,CS224n assignment1 q2_neural.py 中是将两个权重矩阵拼接起来的。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/destiny_block/article/details/84820372