当前位置:   article > 正文

深度学习第20天_项目1_fasttext原理_softmax 的时间复杂度

softmax 的时间复杂度

fastText原理剖析

  1. fastText的模型架构

    fastText的架构有三层:输入层,隐含层,输出层

    输入层:是对文档embedding之后的向量,包含又N-gram特征
    隐藏层:是对输入数据的求和平均
    输出层:是文档对应标签

    如下图所示:
    在这里插入图片描述
    (1)N-gram的理解

    a. bag of word(词袋)
    在这里插入图片描述
    bag of word 又称为bow,称为词袋。是一种只统计词频的手段。

    b. N-gram模型

    但在很多情况下,词袋模型是不满足我们的需求的

    例如:我爱她 和 她爱我 在词袋模型下,概率完全相同,但其含义差别很大
    
    • 1

    为了解决这个问题,就有了N-gram模型,它不仅考虑词频,还考虑当前词前面的词语,比如我爱 她爱。

    N-gram模型的描述是:第n个词出现与前n-1个词相关。而与其他任何词不相关

    例如:I love deep learning这个句子,在n=2的情况下,可以表示为{i love},{love deep},{deep learning},在n=3的情况下,可以表示为{I love deep},{love deep learning}。
    
    • 1

    在n=2的情况下,这个模型被称为Bi-gram(二元n-gram模型)
    在n=3的情况下,这个模型被称为Tri-gram(三元n-gram模型)

    所以在fasttext的输入层,不仅有分词之后的词语,还包含有N-gram的组合词语一起作为输入

    (2)fastText模型中的层次化softmax

    为了提高效率,在fastText中计算分类标签的概率的时候,不再是使用传统的softmax来进行多分类的计算,而是使用哈夫曼树,使用层次化的softmax来进行概率的计算
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    层次化softmax的好处:传统的softmax的时间复杂度为L(labels的数量),但是使用层次化softmax之后的时间复杂度为log(L),从而在多分类的场景提高了效率

    (3)负采样(negative sampling)

    negative sampling,即每次从除当前label外的其他label中选择几个作为负样本,作为出现负样本的概率加到损失函数中
    好处:

    1.提高训练速度
    2.改进效果,增加部分负样本,能够模拟真实场景下的噪声情况,能够让模型的稳健性更强
    
    • 1
    • 2

    例如:
    假设句子1对应的类别有label1,label2,label3,label4,label5这5个类别,假设句子1属于label2,如果按照之前的方法,在反向传播时需要对5个类别的所有参数进行求导更新,这样计算量很大。而使用负采样的话,就可以只更新将句子1判定为label2的参数和不判定为label2的参数,这样计算量不仅小了,而且也可以真实情况下不仅仅只有5种label的情况

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/242869
推荐阅读
相关标签
  

闽ICP备14008679号