推荐算法笔记06_冷启动

作者: Nefelibatas | 来源:发表于2022-02-02 10:33 被阅读0次

什么是推荐系统的冷启动?

新用户、新内容对推荐系统来说都是没有过往信息积累的、陌生的,需要通过累计一定的曝光量和互动量来

收集基础数据。这个从0到1积累基础数据的过程就是冷启动,其效果的好坏直接关系到整个产品新用户的留存和转化,而用户留存和转化的提升是做冷启动优化的动力来源。

冷启动分类

用户冷启动

  • 主要解决如何对新用户做个性化推荐问题。当新用户到来时,没有其行为

    数据,无法根据其历史行为预测其兴趣,从而无法借此做个性化推荐。

物品冷启动

  • 主要解决如何将新的物品推荐给可能对它感兴趣的用户。

系统冷启动

  • 主要解决如何在一个新的网站上(没有用户,也没有用户行为,只有一些

    物品信息)设计个性化推荐系统,从而在网站方发布时就让用户体验到个

    性化推荐服务。

哪些方面进行推荐系统的冷启动处理

强规则 产品侧做、区分对待 固定展示位展示新物品、一定量流量展示新物品
策略 排序队列做、区分对待 减少新物品的过滤等级、召回与排序固定百分比新物品
模型 偏向新物品的算法 针对新物品(用户)的Embedding表示、独立的新物品排序模型

冷启动的判断

image-20220105133827333.png

用户冷启动

非个性化推荐(与具体用户无关)

  • 推送整体热门

  • 推送不同时间段热门

  • 推送各类排行榜

尽可能收集用户信息

  • 新用户信息收集启动项

    • 人口统计学信息:年龄、性别、学历等

    • 人的兴趣描述启动项:音乐风格等。

  • 站外数据

    • 第三方 登录授权:微信

    • 购买数据公司数据:友盟

  • 算法对缺失或深层隐藏信息做预估

推荐榜单设置

  • 比较热门、具有代表性、多样性和区分性

启动项的树形结构

  • 专家知识

  • 算法模型(冷启动特征)

image-20220105205438409.png

利用已有用户信息进行粗粒度推荐

  • 利用专家经验和基础属性信息做更细粒度排行榜,热度榜

    • 基于性别、设备信息、网络信息、位置等用户和上下文信息相关的榜单

利用算法和基础属性的做更细粒度榜单

  • 训练决策树模型构建叶子结点对应的冷启动榜单

利用外部数据寻找相似用户做推荐

  • 微信好友,拼多多好友等

少样本学习算法

image-20220105205811635.png

物品冷启动

基于规则

  • 固定展示位上新物品随机推荐

  • 利用物品内容信息进行不同粒度匹配(图书分类)

物品冷启动不敏感的算法

  • 协同过滤User-CF

  • look-alike相似人群扩展

  • 利用物品信息获取相似物品进行模型的推荐

探索与利用策略

探索与利用

什么是ExplorationExploitation

  • Exploration

    • 寻找用户可能喜欢的新物品,或者说可能对这个新物品感兴趣的用户,探索用户可能感兴趣的信息
  • Exploitation

    • 充分利用已有信息,推荐最大价值或最感兴趣物品
  • 选餐厅:

    • Exploration :尝试新餐厅。

    • Exploitation:去最喜欢的餐厅。

  • 在线广告:

    • Exploration :展示些不同的广告。

    • Exploitation:展示最好的广告。

ExplorationExploitation

𝜀 − 𝐺𝑟𝑒𝑒𝑑𝑦 简单贪心
𝑇ℎ𝑜𝑚𝑝𝑠𝑜𝑛 𝑆𝑎𝑚𝑝𝑙𝑖𝑛𝑔 汤普森采样
𝑈𝐶𝐵 置信上界
𝐿𝑖𝑛 − 𝑈𝐶𝐵 线性置信上界

Multi-armed bandit(多臂老虎机)

假设你进了一家赌场,面前有K台老虎机(Arms)。老虎机本质上就是个运气游戏,我们假设每台老虎机𝐴𝑟𝑚𝑖 都有一定概率𝑝𝑖吐出一块钱,或者不吐钱( 概率1 − 𝑝𝑖 )。

假设你手上只有 𝑇 枚代币。也就是说你一共只能摇𝑇次。 (tokens),而每摇一次老虎机都需要花费一枚代币,

那么如何做才能使得期望回报(expected reward)最大呢?

假设你一开始对这些机器的吐钱概率一无所知。你认为每个𝐴𝑟𝑚𝑖的𝑝𝑖是个确定的值。

你的任务就是要在有限的时间内找到那些高𝑝𝑖的机器,并尽可能多的去摇它们,以获得更多的回报。

那么这里我们注意到这类问题的一大特点,即我们只有T次机会。

如何去平衡这次的exploration(探索)和exploitation(利用)𝑇 的次数。

𝜀 − 𝐺𝑟𝑒𝑒𝑑𝑦

方法A

随机地摇N次老虎机,每次摇都是相互独立的,但是这种方法每次摇的老虎机很大概率都不是出钱概率最大的。

方法B

首先随机摇𝑚(𝑚 < 𝑁)次,然后选择这𝑚次中平均收益最大的那台老虎机,在剩余次数中一直摇这台机器。 𝑚往往不能太大,成本有限。因此这种方法选择出的老虎机也有可能不是概率最大的那台。

𝜀-Greedy方法

• 设定一个参数ε 𝜖 (0,1]

• 每次通过ε的概率随机选择, 1 − ε 的概率选择当前平均收益最大的

• Exploitation-Exploration的思路

• Exploitation是在已经累数据的基础上最大化收益

• Exploration是探索未知,增加数据积累

𝜀-Greedy改进

随着次数的增加不断减少𝜀,例如: 1/(log 𝑚 +10.00001)

Thompson Sampling

伯努利分布(Bernoulli distribution,又名两点分布或者0-1分布,是一个离散型概率分布。若伯努利试验成功,则伯努利随机变量取值为

机变量取值为0,记其成功概率为𝑝(0 ≤ 𝑝 ≤ 1),失败概率为𝑞 = 1 − 𝑝。则

image-20220105220930902.png

二项分布是𝑛个独立的伯努利试验中成功次数的离散概率分布,其中每次试验的成功概率为p

如果随机变量𝑋服从参数为𝑛和𝑝的二项分布,记做𝑋~𝑏(𝑛, 𝑝)或𝑋~𝐵(𝑛, 𝑝)

image-20220105221544314.png

贝塔分布,简称𝐵分布,是指一组定义在(0,1)区间的连续概率分布,有两个参数𝛼,𝛽 > 0

image-20220105221616668.png image-20220105221654834.png

https://zhuanlan.zhihu.com/p/69606875

贝叶斯定理,是关于随机事件𝐴和𝐵的条件概率的定理

image-20220105221742209.png

Thompson Sampling中的贝叶斯定理

image-20220105222045330.png image-20220105222128869.png

伪代码

image-20220105222205937.png

UCB

Tompson Sampling 类似,利用分布的不确定性作为探索强弱程度的依据

过程:

假设有𝐾个老虎机,对每个老虎机进行随机摇臂𝑚次,获得老虎机 𝑗 的收益的初始化经验期望 x^-_ 𝑗 用 𝑡 表示至今摇臂总次数, 𝑛_ 𝑗 表示第 𝑗 个老虎机至今被摇臂的次数,计算每个老虎机的𝑈𝐶𝐵值

UCB(j) = x^-_j+\sqrt{\frac{2logt}{n_j}}

选择𝑈𝐶𝐵最大的老虎机 𝑖 摇臂,并观察其收益𝑋𝑖,𝑡;

根据 𝑋𝑖,𝑡 更新老虎机 𝑖 的收益期望值;

重复第2步。

Hoeffding’s Inequelity (霍夫丁不等式)

image-20220105223403704.png

总体分布与局部分布偏差大于一个值的概率不会太大

image-20220105223339815.png

Lin-UCB

老虎机问题中,老虎机吐钱概率是固定的,谁摇都一样。前面的方法解决这类问题的效果比较好,这些方法称为Context Free方法,即上下文无关的方法。

在系统推荐过程中,可以把选择哪个物品理解为老虎机的选择问题,是否吐钱理解为用户是否点击,但是物品是否被点击不只与物品本身相关,还和很多因素相关,这些因素称作Contextual信息

考虑Contextual信息的Bandits问题,称作Contextual Bandits

雅虎提出Lin-UCB算法:

A contextual-Bandit Approach to Personalized News Article Recommendation

image-20220105231344692.png image-20220105231428673.png

工业实践:

https://zhuanlan.zhihu.com/p/35753281

不确定度量:

https://zhuanlan.zhihu.com/p/139470659

贝叶斯优化:

https://zhuanlan.zhihu.com/p/150555551

基于模型

几种思路:

  • 利用相似物品

    • 使用相似物品信息,将物品id替换关联物品id(或embdding替换);

    • 使用相似物品的统计特征替换新物品样本特征;

    • 关键是确定相似物品(聚类,层级关系等)

  • 模型适应新物品

    • 随机选择5%样本作为新广告来训练简单模型

    • 将新物品id置为随机值(失效)或固定值

强化学习

注:冷启动模型一般不用id类特征

系统冷启动

发挥专家作用(e.g 图书馆图书分类)

没有用户的行为数据,也没有充足的物品内容信息来计算准确的物品相似度

专家(或算法)进行标注以便根据多维度特征表示向量计算物品相似度

  • 心情:用户观看电影的心情,比如功夫熊猫观众觉得幽默

  • 剧情:电影剧情

  • 类别:电影的类别,动画片,喜剧片,动作片

  • 时间:电影故事发生时间

  • 地点:故事发生的地点

  • 观众:电影的主要观众群

  • 获奖:电影的获奖和评价情况

  • 风格:功夫片、全明星阵容

  • 态度:电影描述故事的态度

  • 画面:电脑拍摄的画面技术

  • 标记:电影没有暴力色情内容

模型参数迁移

比如业务相似,旧业务模型迁移到新业务

总结与回顾

image-20220105231807201.png

相关文章

  • 推荐算法笔记06_冷启动

    什么是推荐系统的冷启动? 新用户、新内容对推荐系统来说都是没有过往信息积累的、陌生的,需要通过累计一定的曝光量和互...

  • 使用Dropout解决推荐系统冷启动问题

    使用Dropout解决推荐系统冷启动问题 推荐系统回顾 & 冷启动问题 推荐系统的主流算法分为两类:基于记忆的(M...

  • 传统推荐算法

    传统推荐算法 Bandit算法与系统推荐 在推荐系统里比较经典的问题,就是EE和用户冷启动问题 什么是EE,两个单...

  • 【修真院PM小课堂】算法

    算法 分享人:刘伟 目录 一.推荐概述 二.好的产品推荐 三.几大挑战(用户 物品 系统冷启动) 四.案例 一.推...

  • 热传导/物质扩散算法应用于推荐

    没有大量的数据,没有大量的人力就不能做好推荐么?当然不是,热传导/物质扩散推荐算法就是作为冷启动及小规模团队非常实...

  • 扒一扒抖音海外推荐算法— 玩转短视频内容运营

    一、抖音推荐算法简述 众所周知,抖音平台是去中心化算法+人工运营的结合。要想从0到1做好抖音账号冷启动,研究抖音的...

  • 推荐冷启动召回模型DropoutNet深度解析与改进

    为什么需要冷启动 通常推荐系统通过协同过滤、矩阵分解或是深度学习模型来生成推荐候选集,这些召回算法一般都依赖于用户...

  • Python(六十七)正则案例实战

    06_正则案例实战/01_正则01.py: 06_正则案例实战/02_正则02.py: 06_正则案例实战/03_...

  • 角色控制

    UE4初学笔记_06_获取玩家控制方法[https://blog.csdn.net/qq_41043982/art...

  • 推荐系统的冷启动

    冷启动包含3种:用户冷启动:新用户没有行为数据物品冷启动:将新物品推荐系统冷启动:新开发的网站没有用户

网友评论

    本文标题:推荐算法笔记06_冷启动

    本文链接:https://www.haomeiwen.com/subject/vbthkrtx.html