RS——SENet


整体说明

  • SENet(Squeeze-and-Excitation Network)是一种用于图像识别等领域的神经网络架构,通过显式地建模通道之间的相互依赖关系,自适应调整特征通道的重要性 ,从而提高模型的性能
  • 在CV领域爆火后,近年来,SENet也被广泛应用于推荐系统
  • 一句话说明:SENet可以给与不同通道不同的权重,从而实现图片的重构(不同通道被乘以不同权重)

SENet整体结构

  • 整体结构图如下:
  • Squeeze层(\(\mathbf{F}_{sq}\)):
    • 输入 :特征图\(U \in \mathbb{R}^{H \times W \times C}\),其中\(H\)、\(W\)、\(C\)分别表示特征图的高度、宽度和通道数
    • 输出 :一个长度为\(C\)的向量\(z \in \mathbb{R}^{C}\)
    • 公式 :\(z_c = \mathbf{F}_{sq}(U_c)=\frac{1}{H\times W}\sum_{i=1}^{H}\sum_{j=1}^{W}U_c(i,j)\),即对每个通道的特征图进行全局平均池化,将二维的特征图压缩成一个实数,得到通道的全局统计信息
  • Excitation层((\(\mathbf{F}_{ex}\))):
    • 输入 :Squeeze层输出的向量\(z\)
    • 输出 :与输入特征图通道数相同的权重向量\(s \in \mathbb{R}^{C}\),用于表示每个通道的重要性
    • 公式 :\(s = \mathbf{F}_{ex}(z, W)= \sigma(g(z, W))=\sigma(W_2\delta(W_1z))\),其中\(\sigma\)是sigmoid函数,\(\delta\)是ReLU函数,\(W_1 \in \mathbb{R}^{\frac{C}{r} \times C}\)和\(W_2 \in \mathbb{R}^{C \times \frac{C}{r} }\)是两个全连接层的权重矩阵,\(r\)是一个缩减比例超参数,用于控制中间神经元的数量,减少模型复杂度
  • Scale层((\(\mathbf{F}_{scale}\))):也称为Reweight
    • 输入 :原始特征图\(U\)和Excitation层输出的权重向量\(s\)
    • 输出 :经过通道加权后的特征图\(\tilde{U} \in \mathbb{R}^{H \times W \times C}\)
    • 公式 :\(\tilde{U}_c = \mathbf{F}_{scale}(U_c, s_c)=s_c \cdot U_c\),即将权重向量\(s\)与原始特征图\(U\)的每个通道对应相乘,实现对特征图的自适应加权
  • 注:\(\mathbf{F}_{tr}\) 是一个转换操作,跟SENet没有直接关系,在 CV 里面就是一个普通的卷积神经网络

在CV领域的使用

  • 图像分类 :SENet可以嵌入到各种经典的图像分类网络中,如ResNet、Inception等,通过对特征通道的自适应加权 ,能够更好地捕捉图像中的重要特征抑制图片中的无关特征 ,从而提高分类准确率

  • 目标检测 :在目标检测任务中,SENet有助于模型更准确地定位和识别目标物体。它可以增强目标相关的特征通道 ,使模型对目标的细节和特征更加敏感,提高检测的精度和召回率

  • 语义分割 :对于语义分割任务,SENet能够帮助模型更好地理解图像中的语义信息,通过调整通道权重突出不同语义类别对应的特征 ,从而更精确地分割出不同的物体和区域

  • 在 Inception 模块中的嵌入方式

  • 在 Residual 模块中的嵌入方式


在推荐系统中的使用

  • 特征加权 :在推荐系统中,将用户和物品的特征类比为图像中的特征通道。SENet可以学习不同特征的重要性权重,对用户行为特征、物品属性特征等进行自适应加权,强调对推荐结果有重要影响的特征,提高推荐的准确性
    • 理解:可以将SENet应用于用户的嵌入向量、物品的嵌入向量或者深度神经网络中的隐藏层输出,SENet可以对不同特征给与不同的权重(这里的特征和CV中的通道类似),相当于是一种特征重要性抽取器
    • 举例:假设输入 \(N \times d\) 维特征矩阵 ,有 \(N\) 个特征,每个特征是 \(d\) 维的 Embedding,则:
      • Squeeze层 :将每个特征 Embedding 从 \(d\) 维度降低到 1 维标量,输出 \(N\) 维向量
      • Excitation层 :用一个MLP将 \(N\) 维向量先压缩到 \(\frac{N}{r}\) 维再扩展为 \(N\) 维
      • Scale层(Re-weight) :将 \(N\) 维向量作为权重对原始 \(N \times d\) 维的特征矩阵进行加权,输出 \(N \times d\) 维特征矩阵 ,此时每个特征都有自己的个性化权重
    • SENet的本质是对输入 Embedding 做 field-wise 加权(这里认为每个特征就是不同的 field)
  • 注意力机制 :类似于在CV领域中捕捉图像中的重要信息,SENet在推荐系统中可以作为一种注意力机制,聚焦于用户和物品的关键特征,从而更好地建模用户与物品之间的交互关系,为用户提供更个性化的推荐