原文在这里,总结一下有关CBOW模型的原理,代码是搬运的。Skip-gram模型与之类似,就不展开详细说明了。有理解不正确的地方请指正。
模型架构
CBOW模型包含三层:输入层,投影层,输出层。与NNML相比,去掉了隐藏层。
CBOW是根据上下文预测中心词,有点类似于完形填空。上下文的多少是个超参数,可以自己调整。
在构建数据集时,根据CBOW的特点,一般是将上下文当作输入,中心词当作标签。
训练时,首先随机初始一个矩阵 C ∈ R ∣ V ∣ × d i m C\in R^{|V|\times dim} C∈R∣V∣×dim,其中 ∣ V ∣ |V| ∣V∣表示词汇表的大小, d i m dim dim表示单词的向量维度,自己设定。然后将上下文和中心词通过矩阵 C