第七章 物品冷启动
1 评价指标
- UGC(User Generated Content)v.s. PGC(Platform Generated Content)
- UGC由用户上传,内容可能良莠不齐
Q:为什么要特殊对待新笔记?
A:新笔记缺少与用户的交互,导致推荐的难度大、效果差;扶持新发布、低曝光的笔记,可以增加作者发布意愿。
1.1 优化冷启的目标
- 精准推荐:克服冷启的困难,把新笔记推荐给合适的用户,不引起用户反感。
- 激励发布:流量向低曝光新笔记倾斜,激励作者发布。
- 挖掘高潜:通过初期小流量的试探,找到高质量笔记,给与流量倾斜。
1.2 评价指标
-
作者侧指标:发布渗透率、人均发布量
-
用户侧指标:
- 新笔记指标:新笔记的点击率、交互率
- 大盘指标:消费时长、日活、月活(冷启的策略应该让消费指标尽可能持平)
-
内容侧指标:高热笔记占比
1.2.1 作者侧指标
-
发布渗透率 = 当日发布人数 / 日活人数
-
人均发布量 = 当日发布笔记数 / 日活人数
上述两个指标反映出作者的发布积极性,冷启动的重要优化目标是促进发布,增大内容池
1.2.2 用户侧指标
-
新笔记的消费指标(点击率、交互率)
- 曝光的基尼系数很大,少量头部新笔记占据了大部分曝光
- 分别考察高曝光和低曝光的新笔记
-
大盘消费指标
- 大力扶持新笔记会带来:
- 作者侧发布指标变好
- 用户侧大盘消费指标变差
- 希望大盘指标尽可能持平,防止伤害用户体验
- 大力扶持新笔记会带来:
-
内容侧指标
- 高热笔记占比(占比越高,说明冷启阶段挖掘优质笔记的能力强)
1.3 冷启动的优化点
- 优化全链路(包括召回和排序,针对新笔记做优化)
- 流量调控(流量怎么在新物品和老物品中分配)
2 物品冷启动:简单的召回通道
2.1 召回的难点
- 召回的依据:自带图片、文字自、地点;算法或人工标注的标签。但是新笔记缺少用户点击、点赞等信息以及ID embedding(尚未用反向传播更新)。
- 缺少用户交互,还没有学好笔记ID embedding,导致双塔模型效果不好;
- 缺少用户交互,导致ItemCF不适用(新物品缺少用户交互)。
- 召回通道:
- ItemCF召回(不适用)
- 双塔模型(改造后适用)
- 类目、关键词召回(适用)
- 聚类召回(适用)
- Look-Alike召回(适用)
2.2 双塔模型
2.2.1 改进方案
- 新笔记适用default embedding(共享同一个ID,而不是真正的ID)
- 利用相似物品的embedding向量
- 查找top k内容最相似的高曝笔记
- 对k个高曝笔记的embedding向量做平均,作为新笔记的embedding
2.2.2 多个向量召回池
提高新笔记的曝光机会;共享同一个双塔模型,多个召回池不增加训练代价。
2.3 类目召回
2.3.1 用户画像
- 感兴趣的类目
- 感兴趣的关键词
2.3.2 基于类目的召回
- 系统维护 类目->笔记列表 (按时间倒排)的索引
- 用类目索引做召回:用户画像->类目->笔记列表
- 取回笔记列表上的前kkk篇笔记
2.3.3 基于关键词的召回
- 系统维护 关键词->笔记列表 (按时间倒排)的索引
- 用类目索引做召回:用户画像->关键词->笔记列表
- 取回笔记列表上的前kkk篇笔记
2.3.4 缺点
- 只对刚刚发布的新笔记有效(类似栈,留给新笔记的窗口时间很短)
- 弱个性化,不够精准
重要性:可以让新笔记立刻获得曝光,提升用户发布积极性。
3 聚类召回
-
基本思想:如果用户喜欢一片笔记,那么他会喜欢内容相似的笔记。事先训练一个神经网络,基于笔记的类目和图文内容,把笔记映射到向量。对向量做聚类,记录每个cluster的中心方向。
-
聚类索引
发布新笔记之后,神经网络把它映射到一个特征向量,从cluster中选择一个最相似的向量作为新笔记的cluster,建立cluster -> 笔记ID列表(按照时间倒排)的索引
-
线上召回:
- 给定用户ID,找到last-n交互的笔记列表,把这些笔记作为种子笔记。
- 把每篇种子笔记映射到向量,找到最相似的cluster。
- 从每个cluster笔记中,取回最新的mmm篇笔记。
缺点同类目召回
-
内容相似度模型:
-
模型的训练:类似三塔模型
-
正样本的选取:(1)人工标注二元组的相似度(成本太大);(2)算法自动选正样本(筛选条件:只用高曝光笔记作为二元组-充足的用户交互信息;两片笔记有相同的二级类目),最后用ItemCF筛选样本
-
负样本的选取:字数较多(信息提取多),图文相关(避免劣质笔记)
-
4 Look-Alike人群扩散召回
Look-Alike起源于互联网广告,用于将种子用户进行人群扩散,扩散为Look-Alike用户。
4.1 Look-Alike用于新笔记召回
-
基本思想:用户对笔记的交互说明用户对笔记可能感兴趣,把有交互的用户作为新笔记的种子用户,接着用look-alike再相似用户中扩散。
-
具体流程:
- 新笔记发布后,将种子用户(对新笔记有交互的用户)的embedding向量取平均,作为新笔记的特征向量。
- 每当有用户交互该笔记,则近线更新特征向量(分钟级)。
-
线上召回:
- 使用向数据库存储新笔记的特征向量。
- 对每个用户通过最近邻查找向量数据库,来实现对种子用户寻找look-alike相似用户。
5 流量调控(流量在新物品、老物品的分配)
5.1 流量调控技术的发展
- 在推荐结果中强插新笔记。
- 对心笔记的排序分数做提权(boost)。
- 通过提权,对新笔记做保量。
- 差异化保量。
5.2 新笔记提权(Boost)
- 在推荐系统的链路中,粗排(截断)和重排(抽样)过滤作用比较明显。
- 提权的目标:做人为干涉,让新笔记占比大幅提升。
- 优点:容易实现,投入产出比好。
- 缺点:
- 曝光量对提权系数很敏感。
- 很难精确控制曝光,量,容易过度曝光和不充分曝光。
5.3 新笔记保量
-
保量:不论物品质量高低,都能保证物品的曝光次数。
-
在原有的提权系数的基础上,乘以额外的提权的系数(和发布时间以及当前曝光次数有关)。
-
动态提权保量:用多个变量计算提权系数(如目标时间、目标曝光、发布时间、已有曝光等)
提权系数=f(发布时间目标时间,已有曝光目标曝光) 提权系数=f(\frac{发布时间}{目标时间},\frac{已有曝光}{目标曝光}) 提权系数=f(目标时间发布时间,目标曝光已有曝光) -
难点:保量成功率远低于100%(召回、排序存在不足;提权系数不够准确);线上环境变化可能导致保量失败
Q:给所有新笔记一个很大的提权系数,实现快速曝光?
A:保量成功率很高,但是容易把笔记推荐给不太适合的受众,导致受众体验较差,消费指标降低;长期会受推荐系统打压,难以成长为热门笔记。
5.4 差异化保量
- 基本思想:不同笔记有不同的保量目标
- 基础保量 + 额外保量(根据内容质量高低、作者质量高低等给与)
6 新笔记冷启的AB测试
6.1 用户侧实验
- 缺点: 保量曝光情形下,AB实验的diff很大(是负数),但是推全后diff的绝对值会降低(AB实验中,保量情况下,实验组看到更多新笔记,消费指标变差,而对照组看到更少新笔记,消费指标变好)
6.2 作者侧实验
- 方案一:老笔记100% <–> 用户100% <–> 新笔记(50%实验组+50%对照组)
- 缺点:新笔记之间会抢流量(新老笔记各自队列,没有竞争);新笔记和老笔记抢流量(AB测试和推全实验的设定不一样)
- 方案二:老笔记100% <–> 用户(50%实验组+50对照组) <–> 新笔记(50%实验组+50%对照组)
- 优点:新笔记分成两个桶,实验结果相对更精确。
- 缺点:新笔记抢老笔记流量;新笔记池减小一半,对用户体验造成负面影响。
- 方案三:老笔记(50%实验组+50对照组) <–> 用户(50%实验组+50对照组) <–> 新笔记(50%实验组+50%对照组)
- 缺点:类似分成了两个APP,损害了用户体验,消费指标一定会下降。