【问题标题】:Fast Text unsupervised model loss快速文本无监督模型损失
【发布时间】:2021-07-21 09:10:36
【问题描述】:

我想为我的 1GB 文本数据创建一个 fastText 无监督模型。我正在使用 fastText 命令行工具来实现模型训练过程。

./fasttext skipgram -input PlainText.txt -output FastText-PlainText- -dim 50 -epoch 50 

以上是我用于创建单词表示的几个参数。

Read 207M words
Number of words:  501986
Number of labels: 0
Progress:  97.5% words/sec/thread:   87224 lr:  0.001260 avg.loss:  0.089536 ETA:   0h 4m 9s

在这里,在 fastText 命令的输出中,我看到了这个 avg.loss,并且学习率已从默认值 (0.5) 降低到 0.001。不太明白,这个avg.loss是什么意思,为什么学习率会下降?

  1. 我是否应该增加 epoch 以使 fastText 更好地学习我的数据?
  2. 我可以使用任何损失函数来改善损失吗?如果是,什么样的损失函数会更好?
  3. 如何评估我的 fastText 模型的学习效果是好是坏?
  4. 只是出于兴趣,我可以使用 wordngram 让我的模型在无监督学习中更好地学习上下文吗?

【问题讨论】:

标签: word-embedding fasttext


【解决方案1】:

我无法深入回答您的所有问题,但我尝试给您一些建议。

  • 你可以更好地理解avg.loss,阅读this thread
  • 学习率根据lrUpdateRate选项更新(阅读this)。
  • 一般来说,增加 epoch 的数量可以改善学习。但是,正如您在 this paper 中看到的那样,最流行的语言模型有 10 到 100 个 epoch。
  • 默认损失函数是softmax。您还可以选择 hs(分层 softmax)或 ns。您可以在official tutorial 中阅读更多内容。
  • 如果您想了解更多关于 wswordngrams 参数的效果,可以阅读this answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-21
    • 2017-11-29
    • 2021-09-28
    • 1970-01-01
    • 2016-05-02
    • 2017-09-04
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多