DL——负样本采样修正


适用场景

  • 在CTR预估模型中,通常需要对负样本进行采样,以提升训练效率
  • 负样本采样会改变样本分布,从而导致预估均值出现偏差

问题描述

  • 假设对负样本进行采样,此时数据分布(正负样本比例)会发生改变,为了保证预估均值,需要对模型进行修正

修正方式

  • 修正方式一般有两种

训练时修正

  • 灵活,可以在训练时考虑到修正,保证训练后的模型可以直接使用

    训练后修正

  • 不常用,需要记录训练时的采样率等,容易出现问题

推导

训练时修正推导

  • 假设原始样本数,正样本数,负样本数分别为\(N,N_p,N_n\)

  • 采样前:

    • 令正样本概率为\(p = \frac{N_p}{N}\),则有\(1-p = \frac{N_n}{N}\)
    • 进一步有:\(\frac{p}{1-p} = \frac{N_p}{N_n}\)
  • 按照比例\(r\)对负样本进行采样后剩下负样本数为\(r\cdot N_n\):

    • 同理有:\(\frac{p’}{1-p’} = \frac{N_p}{N_n/r} = r\cdot\frac{N_p}{N_n}\)
  • 假定CTR的输出经过sigmoid激活函数输出概率值

  • 为了保证预估时可以使用如下公式:
    $$ p = \frac{1}{1+e^{-wx}} $$

  • 需要满足的训练公式为:
    $$ p‘ = f(x) $$

  • 求解\(f\)的流程如下:

    • 由sigmoid函数(\(p = \frac{1}{1+e^{-wx}}\))的定义可得:
      $$ wx = ln \frac{p}{1-p} $$
    • 又因为:
      $$
      \frac{p}{1-p} = \frac{N_p}{N_n} \\
      \frac{p’}{1-p’} = \frac{1}{r}\cdot\frac{N_p}{N_n} \\
      ln(\frac{p’}{1-p’}) = ln(\frac{1}{r}\cdot\frac{p}{1-p}) = ln(\frac{1}{r}) + ln(\frac{p}{1-p}) \\
      $$
    • 所以有:
      $$ ln(\frac{p’}{1-p’}) = ln(\frac{1}{r}) + ln(\frac{p}{1-p}) = ln(\frac{1}{r}) + wx $$
    • 于是有预估时的公式为:
      $$ p’ = \frac{1}{1+e^{-(wx+ln(\frac{1}{r}))}} $$
  • 综上所述,训练时下面的式子训练:
    $$ p’ = \frac{1}{1+e^{-(wx+ln(\frac{1}{r}))}} $$

  • 预估时可以按照下面的式子预估:
    $$ p = \frac{1}{1+e^{-wx}} $$

训练后修正的推导

  • 由两者的定义可以推导如下:
    $$
    \frac{p}{1-p} = \frac{N_p}{N_n} \\
    \frac{p’}{1-p’} = \frac{1}{r}\cdot\frac{N_p}{N_n} \\
    $$
  • 进一步有:
    $$
    \frac{p’}{1-p’} = \frac{1}{r}\cdot\frac{p}{1-p} \\
    \frac{p}{1-p} = r \cdot \frac{p’}{1-p’} = \frac{r \cdot p’}{1-p’} \\
    $$
  • 调整位置得到:
    $$
    \frac{1-p}{p} = \frac{1-p’}{r \cdot p’} \\
    $$
  • 即:
    $$
    \frac{1}{p} - 1 = \frac{1-p’}{r \cdot p’} \\
    $$
  • 进而有:
    $$
    \frac{1}{p} = \frac{r \cdot p’+1-p’}{r \cdot p’} \\
    $$
  • 最终得到:
    $$
    p = \frac{r \cdot p’}{r \cdot p’+1-p’} \\
    p = \frac{ p’}{p’+\frac{1-p’}{r}}\\
    $$
  • 综上所述,训练时下面的式子训练:
    $$ p’ = \frac{1}{1+e^{-wx}} $$
  • 预估时可以按照下面的式子预估:
    $$ p = \frac{ p’}{p’+\frac{1-p’}{r}} $$