1.什么是Skip-gram算法
Skip-gram算法就是在给出目标单词(中心单词)的情况下,预测它的上下文单词(除中心单词外窗口内的其他单词,这里的窗口大小是2,也就是左右各两个单词)
如下图

图中love是目标单词,其他事上下文单词,分别对其上下文中出现的概率进行预测,p(you|love),p(do|love),p(),等等
2.定义
在这里设定一些定义
d : 为词向量的维度,如[0.3,0.4,0.5,0.6] 用这一词向量来表示单词
v: 词汇表中的单词数,即词汇表维度
vc: 该目标单词 的词向量
vx: 目标单词外的第x个单词的词向量
W: dv 表示目标单词的矩阵
wc:one-hot向量
W’: vd表示其他单词的矩阵,是W的转置矩阵
vx*vc: 目标单词与第x单词的相似度,注意vx要转置,最终结果为一个数
vc= W*wc 首先从目标词矩阵中用onehot向量将目标词的词向量提取出来
之后通过vc与其他单词的词向量转置组成的其他单词举证相乘,得到目标单词与其他单词的相关性向量,即点积,值越大,目标词与该单词的相关性越高

之后得到的相似度向量传入softmax公式,就得到了一个满足概率分布的矩阵。
需要注意的是随着词典规模的扩大,这一部分的分母计算量非常的大
由于此时是有关于单词的上下文信息的,为了训练单词之间的相关性,我们的目标变为极大化概率P ( w o ∣ w c ) ,在不影响单调性的情况下,采用对数似然来计算(取对

Skip-gram模型用于从目标单词预测上下文单词,通过优化词向量表示增强单词间关联。该模型克服了one-hot编码的稀疏性,采用连续词袋模型。训练时,为减少计算量,可采用负采样或层次softmax。负采样通过随机选取少量负样本,而层次softmax利用词频构建二叉树,降低计算复杂度。
最低0.47元/天 解锁文章
1815

被折叠的 条评论
为什么被折叠?



