记一点推荐的基础知识

推荐水哥的这个系列

我这记一点里面需要注意的知识

AUC/GAUC

阿里提出了一个新的评价指标 Group AUC,是用户维度加权的auc

$$
GAUC = \frac{\sum w_u AUC_u}{\sum w_u}
$$

这里的w代表权重,可以是曝光数、点击数,更倾向于高活用户。

AUC这篇写挺好的

  • auc曲线横坐标是$FPR=\frac{FP}{FP+TN}$,假阳率,预测为阴性里有多少是阳的,越小越好

  • 纵坐标是$FPR=\frac{TP}{TP+FN}$,真阳率,召回率,预测为阳性的里面有多少是真阳性,越大越好

  • AUC可以看做随机从正负样本中选取一对正负样本,其中正样本的得分大于负样本的概率

  • 可以使用sql来计算AUC

    假设我们将测试集的正负样本按照模型预测得分从小到大排序,对于第j
    个正样本,假设它的排序为 rj, 那么说明排在这个正样本前面的总样本有 rj−1
    个,其中正样本有 j−1 个(因为这个正样本在所有的正样本里面排第j), 所以排在第j个正样本前面(得分比它小)的负样本个数为 rj−j个。也就是说,对于第j个正样本来说,其得分比随机取的一个负样本大(排序比它靠后)的概率是 (rj−j)/N−,其中N−是总的负样本数目。所以,平均下来,随机取的正样本得分比负样本大的概率为

    $$
    AUC = \frac{1}{N_+} \sum_{j=1}^{N_+}(r_j - j)/N_- \
    = \frac{\sum_{j=1}^{N_+}r_j - N_+(N_+ + 1)/2}{N_+N_-}
    $$

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    select
    (ry - 0.5*n1*(n1+1))/n0/n1 as auc
    from(
    select
    sum(if(y=0, 1, 0)) as n0,
    sum(if(y=1, 1, 0)) as n1,
    sum(if(y=1, r, 0)) as ry
    from(
    select y, row_number() over(order by score asc) as r
    from(
    select y, score
    from some.table
    )A
    )B
    )C

NDGC

Normalized Discounted Cumulative Gain,是衡量排序效果的指标。

还是这位😡老哥说得清楚

理清楚顺序,GC->DGC->NDGC

$$
DCG@K = \sum_{k=1}^{K} \frac{rel_k}{\log_2(k + 1)}
$$

$$
IDCG@K = \sum_{k=1}^{|REL|} \frac{rel_k}{\log_2(k + 1)} = max DGC@K
$$

$$
NDCG@K = \frac{DCG@K}{IDCG_K}
$$

reg-AUG

我理解是没办法画ROC曲线出来,还是沿用了AUC的物理含义,任选两个样本,pred和label单调的概率。
可以用逆序对来计算(mergesort)。

DCN DCNv2

dcn,不是很经得起推敲,$x_l^TW_l$相当于一个常数了,作用在$x_0$上,没有起到交叉的作用,本质原因还是因为$W_l$只是一个向量。
$$
x_{l+1} = x_0x_l^TW_l+b_l+x_l
$$
img

dcn-v2,最大的变化是$W_l$从向量变矩阵了,但因为是bit-wise的交叉,所以参数量比较大,可以做低秩分解。
$$
x_{l+1}=x_0\odot(W_lx_l + b_l)+x_l
=x_0\odot(U_lV_l^Tx_l + b_l)+x_l
$$
img