首页 > 代码库 > Word2vec 浅谈

Word2vec 浅谈

      

      本人还没有做过自然语言处理,但是基于Deep Learning 的关注,自然也了解了一些Word2vec的强大。

      Word2vec 是google 在2013年提供的一款将词表征为实数值向量的高效工具。而Word2vec输出的词向量可用于做NLP 相关的工作,比如聚类、找同义词、词性分析等。Word2vec 大受欢迎的一个原因是其高效性, Tomas Mikolov  在[1] 中指出一个优化的单机版本一天可以训练上千亿词(汗!)。

       关于词的概念,这里的词可以并不一定真的就是单词,完全可以是具有一定意义的单元块,比如国外音乐网站就用word2vec来训练用户的听歌记录,这里的单元块就是歌曲编号,如果用户对音乐类型的喜好是一致的,那么训练后就能找到与某个歌曲相似的歌曲,这样就能给用户进行推荐了,相信类似这样的例子还有很多。(关于这点思考:词可以使一个标号或者理解为一个类的对象!)

先上图:


     

个人感觉这个讲解的很详细~

 

注意:1, 输入为一个窗口的待预测上下文

2. 输入层Wj 是维度为K的列向量,(syn0 编码?)如有 N个输入词,则输入大小为k*N 

3. 隐层 Tk 是输入层Wj 的加权,隐层大小为N*k

4. 输出层的叶节点是语料里的词,如红楼梦分词后的独立词

5. 叶节点有唯一的编码,从根节点开始算第一层(二叉树构建算法 Huffman树)


理解很浅显~


以后持续更新~


参考:

[1]Distributed Representations of Words and Phrases and their Compositionality  (经典论文)

[2] Felven----再谈word2vec   (Felven word2vec 系列很实践)

[3] Felven----关键词聚类

[4] Felven-----红楼梦人物关系

[5] word2vec傻瓜剖析     (个人觉得还是先看看Felven的实验后,再看这个比较有感觉点!)

[6] 有道的word2vec 讲解  (非常详细!几个DL大牛的关系图很有意思!)

[7] word2vec 代码讲解,英文的!

 



Word2vec 浅谈