基本思路
使用单词的上下文(相邻单词)构建语义(词向量)
记全文中共有个单词,第个位置的单词记为,其语义由k个参数组成的向量表达:
- 作为center word时,单词构成的矩阵为
- 作为outside word时,单词构成的矩阵为
使用点乘计算两个单词的相近程度,表示在位置为的前提下,位置为的概率,可以由相近程度计算 (设中心词为c, 外部词为o):
定义单词上下文窗口的大小为,则全文所有单词的“自洽程度”定义为各个单词在其上下文中出现的概率的积:
训练的目标就是为每个单词找到合理的词向量,使得总自洽程度最大化
代价函数
最大化,只需要最小化
代价函数的偏导数
推导:
当时:
当时:
综合两种情况:
最小化代价函数——随机梯度下降 (Stochastic Gradient Descent, SGD)
优化
使用negative sampling替换softmax代价函数
计算softmax代价函数时需要对所有的求和,计算量过大。 采用随机抽样的方法优化,任意选出一些不相关的词 (negative samples)计算损失。损失函数更新如下: