【问题标题】:Construct word2vec (CBOW) training data from beginning of sentence从句子的开头构造 word2vec (CBOW) 训练数据
【发布时间】:2020-12-24 03:06:43
【问题描述】:

在为 CBOW 构建训练数据时,Mikolov et al. 建议使用上下文窗口中心的单词。在句子的开头/结尾捕获单词的“最佳”方法是什么(我把最好的放在引号中,因为我确信这取决于任务)。我在网上看到的实现是这样的:

for i in range(2, len(raw_text) - 2):
    context = [raw_text[i - 2], raw_text[i - 1],
               raw_text[i + 1], raw_text[i + 2]]

我发现这种方法会产生两个问题。

  • 问题 1: 该方法将不平衡的焦点放在句子的中间。例如,句子的第一个词只能出现在 1 个上下文窗口中,并且永远不会作为目标词出现。将此与句子中的第 4 个单词进行比较,该单词将出现在 4 个上下文窗口中,并且也是目标词。这将是一个问题,因为某些单词经常出现在句子的开头(即然而,因此等)。这种方法不会尽量减少它们的使用吗?
  • 问题2:完全忽略4个或更少单词的句子,将短句的重要性降到最低。例如,一个 5 个单词的句子只能贡献一个训练样本,而一个长度为 8 的句子将贡献 4 个训练样本。

谁能提供关于这些问题对结果的影响程度或构建训练数据的任何替代方法的见解? (我考虑让第一个词作为目标词,并使用接下来的 N 个词作为上下文,但这会产生它自己的问题)。

关于 Stack Exchange 的相关问题: Construct word2vec (CBOW) training data from beginning of sentence

【问题讨论】:

    标签: neural-network nlp text-mining word2vec word-embedding


    【解决方案1】:

    我见过的所有实际实现,回到 Mikolov 的原始 word2vec.c,倾向于让每个单词轮流成为“中心目标单词”,但将上下文窗口截断为可用的任何内容。

    因此,例如,使用window=5(两侧),并且“中心词”作为文本的第一个词,仅使用后面的 5 个词。如果中心词是第 2 个词,则使用前 1 词和后 5 词。

    这很容易实现并且在实践中运行良好。

    在 CBOW 模式下,每个中心词仍然是相同数量的神经网络前向传播(大致是预测尝试)的一部分,尽管“接近末端”的词作为输入参与的频率略低一些。但即便如此,它们也会受到越来越大的更新 - 例如,当它们是 5 个单词中的 1 个,而不是 10 个单词中的 1 个时。

    (在 SG 模式下,近端词的输入和目标词的频率略低。)

    您的示例代码 - 显示没有完整上下文窗口的单词永远不会成为中心目标 - 不是我见过的东西,我只希望在错误/不复杂的实现中选择这种选择。

    因此,在文本长度超过 1 个字的常见实现中,您的问题都不会出现。 (即使是 2 个单词的文本,第 1 个单词将使用仅第 2 个的窗口进行预测,而第 2 个将使用仅第 1 个的窗口进行预测。)

    虽然实际的词采样确实会导致两端的词处理略有不同,但我很难想象这些词处理的细微差异会对结果产生任何影响,在 word2vec 的适当训练语料库中 - large &所有相关词都有大量对比示例。

    (也许在一些小型或综合语料库中会出现问题,其中一些罕见但重要的标记只出现在前导或结尾位置。但这与 word2vec 的通常用法相去甚远。)

    还请注意,虽然一些描述和 API 将 word2vec 训练的单元描述为“句子”,但该算法实际上只适用于“标记列表”。通常每个令牌列表将跨越段落或文档。有时他们会保留标点符号之类的东西,包括句末句号,作为伪词。跨越句子边界的窗口出血很少会造成伤害,而且通常会有所帮助,因为从一个句子引出并进入下一个句子的单词的共现可能与一个句子中单词的共现一样具有指导意义。因此,在多句训练文本的常见实践中,即使是更少的“近端”单词,其采样处理方式也可能与您想象的略有不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 2020-09-09
      • 2021-08-04
      • 2015-09-12
      • 2020-01-22
      • 1970-01-01
      相关资源
      最近更新 更多