推荐系统(十二)冷启动问题

概述

目前冷启动问题主要有三类:用户冷启动、资源冷启动和系统冷启动。本文着重讲述用户冷启动和资源冷启动这两类问题。

用户冷启动

对于一个系统的新用户,没有播放行为,这时如何增加这部分用户的留存是推荐系统里一个很关键的问题,如下几项都是业界较为常见的解决方案。

基于人口属性:推荐系统后端数据中已经有针对不同人群的热门推荐资源,当用户第一次打开APP时,系统会提示用户选择用户的人口属性,之后系统可以根据用户选择项为用户推荐资源。

基于兴趣标签:和基于人口属性类似,在第一次打开APP时系统提升用户感兴趣的领域,之后根据用户选的标签选择不同标签下的热门资源。

基于模型:如果系统中有一路召回是双塔模型(通过User侧和Item侧特征输入到模型中得到对应embedding,之后再根据向量相似度进行资源召回),可以通过已有的User侧特征召回Item资源列表,从而实现冷启动召回资源的目标。

基于相似用户:根据新用户的人口属性、兴趣标签以及地理位置匹配较为相似的典型用户,为该新用户推荐相似用户的播放历史。

快速试探:如果用户没有选择兴趣标签,则可以给用户推荐各个兴趣标签下的资源,从而快速获取用户的正反馈而掌握用户的兴趣,进而在之后的下发中推荐相似资源。

资源冷启动

与用户冷启动类似,如果一个新资源曝光度不够,不能让更多的用户看到,则整个系统则会变得不可迭代,展现在用户面前的资源不会变,用户很快就会对这个推荐系统厌烦。如下几项是较为常见的解决方案。

基于meta信息:新资源会有一些meta信息,并且系统中会维护一份每种meta下的典型用户,将这些新资源推送给典型用户,让用户来评判这些资源的质量,从而提升新资源在系统中的曝光。

基于模型:获取新资源的特征,输入到双塔模型中生成item_embedding,并将其推荐给较为相似的用户。

快速试探:将新资源随机分配给线上用户,通过用户的行为积累新资源在推荐系统中的用户行为,从而使整个系统正常运作。

Explore & Exploit

对于冷启动,不得不提的一个问题就是Explore & Exploit,即探索性和实用性的一个trade off。针对EE问题,目前现有的解决方案为各类bandit算法,这里只简单概述两个较为实用的算法:epsilon greedy和thompson sampling。

背景

用户面前有N台老虎机,每台老虎机吐钱的多少不相同,总共可以玩M次,这时如何摇老虎机才能让用户得到的收益最大。

epsilon greedy

假设用户已经摇了m次,基于m次用户得到的收益,在进行第m + 1次摇臂前以 1 − ϵ + ϵ N 1 - \epsilon + \frac{\epsilon}{N} 1ϵ+Nϵ的概率摇当前平均收益最大的机器,以 ϵ N \frac{\epsilon}{N} Nϵ的概率摇除了收益最大机器外的随机一台,这样用户的收益最大。每一次摇机器的具体操作流程:

  1. 生成一个[0,1]之间的随机数 p p p
  2. 如果 p > = ϵ p>=\epsilon p>=ϵ,则摇当前最大平均收益机器。
  3. 如果 p < ϵ p<\epsilon p<ϵ,则在其他机器中随机选择一台,这里的"随机"指的是纯随机,没有任何先验知识。

具体到业务场景,比如有几个展示模板,事先并不知道用户喜欢哪个模板,这时采用epsilon greedy,每次检查所有模板的点击率,最高的那个模板会定义为平均收益最高的那个摇臂,之后采用epsilon greedy方式进行模板展示。

thompson sampling

beta分布

如下为beta分布的示意图,beta分布为正太分布的变形,其均值和方差为如下公式:
{ α α + β  mean  α β ( α + β ) 2 ( α + β + 1 )  var  \begin{cases} \frac{\alpha}{\alpha+\beta} & \text{ mean } \\ \frac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)} & \text{ var } \end{cases} {α+βα(α+β)2(α+β+1)αβ mean  var 

beta分布的一个特性在于 α + β \alpha+\beta α+β越大,越置信。

推荐系统应用

针对每个用户,维护一个全量item映射表,对于每一个item记录该用户对该item的点击数量( α \alpha α)、滑动数量( β \beta β)以及一个beta分布。对于一个用户请求,用每个item对应的beta分布基于当前的 α \alpha α β \beta β生成一个[0,1]之间的随机数,取最大的topK作为这一路召回的资源列表。该方法能够同时兼备Exploit和Explore的原因如下:

Exploit:对于 α \alpha α β \beta β很大的item,其分布已经很窄,因而其收益以及足够置信,每次产生的随机数较为确定,好的非常好,差的非常差,因而体现了Exploit。
Explore:对于 α \alpha α β \beta β较小的item,分布较宽,这样每次生成的随机数差异很大,因而不确定性很大,这种item也是有一定的曝光机会的,因而体现了Explore。

UCB

对于资源库中的每个item,其在t次摇臂时的得分为如下公式,其中 x ˉ j ( t ) \bar{x}_j(t) xˉj(t)代表的是第t次摇臂时第j个item在当前的平均收益, T j , t T_{j,t} Tj,t代表的是第t次摇臂时第j个item被摇的次数。

x ˉ j ( t ) + 2 l n t T j , t \bar{x}_j(t)+\sqrt \frac{2ln t}{T_{j,t}} xˉj(t)+Tj,t2lnt

可以看出前一项体现了Exploit,即哪个item的收益越大,其得分可能会很高;第二项体现了Explore,因为有可能在t很大的情况下 T j , t T_{j,t} Tj,t会很小,因而那些收益很小且很久没有被摇过的item有机会暴露。

参考链接

  1. epsilon greedy
  2. thompson sampling
  3. 推荐系统冷启动解决方案
  4. UCB解决方案
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值