首页 > 解决方案 > FastText 窗口大小

问题描述

我目前正在研究 fastText 无监督学习。我想澄清一些出现在 fastText 文档中的上下文窗口。

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

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

例如。,

默认窗口大小 5。在这里,在上面的示例中,我有标记计数小于窗口大小的行。如果窗口大小大于文档长度会发生什么?

标签: fasttext

解决方案


FastText(和 word2vec 等相关算法)将尽可能多地使用上下文窗口。

例如,假设窗口大小为 5,输入标记:

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

当使用“中心”词进行训练时'Senior',该算法将准备好在任一方向咨询多达 5 个词。

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

(不会像空白邻居一样使用“插入值”,也不会出现任何“渗透”到相邻文本。)

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

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

推荐阅读