1. 词向量模型的核心思想
文本的词向量表示又叫文本的分布式表示,它源自于语言学家的语境理论。语言学家Firth认为:“语言是人类的生活方式,词语的含义根植于人类赖以生存的社会活动中”;也就是说,词语的含义存在于语境中,由它与其上下文单词的搭配关系体现,这就是词向量分布式假设的核心思想[1-2]。
2. 词向量模型
根据该思想,词向量模型就是学习单词间的搭配关系,这容易定义成三类任务:
- 给定上下文词,预测其中心词
- 给定中心词,预测其上下文词
- 给定一组单词,判断它们是否搭配
前两种定义方式更早被想到,它们成就了经典算法Word2Vec中的CBOW和Skip-gram模型[3]。实践中人们发现,在很多情况下Skip-gram模型的词向量训练效果会好于CBOW模型,所以目前Skip-gram模型是Word2Vec算法的主流实现方案。最后一种定义方式,推出了目前Skip-gram模型的主流简化方法,结合负采样实现Skip-gram模型,它在极大减少计算量的同时并未明显牺牲训练效果。
关于Skip-gram模型的具体实现细节,敬请详见作者文章:
3. 词向量分类
我们都知道单词存在一词多义的现象,对不同含义的同一单词的不同表示思路,自然将词向量模型分成两类。一类是静态词向量模型,它将不同含义的同一个单词编码成相同的词向量;另一类是动态词向量模型,它将不同含义的同一个单词编码成不同的词向量。所以静态词向量模型时一词一码,相对简单但训练简单、实现成本低,而动态词向量模型是一词一义一码,表示精准但也需要更大的训练语料库且模型复杂。
3.1 静态词向量模型
3.1.1 Word2Vec
SkipGram是目前主流的静态词向量模型,它训练发生在局部,具有训练效率高、且善于捕捉局部文本特征的优点;但也有不能从全局的视角掌握语料库的局限。
3.1.2 矩阵分解
矩阵分解(SVD)是另一种静态词向量模型,作为全局方法,它的学习过程包含了全局的文本信息;但每次语料库中某些文本发生改变都要需要重新训练模型,效率很低。
3.1.3 Glove
Glove是一种融合矩阵分解(SVD)和SkipGram模型优点的静态词向量模型,它同时具有二者的优点,在实践中也有一定量使用。
3.1.4 高斯嵌入
此外,针对极度不均衡数据集中罕见词训练结果可信度不高的问题,提出高斯嵌入(Gaussian Embedding)静态词向量模型,它既可以输出一个单词的向量表示,又可以给出这个向量表示的置信度。
参考文献:
[1] HARRIS Z S J W. Distributional structure [J]. 1954, 10(2-3): 146-62.
[2] FIRTH J R. Papers in linguistics, 1934-1951 [M]. Papers in linguistics, 1934-1951, 1957.
[3] MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space [J]. 2013.