参考Xin Rong的论文 word2vec Parameter Learning Explained,写得真的很好
输入的onehot是只有一个元素为1其他全为0的,因此,我们做一个矩阵乘法,相当于把矩阵W中的某一行全部取出而已!!!
cbow版本是输入context,输出中心词
skip gram版本是输入中心词,输出context
其中,skipgram在大型语料库中的表现较好。
层次Softmax 实际上是把一个超大的多分类问题转化成一系列二分类问题
对于w2v,在output的时候,计算出每个词的一个score,之后有一个softmax运算,softmax运算的大部分时间在于分母的计算,而如果使用了层次softmax,从一个词到另一个词的过程相当于一个构造一棵haffman树往并下走(补充:haffman数是二叉树,其中权重越大的越靠近根节点,所有节点的权重之和比其他方式都小)
每往下一层,就相当于一个二分类(逻辑斯蒂回归,二元softmax),而从一个根节点到叶子节点的总共的概率就是各层概率之和,