FastText window 大小

FastText window size

我目前正在研究 fastText 无监督学习。我想澄清 fastText 文档中存在的上下文 window。

在 python https://github.com/facebookresearch/fastText/tree/master/python 用于训练 fastText 模型的 fasttext 库的描述中有不同的参数,其中一个参数是,

我的输入文件包含带有 2 - 3 个标记的行。

例如,

默认 window 大小 5。这里,在上面的示例中,我有标记数小于 window 大小的行。如果 window 大小大于文档长度会怎样?

FastText(以及 word2vec 等相关算法)将尽可能多地使用上下文 window。

例如,假设 window 大小为 5 并且输入标记:

['Senior', 'Database', 'Administrator']

当使用 'center' 词 'Senior' 进行训练时,算法将准备好在任一方向上咨询最多 5 个词。

但是,'Senior'之前有 0 个词,'Senior'之后只有 2 个词,所以只有后面的 2 个词会被视为邻居。

(没有 'plug values' 将被用作空白邻居,也不会出现任何 'bleed-through' 到相邻文本。)

另外两个要记住的相关注意事项:

  • 这些算法确实需要相邻词才能进行任何训练,因此任何只有一个词的文本基本上都是无操作。 (如果碰巧有一个词只单独出现过,你可能仍然会在训练结束时看到它的一个向量,但在我熟悉的实现中,它只是一个随机初始化的起始向量,完全未经实际使用示例训练。)
  • 大多数实现将通过不*始终完全使用您声明的 window-size 来模拟相邻词的加权,而是,对于每次传递特定的目标中心词,选择 random window-size,从 1 到您选择的 window-size。通过这种方式,近邻总是训练的一部分,而更远的词更经常被跳过。