推荐系统学习(冷启动)
冷启动
冷启动介绍
冷启动:
对于新注册的用户或者新入库的标的物, 该怎么给新用户推荐标的物让用户满意,怎么将新标的物分发出去,推荐给喜欢它的用户。
如果是新开发的产品,初期用户很少,用户行为也不多,常用的协同过滤、深度学习等依赖大量用户行为的算法不能很好的训练出精准的推荐模型, 怎么让推荐系统很好的运转起来,让推荐变得越来越准确,这个问题就是系统冷启动。
分类:
-
标的物冷启动:也称为“物品冷启动”或“内容冷启动”,指的是系统中新增了某个推荐对象(如商品、电影、文章等),但由于该物品还没有用户互动数据(点击、评分、购买等),导致系统无法判断哪些用户可能喜欢它。
-
用户冷启动:指的是系统中新增用户或活跃度极低的用户,由于其没有或几乎没有行为数据,系统难以判断该用户的兴趣偏好,难以进行个性化推荐。
-
**系统冷启动: 整个推荐系统刚刚上线或处于早期阶段,缺乏足够的用户数据和物品数据,导致推荐算法无法有效学习
冷启动挑战:
- 我们一般对新用户知之甚少, 所以基本不知道用户的真实兴趣,从而很难为用户推荐他喜欢的标的物:
- 缺少用户画像
- 访问行为过少
- 标的物信息问题:
- 标的物的信息不完善、包含的信息不好处理、数据杂乱
- 新标的物产生的速度太快(如新闻类,一般通过爬虫可以短时间爬取大量的新闻)
- 处理成本太高
- 完全新的品类或者领域,无法很好的建立与库中已有标的物的联系
- 对于新开发的产品,由于是从零开始发展用户,冷启动问题就更加凸显,这时每个用户都是冷启动用户,面临的挑战更大.
解决冷启动的重要性:新用户的留存及体验
解决冷启动的方法和策略
具体思路有如下7个(括号里面代表适用于哪类冷启动):
- 提供非个性化的推荐(用户冷启动)
- 利用用户注册时提供的信息(用户冷启动、系统冷启动)
- 基于内容做推荐(用户冷启动、系统冷启动)
- 利用标的物的metadata信息做推荐(标的物冷启动)
- 采用快速试探策略(用户冷启动、标的物冷启动)
- 采用兴趣迁移策略(用户冷启动、系统冷启动)
- 采用基于关系传递的策略(标的物冷启动)
物品冷启动
物品冷启动的目标:
- 精准推荐:克服冷启的困难,把新物品推荐给合适的用户,不引起用户反感;
- 激励发布:流量向低曝光新物品倾斜,激励作者发布;
- 挖掘高潜:通过初期小流量的试探,找到高质量的物品,给予流量倾斜。
评价指标
-
作者侧指标反映用户的发布意愿,对低曝光的笔记扶持越好则该指标越高;
-
用户侧指标反映推荐是否精准、用户是否反感,故分为新物品指标和大盘指标;
-
内容侧指标则反映冷启动是否能挖掘出优质物品。
利用标的物的metadata信息做推荐
常见的物品 metadata 类型:
类型 | 示例 |
---|---|
基本信息 | 名称、ID、创建时间、价格 |
类别信息 | 分类标签(如电影类型、商品品类) |
内容信息 | 简介、描述、文章全文、视频文本摘要等 |
结构化特征 | 品牌、型号、颜色、尺寸、成分等 |
图像/音频特征 | 图像提取的视觉向量、音频指纹等(需要预处理) |
上下文信息 | 上架时间、流行周期、地理位置、库存情况等 |
社交标签(可选) | 用户打的标签、评论关键词、点赞数 |
- 获得标的物跟用户行为的相似性:通过提取新入库的标的物的特征(如标签、采用TF-IDF算法提取的文本特征、基于深度学习提取的图像特征等),通过计算标的物特征跟用户行为特征(用户行为特征通过他看过的标的物特征的叠加,如加权平均等)的相似性,从而将标的物推荐给与它最相似的用户。
- 获得标的物跟标的物的相似性:可以基于标的物的属性信息来做推荐,一般新上线的标的物或多或少都是有一些属性的,根据这些属性找到与该标的物最相似(利用余弦相似度等相似算法)的标的物,这些相似的标的物被哪些用户“消费”过,可以将该标的物推荐给这些消费过的用户。
快速试探策略
借用强化学习中的exploration-exploitation思想,将新标的物曝光给随机一批用户,观察用户对标的物的反馈,找到对该标的物有正向反馈(观看,购买,收藏,分享等)的用户, 后续将该标的物推荐给有正向反馈的用户或者与该用户相似的用户。
基于关系传递的策略
比如视频类应用,前期只做长视频,后来拓展到短视频,那么对某些没有短视频观看行为的用户,怎么给他做短视频推荐呢?可行的方式是借用数学中关系的传递性思路,利用长视频观看历史,计算出用户的相似度。对新入库的短视频,可以先计算与该短视频相似的长视频,我们可以将该短视频推荐给喜欢与它相似的长视频的用户。
用户冷启动
提供非个性化的推荐
-
利用先验数据做推荐:推荐新的东西;“20%的头部内容占到80%的流量“,热门推荐也一般用来作为新推荐算法的AB测试的基准对照组、推荐常用的标的物及生活必需品、根据该行业的经验给出相应的推荐策略(如婚恋网站,给新注册的男生推荐美女,新注册的女生推荐帅哥)
-
给用户提供多样化的选择:每大类选择一个推荐给新用户,这样总有一个是用户喜欢的
如果是新闻类的产品(如今日头条),可以采用TF-IDF算法将文本转化为向量,再对文本做聚类,每一类代表一个不同的新闻类型
如果是图像或者视频(如快手),可以利用图像相关技术将图片或者视频转化为特征向量,基于该向量聚类,再采用每类推荐一个的策略。可以用openCV及深度学习技术从视频图像中提取特征, 图像视频分析&zhida_source=entity)对技术要求更高,也需要大量计算。
利用新用户在注册时提供的信息
- 基于用户的信息(如年龄,性别,地域、学历、职业等)来做推荐
- 利用社交关系:有些APP, 用户在注册时要求导入社交关系等,这时可以将你的好友喜欢的标的物推荐给你
- 利用用户填写的兴趣点
基于内容做推荐
当用户只有很少的行为记录时,这时很多算法(比如协同过滤)还无法给用户做很精准的推荐,这时可以采用基于内容的推荐算法。基于内容的推荐算法只要用户有少量行为就可以给用户推荐(比如你看一部电影,至少就知道你对这个题材的电影有兴趣,那么就推荐类似题材的电影),不像基于模型的算法那样需要有足够多的行为数据才能训练出精度够用的模型。
采用快速试探策略
先随机或者按照非个性化推荐的策略给用户推荐,基于用户的点击反馈快速发现用户的兴趣点,从而在短时间内挖掘出用户的兴趣。
采用兴趣迁移策略
当一个公司有一个成熟的APP时,准备拓展新的业务,开发新的APP,这时可以将用户在老APP上的特征迁移到新APP中, 从而做出推荐
系统冷启动
新系统比成熟的系统少的是海量的用户,无法借助其它老用户的行为来为新用户的推荐提供指导,但是除了这一块外,其它策略可以采用跟用户冷启动一样的策略,包括利用用户注册时提供的信息、基于用户少量内容做推荐以及采用兴趣迁移策略
不同推荐产品形态解决冷启动的方案
推荐系统的范式
推荐系统主要有5种范式,分别是:完全个性化范式、群组个性化范式、非个性化范式、标的物关联标的物范式、笛卡尔积范式
- 完全个性化范式:该范式可以采用基于用户的冷启动的所有方法来做冷启动
- 群组个性化范式:用户是分为兴趣相似的组的,新用户由于没有相关行为,可以单独将所有新用户放到一个新用户组,可以采用用户冷启动中的“提供非个性化的推荐“的策略来做冷启动
- 非个性化范式:每个用户推荐的内容都是一样的,这种推荐本来就是各种排行榜, 采用新热推荐的策略,所以不存在冷启动的问题
- 标的物关联标的物范式:情况是"相似视频、喜欢该物品的人还喜欢等推荐形态",可以采用标的物冷启动中的“利用标的物的metadata信息做推荐”和用户冷启动中的“提供非个性化的推荐”策略,对新标的物,既可以利用标的物的metadata计算与之相似的标的物,利用相似的标的物作为关联推荐,也可以关联到新热标的物或者常用标的物
- 笛卡尔积范式:每个用户关联到的每个标的物的推荐都是不一样的(如个性化相似影片, A用户和B用户看到的V节目的相似影片不一样)。这时可以采用关联到新热标的物或者常用标的物作为冷启动推荐。
冷启动的优化点
主要包括以下方向:
- 优化全链路:包括优化召回和排序。
- 流量调控:流量怎么在新物品、老物品中分配。
优化全链路
简单的召回通道
召回通道 | 物品冷启动适用性 |
---|---|
ItemCF 召回 | 不适用 |
双塔模型 | 改造后适用 |
类目、关键词召回 | 适用 |
聚类召回 | 适用 |
Look-Alike 召回 | 适用 |
双塔模型:因为没有 ID embedding,导致双塔模型效果不好,因此可以使用 default embedding或者利用相似笔记的 embedding 向量
类目、关键词召回通道:用户画像中记录了用户信息,包括感兴趣的类目、关键词等,可被用于召回
聚类召回:如果用户喜欢一篇笔记,那么他会喜欢内容相似的笔记。
Look-Alike 召回:以 Tesla 为例,它们知道 Telsa Model 3 的典型用户满足这样几个特点:年龄 25-35;本科学历以上;关注科技数码;喜欢苹果电子产品。需要重点在这些人群中投放广告,所以满足这些条件的用户作为种子用户,但是种子用户的数量很少,而潜在的用户受众很多却缺少部分信息无法寻找。因此,通过种子用户进行人群扩散找到与种子用户相似的 Look-Alike 用户。
流量调控
一个工业界的做法例子:
- 假设推荐系统只分发年龄小于 30 天的笔记;
- 假设采用自然分发,年龄小于 24 小时的新笔记曝光占比为 1/30;
- 扶持新笔记,让新笔记的曝光占比远大于 1/30。
而为了扶持新内容,业界的流量调控技术发展经历了如下阶段:
- 在推荐结果中强插新内容;
- 对新笔记的排序分数做提权(boost);
- 通过提权,对新笔记做保量;
- 差异化保量。
新笔记提权(boost)
在推荐系统的链路中,粗排对物品排序进行了截断,而重排进行了抽样。这两个步骤都过滤了大量的笔记,想让新笔记占到更多的曝光,就得在粗排和重排中做新笔记提权。提权的优点在于容易实现、投入产出比好,缺点也很明显:
-
曝光量对提权系数很敏感;
-
很难精确控制曝光量,容易过度曝光和不充分曝光。
新笔记保量
保量指的是不论笔记质量高低,都保证 24 小时获得 100 次曝光,即在原有提权系数的基础上,乘以额外的提权的系数。当发布时间越接近 24 小时,而曝光次数与 100 次差的越多,那么乘的额外系数就越大,给笔记更多的曝光机会。
更先进的动态提权保量,基本思想是以下四个值计算提权系数:
- 目标时间:比如 24 小时;
- 目标曝光:比如 100 次;
- 发布时间:比如笔记已经发布 12 小时;
- 已有曝光:比如笔记已经获得 20 次曝光。
提权系数就是
差异化保量
差异化保量的基本思想在于不同内容有不同的保量目标,比如普通内容保 100 次曝光、内容优质的内容保 100-500 次曝光,具体的保量目标由算法判定。