推广 热搜: 公司  快速  上海  中国  未来    企业  政策  教师  系统 

NN[神经网络]中embedding的dense和sparse是什么意思?

   日期:2024-10-31     作者:caijiyuan    caijiyuan   评论:0    移动:http://keant.xrbh.cn/news/10646.html
核心提示:NN[神经网络]中embedding的dense和sparse是什么意思?  dense 表示稠密,在embedding中的dense时:    假设我们有这样一个

NN[神经网络]中embedding的dense和sparse是什么意思?

NN[神经网络]中embedding的dense和sparse是什么意思?

  dense 表示稠密,在embedding中的dense时:

    假设我们有这样一个句子: “北京是北京”,我们将其数值化表示为:

dense embedding,需要你讲它转换成onehot表示:

假设embedding对输出size=3,也就是hidden层的size=3*3;

eg:   

那么dense layer的计算过程就是一个矩阵相乘:

....

 整个流程展开来看就是:

你会看到这个过程: 1. 计算量非常巨大 ,这个回想一下矩阵乘法的复杂度就知道O((N*M)*(M*M)), 2.而且对于输入来说,转换的矩阵也很巨大(就是vocabulary有多大,这个列就有多大,你想想当vocabulary=500w时,这个输入input的表示矩阵大不大).

那么有没有方法,优化一下这两个问题(计算量大,输入尺寸也大)呢?

 sparse : 表示稀疏,在embedding中的dense时:

   同样假设我们有这样一个句子: “北京是北京”,我们将其数值化表示为:

 sparse embedding,不需要你转换乘onehot编码格式:

  那么,它是如何计算的呢?

      假设embedding对输出size=3,也就是hidden层的size=3*3;

     eg:   

那么sparse layer的计算过程的“矩阵相乘”(相当于一个查表的过程,所以有lookup_table这个表述):

这个计算过程为:

-> 

  ->

->

最终得到:

 你会看到,dense和sparse结果都一样,但是这个计算量变成列O((N*1)*(M*M)) 减少列一个量级. 而且输入input的vec也极大的缩小了,毕竟存储的是index嘛.

那么会到我们开始的问题,NN[神经网络]中embedding的dense和sparse是什么意思?

    结合上面的例子的计算过程,dense embedding 就是要求输入必须为onehot,sparse embedding 不需要.

本文地址:http://lianchengexpo.xrbh.cn/news/10646.html    迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多
 
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号