1.Word2Vec中skip-gram是什么,Negative Sampling怎么做
word2vec通过学习文本然后用词向量的方式表征词的语义信息,然后使得语义相似的单词在嵌入式空间中的距离很近。Skip-gram是给定单词来预测上下文,CBOW就相反。Negative Sampling是对于给定的词,并生成负采样词集合的一种策略。已知有一个词,这个词可以看做一个正例,而它的上下文词集可以看做是负例,但是负例的样本太多,而在语料库中,各个词出现的频率是不一样的,所以在采样时可以要求高频词选中的概率较大,低频词选中的概率较小,这样就转化为一个带权采样问题,大幅度提高了模型的性能。
2.FastText和Glovec原理
fastText简而言之,就是把文档中所有词通过lookup table变成向量,取平均后直接用线性分类器得到分类结果。 FastText没有非线性的隐藏层,结构相对简单且模型训练的更快。fastText和ACL-15上的deep averaging network [1] (DAN,如下图)非常相似,区别就是去掉了中间的隐层。
Glovec融合了矩阵分解和全局统计信息的优势,统计语料库的词-词之间的共现矩阵,加快模型的训练速度而且又可以控制词的相对权重。
3.FastText原理和word2vec的区别
前置知识:
分层softmax
标准的Softmax回归中,要计算y=j时的Softmax概率:,我们需要对所有的N个概率做归一化,这在样本数很大时非常耗时。 于是,分层softmax诞生了,使用树的层级结构代替扁平化的标准softmax,使得在计算
时,只需计算一条路径上的所有节点的概率值。
下图是一个分层Softmax示例:
树的结构是根据类标的频数构造的霍夫曼树。K个不同的类标组成所有的叶子节点,K-1个内部节点作为内部参数,从根节点到某个叶子节点经过的节点和边形成一条路径,路径长度被表示为。于是,
就可以被写成:
其中:
表示sigmoid函数;
表示n节点的左孩子;
是一个特殊的函数,被定义为&#