【Paper Note】SENet论文——SE block详解
SENet这篇文章是CNN based,目前在推荐领域应用也很广泛,正好前几天看了MaskNet的论文,回头看这篇论文时候,发现SE block的作用和Mask block作用相似,顺便记录一下~
SENet论文中给出的结构如下,由于论文是在CNN模型中提出的SE block
基本的流程如下:
zc=Fsq(uc)=1H×W∑i=1H∑j=1Wuc(i,j)z_c=F_{sq}(u_c)=\frac{1}{H \times W}\sum_{i=1}^{H}{\sum_{j=1}^{W}{u_c(i,j)}}zc=Fsq(uc)=H×W1i=1∑Hj=1∑Wuc(i,j) s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))s=F_{ex}(z,W)=\sigma(g(z,W))=\sigma(W_2\delta(W_1z))s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
下面主要介绍应用在推荐系统中的调整版本:
Squeeze
主要作用:Global Information Embedding
在Squeeze阶段,我们对每个特征的Embedding向量进行数据压缩与信息汇总,如下:zi=Fsq(vi)=1k∑t=1kvitz_i=F_{sq}(v_i)=\frac{1}{k}\sum_{t=1}^{k}{v_i^t}zi=Fsq(vi)=k1t=1∑kvit
假设某个特征 是k维大小的Embedding,那么我们对Embedding里包含的k维数字求均值,得到能够代表这个特征汇总信息的数值 ,也就是说,把第i个特征的Embedding里的信息压缩到一个数值。
通过Squeeze阶段,对于每个特征 viv_ivi,都压缩成了单个数值 ziz_izi ,假设特征Embedding层有 fff个特征,就形成了Squeeze向量 ZZZ,向量大小为 fff 。
Excitation
capture feature-wise dependencies
S=Fex(Z,W)=δ(W2δ(W1Z))S=F_{ex}(Z,W)=\delta(W_2\delta(W_1Z))S=Fex(Z,W)=δ(W2δ(W1Z)) 每个特征以一个Bit来表征,通过MLP来进行交互,通过交互,得出结果:对于当前所有输入的特征,通过相互发生关联,来动态地判断哪些特征重要,哪些特征不重要。这个就和Mask block的目的想通了,都是通过构建一种运算方式,来动态的强化重要特征,弱化噪声或不重要的特征。
因为假设Embedding层有f个特征,那么我们需要保证输出f个权重值,而第二个MLP就是起到将大小映射到f个数值大小的作用。这样,经过两层MLP映射,就会产生f个权重数值,第i个数值对应第i个特征Embedding的权重 aia_iai 。我们把每个特征对应的权重 aia_iai ,再乘回到特征对应的Embedding里,就完成了对特征重要性的加权操作。 aia_iai 数值大,说明SENet判断这个特征在当前输入组合里比较重要, aia_iai 数值小,说明SENet判断这个特征在当前输入组合里没啥用。
所谓动态,指的是比如对于某个特征,在某个输入组合里可能是没用的,但是换一个输入组合,很可能是重要特征。它重要不重要,不是静态的,而是要根据当前输入,动态变化的。
【Paper Note】SENet论文——SE block详解相关推荐
- Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 论文翻译 + 网络详解
目录 1 3 4 5 是论文的翻译,如果看过论文也可以直接看关于网络的结构详解. Abstract 1. Introduction 3. Method 3.1 Overall Architicture ...
- ViT:视觉Transformer backbone网络ViT论文与代码详解
Visual Transformer Author:louwill Machine Learning Lab 今天开始Visual Transformer系列的第一篇文章,主题是Vision Tran ...
- SENet:Squeeze-and-Excitation Networks详解及Pytorch实现
文章目录 前言 一.什么是SENet Squeeze Excitation 二.完整SE block的Pytorch实现 总结 前言 计算机视觉研究领域的一个核心理论就是如何提高网络的表现力使其关注到 ...
- Face Paper:SeNet论文详解
github: https://github.com/hujie-frank/SENet 我是 Momenta 的高级研发工程师胡杰,很高兴可以和大家分享我们的 SENet.借助我们提出的 SENet ...
- oc开发之block详解
2019独角兽企业重金招聘Python工程师标准>>> BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行.标识 ...
- 从头开始构建,DeepMind新论文用伪代码详解Transformer
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨陈萍.小舟 来源丨机器之心 编辑丨极市平台 导读 与滚动 10 ...
- inode与block详解
创建一个文件后,会同时创建一个inode和一个block,inode存放的是文件的属性信息,但是不包括文件名,并存放所对应数据所在的block块的地址的指针:block存放文件的数据,每个block最 ...
- ssd网络结构_SSD论文与代码详解
1.前言 目标检测领域,从FasterRCNN的实战,Anchor,从loss到全局解析到YOLO V1,YOLO V2,YOLO V3的网络讲解,YOLO V3的anchor和loss都已经讲完了. ...
- linux存储--inode与block详解(八)
Linux下的格式化命令是mkfs,mkfs在格式化的时候需要制定分区以及文件系统类型.该命令其实就是把我们的连续的磁盘空间进行划分和管理.我在我的机器上执行了一下,输出如下: # mkfs -t e ...
最新文章
- python常用类库_Python常用库
- HDU4143-A Simple Question数论题解
- 机器学习笔记:auto encoder
- 如何保证战略落地_战略如何规划落地?值得借鉴
- vim进阶之202007命令记录
- [转]Bing Maps Tile System 学习
- ArcGIS Pro快速汉化方法-汉化GP
- python 根据字符串语句进行操作再造函数(evec和eval方法)
- 中国非制式爆炸物薄膜传感器研究取得进展
- 计算机组成原理课后答案(唐朔飞第三版) 第四章
- Java实现文件或文件夹的复制到指定目录
- CSDN没有C币如何下载文章?
- 哥德巴赫猜想—初等数论课后习题
- 大地测量学白塞尔大地主题解算
- 记账本记录日常收支,使用图表查看项目
- oracle安装以及访问【3】在CentOS7中安装oracle11g
- IDEA从零到精通(21)之使用Maven clean发生错误Process terminated
- 大数据与云计算——牛客网大数据面试问题总结
- 联想—拯救者—R9000P触控板无反应
- mysql 正则表达式区间,MySQL——使用正则表达式查询