深度学习笔记之自然语言处理(word2vec)

本文介绍了自然语言处理的应用,包括拼写检查、文本挖掘、机器翻译等,并深入探讨了语言模型的概念,如n-gram模型和解决数据稀疏性的方法。接着,文章讲解了word2vec的两种基础模型——CBOW和skip-gram,以及负采样的作用和实现方式,为理解深度学习在自然语言处理中的应用提供了基础。
摘要由CSDN通过智能技术生成

1.1 自然语言处理的应用

拼写检查,关键词搜索
文本挖掘
文本分类
机器翻译
客服系统
复杂对话系统

1.2 语言模型

举个例子:
这里有一句话:“我今天下午打篮球。”

这里写图片描述

p(S)是称为语言模型,即用来计算一个句子概率的模型。
如下的语言模型,会造成数据过于稀疏,参数空间太大

这里写图片描述

用下述的方式可以解决上面的问题。如下:
假设下一个词的出现依赖于它前面的一个词

这里写图片描述

假设下一个词的出现依赖于它前面的两个词

这里写图片描述

我们以下面的一个简单的词库表来讲解。如下所示是一个词库表。

这里写图片描述

下方的数字是每一个词在词库中 出现的次数。
将该词频转化为n*n的矩阵,其中n-gram=1。

这里写图片描述

我们可以从该矩阵得知单词 “i”后面接“want”的次数为827次,“i”后面接“eat”的次数为9次,以此类推。
然后将上述矩阵转化为概率转移矩阵。如下所示:

这里写图片描述

如下即为“I want chinese food”概率计算公式:

这里写图片描述

下图是模型参数数量和n-gram参数个数的关系:

这里写图片描述

1.3 两个基础模型(CBOW and skip-gram)

模型结构如下:

这里写图片描述

我们首先看CBOW模型,它是根据上下文来预测当前词,而Skip-gram模型则是根据当前词,预测上下文。
CBOW是Continuous Bag-of-Words Model的缩写,是一种根据上下文的词语预测当前词语的概率模型。将其转化为极大似然估计,如下:

L=wclogp(w|Context(w))

我们看其训练步骤,如下所示:

这里写图片描述

输入层是上下文的词语的词向量,在训练CBOW模型,词向量只是个副产品,确切来说,是CBOW模型的一个参数。训练开始的时候,词向量是个随机值,随着训练的进行不断被更新。
投影层对其求和,所谓求和就是简单的向量加法。
输出层输出最可能的w。由于语料库中词汇向量是固定的,所以上述问题可以看成是一个多分类问题,给定特征,从多个之中挑一个。

  1. pw 从根节点w对应叶子节点的路径
  2. lw 路径中节点的个数
  3. pw1,pw2,pw3...pwn 路径 pw 中的各个节点
  4. dw1,dw2,...dwn{0,1} 词w的编码, dwj 表示路径 pw 第j个节点对应的编码(根节点无编码)
  5. θw1,θw2,...,θwlw1 pw 路径 pw 中非叶节点对应的参数向量

1.4 负采样

任何采样算法应该保证频次越高的样本越容易被采样出来。基本思路是对于长度为1的线段,根据词语的词频将其公平的分配给每个词语:

len(w)=counter(w)uDcounter(u)

counter就是w的词频。
于是我们将该线段公平的分配了:

这里写图片描述

接下来,我们只要生成0-1之间的随机数,看看落在哪个区间,就能采样到该区间对应的单词了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值