经典的 Embedding 方法-Word2vec

背景

作为一个深度学习的爱好者,肯定对 Embedding不陌生,但是你知道Embedding为什么那么热门吗?想知道Embedding技术流行的原因就一定要深入讲解一下 Word2vec。它不仅让词向量在自然语言处理领域再度流行,更关键的是,自从 2013 年谷歌提出 Word2vec 一来,Embedding 技术从自然语言处理领域推广到广告、搜索、图像、推荐等几乎所有深度学习的领域,成了深度学习知识框架中不可或缺的技术点。Word2vec 作为经典的 Embedding 方法,熟悉它对于我们理解之后所有的 Embedding 相关技术和概念都是至关重要的。下面,详细讲一讲 Word2vec 的原理。

为什么我们需要对词进行编码,也就是所谓的词向量化?

我们知道任何模型,其输入都需要为数值型,而在NLP中,大多数是文字为主,而文字是无法直接被模型进行使用。所以我们需要将文字进行编码,而编码就是给每一个字符一个向量来进行表示。

word2vec出来之前--one-hot编码

在word2vec出来之前,我们常用的主要是one-hot编码的方法,也就是对于每一个单词,我们用在一个位置为1,其余位置为0的向量进行表示。而向量的维度就是我们单词量的大小。而向量的每一个位置,只能用来表示唯一的一个单词。

假设我们的有词库只有10个单词,分别是:今,天,是,你,我,他,买,水,果,家。这里我们分别用one hot encoding的方法来表示每一个词,那么有下面的结果:

看到对于每一个单词,我们用唯一的一个向量对它进行了表示。那么很显然这种表示方法至少有下面的一些缺陷

如果将单词量为N,用一个n维的向量来表示每一个单词,并且n远远小于N,那是不是可以解决上述问题呢?基于这个思想Word2vec出现了,迎来了各种Embedding方法和相关应用。

什么是 Word2vec?

自从Embedding技术出现自然语言处理(NLP)领域打开新大门了,在NLP领域中出现了各种Embedding模型,如Sentence2Vec、Doc2Vec、Everything2Vec等等。较于传统NLP的高维、稀疏的表示法(One-hot Representation),Word2Vec训练出的词向量是低维、稠密的。Word2Vec利用了词的上下文信息,语义信息更加丰富。

Word2vec 是“word to vector”的简称,顾名思义,它是一个生成对“词”的向量表达的模型。用一句简单的话来总结,word2vec是用一个一层的神经网络(即CBOW)把one-hot形式的稀疏词向量映射称为一个n维(n一般为几百)的稠密向量的过程

想要训练 Word2vec 模型,我们需要准备由一组句子组成的语料库。假设其中一个长度为 _T_ 的句子包含的词有,并且我们假定每个词都跟其相邻词的关系最密切。

Word2vec的两种模型结构CBOW和Skip-gram

根据模型假设的不同,Word2vec 模型分为两种形式,CBOW 模型(图左)和 Skipgram 模型(图右)。

CBOW 模型假设句子中每个词的选取都由相邻的词决定, 因此我们就看到 CBOW 模型的输入是 wt 周边的词,预测的输出是 wt。

Skip-gram 模型则正好相反,它假设句子中的每个词都决定了相邻词的选取,所以你可以看到 Skip-gram 模型的输入是 wt,预测的输出是 wt 周边的词。

在实践中,Skip-gram 模型的效果会更好一些。

下次给你们讲讲 Word2vec 的模型细节和实现方式。

展开阅读全文

页面更新:2024-05-04

标签:方法   自然语言   稠密   向量   维度   句子   单词   模型   领域   经典   技术

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top