推荐系统入门六 · 曝光与校准

曝光 impressions        点赞 likes 点击 clicks              收藏 collects 转发 shares

曝光过滤:如果用户近期看过某个物品,就不再把该物品曝光给该用户。

曝光过滤使用 Bloom Filter 来判断一个物品是否已经被曝光过。Bloom Filter 增加新的样本性能高,但是无法删除某个样本。

 

 

交叉熵训练困难:用户操作正样本过多,负样本过少(如曝光点击率、点击后收藏率等低)

解决方案:负样本降采样(down-sampling),保留一小部分负样本,平衡正负样本数量,节约计算。

预估值校准

n+ 为正样本,n-为负样本。 p 为点击率,α 为采样率,是经验值。

MMoE (Multi-gate Mixture-of-Experts)

MMoE 就是对神经网络输出向量 x1, x2, x3 做加权平均,然后用加权平均得到的向量去预估某个业务指标。下面例子中,需要预估点击率和点赞量两个业务指标,下面用了3个"experts",experts 是超参数,需要手动调,通常会用到4个或8个 experts。

MMoE实践中,存在的问题就是softmax出现极化情况。

p1, p2, p3 表示权重,其和为1。同理 q1 + q2 + q3 = 1。

Polarization 极化情况

极化(polarize) 指 Softmax 输出值一个接近1,其余接近0。如上面 p3 =1,p1, p2 都等于0。由于后期需要对 x1, x2, x3 三个专家函数做加权平均,x1, x2 权重都为0,因此使用不到。只能使用到权重为1的x3 专家函数。同理,右侧的权重只使用到了x2专家函数,x1 完全没有用到。

解决polarization方法:训练时对softmax输出使用dropout。即假如有n个 experts,那么每个softmax 输入和输出都是n维向量。假如softmax 输出的n个值被mask的概率都是10%,即每个expert被随机丢弃的概率是10%,这样就避免出现极化。