三、(续)Skip-gram模型介绍
Skip-gram模型并不是和CBOW模型相反的,它们的目的都是计算出词的向量,只不过在作者的论文中给出的图看样子是反的而已。Skip-gram模型是用每个当前词去预测一定范围内除当前词之外前后的词。同样的,此模型也是输出一颗huffman树,如下图所示:此图也借用下图借用
http://blog.csdn.net/itplus/article/details/37969979
Skip-gram模型的目标函数
由于Skip-gram的模型输入是当前词,目的是预测它周围的词,因此,此任务的目标函数如下所示:
L=∑w∈ClogP(context(w)|w)
由于 context(w) 是一个句子,因此,可以将 P(context(w)|w)写成如下形式:
P(context(w)|w)=∏u∈context(w)P(u|w)
根据hierarchical softmax的讨论:
P(u|w)=∏j=2luP(duj|v(u);θj−1)
那么:最终的目标函数可以写为:
L=∑w∈Clog∏u∈context(w)∏j=2luP(dwj|v(u);θj−1)
这里,θ,v(w)的更新公式先留着,待推导完再进行补充。
今天推导了一下,其实和上节中的推导差不多,现将推导过程记录一下
L=∑w∈Clog∏u∈context(w)∏j=2luP(dwj|v(u);θj−1)=∑w∈C∑u∈context(w)∑j=2lulogP(dwj|v(u);θj−1)=∑w∈C∑u∈context(w)∑j=2lulog{[1−σ(v(w)Tθuj−1)]dujσ(v(w)Tθuj−1)]1−duj}=∑w∈C∑u∈context(w)∑j=2lu{dujlog[1−σ(v(w)Tθuj−1)]+(1−duj)log[σ(v(w)Tθuj−1)]}
令 f=dujlog[1−σ(v(w)Tθuj−1)]+(1−duj)log[σ(v(w)Tθuj−1)],则分别求出 f对
∂f∂θuj−1=[1−duj−σ(v(w)Tθuj−1)]v(w)∂f∂v(w)=[1−duj−σ(v(w)Tθuj−1)]θuj−1
那么 θ和 v(w)的更新公式如下:
θuj−1:=θuj−1+η[1−duj−σ(v(w)Tθuj−1)]v(w)v(w):=v(w)+∑u∈context(w)∑j=2lu[1−duj−σ(v(w)Tθuj−1)]θuj−1
Word2Vec 的重点参考文献
- Efficient Estimation of Word Representations in Vector Spaceh. http://arxiv.org/pdf/1301.3781v3.pdf
- Distributed Representations ofWords and Phrases and their Compositionality. https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf
- Exploiting Similarities among Languages for Machine Translation. http://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/44931.pdf
- http://blog.csdn.net/itplus/article/details/37969979
- http://www.cnblogs.com/neopenx/p/4571996.html
- http://blog.csdn.net/zhoubl668/article/details/24319529