The Ultimate Guide to Word Embeddings
自然语言处理与词嵌入 - 黄钢的部落格|Canary Blog

one-hot 表征单词的方法最大的缺点就是每个单词都是独立的、正交的,无法知道不同单词之间的相似程度。例如 apple 和 orange 都是水果,词性相近,但是单从 one-hot 编码上来看,内积为零,无法知道二者的相似性。在 NLP 中,我们更希望能掌握不同单词之间的相似程度

词嵌入(Word Embedding)是 NLP 中语言模型与表征学习技术的统称,概念上而言,它是指把一个维数为所有词的数量的高维空间(one-hot形式表示的词)「嵌入」到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。如上图中,各列分别组成的向量是词嵌入后获得的第一行中几个词的词向量的一部分。这些向量中的值,可代表该词与第一列中几个词的相关程度。
特征向量的长度依情况而定,特征元素越多则对单词表征得越全面。这种特征表征的优点是根据特征向量能清晰知道不同单词之间的相似程度,例如 apple 和 orange 之间的相似度较高,很可能属于同一类别。这种单词「类别」化的方式,大大提高了有限词汇量的泛化能力。这种特征化单词的操作被称为 Word Embeddings,即单词嵌入。

每个单词都由高维特征向量表征,为了可视化不同单词之间的相似性,可以使用降维操作,常用的一种可视化算法是 t-SNE 算法。在通过复杂而非线性的方法映射到二维空间后,每个词会根据语义和相关程度聚在一起。例如 t-SNE 算法,将 300D 降到 2D 平面上。进而对词向量进行可视化,很明显我们可以看出对于相似的词总是聚集在一块儿
可以看出,特征化表示方法的优点是可以减少训练样本的数目,前提是对海量单词建立词嵌入(word embedding)。这样,即使训练样本不够多,测试时遇到陌生单词,例如「durian cultivator」,根据之前海量词汇特征向量就判断出「durian」也是一种水果,与「apple」类似,而「cultivator」与「farmer」也很相似。从而得到与「durian cultivator」对应的应该也是一个人名。这种做法将单词用不同的特征来表示,即使是训练样本中没有的单词,也可以根据词嵌入的结果得到与其词性相近的单词,从而得到与该单词相近的结果,有效减少了训练样本的数量。
词嵌入可用于类比推理,帮助我们找到不同单词之间的相似类别关系
当应用算法来学习词嵌入时,实际上是学习一个嵌入矩阵(Embedding Matrix)[降维矩阵]

神经概率语言模型(Neural Probabilistic Language Model)构建了一个能够通过上下文来预测未知词的神经网络,在利用梯度下降算法训练这个语言模型的同时学习词嵌入