[论文笔记] [2013] [ICLR] Efficient estimation of word representations in vector space

本文详细介绍了word2vec的原始论文,重点解析了连续词袋模型(CBOW)和连续跳格模型(Skip-gram)。通过对这两种模型的探讨,展示了如何有效地估计词在向量空间的表示,以及如何通过简化神经网络结构来提高训练速度和词向量的效果。word2vec的成功在于其能够在大量数据上快速训练,从而获得高质量的词向量。
摘要由CSDN通过智能技术生成

这篇论文便是word2vec的原论文,是入门NLP的必读论文之一。1986年Hinton提出了 Distributed Representation 这个概念,2003年 Bengio提出的NNLM首次使用了词向量,而这篇论文提出了两种新的模型结构对以前学习词向量的方式进行改进。

Previous Work

在这篇论文之前,已经有了一些 Distributed Representation 的工作,比如 Bengio 在03年提出的 NNLM(Neural Net Language Model)模型,以及作者之前的工作 RNNLM(Recurrent Neural Net Language Model) 。它们作为神经网络语言模型,同时还能学习词向量,但它们作为早期学习词向量的模型,还是存在一些问题的,比如训练时间长、学习出的词向量效果一般等。

可以简单计算下 NNLM 和 RNNLM模型的计算复杂度。

NNLM模型输入层将词映射成向量,相当于一个 1 × V 1 \times V 1×V 的 one-hot向量乘以一个 V × D V \times D V×D 的向量得到一个 1 × D 1 \times D 1×D 的向量,而假设输入前 N 个词,输出N个词向量拼接在一起的 1 × N D 1 \times ND 1×ND 向量,这一步的计算复杂度为 N × D N \times D N×D;隐藏层是一个以tanh为激活函数的全连接层,此时将前面的向量映射为 1 × H 1 \times H 1×H 的向量,此时的计算复杂度为 N × D × H N \times D \times H N×D×H;输出层是一个全连接层,后面接一个softmax函数来生成概率分布,此时是将隐层向量映射成 1 × V 1 \times V 1×V 的向量,此时的计算复杂度为 H × V H \times V H×V,这样总的计算复杂度为:
Q = N × D + N × D × H + H × V Q = N \times D + N \times D \times H + H \times V Q=N×D+N×D×H+H×V

再来看 RNNLM的计算复杂度。RNNML模型没有 projection层,只有输入、隐层和输出层。隐藏层将当前的词向量和前一时间步的状态向量映射为隐层向量,这里的词向量维度和隐层向量的维度相等,此时的计算复杂度为 H × H + D × H H \times H + D \times H H×H+D×H;输出层为一个全连接层,后面接一个softmax函数来生成概率分布,此时的计算复杂度为 H × V H \times V H×V,这样总的计算复杂度为:
Q = H × H + H × V Q = H \times H + H \times V Q=H×H+H×V

这里不难看出,两个模型的计算复杂度都以输出层主导,而采用softmax函数来计算全量word的概率,这里使得计算效率非常低,因为通常 V V V 都很大。那么一个优化输出层softmax计算的方式是 Hierarchical Softmax,这个技巧最早在 Bengio 05年的工作 [2] 中提出,它的思路是将softmax分解成多个sigmoid,并通过构建出一棵二叉树,

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值