6

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

对于word2vec,假设有语料句

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

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

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

现在,FastText 说它使用子词来获取向量,所以肯定是使用 n gram 子词,例如 n=3,

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

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

=> 术语WcWt都在函数中使用

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

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

.

.

请清楚地解释 FastText 学习过程是如何进行的?

.

.

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

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

4

2 回答 2

7

任何上下文词都有它的候选输入向量,它是由它的全词标记和它的所有字符-n-gram 组合而成的。因此,如果上下文词是“学校”,并且您使用的是 3-4 个字符的 n-gram,则训练中的输入向量是 的全词向量school所有 n-gram 向量的组合['sch', 'cho', 'hoo', 'ool', 'scho', 'choo', 'hool']。)

当通过训练调整该候选向量时,调整所有组成向量。(这有点像在 word2vec CBOW 模式中,单个平均上下文输入向量的所有在评估和改进预测单个目标输出词的能力时一起调整。)

结果,那些碰巧对许多相似词(例如,常见词根或前缀/后缀)产生有意义提示的 n-gram 被定位在它们赋予该含义的位置。(其他 n-gram 可能仍然主要是低幅度噪声,因为它们出现的位置几乎没有有意义的模式。)

训练后,还通过组合全词向量和所有 n-gram 来构造单个词汇表中单词的报告向量。

然后,当你也遇到一个词汇表外的单词时,如果它与形态相似的训练中单词共享一些或许多 n-gram,它将得到一个相似的计算向量——因此总比​​没有好,在猜测那个词的向量应该是什么。(并且在小错别字或已知单词的轻微变体的情况下,合成向量可能相当不错。)

于 2018-04-14T03:22:30.700 回答
0

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

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

于 2018-04-13T19:06:31.187 回答