词向量技术是将词转化成为稠密向量,并且对于相似的词,其对应的词向量也相近。
词向量效果的影响因素
(1)增加词向量的维度能够增加词向量效果。
(2)在同一领域语料下,语料越多越好,增加不相关领域语料将会降低词向量效果。
(3)大的上下文窗口学到的词向量更反映主题信息,而小的上下文窗口学到的词向量更反映词的功能和上下文语义信息。
(4)语料的纯度越高(杂质少),词向量效果越好。因此,在利用语料训练词向量时,进行预处理能够提高词向量的效果。
词向量的歧义问题
例如,词”苹果”可以指代水果也可以指代苹果手机。在对“苹果”
进行训练时,将会对其对应的词向量向两个方向拉伸,进而造成词向量歧义。
词向量的歧义将会对词向量的应用效果产生影响。例如,对苹果进行序列标注,指代手机的苹果应打上品牌词标签,而指代水果的苹果对应打上产品词标签。对同一个词打上多种不同的标签而采用同一个词向量,将降低词性标注的效果。
通常解决这一问题是对词向量进行聚类,以多个向量来表示同一个词。
词向量其它
还可以利用NNLM方法,将我们感兴趣的其它实体生成向量。例如,我曾利用word2vec将每个sku(商品id)embedding成向量。我们将每个用户某个月购买的母婴类商品按序进行排列做为一条训练样本,例如:
其中,第一列user_id +’#’+用户婴儿年龄。其余列为用户购买的sku集合,并且购买的sku按购买时间顺序排列。
我们将训练样本输入到word2vec中进行训练,得到每个sku的向量表示。通过这种训练样本的构建方式,使用户在相同年龄段(婴儿)购买的商品相似。例如,在我们的向量中,如下两个商品相似:
我们利用sku向量做为特征,训练模型预测用户年龄,准确率达90%。
总结
深度学习模型具有比传统模型更强的特征抽取能力。在自然语言处理中,传统统计特征包含的信息量过少,这也一直限制着深度学习在自然语言处理中的应用。词向量由于包含了更丰富的信息,使得深度学习能够处理绝大多数自然语言处理应用。
词向量虽然为深度学习在自然语言处理领域带来了希望,但目前词向量仍有许多不完善的地方,例如:
虽然知道词向量比统计特征包含更多信息,但并不知道词向量包含了哪些信息(如每维特征代表的意义)。词向量的训练采用无监督方式,不能很好的利用先验信息。词向量是神经网络语言模型的副产物,其损失函数不是由具体应用构建。因此,不是词向量训练的越好,应用效果就越好。随着词向量研究的深入,这些问题都将会得到解决。深度学习在自然语言处理领域的前景将会更加光明。