python深度学习进阶(自然语言处理)—word2vec

python深度学习进阶(自然语言处理)—word2vec

 

摘要

  • 基于推理的方法以预测为目标,同时获得了作为副产物的单词的分布式表示。
  • word2vec 是基于推理的方法,由简单的 2 层神经网络构成。
  • word2vec 有 skip-gram 和 CBOW 模型。
  • CBOW 模型从多个单词(上下文)预测 1 个单词(目标词)。
  • skip-gram 模型反过来从 1 个单词(目标词)预测多个单词(上下文)。
  • 由于 word2vec 可以进行权重的增量学习,所以能够高效地更新或添加单词的分布式表示。

1. 基于推理的方法和神经网络

1.1 基于计数的方法的问题

    基于计数的方法获得单词的分布式表示:使用整个语料库的统计数据(共现矩阵和 PPMI 等),通过一次处理(SVD 等)获得单词的分布式表示。

    基于推理的方法获得单词的分布式表示:使用神经网络,通常在 mini-batch 数据上进行学习。

对于一个 n * n 的矩阵,SVD 的复杂度是 O(n^{3}),这表示计算量与 n 的立方成比例增长。如此大的计算成本,即便是超级计算机也无法胜任。实际上,利用近似方法和稀疏矩阵的性质,可以在一定程度上提高处理速度,但还是需要大量的计算资源和时间。

在现实世界中,语料库处理的单词数量非常大。比如,英文的词汇量多达 100w+。如此之大的词汇量,如果使用基于计数的方法就需要生成一个 100w * 100w 的庞大矩阵,对如此庞大的矩阵执行 SVD 显然是不现实的。

    基于计数的方法和基于推理的方法的比较:

图 3-1    基于计数的方法和基于推理的方法的比较

(1)基于计数的方法一次性处理全部学习数据;基于推理的方法使用部分学习数据逐步学习。

(2)神经网络的学习可以使用多台机器、多个 GPU 并行执行,从而加速整个学习过程。

1.2 基于推理的方法的概要

    基于推理的方法的主要操作是 “推理”。如图 3-2 所示,当给出周围的单词(上下文)时,预测 “?” 处会出现什么单词,这就是推理。

图 3-2    基于两边的单词(上下文),预测 “?” 处出现什么单词

    解开图 3-2 中的推理问题并学习规律,就是基于推理的方法的主要任务。通过反复求解这些推理问题,可以学习到单词的出现模式。从 “模式视角” 出发,这个推理问题如图 3-3 所示。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值