Word2Vec原理概述
word2vec
参考pdf
0. 预备知识
需要了解的预备知识包括sigmoid激活函数即其导数形式;逻辑回归处理二分类问题;Huffman树编码
1. 词向量
目的是将自然语言数学化。最简单的一种词向量是one-hot向量,缺点是容易受到维数灾难的困扰,且不适用于深度学习,无法刻画词之间的相似性。
由此引入Distributed Representation,通过训练将某种语言的每一个词映射成一个固定长度的向量,所有的词向量构成一个向量空间,在这个向量空间中引入“距离”,反应词之间的相似性。
例如
2. 基于Hierarchical Softmax的模型
word2vec有两种重要的模型:CBOW模型和Skip-gram模型。
两个模型都包含三层:输入层、投影层和输出层。
- CBOW模型是在已知wtw_{t}wt的上下文wt−2,wt−1,wt+1,wt+2w_{t-2}, w_{t-1}, w_{t+1}, w_{t+2}wt−2,wt−1,wt+1,wt+2的前提下,预测当前词wtw_{t}wt。
- Skip-gram模型是在已知当前单词的情况下,预测上下文
2.1 CBOW 模型
- 输入层:包括上文c个词向量,下文c个词向量
- 投影层:将输入层2c个向量做累加,传入输出层
- 输出层:构造Huffman树,以对数似然函数作为目标函数值。
对于某个词w, 从根节点到w所在叶子节点构成唯一一条0,1路径。例如4位的Huffman编码,意味着经过了4个分支,可以认为进行了4次二分类。相应的概率就是p(djw∣xw,θj−1w)p(d_{j}^{w}|x_{w}, \theta^{w}_{j-1})p(djw∣xw,θj−1w),即在当前输入和当前非叶子结点权重的条件下,被分为d类的概率。用这个对数似然函数进行梯度上升(追求最大值)能达到更新参数(词向量、非叶子结点权重)。
CBOW伪代码
输入:(Context(x), w)
2.2 Skip-gram
- 输入层:只包含当前词w的词向量
- 投影层:恒等映射,多余的
- 输出层:Huffman树
Skip-gram伪代码
3. 基于Negetive Sampling的模型
不在利用Huffman树,而是采用随即负采样,可替代Hierarchical Softmax。
3.1 CBOW模型
已知上下文Context(w)需要预测w,则w就是一个正样本,其他词就是负样本。目标函数p(u∣Context(w))=[σ(XwTθu)]Lw(u)⋅[1−σ(XwTθu)]1−Lw(u)p(u|Context(w)) = [\sigma(X^{T}_{w}\theta^{u})]^{L^{w}(u)} · [1-\sigma(X^{T}_{w}\theta^{u})]^{1-L^{w}(u)}p(u∣Context(w))=[σ(XwTθu)]Lw(u)⋅[1−σ(XwTθu)]1−Lw(u)。
伪代码
3.2 Skip-gram模型
标签
目标函数
Skip-gram伪代码
Word2Vec原理概述相关推荐
- [深度学习概念]·word2vec原理讲解Negative Sampling的模型概述
word2vec原理讲解Negative Sampling的模型概述 目录 1. Hierarchical Softmax的缺点与改进 2. 基于Negative Sampling的模型概述 3. 基 ...
- word2vec原理(二):基于Hierarchical Softmax的模型
在word2vec原理(一) CBOW与Skip-Gram模型基础中,说到了使用神经网络的方法来得到词向量语言模型的原理和一些问题,现在开始关注word2vec的语言模型如何改进传统的神经网络的方法. ...
- word2vec原理
首先声明,本文源自于刘建平老师的博客,原文写的非常好,在此结合鄙人的项目经验和大家分享. word2vec原理(一) CBOW与Skip-Gram模型基础 一:词向量基础 word2vec是谷歌于20 ...
- TF-IDF和word2vec原理
@(NLP) 文本挖掘 文章目录 文本挖掘 1. 分词的基本原理 2. N元模型 3. 维特比算法与分词 4. 常用分词工具 (二)文本挖掘预处理之向量化与Hash Trick 1. 词袋模型 2. ...
- word2vec原理及其Hierarchical Softmax优化
文章目录 一.什么是word2vec? 1.1 词嵌入(word embedding)介绍 1.2 word2vec概述 二.CBOW模型 2.1 Context滑动窗口 2.2 模型结构 三.Hie ...
- nvGRAPH原理概述
nvGRAPH原理概述 nvGRAPH的API参考分析. 简介 数据分析是高性能计算的不断增长的应用.许多高级数据分析问题可以称为图形问题.反过来,当今许多常见的图形问题也可以称为稀疏线性代数.这是N ...
- Vue底层实现原理概述
Vue是一个典型的MVVM框架,模型(Model)只是普通的JavaScript对象,修改它则视图(View)会自动更新.这种设计让状态管理变得非常简单而直观.那么Vue是如何把模型和视图建立起关联的 ...
- word2vec原理之CBOW与Skip-Gram模型基础
word2vec是google在2013年推出的一个NLP工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系.虽然源码是开源的,但是谷歌的代码库国内无法 ...
- word2vec原理(一): 词向量、CBOW与Skip-Gram模型基础
word2vec原理(一): CBOW与Skip-Gram模型基础 word2vec原理(二):基于Hierarchical Softmax的模型 word2vec原理(三): 基于Negative ...
最新文章
- 一次性搞定权限树遍历(通用解决方案)
- oracle实现分段,用Oracle分段空间管理功能改进数据库性能
- python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)...
- Exchange server 2013(十四)WSUS部署及组策略设置(2)
- ansible常用基础命令整合
- CVPR2019| 亚洲微软研究院、阿德莱德论文:结构知识蒸馏应用语义分割
- vue_过滤器_note
- C#下实现的K-Means优化[1]-「离群点检测」
- 引入react文件报错_react.js引入router文件后报错
- MAVEN利用Profile构建不同环境的部署包
- python中expandtabs()函数的用法
- jQuery学习教程 基础篇 归档
- wxpython wx listctrl_wxPython实现指定单元格可编辑的ListCtrl | 学步园
- 2017年上半年软件设计师考试真题及答案(上午+下午)免费
- php ci 优化,CodeIgniter 性能优化
- mysql增加行_MySQL添加新行
- 批量生成insert语句的方法(word转excel,excel用公式生成insert)
- UA OPTI570 量子力学19 量子谐振子的能量本征态
- htmlunit 示例
- 属于拼多多的巴别塔正在构筑
热门文章
- android修改 apn_什么是APN,以及如何在Android手机上进行更改?
- 【正点原子探索者STM32F407开发板例程连载+教学】第43章 sd卡实验-SDIO
- 21天读书打卡活动第四期招募
- 【教3妹学算法-每日3题(1)】商品折扣后的最终价格
- 在Ubuntu18.04.2LTS上安装视频播放器smplayer/vlc
- 迪赛智慧数——柱状图(极坐标扇图):全球主要城市中心房价
- 第三方服务接口调用方式记录
- Java实现读者写者问题--读者优先
- 动画以及简单动画案例轮播图
- Spring框架总结六---自动装配