失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 通俗易懂的Word Embeddings

通俗易懂的Word Embeddings

时间:2019-03-26 09:18:37

相关推荐

通俗易懂的Word Embeddings

通俗易懂的Word Embeddings

Word Embeddings是机器学习领域最酷的事情之一,因为它可以从海量的文本数据中挖掘出单词之间纷繁复杂的联系。例如你可以在不给定任何先验知识的情况下,利用Word Embeddings学习到所有和颜色相关的词汇。为了方便理解,我们先给出一个简单的例子:

I painted the bench _______

不难发现上述例句中缺少一个单词,显然这里需要填入一个有关色彩的词汇,例如:

I painted the benchred

I painted the benchgreen

甚至我们可以说这里所填入的内容很可能与颜色有关,但不幸的是,这里也可以填入和色彩无关的单词,比如:

I painted the benchtoday

但不管怎么样,语境与语义其实是息息相关的。所以上述的例子中,我们在空白地方填入不同的单词,并且会假设这些单词是相关的。

除了以上情况之外,还有另外一种方式可以利用语境来帮助我们理解两个单词之间的相关性。若两个单词通常出现在同样的语境中

,我们便认为这两个单词是有关联的。我们给出3个不同的句子来帮助我们理解上述内容:

Donald Trump is the United States president.I laughed at his joke.His joke didn't make me laugh.

第一个句子中United和States通常都会一起出现,所以我们会将这两个单词合并使用。在第二个以及第三个句子中,我们会发现joke和laugh是有关联的单词,因为他们往往会出现在相似的语境中。在这里我们想要指出的是laughed和laugh有可能是不同的单词,laughed是过去式而laugh是动词原形。同样的,jokes表示复数形式而joke是单数形式。这些都是同一单词的不同形态。Word Embeddings可以通过语料学习到单词的时态以及单复数的变换。在上例中,我们可以发现laughed和joke出现在了同一语境中,并且joke和laugh也出现在同一语境中,所以Word Embeddings会认为laughed和laugh都和joke有关,故而认为他们是有关联的。

Word Embeddings其实就是将单词转变为向量,比如你给定hamburger,模型会将其转换为64维的向量,向量中的数值可以对该单词进行描述。比如我们给了hamburger和cheeseburger,Word Embeddings会用非常相近的向量来表述这两个单词。但当我们输入Ferrari,我们希望表述Ferrari的词向量离hamburger以及cheeseburger很远。

Word Embeddings中很经典的一个例子就是man-woman+queen=king。所以我们不仅希望相似的单词具有相一致的向量表述,还希望不同单词的向量表述之间的差异也包含有用的信息。

如何实现呢

第一种实现方法就是Word2vec,其工作过程如下:

我们从语料中任选一个单词,并将该单词抽出,例如将yellow这个单词取出来。然后将该单词喂入word2vec神经网络,并预测其它单词与喂入单词在同一句话中的概率。所以本例中的Word2vec模型是根据给定单词预测上下文单词。

神经网络对不同的单词有不同的输入神经元。所以我们可以将输入的神经元置1而将其它神经元置0,这个过程类似于独热编码。然后将输入层与隐层相连,隐层具有较少的神经元,例如64个神经元。然后我们将隐层与输出层相连,输出层包含所有上下文有关的单词。通过这种方式,不同的单词若具有相似的上下文,那他们的隐层表示就会很相近。

除了word2vec以外,我们也可以使用Co-occurrence Matrix表示单词之间的联系:

矩阵中的数值表示两个单词出现在同一句话中的次数。通过Co-occurrence Matrix生成Word Embeddings的最简单的方法之一是利用矩阵分解的方法:

这里的矩阵分解可以采用SVD分解等方法。我们可以将图右边的又瘦又高的矩阵加以利用,该矩阵的每一行都表示一个单词的Word Embedding。当然我们也可以将瘦高矩阵的某一行与矮胖矩阵对应的那一列相加后取平均值来表示一个单词的Word Embedding。

除了上述方法之外,还有一种被称为GloVe的方法能够生成Word Embeddings。

参考链接

[1] Word Embeddings

[2] Try the web app

[3] Word2vec paper

[4] GloVe paper

[5] GloVe webpage

[6] /anthology/Q15-1016

[7] /wiki/Word_embedding

如果觉得《通俗易懂的Word Embeddings》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。