推荐系统中的冷启动和探索利用问题探讨 (下)
来源:互联网 发布:广告文案的100案例知乎 编辑:程序博客网 时间:2024/06/12 23:54
LinUCB算法
回到推荐列表的场景,推荐系统为用户推荐物品。user和item都可以用一系列特征表示。用户特征包括用户的统计历史行为、人口学属性信息;物品特征包括描述信息、类别信息等等。在这种场景下,探索和利用也必须是个体用户级别上实施,因为不同用户看到相同的物品的反馈差异较大。
LinUCB算法是一种基于上下文特征(用户特征、物品特征)的UCB算法,基于特征进行探索和利用。该算法结合上下文特征,选择给用户的推荐物品,同时利用用户反馈及时修正选择策略,以达到最大化收益(提升点击率)的目标。
使用互斥线性模型的LinUCB
LinUCB算法假设推荐item的每次展现收益(是否点击)是和上下文特征成线性关系的,即:
其中
设
其中
其中
上述等式给出了物品a期望收益的一个UCB,因此也就引申出了UCB的选择策略,对于第t次试验,选择以下式中最大值的物品,
其中
以上为互斥线性模型LinUCB的基本算法流程,其中结合上述内容,第一行
思想上LinUCB算法类似于对召回结果重排序的方法,也是考虑用户和item的特征,来计算出收益最大的item,不同的是LinUCB借鉴了UCB的置信区间的方法来平衡exploit和explore问题,同时从LinUCB算法是一个在线的学习算法,与一般离线算法需要离线训练不同,LinUCB随着每次展示和反馈会不断优化我们的模型参数和收益。
关于LinUCB算法的介绍请参考论文
CLUB算法
CLUB(online clustering bandits)算法假设将全部用户划分成若干个用户群,每个用户群对相同推荐内容的反馈是一致的,同时自适应的调整用户群。与liner bandit一样,CLUB算法也是根据特征计算收益,不同的是CLUB算法中相同群体用户共享相同的参数向量,即第i个用户对item a的收益为:
其中i表示第i个user,
该算法在时刻t,对于用户i,维护一个向量
除此之外,算法需要维护一个无向图
在每个时刻t
其中
CLUB算法观察到item的收益
CLUB算法的完整流程如下:
其中
CLUB算法首先提出了基于协同概念的bandit算法,即每次用户预测对item收益是由这个所属的群体的聚合权重向量参数所决定的,同时根据个人反馈更新个人参数,个人参数又隐式的影响群体参数和用户群体的划分。据CLUB算法论文介绍,在一些公共数据集中,取得了比LinUCB更好的效果。
关于CLUB算法的更多细节请参考原论文
结束语
本文简单介绍了推荐系统中一直存在的两大问题:冷启动和EE问题,并简单阐述了业界解决这两大问题的一些常见解决方法和算法。正如前文所说,EE问题某种程度中一直以矛盾共同体存在,在实际场景中,需要平衡两者。
本文时间有限,难免有偏颇之处,欢迎大家共同探讨。
- 推荐系统中的冷启动和探索利用问题探讨 (下)
- 推荐系统中的冷启动和探索利用问题探讨 (上)
- 推荐系统中的冷启动问题
- 推荐系统中的冷启动问题
- 关于推荐系统中的冷启动问题探讨(Approaching the Cold Start Problem in Recommender Systems)
- 推荐系统冷启动问题
- 推荐系统冷启动问题
- 推荐系统冷启动问题
- 推荐系统-推荐冷启动问题
- 推荐系统中冷启动问题
- 推荐系统冷启动问题笔记&Tips
- 推荐系统——冷启动问题
- 推荐系统解决冷启动问题策略
- 机器学习->推荐系统->冷启动问题
- 推荐系统实践之-冷启动问题
- 推荐系统解决冷启动问题策略
- DropoutNet: 解决推荐系统中冷启动问题
- 项亮《推荐系统实践》读书笔记2-推荐系统冷启动问题
- 自定义ListView下拉、上滑、左拉
- java post方式传递数据的两种方式(http https)
- window.history的跳转实质-HTML5 history API 解析
- vue通信
- tensorflow tf.transpose()
- 推荐系统中的冷启动和探索利用问题探讨 (下)
- 年轻人,你对io一无所知
- linux设备驱动学习总结-keyPoints
- 数据结构基础 综述
- 一张图让你看懂各开源License
- 快速掌握vuex
- 【网易】:合唱团(动态规划)
- HDU 2196 Computer(求树任意点的最远点)
- git版本管理