vc++画线段的函数_word2vec的损失函数

虽然word2vec常被当作无监督,但是其训练过程跟有监督基本差不多,原始的word2vec暂时不考虑负采样和huffman tree,其损失函数就是多元交叉熵:多元交叉熵的公式:以传统机器学习来说,这里的Zj就是某个类别的预测概率,yj=0或者1,我们假设有3个类别,模型对样本A的预测结果为[0.2,0.5,0.3],A的实际标签为[0,1,0],则仅仅计算中间为1的那一项(其实就是样本对应的真...
摘要由CSDN通过智能技术生成

虽然word2vec常被当作无监督,但是其训练过程跟有监督基本差不多,原始的word2vec暂时不考虑负采样和huffman tree,其损失函数就是多元交叉熵:

502e1041d017894c915658cb88ed15c3.png

多元交叉熵的公式:

d4c9c5b779758e0894ab4b7bc619016c.png

以传统机器学习来说,这里的Zj就是某个类别的预测概率,yj=0或者1,我们假设有3个类别,模型对样本A的预测结果为[0.2,0.5,0.3],A的实际标签为[0,1,0],则仅仅计算中间为1的那一项(其实就是样本对应的真实类别单独计算一下损失,每一个样本计算的过程中对于单输出问题都是计算一次就行)

以cbow为例,

0fd9e47a304168debb3b85d9bcd349a7.png

简单理解就是求平均(也可以是求和,gensim里的设计是两种方式都进行了实现)之后的结果【0.23,0.03,0.62,0.12......】经过输出层映射为一个v维的一维矩阵(v是词的数量)要和真实的标签【0,0,0,1,0,0,0.。。】尽量接近;这里ui表示的是输出层,vc表示的是平均之后的向量,他们的乘积加上softmax函数就是word2vec的模型的最终预测结果;

因此可以认为是一个超级多分类模型,类别的数量就是词(去重)的数量;

app2vec的加权体现在这个地方,根据不同的不同的app的gap来对不同的样本进行加权,具体可见我写的app2vec的论文分析在自然语言处理的专栏里;

然后是采用了huffman tree对其进行优化(类别太多用原始的多元交叉熵算死)

huffman tree是一种非线性的数据结构,其建树流程如下:

5cfd3969a61d9ad2ee1ca8003fa51340.png

具体的例子如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值