词向量(从one-hot到word2vec)
词向量的意思就是通过一个数字组成的向量来表示一个词,这个向量的构成有很多种方法,如one-hot编码、基于共现矩阵的方式、word2vec、动态词向量ELMo等。
一、one-hot向量
优势:简单易懂、稀疏存储
不足:维度灾难、词汇鸿沟(向量之间都是孤立的)
二、基于共现矩阵的方式
上述矩阵是一个n*n的对称矩阵X,矩阵维数随着词典数量n的增大而增大,可以使用奇异值分解SVD将矩阵维度降低。但是仍存在问题:
- 矩阵X的维度经常改变
- 由于大部分词并不共现而导致的稀疏性
- 矩阵维度过高带来的高计算复杂度
三、基于神经网络的方式(word embedding):word2vec
Word2Vec通过Embedding层将One-Hot Encoder转化为低维度的连续值(稠密向量),并且其中意思相近的词将被映射到向量空间中相近的位置。 从而解决了One-Hot Encoder词汇鸿沟和维度灾难的问题。
1.Embedding层
Embedding层(输入层到隐藏层)是以one hot为输入、中间层节点数为词向量维数的全连接层,这个全连接层的参数就是我们要获取的词向量表!
2.Word2vec模型概述
word2vec其实就是简化版的NN,它事实上训练了一个语言模型,通过语言模型来获取词向量。所谓语言模型,就是通过前n个字预测下一个字的概率,就是一个多分类器而已,我们输入one hot,然后连接一个全连接层,然后再连接若干个层,最后接一个softmax分类器,就可以得到语言模型了,然后将大批量文本输入训练就行了,最后得到第一个全连接层的参数,就是词向量表。
记词典大小为V
输入层:one-hot vector,V个节点
隐藏层:无激活函数,D个节点(D<V)
模型训练后输入层和隐藏层之间权重即为我们要获取的词向量
输出层:softmax回归输出输入词的邻近词的概率分布,V个节点
对同样一个句子:Hangzhou is a nice city。我们要构造一个语境与目标词汇的映射关系,其实就是input与label的关系。 假设滑窗尺寸为1 ,那么
CBOW的样本形式为:[Hangzhou,a]—>is,[is,nice]—>a,[a,city]—>nice
Skip-Gram的样本形式为:(is,Hangzhou),(is,a),(a,is), (a,nice),(nice,a),(nice,city)
3.模型求解:负采样方法
本文我们只对负采样方法negative sampling展开介绍
3.1 NCE Loss提出背景
Softmax是用来实现多类分类问题常见的损失函数。但如果类别特别多,softmax的效率就是个问题了。比如在word2vec里,每个词都是一个类别,在这种情况下可能有100万类。那么每次都得预测一个样本在100万类上属于每个类的概率,这个效率是非常低的。
3.2 NCE的主要思想
- 对于每一个样本,除了他自己的label,同时采样出N个其他的label
- 从而我们只需要计算样本在这N+1个label上的概率,而不用计算样本在所有label上的概率
- 而样本在每个label上的概率最终用了Logistic的损失函数
- NCE本质上是把多分类问题转化为2分类问题
3.3 NCE负采样策略
带权采样:高频词选为负样本的概率大,低频词概率小
4.word2vec之连续词袋模型CBOW
根据当前词的上下文环境来预测当前词
5.word2vec之跳字模型skip-gram
根据当前词预测上下文
可以理解为是将CBOW模型中的context(w)拆成一个个来考虑
6.word embedding存在的问题
多义词问题
词向量(从one-hot到word2vec)相关推荐
- 深度学习与自然语言处理教程(1) - 词向量、SVD分解与Word2Vec(NLP通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...
- 【NLP】CS224N课程笔记|词向量I: 简介, SVD和Word2Vec
NewBeeNLP原创出品 公众号专栏作者@Ryan 知乎 | 机器学习课程笔记 CS224N课程笔记系列,持续更新中 课程主页: http://web.stanford.edu/class/cs2 ...
- 词向量经典模型:从word2vec、glove、ELMo到BERT
前言 词向量技术将自然语言中的词转化为稠密的向量,相似的词会有相似的向量表示,这样的转化方便挖掘文字中词语和句子之间的特征.生成词向量的方法从一开始基于统计学的方法(共现矩阵.SVD分解)到基于不同结 ...
- 【深度学习】NLP基础--词向量(从One-hot到Word2Vec)
1.什么是词向量 在自然语言处理中,面临的首要问题是如何让模型认识我们的文本信息,比如向模型中输入'我爱北京天安门',那模型是如何认识文本的?词,是自然语言处理中基本单位,将数据输入到模型中,尽可能的 ...
- bert获得词向量_词向量详解:从word2vec、glove、ELMo到BERT
目前,词向量(又叫词嵌入)已经成为NLP领域各种任务的必备一步,而且随着bert elmo,gpt等预训练模型的发展,词向量演变为知识表示方法,但其本质思想不变.学习各种词向量训练原理可以很好地掌握N ...
- 秒懂词向量Word2vec的本质
[NLP] 秒懂词向量Word2vec的本质 穆文 4 个月前 转自我的公众号: 『数据挖掘机养成记』 1. 引子 大家好 我叫数据挖掘机 皇家布鲁斯特大学肄业 我喝最烈的果粒橙,钻最深的牛角尖 -- ...
- word2vec词向量训练及中文文本类似度计算
本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...
- bert获得词向量_NLP中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
作者:JayLou,NLP算法工程师 知乎专栏:高能NLP之路 https://zhuanlan.zhihu.com/p/56382372 本文以QA形式对自然语言处理中的词向量进行总结:包含word ...
- 词向量与词向量拼接_nlp中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
本文以QA形式对自然语言处理中的词向量进行总结:包含word2vec/glove/fastText/elmo/bert. 2020年更新:NLP预训练模型的全面总结JayLou娄杰:史上最全!PTMs ...
- [NLP] 秒懂词向量Word2vec的本质+word2vec资源总结
转自作者的公众号: 『数据挖掘机养成记』 1. 引子 大家好 我叫数据挖掘机 皇家布鲁斯特大学肄业 我喝最烈的果粒橙,钻最深的牛角尖 --执着如我 今天我要揭开Word2vec的神秘面纱 直窥其本质 ...
最新文章
- 团体程序设计天梯赛-练习集L1-016. 查验身份证
- 数据结构-排序(插入排序)
- 科大星云诗社动态20210318
- CSDN社区之星专訪:我的蜕变之路
- css标签的三种显示模式
- css img 适配尺寸_img图片自适应布局_HTML5教程_郭隆邦技术博客
- filters.revealTrans.Transition用法
- 常用标记语言及其工具
- 解决idea谷歌翻译插件不可用
- 沃尔玛承压,TJX、唯品会稳健,折扣零售是行业“抗压”能手?
- Windows部署静态网站
- 四旋翼自主飞行器探测跟踪系统项目的随笔
- 辅助驾驶事故频发,背后直指“决策安全模型”和驾驶员行为
- excel的筛选功能失效原因
- 职责链模式之真假美猴王
- 2017年校园招聘ios面试题
- 【JavaScript】一个简单的分页,显示页首,中间页,页尾,当前页的前后三页,省略其它页
- jenkins日志乱码linux,jenkins中文及符号乱码
- 关于Cannot invoke Tomcat mannager错误
- µC/OS-II 系统空闲任务,统计任务和应用任务
热门文章
- IOS:类方法(静态方法)和实例方法
- 千图成像_两分钟教你玩转千图成像Part1~
- mysql 类似 oracle connect by_mysql实现层级查询,相似oracle里的connect by prior
- 在springcacheinvokecontext中没找到field_CNN中的感受野
- 苹果电脑拷贝文件到u盘很慢_小米最硬核U盘!20g,3.1接口,120MB/S读取速度,可连iphone华为...
- Scikit-Learn (浅谈PCA降维算法)
- python数据库教程_python使用mysql操作教程
- java类中静态变量自增_Java中静态变量(类变量)、实例变量、局部变量和成员变量...
- c++如何快速写出get set_如何快速写出产品文案?(4大核心方法)
- dio设置自定义post请求_Flutter用dio封装http网络请求,设置统一的请求地址、headers及处理返回内容...