doc2vec:PV-DBOW是如何实现的

саш*_*аша 6 nlp machine-learning neural-network gensim word2vec

我知道在python(gensim)中已经存在PV-DBOW(段落向量)的实现.但我很想知道如何自己实现它.PV-DBOW 官方文件的解释如下:

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

根据该论文,不存储单词向量,并且据说PV-DBOW的工作类似于word2vec中的跳过克.

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

Ced*_*ias 5

是的,可以使用word2vec跳过语法模型轻松实现PV-DBOW。

说您有以下句子:

孩子们在公园跑步

跳过语法模型试图在固定窗口的上下文中预测周围的单词以学习单词向量。如果窗口大小为2,则目标如下:

word ->  context words to predict
--------------------------------
Children -> (are, running)
are -> (children, running, in)
running -> (children, are, in, the)
in -> (are, running, the, park)
the -> (running, in, park)
park -> (in, the)
Run Code Online (Sandbox Code Playgroud)

现在,您可以word -> context to predict像这样简单地修改如何将数据馈送到您的skip-gram实现:

word ->  context words to predict
--------------------------------
PAR#33 -> (Children, are, running, in, the, park)
Run Code Online (Sandbox Code Playgroud)

PAR#33,这只是您的模型(相同长度)的另一个词,实际上是代表整个段落的标记(句子)

这是一种带有“段落大小的窗口”的跳过语法模型