【问题标题】:Fasttext algorithm use only word and subword? or sentences too?Fasttext算法仅使用单词和子词?还是句子?
【发布时间】:2018-09-23 11:42:31
【问题描述】:

如果有任何学习方法(或更可能的学习过程)的好例子,我也阅读了论文并在谷歌上搜索

对于word2vec,假设有语料句

我每天早上带着妈妈包好的饭盒去学校

然后在窗口大小为 2 的情况下,它会尝试通过使用周围的单词来获取 'school' 的向量

['去','去','与','午餐']

现在FastText说是用subword来获取向量,所以肯定是用ngram subword,比如n=3,

['sc', 'sch', 'cho', 'hoo', 'ool', 'school']

到这里,我明白了。 但尚不清楚其他词是否被用于“学校”的学习。我只能猜测其他周围的词也像 word2vec 一样被使用,因为论文提到了

=> 术语 WcWt 都用在函数中

其中 Wc 是上下文词,Wt 是序列 t 处的词。

但是,FastText 是如何学习单词向量的,目前还不清楚。

.

.

请清楚说明 FastText 学习过程是如何进行的?

.

.

更准确地说,我想知道 FastText 是否也遵循与 Word2Vec 相同的过程,同时它还学习了 n-gram 特征子词。还是只使用 n-gram 特征子词?

它如何在初始时对子词进行矢量化?等等

【问题讨论】:

    标签: nlp vectorization word2vec word-embedding fasttext


    【解决方案1】:

    fastText 网站states 至少有 2 个已实现的算法确实在句子中使用了周围的词。

    此外,原始的 fastText 实现是 open source,因此您可以在探索代码时检查它的工作原理。

    【讨论】:

      【解决方案2】:

      任何上下文词都有其候选输入向量从其全文令牌和所有字符n-gram的组合组装。因此,如果上下文词是“学校”,并且您使用3-4个字符n-gram,则培训输入向量是school和 em的全文矢量的组合>所有N-GRAM矢量用于['sch', 'cho', 'hoo', 'ool', 'scho', 'choo', 'hool']。)

      当通过训练调整候选向量时,调整组成载体的所有。 (这是一点类似于Word2Vec Cow,模式,单个平均上下文输入向量的所有字 EM>在评估和改进它们的预测单个目标输出字的能力时。)

      因此,遇到许多类似单词的有意义提示的那些n-grams - 例如,常见的字根或前缀/后缀 - 得到它们的概括意义。 (其他n-grams可能仍然是低幅度的噪声,因为它们出现的地方很少有意义。)

      在训练之后,通过组合全文矢量和所有n克来构建各个词汇形词的报告的载体。

      然后,当您还遇到一个失载的单词时,它在范围内,它在形态上相似的训练单词分享了一些或多个n-gram,它将得到类似的计算载体 - 因此比什么都没有,在猜测这个词的矢量应该是什么。 (在小型错字或已知单词的轻微变体的情况下,合成的载体可能相当不错。)

      【讨论】:

      • 你再次。你回答了我想知道的。谢谢你的解释。如果我有进一步的问题,我会问更多。 span>
      • 通过简要解释,您正在从单词字母(这是Word2VEC)分开说字 - 次字列车,并将向量组合在一起。我理解正确吗?或者他们在同一个矢量空间中训练,只需在培训时使用两种不同的方法? span>
      • 为了计算任何单个单词的向量,FastText模型查看其整个精确单词的已知项目,以及其所有子字(字符n-gram) - 并组合两个以使其有效那个词的矢量。在培训期间,这意味着整个词和所有N-GRAM,正在为每个训练示例的NN正向传播预测步骤贡献。然后,当应用BackPropagated校正时,它会影响整个单词和子字。所以没有什么是“训练”。 span>
      猜你喜欢
      • 2019-02-22
      • 2018-01-21
      • 2016-07-18
      • 2020-04-25
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      相关资源
      最近更新 更多