美文网首页
word2vec [4] fastText

word2vec [4] fastText

作者: 数据小新手 | 来源:发表于2019-06-15 17:05 被阅读0次

    fastText

    Fasttext 是一个具有rank constraint 的线性模型,并且可以快速进行训练的模型,可以在几分钟训练数十亿单词的向量。

    Word2vec 的方法对于few examples 泛化能力较差

    1.模型架构

    image-20190615164644019.png

    词的表达平均成文本的表示,然后传入线性分类器中,架构类似于CBOW,但是中间词被label代替。使用softmax 函数来计算每个类别的概率。在Fig1中 xn是normalized 之后的bag of features of n-th document,yn是label.

    1.1 hierarchical softmax

    和word2vec 类似,能够将训练的时间复杂度降低。

    1.2 n-gram features

    使用 bag of n-grams 作为additional features 来批货一些额外的信息。 使用hash trick 来mapping n-grams.

    fastText 相比于word2vec的主要改进

    word2vec把语料库中的每个单词当成原子的,它会为每个单词生成一个向量。这忽略了单词内部的形态特征,比如:“apple” 和“apples”,“达观数据”和“达观”,这两个例子中,两个单词都有较多公共字符,即它们的内部形态类似,但是在传统的word2vec中,这种单词内部形态信息因为它们被转换成不同的id丢失了。

    为了克服这个问题,fastText使用了字符级别的n-grams来表示一个单词。对于单词“apple”,假设n的取值为3,则它的trigram有

    “<ap”, “app”, “ppl”, “ple”, “le>”

    其中,<表示前缀,>表示后缀。于是,我们可以用这些trigram来表示“apple”这个单词,进一步,我们可以用这5个trigram的向量叠加来表示“apple”的词向量。

    这带来两点好处

    \1. 对于低频词生成的词向量效果会更好。因为它们的n-gram可以和其它词共享。

    \2. 对于训练词库之外的单词,仍然可以构建它们的词向量。我们可以叠加它们的字符级n-gram向量。

    2.核心思想

    将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。这中间涉及到两个技巧:字符级n-gram特征的引入以及分层Softmax分类。

    Reference:

    Bag of Tricks for Efficient Text Classification

    相关文章

      网友评论

          本文标题:word2vec [4] fastText

          本文链接:https://www.haomeiwen.com/subject/kinbfctx.html