什么是Word Embeddings

注:由于很喜欢一个博文,就把它部分翻译过来,原做者网名叫NSS。他的这篇博文的名字是: “An Intuitive Understanding of Word Embeddings: From Count Vectors to Word2Vec”. 原网址以下:https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/windows

注:这里只捡本身喜欢的部分写出来。网络

1 什么是Word Embeddings

咱们知道计算机不认识字符串,因此咱们须要将文字转换为数字。Word Embedding就是来完成这样的工做。 定义:A Word Embedding format generally tries to map a word using a dictionary to a vector。优化

2 Word Embeddings们

既然咱们用向量来表示一个词或词语,那么这种表示必定不止有一种方式,因此在这里总结一下不一样的表示。ui

2.1 Frequency based Embeddingthis

在这个分类下有三个小分类.spa

  1. Count Vector
  2. TF-IDF Vector(不翻译,略过)
  3. Co-Occurrence Vector(不翻译,略过)

2.1.1 Count Vector翻译

咱们先举一个例子。先观察如下两句话,D1: He is a lazy boy. She is also lazy. D2: Neeraj is a lazy person. 这两句话一共有6个不一样的单词,咱们按照以下的方式来分下一下这6个单词在这两句话中的分布状况:code

Fig 0.orm

这张表中的数字表示某个单词在某个句子中出现的次数,好比He在D1中出现1词,在D2中出现0词,如此等等。这时咱们就能够看到He这个单词能够造成一个向量,[1,0],向量中的每一个元素表明这个单词出如今某句话中的次数。blog

2.2 Prediction based Vector

2.2.1 CBOW (Continuous Bag of words)

CBOW这个模型是给定一个context的条件下,预测在该context下出现某个词的几率。假设咱们有一句话:“I like Julia”,咱们把context window设置为1,也就是咱们只考虑一个词的前一个词或后一个词,而后这句话能够转换成Fig 1中的形式。右侧的矩阵是Input的unicode.

Fig 1. 注:原图太复杂,在这里我用了一个简单的例子。

这些数据点被传递给一个神经网络,如图Fig 2所示,输出层是一个softmax层,用来计算几率。流程是: 输入被映射到一个低维的向量,好比如Fig 3所示。获得这个二维向量后,再用一个矩阵将它转换成一个三维矩阵,这个三维矩阵通过softmax后就是咱们的output。通过优化后获得的向量就是咱们所求的向量。

Fig 2.

Fig 3.

注:这里的基本的思想是,一个词=它所处的环境(没有看出,这里的=是等于号)。恩,好有哲理的一句话。好比咱们要判断某我的属于哪个阶级,只须要看他的朋友圈就能够知道。好比在咱们的例子中,当给咱们一个context的时候,好比‘I’,那么这个context对应一个单词“like”。在这里咱们的windows设置为1,也就是仅仅考虑一个词的先后词,当咱们将windows设置为2的时候,Julia的context就变成了I和like,这个时候的Input就成了两个向量,也就是I向量和like向量,这两个向量分别通过W和W`两个矩阵的做用,获得两个vector,这个时候取这两个向量的平均值就是获得咱们的output vector,最后通过softmax变换就能够获得最后的结果。如图Fig4所示。

Fig 4.

 

2.2.2 Skip – Gram model

这个方法正好和上边的方法相反,当给定咱们一个word的时候,咱们用这种方法来计算它的context。如Fig 5.2所示。好比咱们有句话: ”Hey, this is sample corpus using only one context word.” 让咱们构建training data:

Fig 5.

 

Fig 5.2

由于咱们定义了context window=1,也就是该词的先后应该分别对应一个词,如Fig 5所示。

注意的是,在这里咱们有两个输出,分别对应先后两个词。计算流程如Fig6-Fig 8所示.

Fig 6.

 

Fig 7.

Fig 8.

相关文章
相关标签/搜索