PV-DBOW (doc2vec) 是如何工作的?

数据挖掘 机器学习 nlp
2021-09-26 06:24:52

来自官方 doc2vec 论文“Distributed Representations of Sentences and Documents”对 PV-DBOW 的解释如下:

另一种方法是忽略输入中的上下文词,但强制模型预测从输出中的段落中随机采样的词。实际上,这意味着在随机梯度下降的每次迭代中,我们采样一个文本窗口,然后从文本窗口中采样一个随机单词,并在给定段落向量的情况下形成一个分类任务。

根据论文,不存储词向量,据说 PV-DBOW 的工作方式类似于 word2vec 中的 skip gram。

在word2vec 参数学习中解释了 Skip-gram 在skip gram模型中,词向量被映射到隐藏层。执行此映射的矩阵在训练期间更新。在 PV-DBOW 中,隐藏层的维度应该是一个段落向量的维度。当我想将采样示例的词向量与段落向量相乘时,它们应该具有相同的大小。单词的原始表示是大小(词汇大小 x 1)。执行哪个映射以在隐藏层中获得正确的大小(段落维度 x 1)。当没有存储词向量时,这个映射是如何进行的呢?我假设单词和段落表示在隐藏层中应该具有相同的大小,因为公式26

2个回答

我没有读过你链接的论文,但我听了 Richard Socher 的讲义

因此,基本上该映射矩阵称为权重矩阵。有两个权重矩阵W1W2用于输入和输出映射。因此,对于每个单词,两个矩阵中的向量都通过反向传播进行更新。

为了回答您的问题,单词由大小为Vx1(V 是词汇量)的单热稀疏向量表示,其中一个位置的值为 1。W1并且当这个向量与大小为 的权重矩阵相乘时,在隐藏层中使用NxV相应大小的嵌入向量Nx1(N 是所需嵌入向量的大小)。

文档没有 one-hot 表示的向量。所以,基本上有一个D大小的文档矩阵Nxd(d 是文档数),其中每一列代表一个文档。换句话说,矩阵W1W2需要在数学步骤中使用 one-hot 表示,而不是将每列中的每个单词表示为文档矩阵D

权重矩阵 W1 用于输入(文档)和权重矩阵 W2对于输出(单词)不需要具有相同的维度。说你有 文件和 话,那么 W1 将是维度 ×HW2 将是维度 H×. H是嵌入的维度。换句话说,只要神经网络的输入和输出共享相同的嵌入维度,那么模型就可以工作。