word2vec简单介绍

来源:互联网 发布:提醒喝水的软件 编辑:程序博客网 时间:2024/06/18 13:18


    随着深度学习技术的不断发展,基于神经网络语言模型自动学习词向量的方法被许多研究者提出。词向量(word embedding)是词语在机器学习中的特征表示。词向量的表示方法主要分为独热表示(One-hot representation)分布式表示(Distributed representation)两种。

独热表示(One-hot representation)
    One-hot用一个很长的向量来表示一个词,向量的长度为词典的大小,向量的分量只有一个1,其他全为0。1的位置对应该词在词典中的位置。
例如:
“话筒”表示为 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 …]
“麦克”表示为 [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 …]
实现时就可以用0,1,2,3,…来表示词语进行计算,这样“话筒”就为3,“麦克”为8.
缺点:
这种词向量表示容易受维数灾难的困扰,并且不能很好地刻画词语之间的相似度。

分布式表示(Distributed representation):
    分布式表达方式通过训练神经网络模型将每一个词映射成一个固定长度的维向量,将所有向量放在一起形成一个词向量空间,而每个向量则为该空间中的一个点,因此可以根据词之间的距离(欧式距离、余弦距离等)来判断它们之间的相似度。最为典型的方法就是word2vec
例如:
[0.792, −0.177, −0.107, 0.109, 0.542, …],常见维度50或者100

     Word2vec是Google于2013年推出的一个用于获取词向量的开源工具,由当时的Tomas Mikolov团队提出和实现。word2vec的核心思想是基于神经网络概率语言模型,根据词语在语料库中的上下文信息,为每个词语训练一个相同维数的实向量。Word2vec包含两种训练模型:连续词带模型(continuous bag-of-word model,CBOW)Skip-gram模型。下面分别介绍这两种模型。

1.连续词带模型(continuous bag-of-word model,CBOW)

CBOW

INPUT:输入层
PROJECTION:投影层
OUTPUT:输出层
w(t):当前词语(向量)
w(t-2),w(t-1),w(t+1),w(t+2):当前词语w(t)的上下文
SUM:上下文的累加和

CBOW网络结构图如下:

CBOW网络结构图

这里写图片描述
这里写图片描述
这里写图片描述

注:叶子结点对应词典中的一个词,非叶子节点为LR分类器

举例:

句子:我,喜欢,观看,巴西,足球,世界杯
w=足球

w=足球

w=足球时的网络结构示意图

网络图中参数含义如下:
这里写图片描述

这里写图片描述
这里写图片描述

以上就是word2vec原理的简单介绍。