6.2 词向量嵌入
如何将词表示为向量:最简单的方式是将词汇表里的单词进行独热编码。但是这种方法有两个问题:1)对于实际应用,这种方法会导致向量的维数很高2)独热编码无法刻画不同词语之间的语义关联
根据共生关系(co-occurrence)表示单词。这种方法的基本思路是,遍历一个大规模文本语料库,针对每个单词,统计其在一定距离范围(例如5)内的周围词汇。然后,用附近词汇的规范化数量表示每个词语。这种方法背后的思想是在类似语境中使用的词语在语义上也是相似的。这样,便可运用PCA或类似的方法对出现向量(occurrence vector)降维,从而得到更稠密的表示。虽然这种方法具有很好的性能,但它要求我们追踪所有词汇的共生矩阵,即一个宽度和高度均为词汇表长度的方阵。
在2013年,Mikolov等提出了一种依据上下文计算词表示的实用有效的方法,相应的文章是Mikolov、Tomas等的《Efficient estimation of word representations in vector space》(arXiv preprint arXiv:1301.3781(2013))。他们的skip-gram模型从随机表示开始,并拥有一个试图依据当前词语预测一个上下文词语的简单分类器。误差同时通过分类器权值和词的表示进行传播,我们需要对这两者进行调整以减少预测误差。研究发现,在大规模语料库上训练该模型可表示向量逼近压缩后的共生向量。下面利用TensorFlow实现skip-gram模型。