CBOW模型和Skip-gram模型

在前面提到的神经网络语言模型、c&W模型,都没有缺少隐藏层,而模型运算的高消耗都在输入层到隐藏层的矩阵运算中,如果能减少这部分开销,那么模型会更加高效。而CBOW模型和Skip-gram模型就属于这一类模型。

CBOW模型

CBOW模型的思想与c&w模型的思想类似:输入上下文词语,预测中心目标词。

与c&w模型以优化正样本与负样本之间的差异不同,CBOW模型仍然是以预测目标词的概率为最终目标来建模的。CBOW模型在网络结构上进行了两点简化:

  • 输入层不再是上下文词对应的词向量拼接,而是忽略了词序信息,直接采用所有上下文词向量的平均值
  • 省略了隐藏层,输入层直接与输出层相连,采用logistic回归的形式计算中心词的概率

通过上面两点的优化,减少了矩阵运算,也较少了一次层之间的运算,使得模型的效率得到了提升。

文本表示(三)CBOW模型和Skip-gram模型

  • 依旧是从训练语料中选取任意的n元组(n=2C+1)(n=2C+1): (wi,C)=(wiC...wi1wiwi+1...wi+C)(w_i,C)=(w_{i-C}...w_{i-1}w_iw_{i+1}...w_{i+C})
  • WC=wiC...wi1wi+1...wi+CWC=w_{i-C}...w_{i-1}w_{i+1}...w_{i+C}作为输入,将计算上下文词向量的平均值:h=12CiC<=k<=i+Ce(wk)h= \frac{1}{2C}\sum_{i-C<=k<=i+C}e(w_k)
  • 直接用softmax利用上面计算的平均值作为输入,来预测中心目标词的概率:p(wiWC)=exp(he(wi))k=1vexp(he(wk))p(w_i|WC)=\frac{exp(h·e(w_i))}{\sum^{|v|}_{k=1}exp(h·e(w_k))}
  • CBOW模型的目标函数是最大化所有词概率的对数似然:
    • L=argmaxLwiVlog(p(wiWC))L^*=argmax_L\sum_{w_i\in{V}}{log(p(w_i|WC))}

Skip-gram模型

相关文章: