没有合适的资源?快使用搜索试试~ 我知道了~
文档详细阐述了word2vec算法的原理,基于Hierarchical softmax和Negative Sampling的模型,以及每种模型对应的两种策略进行了详细拆解
资源推荐
资源详情
资源评论
Word2vec 算法拆解文档
目录
1 算法背景............................................................................................................2
2 word2vec 算法..................................................................................................4
2.1 算法概述..................................................................................................4
2.2 基于 Hierarchical softmax 的 word2vec 模型............................................4
2.2.1 Hierarchical softmax 原理..............................................................4
2.2.2 算法实现过程—CBOW.....................................................................5
2.2.3 算法实现过程—skip-gram...............................................................8
2.3 基于 Negative Sampling 的 word2vec 算法...............................................9
2.3.1 基于 CBOW 模型...........................................................................10
2.3.2 基于 skip-gram 模型......................................................................12
3 word2vec 算法实现.........................................................................................12
4 思考与总结......................................................................................................14
Word2vec 算法拆解
1 算法背景
深度学习在图像、音频等领域有了长足进步,但是在 NLP 领域仍感乏力,
主要是由于语言是人类思维高度抽象的产物。传统的语言模型中单词的表示是
面向字符串,典型的如 one-hot-representation,每个单词对应一个 ID,其表示方
法简单,向量的维度等于词表的大小。然而当词表较大时会增加计算负荷,汉
语的词汇量达到 10 万量级,因而容易造成维数灾难。同时,这种表示方法容易
造成“词汇鸿沟”,即词汇与词汇之间是相互孤立的,难以计算词汇之间的相似
度。因而在此基础上 Hinton 提出了 Distributed representation,通常称为“word
representation”,即词向量。一般而言,词向量的维度为 50—100,避免了维数
灾难,同时可以通过计算向量之间距离和夹角来计算单词之间的相似度。
训练词向量的过程就是建立语言模型。然而,大多数语言模型的出发点是
判断一句话是否是自然语言,即正常人说出的话,词向量是训练过程中产生的
副产品。语言模型包括两类,一是传统的统计语言模型,二是神经网络语言模
型。统计语言模型,包括上下文无关模型、N-gram 模型、N-pos 模型等,其中
以 N-gram 模型最为常用。统计语言模型是基于语言的概率分布函数,直接计算
出语言为自然语言的概率,常用于模糊识别和评估机器语言是否合理等方面,
但是无法产生词向量。神经网络语言模型则是基于浮点向量,将随机化的词向
量作为输入,在计算单词与上下文构成自然语言概率的过程中训练词向量。将
神经网络引入到语言模型最早由百度徐伟提出。NNLM 包括三层网络,输入层、
隐藏层和输出层。输入层为初始化的词向量,隐藏层就如同普通的神经网络,
输出层为未归一化的 log 概率,最后使用 softmax 将概率归一化。然而隐藏层与
输出层之间存在大量的矩阵运算。word2vec 算法有效地解决了上诉问题。它不
仅能够有效地生成词向量,同时也可以减少运算量。下文将对其进行详细介绍。
剩余14页未读,继续阅读
资源评论
刘刚2014
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功