• 机器学习——CBOW负采样(纯理解)


    刚从前一个坑里,勉强爬出来,又掘开另一坑
    看了很多文章+B站up主。。。糊里糊涂
    但是我发觉,对于不理解的东西,要多看不同up主写的知识分享
    书读百遍,其意自现,我是不相信的,容易钻牛角尖
    但是,可以多看看一千个哈姆雷特的想法,想法积累多了,一定有那么一刻,让人灵光乍现!!!
    拍脑顿悟:原来如此!
    给我顿悟的是CSDN的一篇文章Word2Vec详解-公式推导以及代码
    在这里插入图片描述

    CSDN啊,听大神一席话,如长夜得明灯啊!
    倒不是其他的文章和up主,没有解释过负采样,但这篇能让我顿悟的点在于:前后对比
    我根据它的话理解,应该就是,除了正确的待预测关键词是正样本,其他关键词都是负样本,而负采样方式,主要是对负样本里抽取一些负样本,来计算梯度,并进行反向传播的迭代

    这就要拿出之前的基于矩阵的CBOW模型来对比看,在基于矩阵参数的CBOW模型中,是采用多分类的极大似然估计法,来计算一个上下文与所有关键词的关系值的softmax函数值,并同时对所有关键词的u参数向量进行迭代

    假设词典D里有N个关键词,那么一个上下文就要对N个关键词进行它们的softmax值,并进行N个u向量的迭代

    如果整个语料库有成千上万个上亿个上下文需要预测,那么整个训练的计算量,那可是肥肠肥肠大!

    因此,为了降低训练的计算量,可以从N个关键词的计算入手,N个关键词都要计算sigmoid的概率值和迭代,难度太大,能不能只对部分的关键词进行计算和迭代呢?

    在这里插入图片描述

    当然可以!

    因此,这就是negative sampling负采样的算法目的:在N个关键词中,只抽取部分关键词来计算和迭代!

    首先讲讲抽取原理:负采样

    负采样原理

    负采样,就是从一堆负样本中,抽取一部分来进行训练

    那么如何抽取负样本呢?

    负样本抽取

    一般是采取 高频词汇,抽取概率更大 的原则。

    具体程序,可以另行设计,比如统计词频后,将所有关键词排列成一系列的数据范围,词频大的数据范围也比较大,词频小的数据范围也比较小(可设计程序实现)

    然后通过随机数落在哪个范围,就抽取哪个词的方式,来实现抽样

    负样本训练

    负样本训练,是将抽取到的负样本(不正确的关键词),和上下文对应的正样本(正确的待预测关键词),一起进行计算和迭代。

    首先,负样本训练,与【基于矩阵】的计算式是不一样的

    【基于矩阵】的计算式,是计算一个上下文与所有关键词的关系概率,再对所有关键词的参数向量u进行迭代

    在这里插入图片描述

    但如果我们进行负采样后,一个上下文,就只需要跟这些负样本和它的正样本进行计算和迭代!

    因此,所有的关键词累加符 Σ w ∈ D Σ_{w∈D} ΣwD,就改为正样本和负样本的关键词累加符 Σ w = w ∗ ∪ w ∈ w ~ Σ_{w=w^*∪{w∈\tilde{w}}} Σw=www~

    下方的 u u u迭代不再是针对所有每一个关键词的迭代,而是抽样得到的负样本+正样本的迭代。
    在这里插入图片描述

    待思考的问题

    负抽样,是对每一个上下文都分别进行一次负抽样吗?

    这样太麻烦了,不妨直接在一次正向+反向传播中,只进行一次负抽样

    因为负抽样只与关键词在语料中的词频相关,以及随机的运气,与上下文并无关系

    因此,在对所有上下文进行负采样的迭代计算时,可以用同一批负样本进行计算。

    至此,我觉得已经非常清晰了,并且参考了大神的word2vec中的数学原理详解
    应该就是这样的!!!
    负采样不是基于huffman树的hierarchicalsoftmax模型,而是基于输出层的参数是矩阵的基础CBOW模型,并对这个基础模型进行负采样的优化计算。
    待我以后有空,再试着用代码试试

  • 相关阅读:
    Python代码中的偏函数
    JMeter笔记16 | 性能参数配置及测试监听
    java学习笔记(2)
    深度学习自学笔记五:浅层神经网络(二)
    『现学现忘』Git分支 — 39、Git中分支与对象的关系
    atoi函数
    【C语言】const 关键字
    【mysql8 修改密码】Linux下MySQL 8.0 修改密码秘诀
    设计模式之中介者模式
    golang拾遗:实现一个不可复制类型
  • 原文地址:https://blog.csdn.net/weixin_50348308/article/details/134202438