要将自然语言交给机器学习算法来处理,通常需要首先将语言数学化,词向量就是用来将语言中的词进行数学化的一种方式,一种最简单的词向量方式是one-hotrepresentation,就是用一个很长的向量来表示一个词,向量的长度为词典的大小,向量的分量只有一个1,其他全为0,1的位置对应该词在词典中的位置。但这种词向量表示有两个缺点:容易受维数灾难的困扰,尤其是将其用于DeepLearning的一些算法时;不能很好地刻画词与词之间的相似性(术语好像叫做“词汇鸿沟”)。另一种就是你提到的DistributedRepresentation这种表示,它最早是Hinton于1986年提出的,可以克服one-hotrepresentation的上述缺点。其基本想法是:通过训练将某种语言中的每一个词映射成一个固定长度的短向量(当然这里的“短”是相对于one-hotrepresentation的“长”而言的),将所有这些向量放在一起形成一个词向量空间,而每一向量则可视为该空间中的一个点,在这个空间上引入“距离”,则可以根据词之间的距离来判断它们之间的(词法、语义上的)相似性了。为更好地理解上述思想,我们来举一个通俗的例子:假设在二维平面上分布有N个不同的点,给定其中的某个点,现在想在平面上找到与这个点最相近的一个点,我们是怎么做的呢,首先,建立一个直角坐标系,基于该坐标系,其上的每个点就唯一地对应一个坐标(x,y);接着引入欧氏距离;最后分别计算这个词与其他N-1个词之间的距离,对应最小距离值的那个词便是我们要找的词了。上面的例子中,坐标(x,y)的地位就相当于词向量,它用来将平面上一个点的位置在数学上作量化。坐标系建立好以后,要得到某个点的坐标是很容易的。然而,在NLP任务中,要得到词向量就复杂得多了,而且词向量并不唯一,其质量依赖于训练语料、训练算法和词向量长度等因素。一种生成词向量的途径是利用神经网络算法,当然,词向量通常和语言模型捆绑在一起,即训练完后两者同时得到。用神经网络来训练语言模型的思想最早由百度IDL(深度学习研究院)的徐伟提出。这方面最经典的文章要数Bengio于2003年发表在JMLR上的《ANeuralProbabilisticLanguageModel》,其后有一系列相关的研究工作,其中包括谷歌TomasMikolov团队的word2vec。