推荐系统整体框架
推荐系统从算法的视角可以分成:模型训练和模型部署阶段;而为了提供模型所需的特征,整个推荐系统可以分为:
- 在线部分(实时训练/实时预估)
- 近线部分(提供实时特征——为特征提供索引,以便模型特征能够实时查询)
- 离线部分(离线模型训练/离线特征挖掘)
推荐系统详情见:https://www.zhihu.com/tardis/bd/art/641176648?source_id=1001
推荐系统存在的冷启问题
随着推荐系统的发展,推荐系统面对的问题越来越细化,面对一个新的推荐场和存量推荐场,存在着模型冷气问题。冷启问题主要分为:
- 用户冷启:新用户/低活用户在推荐场上的表现
- item冷启:新的item在推荐场上的优化
- 系统冷启动:新的推荐场(eg:支付宝临时的分会场),涉及到新用户以及新item
冷启问题的解决方案
概览
针对冷启情况的解决方案非常多,一般可以分为以下三类冷启方案:
1、基于策略的冷启动方案。eg:通过用户在其他场景的离线偏好特征挖掘,引入具有专家经验的position_bias等操作;
2、基于特征的冷启动方案,建立更多通用性的特征。eg:特别是大语言模型的浪潮下,利用语义信息来购进啊推荐系统的通用模型已经越来越受到关注;
3、模型结构&训练方式的探索。eg:主动学习和迁移学习的使用,设计各种跨域融合的模型逻辑;
两种冷启思路详解
相关论文:
- 基于用户分层的推荐系统 ( poso&mgain ):https://arxiv.org/abs/2108.04690
- 基于通用化特征的推荐系统 ( usrlrecom ):https://github.com/RUCAIBox/UniSRec
基于用户分层的冷启解决方案——POSO
- poso的算法思想:利用推荐系统中新老用户的差异性特征,通过子网路的引入,扩大推荐系统中不同用户的差异性。更加朴素的思想:不同类型的用户使用不同的函数 f ( x ) f(x) f(x)进行拟合。
poso详解
- 在推荐领域中,新用户和其他用户往往在行为表现较大差异。如下图所示,若以老用户行为的后验数据为0点,新用户的后验数据和原点存在较大差距;对于大部分成熟的推荐场,新用户往往是比较少的,这种情况下,模型往往无法捕捉到新用户的行为差异;同时mask掉新用户的特征,发现模型在高维输出上并没有太多的差异性(高维度对低纬度特征捕获的消散性)。
- poso模型的公式推导
1、针对不同的用户使用不同的函数进行表征
y u = f u ( x u ) y^u = f^u(x^u) yu=fu(xu)
2、对于每个用户使用不同的函数难以达到,但可以对于不同类型的用户采用不同的函数,在公式中每一层用户的表征,可以用gate网络来进行捕获
y u = ∑ ( w i f i ( x ) ) y^u = \sum(w_if^i(x)) yu=∑(wif