自己学习工作中对推荐系统的一些简单了解(未完待续)
目前在做短视频推荐,干了一段时间做些总结。
1、多目标模型
目前rank和recall 所使用的神经网络模型大体结构都是deep&wide+多目标。目前实现多目标的时候会使用底层参数共享,共享的参数有些是仅限于底层的embedding层,有些会包含一些MLP层。
参数共享可以使模型在预测户互动行为也可以从用户点击行为的数据中受益。但是如果不做处理,也会带来模型主要有正样本目标多的样本主导梯度的更新。所以在实际中会对正样本比较少的label加权重,比如调高用户互动行为的正样本的权重。其实加权重也是等价于进行过采样。
其实对于样本加权,另一方面也是便于在多目标组合使用的时候调节多目标权重。每种行为的预估都是一个二分类模型,预测的值是该类行为的概率。正常情况下,不做处理的话,预测值会接近真是的ctr(实际上会偏小一点)。这样在多目标组合的时候点击的值通常要比互动的值大很多(目前一般是加权求和),举了例子,点击的预测值是0.2,互动的值是0.01,这时候点击的权重和互动的权重调节的范围差别也很大,不方便调节。
多目标DNN模型的结构一般是底层embedding是共享的。对于rank模型,会把用户和物品的特征的dense和sparse特征混合起来经过一些全连接层,做多目标。
对于recall模型则会使用双塔结构,对于user和item分别有一个mlp,最后算cos。
2、特征筛选优化
dense特征一般的方差,零值的比例。sparse特征可以分析特征与label的互信息,但是在计算互信息的时候需要考虑归一化。
3、多目标权重
4、模型online learning
5、召回相关