美文网首页
word2vec学习笔记

word2vec学习笔记

作者: 全村希望gone | 来源:发表于2019-05-17 18:02 被阅读0次

(说在前面,下面这篇笔记里有很多都是网上的内容,但考虑到没人看,所以我就不注明出处了)
由于最近在做病历处理方面的东西,需要提取病人口述的病症,根据病症预测病人患某种病的概率是多大。为了能让计算机处理病症,需要先将它们向量化,向量化有两种方式

one-hot向量

虽然onehot向量简单,但是向量维度和词语数量相等,而且因为存在大量的0,会导致浪费计算资源。另一个弊端是它无法反映词语之间的联系,所以转而用分布式表示。

分布式表示

分布式表示维度可控,不会因为词语过多而导致维度灾难,而且可以很好地反映词语之间的关系,通过计算欧式距离可以算出词语之间的相近程度。
分布式表示有以下几种

  • 基于矩阵的分布式表示
  • 基于聚类的分布式表示
  • 基于神经网络的分布式表示(词嵌入word embedding)
    主要将基于神经网络的分布式表示,基于神经网络的分布式表示又有以下几种模型
    • Neural Network Language Model ,NNLM
    • Log-Bilinear Language Model, LBL
    • Recurrent Neural Network based Language Model,RNNLM
    • Collobert 和 Weston 在2008 年提出的 C&W 模型
    • Mikolov 等人提出了 CBOW( Continuous Bagof-Words)和 Skip-gram 模型
      这些和word2vec有什么关系呢?

word2vec是包含CBOW和Skip-gram的训练词向量的工具。

所以学word2vec其实是在学CBOW和Skip-gram。CBOW是给定上下文单词来预测中心词,Skip-gram是给定中心词来预测上下文单词,如图所示


structure.jpg

问题及答案

1. CBOW和Skip-gram的输入和输出分别是什么形式?如何更新得到想要的词向量?
答:先说一下CBOW的网络结构,如图所示

CBOWstructure.jpg

输入层到隐藏层之间没有激活函数,隐藏层到输出层之间激活函数为softmax。
CBOW的输入是上下文单词的one-hot向量,这些向量分别乘以一个权重矩阵然后再相加求平均,输出是一个经过神经网络计算后的概率向量;
将这个概率向量与真实中心词(也是个one-hot向量)作比较,算出损失值,目标是让损失值达到最小
这样的话,模型中参数就会得到更新(这个参数就是词向量,看Notes),然后再取其它的上下文词,重复上述步骤。

CBOW1.JPG

skip-gram网络结构,如图所示

skipgramstructure.jpg

skipgram的输入是中心词的one-hot向量,输出是多个上下文单词的概率向量(它们的概率向量都是一样的),然后分别与它们所对应的真实词的one-hot向量作比较,最小化损失值。
这样的话,模型中参数就会得到更新(这个参数就是词向量,看Notes),然后再取其它的中心词,重复上述步骤,如图所示

skipgram.jpg

Notes:

  • 无论是训练CBOW还是Skip-gram模型,我们想要的其实是模型中的参数(更确切的说是输入矩阵的参数),这个参数就是词向量,所以常常会看到博客中说“词向量只是训练模型后的副产物”。
  • 关于这两个模型,还有两个优化的trick,分别是hierarchical softmax和negative sampling,它们是可以加快计算速度的,所以也得学。

相关文章

  • word2vec学习笔记之CBOW和skip-gram

    在上一篇学习笔记《word2vec学习笔记之概述》中介绍了word2vec提出的一些背景(当然,除了该篇文章中所说...

  • [NLP] word2vec in TensorFlow

    学习word2vec相关内容之后的笔记整理,以及TensorFlow中simple版本的实现(CBOW + Ski...

  • Word2Vec学习笔记之基础篇

    Word2Vec学习笔记之基础篇 概述 自然语言处理属于深度学习中的一个分支,但是相对其他分支发展一直比较缓慢,在...

  • 摘录

    大千网络,好文无数。摘录二三,供后来者阅览。 深度学习word2vec笔记之基础篇 word2vec-wikipedia

  • NLP笔记 - 词向量

    学习词向量的笔记 词向量 or word2vec,一种NLP中对词语的特征表示。由于one-hot会产生维度灾难,...

  • word2vec学习笔记

    (说在前面,下面这篇笔记里有很多都是网上的内容,但考虑到没人看,所以我就不注明出处了)由于最近在做病历处理方面的东...

  • 学习笔记-word2vec

    在nlp的世界里,词向量占据了重要的位置,它分布式的表示了单词的语义信息,大幅度的提升了下游任务的效果。 Word...

  • 翻译Gensim的word2vec说明

    未完 待译 word2vec 模块——使用word2vec进行深度学习 models.word2vec – Dee...

  • Spark MLlib机器学习开发指南(5)--特征提取--Wo

    Spark MLlib机器学习开发指南(5)--特征提取,转换,选择--Word2Vec 翻译自Word2Vec,...

  • 2019-11-19 深度学习word2vec笔记之基础篇

    转:深度学习word2vec笔记之基础篇 因为原文很多公式挂了 但是的确是一篇入门很好地博客 为了方便阅读 特收入...

网友评论

      本文标题:word2vec学习笔记

      本文链接:https://www.haomeiwen.com/subject/vdzoaqtx.html