GloVe模型和FastText模型

综述

GloVe模型和FastText模型和Word2Vec模型类似,都是为了得到词的向量。

GloVe模型

GloVe模型首先定义一个窗口,然后对语料库窗口内的词统计出一个共现矩阵。对于这个共现矩阵,我们可以统计各个单词之间条件概率以及联合概率的信息。现在我们想要学习词的向量$v_i$和$v_j$使得这些向量可以更好地拟合条件概率和联合概率。假设我们使用下式拟合概率:

对式子两边取对数有:

令$a’_i=-a_i+\log X_i$,则有:

求$P(i|j)+P(j|i)$,则有:

令$2*b_i=a’_i$,则有:

这就是GloVe模型的损失函数:

其中$f(i,j)$是每对$(i,j)$的权重,求$f(i,j)$的方法是根据语料库的统计信息,按照一个已知规则对每对$(i,j)$计算权重。$f(i,j)$可以控制没有出现过的$(i,j)$令其权重为0,也可以控制出现太过频繁的词对减小其权重。

FastText模型

FastText模型和Word2Vec的CBOW模型很相似,但CBOW使用单词作为单位,且任务是通过上下文词预测中心词,而FastText使用n-gram作为单位,且任务是通过文本所有n-gram预测文本类别。FastText的算法步骤如下:
(1) 以字符级别或单词级别的n-gram作为一个单位,映射到一个向量
(2) 对一段文本的所有n-gram向量求平均
(3) 将平均向量通过哈夫曼softmax过程,得到文档类别输出

FastText在完成文本分类任务的同时,可以学到n-gram特征的向量形式。对于一段文本或一个单词,其向量是文本或单词的所有n-gram向量的平均向量。