目录

一、Word Embedding介绍

二、One-Hot 表示

三、Distributed 表示

四、word2vec表示

五、BERT任务

六、BERT与其他模型的调用


一、Word Embedding介绍

word embedding,又名词嵌入、词向量,在近几年的NLP领域变得越来越热,从概念上讲,它涉及从每个单词一维的空间到具有更低维度的连续向量空间的数学嵌入。当它用作底层文本输入表示时,单词和短语嵌入已经被证明可以提高NLP任务的性能,例如语法分析和情感分析。

word embedding的意思是:给出一个文档,文档就是一个单词序列比如 “A B A C B F G”, 希望对文档中每个不同的单词都得到一个对应的向量(往往是低维向量)表示。
比如,对于这样的“A B A C B F G”的一个序列,也许我们最后能得到:A对应的向量为[0.1 0.6 -0.5],B对应的向量为[-0.2 0.9 0.7] (此处的数值只用于示意)

之所以希望把每个单词变成一个向量,目的还是为了方便计算,比如“求单词A的同义词”,就可以通过“求与单词A在cos距离下最相似的向量”来做到。

word embedding不是一个新的topic,很早就已经有人做了,比如bengio的paper“Neural probabilistic language models”,这其实还不算最早,更早的时候,Hinton就已经提出了distributed representation的概念“Learning distributed representations of concepts”(只不过不是用在word embedding上面) ,AAAI2015的时候问过Hinton怎么看google的word2vec,他说自己20年前就已经搞过了,估计指的就是这篇paper。

现在,word embedding有One-Hot Representation 、Distributed Representation、Word2Vec等方法。下面将对这几种方法做一个简要的介绍

二、One-Hot 表示

这种方法是表示文本最简单的方法,一般使用很长的向量去表示一个词。向量的长度其实就是文本中词典的数目,一篇文章中有2000个词,则词向量的维度就是2000。而每个维度对应字典里的一个词,除了这个词对应维度上的值是 1,其他元素都是 0。大概One-Hot 的意思就是在该向量上用1突出要表示的词。

例如,' 石家庄 '  =  [1,0,0,0......0,0,0]   (这个向量的维度大约有2000)。代码就放在下面

from sklearn import preprocessingenc = preprocessing.OneHotEncoder()
enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])array = enc.transform([[0,1,3]]).toarray()print(array)

One-Hot 在特征提取上属于词袋模型(bag of words)。但是,这种表示方法没有考虑到词与词之间的相关性,缺乏语义信息,无法使用余弦相似度去度量词的相关性,而且会产生数据稀疏的问题,会浪费很多的存储空间。而我们熟知的向量空间模型(VSM),虽然从表示文本的方式上与 One-Hot 类似,把对文本内容的处理简化为向量空间中的向量运算,并且以空间上的相似度表达语义的相似度(余弦相似度),但是它默认词与词之间是独立的,没有考虑词间的语义关联性,因此在现如今的文本表示中不是特别实用。

三、Distributed 表示

分布式表示。最早由Hinton提出,可以克服one-hot representation的上述缺点,基本思路是通过训练将每个词映射成一个固定长度的短向量,所有这些向量就构成一个词向量空间,每一个向量可视为该空间上的一个点[1]。此时向量长度可以自由选择,与词典规模无关。这是非常大的优势。还是用之前的例子[“面条”,”方便面”,”狮子”],经过训练后,“面条”对应的向量可能是[1,0,1,1,0],而“方便面”对应的可能是[1,0,1,0,0],而“狮子”对应的可能是[0,1,0,0,1]。这样“面条”向量乘“方便面”=2,而“面条”向量乘“狮子”=0 。这样就体现出面条与方便面之间的关系更加紧密,而与狮子就没什么关系了。这种表示方式更精准的表现出近义词之间的关系,比之稀疏向量优势很明显。可以说这是深度学习在NLP领域的第一个运用

四、Word2vec表示

关于word2vec的介绍,博主推荐看 通俗理解word2vec 的文章,语言比较幽默,通俗易懂,推荐看一波

至于word2vec的表示与词的相似性判断,推荐 基于gensim的word2vec实战

五、BERT任务

至于有关BERT的介绍,推荐大家看一下 从Word Embedding到Bert模型——自然语言处理预训练技术发展史 这篇文章。

这里是BERT模型的传送门 BERT模型 。至于BERT的源码解析,我是看了这位大佬的文章bert 源码解读(基于gluonnlp finetune-classifier) 才理解了一部分,但还是没有搞到完全清楚,之后还要通过实践去理解BERT这个神级模型

六、BERT与其他模型的调用

近期博主看到一篇分享,将最近NLP任务中热门的预训练模型可以实现一键调用,文章传送门 Pytorch-Transformers 1.0 发布,支持六个预训练框架,含 27 个预训练模型

代码传送门 pytorch-transformers

关于Word Embedding的介绍就是这些了,稍后有其他的理解将会陆续更新到本文中。相信自己,一定要继续加油呀

深度学习之词向量Word Embedding总结相关推荐

  1. 嵌入层(Embedding Layer)与词向量(Word Embedding)详解

    文章目录 常见的语言表示模型 词向量与Embedding区分 Embedding层--keras中的one-hot映射为 向量的层:词向量(word embedding)--一种语言模型表示方法 分布 ...

  2. 【吴恩达深度学习】——NLP和Word Embedding

    NLP和词嵌入 思维导图 词汇表征 one-hot表征 特征表征:词嵌入 使用word Embeddings 命名实体识别的例子: 词嵌入的迁移学习: 词嵌入和人脸编码 词嵌入的特性 类比推理的特性 ...

  3. 词向量Word Embedding原理及生成方法

    前言 Word Embedding是整个自然语言处理(NLP)中最常用的技术点之一,广泛应用于企业的建模实践中.我们使用Word Embedding能够将自然文本语言映射为计算机语言,然后输入到神经网 ...

  4. NLP-词向量(Word Embedding)-2013:Word2vec模型(CBOW、Skip-Gram)【对NNLM的简化】【层次Softmax、负采样、重采样】【静态表示;无法解决一词多义】

    一.文本的表示方法 (Representation) 文本是一种非结构化的数据信息,是不可以直接被计算的.因为文本不能够直接被模型计算,所以需要将其转化为向量. 文本表示的作用就是将这些非结构化的信息 ...

  5. 深度学习:词嵌入之word2vec

    http://blog.csdn.net/pipisorry/article/details/76147604 word2vec简介 深度学习在自然语言处理中第一个应用:训练词嵌入.Google 的 ...

  6. 什么是词嵌入| Word Embedding

    本文参考:词嵌入 维基百科解释 In natural language processing (NLP), word embedding is a term used for the represen ...

  7. 深入理解深度学习——语境词嵌入(Contextual Word Embedding)

    分类目录:<深入理解深度学习>总目录 前文介绍了因word2vec而流行的Word Embedding,这种表示方法比离散的独热编码要好很多,因为它不仅降低了维度,还可以反映出语义空间中的 ...

  8. 深度学习实战-词嵌入计算文本相似性

    使用词嵌入计算文本相似性 文章目录 使用词嵌入计算文本相似性 简介 词嵌入 预训练词嵌入查看文本相似性 Word2vec的数学特性 可视化词嵌入 词嵌入中发现实体类 类内部语义距离 可视化国家数据 补 ...

  9. 读书笔记-深度学习推荐系统4-推荐与embedding

    本篇结合了书籍 <深度学习推荐系统>和吴恩达老师的视频课程 <Natural Language Processing and Word Embeddings>. embeddi ...

最新文章

  1. 单片机一个月能入门么?单片机工程师能干到多少岁?
  2. centos python 安装
  3. jmeter测试udp收发数据
  4. java string查找_查找输出程序(Java String类)
  5. 等宽分箱_数据分析师-数据挖掘如何分箱以及对箱子中的数据进行平滑处理
  6. pythondjangoddos_django带服务器
  7. HDU2015 偶数求和【入门】
  8. 关于windows CE Platform Builder中模拟器的限制
  9. oracle应用技术支持,oracle技术支持工程师岗位职责
  10. android 下载apk 安装程序,Android实现APK下载安装
  11. 亚马逊要验证收款查关联?
  12. 软件著作权个人申请全套攻略
  13. 各国程序员薪资水平,咱有点惨...
  14. 计算机声卡原理,什么是电脑声卡 电脑声卡的工作原理
  15. Git基础-生成SSH密钥+配置密钥到远程仓库中
  16. 分析XBrowser地址栏使用案例
  17. 概率统计17——点估计和连续性修正
  18. Export2Excel实现多级表头以及多个sheet页
  19. Ae 入门系列之九:运动跟踪与稳定(中)
  20. NASA授予下一代航天计算处理器合同,中国情况如何?

热门文章

  1. centos7使用yum安装MySQL8.0
  2. 【python数据处理】将DataFrame数据拆解成为一行一行由字典键值对组成的列表
  3. boss直聘Android找工作界面,仿Boss直聘我的界面滑动效果
  4. python做excel多表按列合并_python如何实现excel多表合并(附代码)_后端开发
  5. php个人支付宝对账,PHP实现个人支付宝支付开发(一) - 免签支付接口
  6. HTML基础(web到HTML标签)
  7. 几款常用的OCR技术软件 新3
  8. 解决DLL注册失败的方法
  9. 前端面试35k题库2021-@莫成尘
  10. wps打开文件很慢很卡怎么办?