pairwise vs pointwise
pairwise构造样本对搜索更加友好,因为搜索关注更多的是item之间细微的差别,而pairwise正符合这种要求;pointwise对推荐更友好,因为推荐的item范围更广,用户更在意单个item质量是不是很好。
hard negative vs easy negative
做召回模型时,一个很重要的环节是负采样。因为线上系统中召回模块面对的是整个资源池,因而为了在离线时模拟线上环境,通常需要对整个资源池进行随机负采样,即easy negative,损失函数公式如下:
r e c a l l _ l o s s = e x p ( v u T e i ) ∑ k ∈ N e x p ( v u T e k ) recall\_loss = \frac{exp(v_u^Te_i)}{\sum_{k\in N} exp(v_u^Te_k)} recall_loss=∑k∈Nexp(vuTek)exp(vuTei)
其中N代表的是从整个资源池中选出的随机样本。但这样训练的召回模型精度不够,因为正样本(点击数据)和负样本(随机负采样)差异过大,导致模型学习到的信息比较浅显,因而需要加入一些hard negative来增加模型学习的难度。hard negative总体有两大类选法,曝光未点击和召回未曝光,而且每一类不同分段负样本的选择对最终召回模型的效果都会有很大的影响,这个需要视具体业务而定,这里给出添加hard negative后损失函数公式:
r e c a l l _ l o s s = α ⋅ e x p ( v u T e i ) ∑ k ∈ N e x p ( v u T e k ) + ( 1 − α ) ⋅ e x p ( v u T e i ) ∑ m ∈ H e x p ( v u T e m ) recall\_loss = \alpha \cdot \frac{exp(v_u^Te_i)}{\sum_{k\in N} exp(v_u^Te_k)} + (1-\alpha)\cdot \frac{exp(v_u^Te_i)}{\sum_{m\in H} exp(v_u^Te_m)} recall_loss=α⋅∑k∈Nexp(vuTek)exp(vuTei)+(1−α)⋅∑m∈Hexp(vuTem)exp(vuTei)
其中 α \alpha α代表的是easy/hard negative的浓度配比,H代表的是hard negative的样本集合。