nlp自然语言处理入门 word2vec词向量怎么来的?
word2vec词向量怎么来的?
2013年,谷歌推出了一款开源的word矢量计算工具word2vec,引起了业界和学术界的关注。首先,word2vec可以在数百万个词典和数亿个数据集上进行有效的训练;其次,wordembedding工具的训练结果可以度量量词之间的相似度。随着深度学习在自然语言处理中的普及,许多人错误地认为word2vec是一种深度学习算法。实际上,word2vec算法的背后是一个浅层的神经网络。需要强调的另一点是,word2vec是一个用于计算worddirector的开源工具。当我们谈到word2vec算法或模型时,实际上是指用于计算wordvector的cbow模型和skip-gram模型。很多人认为word2vec是指一种算法或模型,这也是一种谬误。接下来,本文将从统计语言模型入手,详细介绍word2vec工具背后算法模型的起源和发展。本质上,word2vec是一个矩阵分解模型。简言之,矩阵描述了每个单词和上下文中的一组单词之间的相关性。对矩阵进行分解,只取隐藏空间中每个单词的向量。
所以word2vec适用于一个数据序列,该序列的本地数据之间有很强的相关性。典型的是文本的顺序,相邻的词是密切相关的,甚至一个词的上下文都可以大致预测中间的词是什么。所学习的词向量表示词的语义,可用于分类、聚类和相似度计算。另外,word2vec的分层分类器或抽样方法实际上对流行项做了大量的惩罚,因此不会像一般的矩阵分解那样,语义相似的最后一个词就是流行词,这是word2vec的一个很好的特点。
对于短文本分类,我们直接在文档中加入所有的词向量作为文本特征来训练分类器,效果也很好。该方法也应用于word2vec的训练过程中。另外,如果改用RBF核支持向量机等非线性分类器,分类精度会更高,也符合预期。
其他序列的数据也可以这样做。我记得去年关于KDD的文章deepwalk,使用社交网络上的随机游走来生成节点序列,然后使用word2vec来训练每个节点对应的向量。但我用这种方法在QQ社交网络上做了一些实验,发现效果很不理想,这可能与QQ社交网络的复杂性有关。
我非常满意的一个应用程序是将word2vec应用到用户的应用程序下载序列。根据用户的app下载序列,将app视为一个词,也可以形成这样的序列数据,然后训练每个app对应的向量。利用这个向量来计算应用之间的相似度,效果非常好。它可以聚合真正与内容相关的应用程序,同事可以避免受流行应用程序的影响。类似的场景应该有很多,而且应用也很广泛,比如推荐系统和广告系统。
word2vec有什么用?
:将一个热向量转换为低维单词向量的层(虽然我们不称它为层,但我认为它是一个层),因为word2vec的输入是一个热向量。
一个hot可以看作是1*n的矩阵(n是总字数)。将这个系数矩阵(n*m,m是word2vec的字向量维数)相乘,我们可以得到一个1*m的向量,它是对应于这个字的字向量。
因此对于n*m矩阵,每行对应于每个单词的单词向量。
下一步是进入神经网络,然后通过训练不断更新矩阵。
word2vec怎么生成词向量python?
影响因素很多。例如,我需要花60个小时来训练544m商品标题语料库。
但是,在版本之后,只需要20分钟(需要安装Python)就可以在文本分类之前训练word2vec的单词向量
nlp自然语言处理入门 word2vec怎么用 word2vec算法
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。