美文网首页
词向量笔记

词向量笔记

作者: dreampai | 来源:发表于2019-03-15 16:08 被阅读0次

一、word2vec

word2vec 是 google 在 2013 年推出的一个 NLP 工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系。

Distributed representation 可以解决 One hot representation 的问题,它的思路是通过训练,将每个词都映射到一个较短的词向量上来。所有的这些词向量就构成了向量空间,进而可以用普通的统计学的方法来研究词与词之间的关系。这个较短的词向量维度是多大呢?这个一般需要我们在训练时自己来指定。

1、 CBOW 与 Skip-Gram 用于神经网络语言模型

CBOW 模型的训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。假设我们上下文大小取值为 4 ,那么我们输入就是 8 个词向量,输出是所有词的softmax概率(训练的目标是期望训练样本特定词对应的softmax概率最大)。因此输入层 8 个神经单元,输出层是词汇表大小个神经元,隐藏层的神经元个数我们可以自己指定。通过DNN的反向传播算法,我们可以求出DNN 模型的参数,同时得到所有的词对应的词向量。

Skip-Gram 模型和 CBOW 的思路是反着来的,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。输入是特定词, 输出是 softmax 概率排前 8 的 8 个词,对应的 Skip-Gram 神经网络模型输入层有 1 个神经元,输出层有词汇表大小个神经元。隐藏层的神经元个数我们可以自己指定。通过DNN的反向传播算法,我们可以求出DNN模型的参数,同时得到所有的词对应的词向量。

2、基于Hierarchical Softmax的模型概述

传统的神经网络词向量语言模型,输入层(词向量),隐藏层和输出层(softmax层)。最大的问题在于从隐藏层到输出的softmax层的计算量很大,因为要计算所有词的softmax概率,再去找概率最大的值。

1、word2vec 对于从输入层到隐藏层的映射,没有采取神经网络的线性变换加激活函数的方法,而是采用简单的对所有输入词向量求和并取平均的方法
2、为了避免要计算所有词的 softmax 概率,word2vec 采样了霍夫曼树来代替从隐藏层到输出 softmax 层的映射

3、基于Negative Sampling的模型概述

使用霍夫曼树来代替传统的神经网络,可以提高模型训练的效率。但是如果我们的训练样本里的中心词 w 是一个很生僻的词,那么就得在霍夫曼树中辛苦的向下走很久了。

Negative Sampling 由于没有采用霍夫曼树,每次只是通过采样 neg 个不同的中心词做负例,就可以训练模型,因此整个过程要比 Hierarchical Softmax 简单。

二、GloVe

word2vec 并没有充分运用整个语料库中的词共现的统计信息,只考虑词的上下文信息,忽略了语料库中大量的重复信息。GloVe 算法却充分运用了语料库中的词共现的统计信息。

GloVe 是一个基于全局词频统计的词表征工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。

image.png

三、上下文的选则

1、窗口大小的影响

滑动窗口的大小对向量相似度结果有很大的影响。窗口较大易于产生更大的主题相似性(dog,bark,leash 分组在一起),而较小的窗口易于产生更多的功能和句法相似性。(walk,running,approaching 分组在一起)

参考链接

https://zhuanlan.zhihu.com/p/33136229
https://cndocr.github.io/text2vec-doc-cn/glove.html
https://www.fanyeong.com/2018/02/19/glove-in-detail/
https://nlp.stanford.edu/projects/glove/
https://www.cnblogs.com/pinard/p/7160330.html

相关文章

  • 词向量Word2vec

    下面是记录一下,学习词向量的笔记(根据自己的风格) 一、词向量 假设现在词向量长度length=3,一个词对应on...

  • 词向量笔记

    一、word2vec word2vec 是 google 在 2013 年推出的一个 NLP 工具,它的特点是将所...

  • NLP笔记 - 词向量

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

  • 利用gensim使用腾讯开源的预训练好的词向量

    腾讯开源词向量下载地址 导入词向量 未知词短语向量补齐: 样例: 输出为: 分词,词向量编码,去除标点符号(中英文...

  • 在 Keras 模型中使用预训练的词向量

    1. 什么是词向量?   简而言之,词向量技术是将词转化成为稠密向量,并且对于相似的词,其对应的词向量也相近。词向...

  • TensorFlow实现Word2Vec并进行代码详解

    1.代码部分 2. 词向量图词向量空间表示

  • 预训练好的词向量资源

    词向量是用来表示词的向量,通常也被认为是词的特征向量。现在已经成为自然语言处理的基础技术。词向量的好坏,会直接影响...

  • 词向量

    词向量大法 从文本语料得到词向量的话,大概来讲有如下几个步骤:分词,统计词频,构建huffman树,输入文本训练词...

  • 词向量

    1.更别致的词向量模型:Simpler GloVe - Part 2 2.

  • 词向量

    目前词向量主要用的技术 word2vec fasttext glove 1 one-host编码 one-hot编...

网友评论

      本文标题:词向量笔记

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