Skip-gram 和 CBOW 模型
推荐视频
动手学深度学习相关课程
one-hot:
余弦相似度都是0
word2vec:
类比关系指的是 男人词向量-女人词向量,得到的结果,应该和,国王词向量-王后词向量,得到的结果差不多。
跳字模型:skip-gram:
注意看懂上面的概率,很好理解。
模型的目的就是使得上面计算的这个概率值最大。
进行如下转化,log:不影响单调性,性质:乘法应该换加法。
加个-
那么就是求最小值。
则可以把下面的这个当做损失函数。
*
具体到词向量:
其中分子表示的是词向量c和词向量o的点积
分母表示的是全部的
只是使用了一个softmax。
要点:一个词应该有两个词向量,一个是作为中心词时的词向量,一个是作为背景词时的词向量。
求梯度:
连续词袋模型:CBOW:
相当于最小化如下:
转化为词向量:
可以看出,上面的两种训练方法再求梯度时与整个词典的大小相关。
因此,采用了近似训练法。
负采样:
以skip-geam为例,经过如下的一波操作,复杂度由词表大小o(|V|)降成了o(K),而且K是由自己定义的。
值得注意的一点是,噪声词的选取,可以是随机给的,概率一般为3/4,不是必须词表-背景词。
层序softmax:
使用2叉树,复杂度降为二叉树的深度,也就是log(词典大小)
是向左走,1,是向右走,-1,概率和之后相加还是1.妙!