自然语言处理--Word Embedding(词嵌入)--Word2Vec(词向量)算法理论

目录

一 one-hot编码

1 概念

2 缺点

二 Word2Vec--Neural Network(神经网络)

1 基于神经网络的CBOW(Continuous Bag of Words)

1)模型介绍

2)模型细节

3)Word2Vec

2 基于神经网络的Skip-Gram

1)模型介绍

2)模型细节

3)Word2Vec

3 提高基于神经网络的CBOW和Skip Gram模型训练速度

1)将常见的分词组合(或者短语等)作为一个分词

2)将高频的特定分词进行抽样,以减少训练样本数量

3)负采样(Negtive Sampling)

4 基于神经网络的CBOW和Skip Gram的优缺点

三 Wrod2Vec--Hierarchical(层级)

1 哈夫曼树(Huffman Tree)

1)算法原理与流程

2)优势

2 基于Hierarchical Softmax(层级softmax)的CBOW和Skip Gram

1)Hierarchical Softmax概述

3)基于Hierarchical的CBOW

4)基于Hierarchical的Skip Gram

5)基于Hierarchical的CBOW和Skip Gram的优缺点

四 Word2Vec--Negative Sampling(负采样)

1 Negative Sampling(负采样)

2 基于Negative Sampling的CBOW和Skip Gram

1)Negative Sampling概述

3)基于Negative Sampling的CBOW

4)基于Negative Sampling的Skip Gram


一 one-hot编码

1 概念

one-hot编码主要采用N位状态寄存器来对N位状态编码,并且仅有一个状态编码为1,其他状态编码为0

注意:本质上也是Word Embedding

2 缺点

尽管简单,但是当分词数量过于庞大的时候(如百万级别),会带来维度灾难

二 Word2Vec--Neural Network(神经网络)

1 基于神经网络的CBOW(Continuous Bag of Words)

1)模型介绍

  • CBOW是一个单隐层的神经网络模型,仅仅只是为了学习隐层的权重
  • CBOW是通过特定分词对应上下文分词的one-hot编码预测特定分词的one-hot编码,其中每一个分词都需要作为特定分词
  • Skip Gram的训练样本是采用单词组表示(window size表示窗口大小,即特定分词前后各取多少个分词)

2)模型细节

第一点:输入层

假设上下文分词数为C,各个分词维度为V,使用one-hot编码表示

第二点:输入层到隐层的连接权重矩阵

W是权重共享的权重矩阵,其维度为(V,N)

注意:一般要求N< V(Word2Vec属于降维操作)

第三点:隐层

h=\frac{1}{C}\sum_{i=1}^{C}x_{ik}*W\Rightarrow h \subset C^{N,1}

第四点:隐层到输出层的连接权重矩阵

W^{'}是权重共享的权重矩阵,其维度为(N,V)

第五点:输出层

y=softmax(h^{T}*W^{'})

第六点:损失函数

真实标签采用该词的one-hot编码表示,使用交叉熵损失函数

3)Word2Vec

X=X*W,X\subset C^{V,V},W\subset C^{V,N}

注意:X是所有的分词组成的矩阵(字典/词汇表)

2 基于神经网络的Skip-Gram

1)模型介绍

  • Skip Gram是一个单隐层的神经网络模型,仅仅只是为了学习隐层的权重
  • Skip Gram是通过特定分词的one-hot编码预测上下文分词的one-hot编码,其中每一个分词都需要作为特定分词
  • Skip Gram的训练样本是采用单词对表示(window size表示窗口大小,即特定分词前后各取多少个分词)

2)模型细节

第一点:输入层

假设特定分词数维度为V,使用one-hot编码表示

第二点:输入层到隐层的连接权重矩阵

W是权重共享的权重矩阵,其维度为(V,N)

注意:一般要求N< V(Word2Vec属于降维操作)

第三点:隐层

h=x_{k}*W\Rightarrow h \subset C^{N,1}

第四点:隐层到输出层的连接权重矩阵

W^{'}是权重矩阵(权重共享),其维度为(N,V)

第五点:输出层

y=softmax(h^{T}*W^{'})

第六点:损失函数

真实标签采用该词的one-hot编码表示,使用交叉熵损失函数

3)Word2Vec

X=X*W,X\subset C^{V,V},W\subset C^{V,N}

注意:X是所有的分词组成的矩阵(字典/词汇表)

3 提高基于神经网络的CBOW和Skip Gram模型训练速度

1)将常见的分词组合(或者短语等)作为一个分词

比如:机构名/组织名/地名/成语等等

2)将高频的特定分词进行抽样,以减少训练样本数量

第一点:基本思想

训练原始文本中,每遇到一个特定分词,都有一定概率被删除,被删除的概率与词频有关

第二点:公式(特定分词被删除概率)

p(w_{i})=(\sqrt{\frac{z(w_{i})}{0.001}}+1)*\frac{0.001}{z(w_{i})}

  • w_{i}:表示特定分词
  • z(w_{i}):表示特定分词在整个语料库中出现的频率
  • p(w_{i}):表示特定分词被删除的概率

3)负采样(Negtive Sampling)

第一点:基本思想

每训练一个样本,仅仅更新一小部分神经元权重,而不是更新全部神经元权重,从而减少SGD中的计算量

第二点:原理

  • 第一步:确定Negative words

注意:小规模语料库,Negative w

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值