二、词向量和语义

如题所述

第1个回答  2022-06-22
基于统计的词向量目的是,希望通过低维稠密向量来表示词的含义,例如:

在上面三个句子中,比如对于like这个词,在三个句子中,其左右共出现2次I,1次deep 和1次NLP,所以like对应的词向量中,I、deep和NLP维的值分别为2,1,1。

词梳理很多时,矩阵很大,维度很高,需要的存储空间也很大
当词的数目是在不断增长,则词向量的维度也在不断增长
矩阵很稀疏,即词向量很稀疏,会遇到稀疏计算的问题

表示上下文单词
代表单词
表示在特定大小的上下文窗口(context window)内共同出现的次数。这个次数的最小单位是1,但是 GloVe不这么认为: 它根据两个单词在上下文窗口的距离dd.提出了一个衰减函数(decreasing weighting): 用于计算权重,也就是说距离越远的两个单词所占总 计数(total count)的权重越小。

其中, 是我们最终要求解的词向量; 分别是两个 词向量的bias term
那它到底是怎么来的,为什么要使用这个公式?为什么要构造两个词向量 ?
有了上述公式之后,我们可以构建Loss function:

实验中作者设定 ,并且发现 时效果比较好。

GloVe 与word2vec,两个模型都可以根据词汇的 "共现 co-occurrence" 信息,将词汇编码成一个向量。

两者最直观的区别在于,word2vec是 "predictive" 的模型,而GloVe是 "count-based" 的模型。

Glove 和 word2vec 从算法实现的角度来说,它们区别在于loss的计算是不同的:

两个模型在并行化上有一些不同,即GloVe更容易并行化,所以对于较大的训练数据,GloVe更快。
相似回答