Word2Vec算法简介
一.简介
word2vec是Google在2003年开源的一款将词表征为实数值向量的高效算法,采用的模型有CBOW【Continuous Bag-Of-Words 连续的词袋模型】和Skip-Gram两种。
word2vec通过训练,可以把文本内容的处理简化为k维向量空间中的向量运算,二向量空间上的相似度可以用来表示文本语义上的相似度。
二.背景知识
1.One-hot Representation
NLP相关的任务中最常见的第一步是创建一个词表库并把每个词顺序编号。这实际就是词表示方法中的One-hot Representation,这种方法把每个词顺序编号,每个词就是一个很长的向量,向量的维度等于词表大小,一般采用稀疏编码存储,只有对应位置上的数字为1其它都为0。
这种表示方法最大的问题是无法捕捉词与词之间的相似度,而且还容易发生维数灾难,尤其是在Deep Learning相关的一些应用中。
2.Distributed Representation
Distributed Representation 通过训练将每个词映射成k维实数向量【k一般为模型的超参数】,通过词之间的距离【比如:cosine相似度、欧式距离等】来判断它们之间的语义相似度。word2vec就是采用这种词向量表示方式。
三.统计语言模型
传统的统计语言模型是表示语言基本单位【一般为句子】的概率分布函数,这个概率分布也就是该语言的生成模型。一般语言模型可以使用各个词语条件的概率表示。
1.上下文无关模型
该模型仅仅考虑当前词本身的概率,不考虑词所对应的上下文环境,仅仅依赖于训练文本中的词频统计。这是一种最简单,易于实现,但没有多大实际应用价值的统计语言模型。它是n-gram模型中n=1时候的特殊情况,所以也称为Unigram Model【一元文法统计模型】。
2.n-gram模型
当n=1时,就是上面所说的上下文无关模型,这里n-gram一般认为是n>=2时的上下文相关模型。当n=2时,也称为Bigram语言模型。n指往前看n-1个词而不是一个词。
一般n-gram模型优化的目标是最大log似然。
优点:
包含了前n-1个词所能提供的全部信息,这些信息对当前词出现具有很强的约束力,同时因为只看前n-1个词而不是全部词也使得模型的效率较高。
缺点:
1.n-gram语言模型无法建模更远的关系,语料的不足使得无法训练更高阶的语言模型。
2.这种模型无法建模出词之间的相似度,有时候两个具有某种相似性的词,如果一个词经常出现在某段词之后,那么也许另一个词出现在这段词后面的概率也比较大。
3.训练语料里面有些n元组没有出现过,其对应的条件概率就是0,导致计算一整句话的概率为0。
解决办法:
1.平滑法:最简单的方法是把每个n元组的出现次数加1,那么原来出现k次的某个元组就会记成k+1次,原来出现0次的n元组就会即为出现1次。这种也称为Laplace平滑。
2.回退法:类似决策树中的后剪枝方法,即如果n元的概率不到,那就往上回退一步,用n-1元的概率乘上一个权重来模拟。
3.n-pos模型
严格来说n-pos只是n-gram的一种衍生模型。n-gram模型假定第t个词出现概率条件依赖它前n-1个词,而现实中很多词出现的概率是条件依赖于它前面词的语法功能的。n-pos模型就是基于这种假设的模型。
4.基于决策树的语言模型
统计决策树中每个节点的决策规则是一个上下文相关的问题。基于决策树的语言模型优点是分布数不是预先固定好的,而是根据训练语料库中的实际情况决定的,更为灵活。缺点是构造决策树的问题很困难,且时空开销很大。
5.最大熵模型
对一个随机事件的概率分布进行预测时,在满足全部已知条件下对未知的情况不做任何主观假设。从信息论的角度来说就是在只掌握关于未知分布的部分知识时,应当选取符合这些知识但又能使得熵最大的概率分布。
6.自适应语言模型
前面的模型概率分布都是预先从训练语料库中估算好的,属于静态语言模型。二自适应语言模型类似online learning的过程,及根据少量新数据动态调整模型,属于动态模型。
Word2Vec算法简介的更多相关文章
- webrtc 的回声抵消(aec、aecm)算法简介(转)
webrtc 的回声抵消(aec.aecm)算法简介 webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS(归一化最小均方自适应算法) ...
- AES算法简介
AES算法简介 一. AES的结构 1.总体结构 明文分组的长度为128位即16字节,密钥长度可以为16,24或者32字节(128,192,256位).根据密钥的长度,算法被称为AES-128,AES ...
- 排列熵算法简介及c#实现
一. 排列熵算法简介: 排列熵算法(Permutation Entroy)为度量时间序列复杂性的一种方法,算法描述如下: 设一维时间序列: 采用相空间重构延迟坐标法对X中任一元素x(i)进行相空间 ...
- <算法图解>读书笔记:第1章 算法简介
阅读书籍:[美]Aditya Bhargava◎著 袁国忠◎译.人民邮电出版社.<算法图解> 第1章 算法简介 1.2 二分查找 一般而言,对于包含n个元素的列表,用二分查找最多需要\(l ...
- LARS 最小角回归算法简介
最近开始看Elements of Statistical Learning, 今天的内容是线性模型(第三章..这本书东西非常多,不知道何年何月才能读完了),主要是在看变量选择.感觉变量选择这一块领域非 ...
- AI - 机器学习常见算法简介(Common Algorithms)
机器学习常见算法简介 - 原文链接:http://usblogs.pwc.com/emerging-technology/machine-learning-methods-infographic/ 应 ...
- STL所有算法简介 (转) http://www.cnblogs.com/yuehui/archive/2012/06/19/2554300.html
STL所有算法简介 STL中的所有算法(70个) 参考自:http://www.cppblog.com/mzty/archive/2007/03/14/19819.htmlhttp://hi.baid ...
- PageRank 算法简介
有两篇文章一篇讲解(下面copy)< PageRank算法简介及Map-Reduce实现>来源:http://www.cnblogs.com/fengfenggirl/p/pagerank ...
- Gradient Boosting算法简介
最近项目中涉及基于Gradient Boosting Regression 算法拟合时间序列曲线的内容,利用python机器学习包 scikit-learn 中的GradientBoostingReg ...
随机推荐
- CentOS7下的CDH 6.2.0 安装过程
#install OS centos 7.5#install lsb packageyum install -y redhat-lsb #install net-tools package yum i ...
- mysql 得到指定时间段的日期
set @startDate='2019-01-01'; set @endDate='2019-04-01'; DAY) AS DAY FROM ( SELECT a.a ) AS a ) AS b ...
- EasyNVR摄像机网页无插件直播方案H5前端构建之:bootstrap-datepicker日历插件的实时动态展现
EasyNVR场景需求 基础:不管是城市监控还是园区管理或者是幼儿园监控,这些安防监控需求已经成为我们生活中不可或缺的重要一环,这不仅仅是提升城市管理水平和人民群众安全感的现实需求,也是完善社会治安消 ...
- .NET 文件上传和文件接收
有时候,我们需要在后台端发起向指定的“文件接收接口”的文件传输请求,可以采用HttpWebRequest方式实现文件传输请求. 1.HttpWebRequest文件传输请求的代码如下: 其中,url为 ...
- CSS布局:sticky定位
stick定位一如其名:它随“正常”文档流而动,直到规定位置,尔后“粘”在那里:或者,当它发现自己可以跟随“正常”文档流而脱离sticky位置时,就果断离开从而加入文档流. 代码与效果如下: < ...
- cordova调用第三方应用
cordova 帮助webapp 达到调用原生系统的功能 项目需求:在项目中调用系统中含有的第三方地图应用 需求其实分为两步: 1. 查找本地地图应用 2.成功调起本地应用 首先需要安装两个插件,安装 ...
- vue双循环或者多循环作用于同一元素时,在外套template标签
如图,两个v-for,都是要循环创建tr标签.同理,v-if也是套template
- This is this
首先,我们来了解一下 this 的几种绑定方式: this的默认绑定: 当一个函数没有明确的调用对象的时候,即作为独立函数调用时,this绑定到全局window对象. function func() ...
- 【windows】win10局域网共享文件夹
1.打开 2.共享文件夹 另一台局域网电脑可根据共享的电脑ip访问就可以了[格式:\\ip] 如果右键文件夹没有共享选项
- python抓取不得姐动图(报错 urllib.error.HTTPError: HTTP Error 403: Forbidden)
抓取不得姐动图(报错) # -*- coding:utf-8 -*- #__author__ :kusy #__content__:文件说明 #__date__:2018/7/23 17:01 imp ...