Word Embedding入门

本文深入探讨了词向量(wordvector)与词嵌入(wordembedding)的概念,介绍了词向量的两种类型:one-hotrepresentation和distributedrepresentation。重点讲解了通过神经网络训练语言模型获取词向量的方法,包括NNLM、RNNLM、C&W模型、CBOW和Skip-gram模型。同时,讨论了word2vec如何改进传统神经网络语言模型,以及其背后的数学原理。

基本概念梳理

词向量的名字形式:

  • 词向量(word vector),图像和音频等信号都可以用一个矩阵或者向量表示,所以我们也希望用一个数学方法来表达单词,这样可以方便的用于各种后续计算,这就是词向量
  • 词嵌入( word embedding)

词向量有两种类型:

  • one-hot representation
  • distributed representation

通过神经网络训练语言模型可以得到词向量。
神经网络语言模型:

  • Neural Network Language Model ,NNLM
  • Recurrent Neural Network based Language Model,RNNLM
  • Collobert 和 Weston 在2008 年提出的 C&W 模型
  • Mikolov 等人提出了 CBOW( Continuous Bagof-Words)和 Skip-gram 模型

怎样实现/训练上面的神经网络语言模型:

  • CBOW 和 Skip-gram :word2vec(在传统神经网络基础上进行了改进)
  • C&W :SENNA

参考
word2vec就是用一个一层的神经网络(CBOW的本质)把one-hot形式的词向量映射为分布式形式的词向量,为了加快训练速度,用了Hierarchical softmax,negative sampling 等trick。

分布式词向量并不是word2vec的作者发明的,他只是提出了一种更快更好的方式来训练也就是:连续词袋模型Continous Bag of Words Model(CBOW)和Skip-Gram Model。这两种都是训练词向量的方法,可以选择其一,不过据论文说CBOW要更快一些(1天vs.3天的区别)。统计语言模型statistical language model就是给你几个词,在这几个词出现的前提下来计算某个词出现的(事后)概率。CBOW也是统计语言模型的一种,顾名思义就是根据某个词前面的C个词或者前后C个连续的词,来计算某个词出现的概率。Skip-Gram Model相反,是根据某个词,然后分别计算它前后出现某几个词的各个概率。

对CBOW和Skip-gram模型的训练中,word2vec采用distributed representation表示的词向量。

word2vec的语言模型改进传统的神经网络有两种方法:

  • 基于Hierarchical Softmax
  • 基于Negative Sampling

入门参考文章

学习线路

  1. 阅读Mikolov 两篇原论文:
    『Efficient estimation of word representations in vector space』

    很好的一篇论文阅读心得

    『Distributed Representations of Sentences and Documents』

    Distributed论文精度分享

    结合代码的word2vec的两篇论文总结
    理解word2vec原理

  2. Xin Rong 的论文:『word2vec Parameter Learning Explained』

  3. 来斯惟的博士论文『基于神经网络的词和文档语义向量表示方法研究』

  4. 深度学习word2vec笔记之基础篇
    深度学习word2vec笔记之算法篇

这里主要参考了知乎上的这篇文章给出的阅读材料建议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值