您的位置:首页 > 其它

Neural Probabilistic Language Model, word2vec来龙去脉

2015-05-18 12:02 405 查看
在Mikolov关于word2vec的论文中,作者详细罗列了文章创意的来源。本文整理文章中引用的主要文献,以期明白word2vec的整个产生过程。

在引文中,【1】和【2】是主要的应用对象,而参考文献中文献的罗列顺序,也可以看做word2vec的发展顺序。因此本文将主要叙述【1】和【2】,至于【3】、【4】中的内容,可以参见博文《word2vec原理概述》。

1、研究背景

维数灾难(curse of dimensionality)是语言模型和其他一些学习问题的基础问题。进一步的,当我们对连续变量进行建模时,通过根据目标函数的局部光滑特性进行学习,可以相对容易的对目标函数进行泛化;但在离散空降中,待学习的结构通常不明确,任何一个离散变量的改变都可能对待估函数的取值产生重大影响,而且,当每一个离散变量的取值范围都很大时,大多数观察对象之间的海明距离都变得很远。这说明了维度约减的重要性。

一个统计语言模型(statistical language models)可以使用目标单词在前序单词序列已知时的条件概率来建模:




其中w_t是单词序列中的第t个单词,w_i^j表示以第i个单词开始,第j个单词结束的子序列(w_i,w_(i+1),...,w_(j-1),w_j)。这样的统计模型大量应用于语音识别、语言翻译和信息检索等。因此统计语言模型的性能提升对于上述领域很有意义。
通过使用词序信息,可以降低统计语言模型的建模难度。通常,在时序上距离更近的单词统计依赖性更强。因此,n-gram模型在计算目标单词的条件概率时,通常只考虑长度为n的序列(距离目标单词大于n的单词被认为没有统计依赖):




接下来需要考虑的问题是:如果一个单词序列没有在训练集中出现过,它的概率是否应该为零?显然,概率设为零是不可取的,因为这个序列极有可能出现。为了解决这一问题,[5]中提出了一种平滑处理方案:




其中






。这里n-gram为3-gram.
n-gram模型的单词序列长度,即n通常小于3(基于计算效率的考虑),并且没有考虑单词之间的语义信息。这是Neural Probabilistic Language Model的动机。

2、神经网络模型
学习目标:得到模型f,使得


,并且




这个模型包括两部分:
A,一个从词汇表V到实数向量空间的映射C。通过这个映射得到每个单词的向量表示。因此C实际上是一个|V|×m的矩阵(m是单词向量的维数);
B,以单词向量作为自变量的概率方程g:以单词向量序列(C(w_{t-n+1}),..., C(w_{t-1}))作为输入,输出序列的后续单词w_t的条件概率。方程g的输出也是一个向量,向量的第i维对应单词表中第i个单词的条件概率(如图1所示):








方程f是C和g的组合。
映射层C的参数数目为|V|×m的矩阵;方程g可以通过前馈网络或者其他的参数方程来表示,假设这个参数方程的参数集合为ω,则整体的参数集合为θ=(C,ω)。
模型的训练过程就是寻找参数集合θ使得带惩罚项的对数似然概率(penalized log-likelihood)最大:




其中R(θ)是正则化项(regularization term)。在上述模型中,自由参数量与词汇表大小线性相关,也与单词序列长度n线性相关。
如图1中所示,通常在映射C和输出g之间还有一个隐藏层,tanh(the ordinary hyperbolic tangent hidden layer)。综上所述,神经网络计算概率的方式为:




其中

。根据该式,自由参数的数目为(具体计算方法见[1]中第7页):




其中h是隐藏层的单元数目。
在模型训练过程中,使用随机梯度上升算法来更新参数集:




上述过程可以归结为三步:
A、将单词映射到m维的特征空间中;
B、使用单词序列的对应向量集合作为输入表达单词序列的联合概率方程;
C、同步学习单词的特征向量和概率函数。
注意:在本文中作者仍然是以学习语言生成模型为主要目标的,但在word2vec中,作者以获得理想的单词向量为目标。

3、A Scalable Hierarchical Distributed Language Model
上文描述的神经网络模型训练时非常费时,而通过拓扑结构表示词汇表,可以节约训练时间。该模型在【2】中被称之为the hierachical log-bilinear model(HLBL)
首先,单词被表示为平衡二叉树的叶子。每一个单词可以被从根节点到叶节点的唯一路径表示。这个路径本身可以被表示为一个二进制串,二进制串中的第i位为1时(d_i=1)表示搜索当前节点的左子结点。
然后,使用单词向量作为输入预测单词路径下一步方向的概率。单词的条件概率表示为整体路径的概率预测:





在word2vec中,作者以单词的向量表示为目标,通过去掉隐藏层,使用霍夫曼树等手段改进神经网络,开启了词语表示的新片展。详见博文《word2vec原理概述》。

4、参考文献
【1】A Neural Probabilistic Language Model, Yoshua Bengio等
【2】A Scalable Hierarchical Distributed Language Model, Andriy Mnih and Geoffrey Hinton
【3】Efficient Estimation of Word Representations in Vector Space, Tomas Mikolov等
【4】Distributed Representations of Words and Phrases and their Compositionality, Tomas Mikolov等
【5】Interpolated estimation of Markov source parameters from sparse data, Jelinek and Mercer
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: