首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

word2vec参数学习解释(一)

本周主要阅读了的的第一部分,主要介绍了连续词袋模型中一个单词上下文的情况。下周将介绍多个单词模型、模型以及一些优化方法等。敬请期待~

摘要

等人提出的模型和应用在最近几年吸引了大量的关注。学习到的词向量表示中包含了许多语义信息,在多种任务中都非常有用。正如许多研究人员希望使用或者相似的技术进行实验,作者发现缺少资料能够详细完整地介绍词嵌入模型的参数学习过程,从而使得许多非神经网络的专家难以理解这些模型的工作机制。

本笔记提供了模型的参数更新等式的推导和解释,包括:原始的(,连续词袋)模型,和()模型,以及比较先进的优化技术,包括层次和负抽样等。此外,本文还提供了梯度等式的直观解释以及数学推导,

连续词袋模型

一个单词的上下文

图1 展示了在简化的上下文定义中的神经网络模型。在我们的设置中,词典大小

,隐层的大小是,连接层上的单元是全连接。输入是编码的向量:针对一个给定的输入上下文单词,个单元中有且仅有一个值为,其它所有单元均为。

输入层和输出层之间的权重可以表示为一个的矩阵。中的每一行都是输入层相关单词的维的向量表示,一般地,的行为。给定一个上下文(一个单词),假设,并且对于所有,均有,有:

公式

在本质上是将的第行复制到。是输入单词的向量表示。这就意味着隐层单元的链接(激活)函数是简单的线性函数(例如,直接将输入层加权的输入和传递给下一层)。

从隐层到输出层,有一个不同的权重矩阵,是一个的矩阵。通过使用这些矩阵,我们可以计算出词汇中每个单词的评分:

公式

其中,表示矩阵的第列。然后,我们可以使用,一个对数线性分类模型来获得单词的后验分布,该分布为一个多项式分布:

公式

其中,为输出层的第个单元的输出。将公式和替换到公式中,可以获得:

公式

注意:和是单词的两种表示。是的行,是输入到隐层的权重矩阵,而是的列,是隐层到输出层的矩阵。在接下来的分析中,我们将称为的输入向量,将称为单词的输出向量

在这里,我们说到“更近”或者“更远”的时候,表示的是使用内积而不是欧氏距离度量方法。

隐层到输出层权重的更新公式

接下来让我们一起来推导下该模型的权重更新公式。尽管真实计算是不切实际的(接下来会解释),我们只是希望通过推导来获得对没有使用任何技巧的原始模型有个初步的认识,可以查阅之前的博客,来了解

反向传播

的基础知识。

针对一个训练样本的训练目标是最大化公式,在给定输入上下文单词和权重的情况下,获得真实输出单词(将其在输出层的索引表示为)的条件概率为:

公式

其中,是我们的损失函数(我们希望最小化),是真实输出单词在输出层的索引。注意:该损失函数可以看做是两个概率分布之间的交叉熵度量的特例。

接下来,让我们推导隐层和输出层之间权重的更新公式。针对第个单元的网络输入,我们可以得到的导数为:

公式

其中,

,只有在第个单元是真实的输出单词时,,否则的话,。注意:该导数知识输出层的预测误差。

接下来,我们获得在上的导数来获得隐层到输出层的梯度:

公式

因此,通过使用随机梯度下降,我们可以获得隐层到输出层权重的更新公式:

公式

或者,对于

,我们有:

公式

其中,为学习率。

,为隐层的第个单元;是的输出向量。注意:该更新公式表明:我们必须遍历词典中的每个可能的单词,检查它的输出概率,然后将其与期望的输出(或)进行比较。如果(过高估计),我们就可以从中减去隐层向量的一部分(例如,),从而使得远离;如果(过低估计,只有在时可能出现,例如),那么就向中增加一些,从的那个人使得更接近于。如果非常接近于,那么根据更新公式,只会对权重进行非常小的调整。再次注意:(输入向量)和(输出向量)是单词的两种不同的向量表示形式。

输入层到隐层权重的更新公式

获得了的更新公式之后,我们接下来对的更新公式进行推导。针对隐层的输出,我们对进行求导,有:

公式

其中,是隐层的第个输出单元,的定义在公式中,是输出层的第个单元的网络输入,

是输出层中第个单词的预测误差。,是一个维向量,为词典中所有单词的输出向量和,通过它们的预测误差进行加权。

接下来,我们应该在上求的导数。首先,回忆一下:隐层在输出层的值上进行了一个线性计算,对公式中的向量标识进行拓展,有:

公式

现在,我们可以针对中的每一个元素对进行求导,得到:

公式

这就等价于和的张量积,例如:

公式

通过这里,我们获得了一个的矩阵。由于中只有一个元素为非,因此中只有一行为非,并且该列的值为,是一个维的向量。的更新公式计算如下:

公式

其中,是的一行,是这个唯一的上下文单词的“输入向量”,也是中导数为非值的唯一行。在本次迭代之后,的其他行将会保持不变,因为它们的导数为。

直觉上说来,由于向量是词典中所有单词的输出向量的和,并且通过它们的预测误差进行加权,我们可以将公式看做是向上下文单词的输入向量中增加词典中每个输出向量的一个部分。如果在输出层中,一个单词是输出单词的概率大于真实值(),那么上下文单词的输入向量将会倾向于向的输出向量远离;相反,如果是输出单词的概率小于真实值(),那么输入向量将会倾向于移向更接近的输出向量。如果的概率正好精确地等于预测值,那么它对的输入向量移动基本上没有什么影响。输入向量的移动是词典中所有向量的预测误差所决定的。预测误差值越大,那么该单词对上下文单词输入向量的移动影响越大。

我们通过针对训练预料中生成的上下文目标词语对进行遍历,对模型参数进行迭代更新,向量的影响将会累计。可以想象:一个单词)输出向量通过共现邻居的输入向量进行反复拖拽,类似于的向量和它邻居向量之间的物理连线。同样地,一个输入向量也可以被看做被许多输出向量进行拖拽。这种解释也可以理解为重力或力导向的图布局。每个想象连线的均衡长度与相关单词对的共现度以及学习率相关。在多次迭代之后,输入向量和输出向量的相对位置将会最终稳定起来。

参考文献

[1] Mikolov, T., Chen, K., Corrado, G., and Dean, J. (2013a). E cient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180813G02BY900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券