7.物品冷启动 - wolai 笔记

1.评价指标

很少有 UGC 能让冷启动达到天花板。

1.1物品冷启动

  • 小红书上用户新发布的笔记
  • B站上用户新上传的视频
  • 今日头条上作者新发布的文章
此处主要考虑 UGC(User Generated Content) 的物品冷启动;与 UGC 相反的是 PGC(Platform Generated Content),例如网飞、腾讯视频。UGC 冷启比 PGC 更难,因为用户上传的内容良莠不齐,而且量大。
  • 思考:为什么要特殊对待新笔记?

(1)新笔记需要冷启动的原因

  • 新笔记缺少与用户的交互,导致推荐的难度大、效果差
  • 扶持新发布、低曝光的笔记,可以增强作者发布意愿

(2)优化冷启的目标

  1. 精准推荐:克服冷启的困难,把新笔记推荐给合适的用户,不引起用户反感
  2. 激励发布:流量向低曝光新笔记倾斜,激励作者发布
  3. 挖掘高潜:通过初期小流量的试探,找到高质量的笔记,给与流量倾斜

(3)评价指标

  • 作者侧指标:反映用户的发布意愿;对低曝光扶持的越好,作者侧指标就越高。
    • 发布渗透率、人均发布量;
  • 用户侧指标:反映推荐是否精准,是否会引起用户反感
    • 新笔记指标:新笔记的点击率、交互率
    • 大盘指标:消费时长、日活、月活
  • 内容侧指标:反映冷启是否能挖掘优秀笔记
    • 高热笔记占比
作者侧和用户侧指标基本都在用,内容侧指标选用

1.2作者侧指标

  • 发布渗透率、人均发布量反映出作者的发布积极性
  • 冷启的重要优化目标是促进发布,增大内容池
  • 新笔记获得的曝光越多,首次曝光和交互出现得越早,作者发布积极性越高

(1)发布渗透率(penetration rate)

衡量用户的发布积极性
  • 发布渗透率 = 当日发布人数 / 日活人数
  • 发布一篇或以上,就算一个发布人数
  • 例:
    • 当日发布人数 = 100 万
    • 日活人数 = 2000 万
    • 发布渗透率 = 100 / 2000 = 5%

(2)人均发布量

  • 人均发布量 = 当日发布笔记数 / 日活人数
  • 例:
    • 每日发布笔记数 = 200 万
    • 日活人数 = 2000 万
    • 人均发布量 = 200 / 2000 = 0.1

1.3用户侧指标

(1)新笔记的消费指标

新笔记的点击率、交互率
  • 问题:曝光的基尼系数很大。即少量头部新笔记推送准确,但大部分新笔记的推送不准,综合下来点击率、交互率也很高
  • 少数头部新笔记占据了大部分的曝光
分别考察高曝光、低曝光新笔记
  • 高曝光(占比低,推荐简单):比如 >1000 次曝光
  • 低曝光(占比高,推荐难):比如 <1000 次曝光

(2)大盘消费指标(不区分新老笔记)

  • 优化冷启时,不是为了提升大盘指标,而是确保新策略不显著伤害大盘指标
  • 大盘的消费时长、日活、月活
  • 大力扶持低曝光新笔记会发生什么?
    • 作者侧发布指标变好
    • 用户侧大盘消费指标变差(损害用户体验)

1.4内容侧指标

高热笔记占比
  • 高热笔记:前 30 天获得 1000+ 次点击
  • 高热笔记占比越高,说明冷启阶段挖掘优质笔记的能力越强

总结

  • 作者侧指标:发布渗透率、人均发布量
  • 用户侧指标:新笔记消费指标、大盘消费指标
  • 内容侧指标:高热笔记占比
  • 冷启动的优化点
    • 优化全链路(包括召回和排序)
    • 流量调控(流量怎么在新物品、老物品中分配)

2.简单的召回通道

2.1召回的难点

召回的依据
  • ✔ 自带图片、文字、地点
  • ✔ 算法或人工标注的标签
  • ❌ 没有用户点击、点赞等信息。这些信息可以反映笔记的质量,以及哪类用户喜欢该笔记
  • ❌ 没有笔记 ID embedding。ID embedding 是从用户和笔记的交互中学习出来的;缺少这个特征,召回和排序都不准确。
冷启召回的困难
  • 缺少用户交互,还没学好笔记 ID embedding,导致双塔模型效果不好,后续会影响排序,让排序模型也不准确。
  • 双塔模型是推荐系统中最重要的召回通道,没有之一
  • 缺少用户交互,导致 ItemCF 不适用
itemCF不使用于物品冷启动:根据笔记和用户的交互,来判断两个物品的相似度。
召回通道
  • ItemCF 召回(不适用)
  • 双塔模型(改造后适用)
  • ✔ 类目、关键词召回(适用);刚刚发布时,是最有用的指标,等一段事件后,会失效。
  • ✔ 聚类召回(适用)
  • ✔ Look-Alike 召回(适用)

2.2 双塔模型

物品ID(笔记ID)是物品塔中最重要的特征。新笔记还没有embedding向量,直接中双塔模型的物品塔做embedding,效果不是很好。

(1)ID Embedding

改进方案 1:新笔记使用 default embedding
  • 物品塔做 ID embedding 时,让所有新笔记共享一个 ID,而不是用自己真正的 ID
  • Default embedding:共享的 ID 对应的 embedding 向量
  • 学出来的 Default embedding 比随机初始化一个 ID embedding 要好;
  • 到下次模型训练的时候,新笔记才有自己的 ID embedding 向量
改进方案 2:利用相似笔记 embedding 向量
  • 查找 top k 内容最相似的高曝笔记
  • 把 k 个高曝笔记的 embedding 向量取平均,作为新笔记的 embedding
  • 之所以用 高爆笔记,是因为它们的 embedding 通常学得比较好

(2)多个向量召回池

多个召回池,让新笔记有更多曝光机会
  • 1 小时新笔记
  • 6 小时新笔记
  • 24 小时新笔记
  • 30 天笔记
所有召回池共享同一个双塔模型,那么多个召回池不增加训练的代价

2.3类目召回

(1)用户画像

  • 感兴趣的类目:美食、科技数码、电影......
  • 感兴趣的关键词:纽约、职场、搞笑、程序员、大学......

(2)基于类目的召回

  • 系统维护类目索引类目 → 笔记列表(按时间倒排)
  • 用类目索引做召回:用户画像 → 类目 → 笔记列表
  • 取回笔记列表上前 k 篇笔记(即最新的 k 篇)

(3)基于关键词的召回

  • 系统维护关键词索引:关键词 → 笔记列表(按时间倒排)
  • 根据用户画像上的关键词做召回

(4)缺点

缺点 1:只对刚刚发布的新笔记有效
  • 取回某 类目/关键词 下最新的 k 篇笔记
  • 发布几小时之后,就再没有机会被召回
  • 所以应该在用户高频使用软件的时间段发布内容
缺点 2:弱个性化,不够精准

2.4总结

  • ❌ ItemCF 召回(不适用
  • ❔ 双塔模型(改造后适用
  • ✔ 类目、关键词召回(适用
  • ✔ 聚类召回(适用
  • ✔ Look-Alike 召回(适用

3.聚类召回

3.1聚类召回

(1)基本思想

  • 如果用户喜欢一篇笔记,那么他会喜欢内容相似的笔记
  • 事先训练一个神经网络,基于笔记的类目和图文内容,把笔记映射到向量
  • 对笔记向量做聚类,划分为 1000 cluster,记录每个 cluster 的中心方向(k-means 聚类,用余弦相似度)

(2)聚类索引

  • 一篇新笔记发布之后,用神经网络把它映射到一个特征向量
  • 从 1000 个向量(对应 1000 个 cluster)中找到最相似的向量,作为新笔记的 cluster
  • 索引:cluster → 笔记 ID 列表(按时间倒排)

(3)线上召回

  • 给定用户 ID,找到他的 last-n 交互的笔记列表,把这些笔记作为种子笔记,去召回相似的笔记
  • 把每篇种子笔记映射到向量,寻找最相似的 cluster(知道了用户对哪些 cluster 感兴趣)
  • 从每个 cluster 的笔记列表中,取回最新的 mm篇笔记
  • 最多取回mnmn篇新笔记 (n表示保留n条用户行为记录,包括点赞、收藏、转发等;m表示每篇种子笔记召回m条新笔记)
  • 聚类召回与类目召回的缺点相同:只对刚发布的新笔记有效

3.2内容相似度模型

聚类召回通过内容相似度模型来把笔记映射到向量。
CNN提取图片特征,得到一个向量;用BERT提取文字特征,得到另一个向量。把两个向量拼接,输入FC,得到笔记的特征向量。
  • 左右两个用的神经网络的参数是相同的
  • CNN 和 BERT 可以用预训练模型,全连接层是随机初始化后训练出来的

3.3训练内容相似度模型

给定用户 ID,找到他的 last-n 交互的笔记列表,把这些笔记作为种子笔记
训练方式和双塔模型类似,输入特征为三元组<正样本笔记,种子笔记,负样本笔记>
基本思想:鼓励cos(a,b+)\cos \left(\mathbf{a}, \mathbf{b}^{+}\right)大于cos(a,b)\cos \left(a, b^{-}\right)
Triplet hinge loss:L(a,b+,b)=max{0,cos(a,b)+mcos(a,b+)}L\left(\mathbf{a}, \mathbf{b}^{+}, \mathbf{b}^{-}\right)=\max \left\{0, \cos \left(\mathbf{a}, \mathbf{b}^{-}\right)+m-\cos \left(\mathbf{a}, \mathbf{b}^{+}\right)\right\}
Triplet logistic loss:L(a,b+,b)=log(1+exp(cos(a,b)cos(a,b+)))L\left(\mathbf{a}, \mathbf{b}^{+}, \mathbf{b}^{-}\right)=\log \left(1+\exp \left(\cos \left(\mathbf{a}, \mathbf{b}^{-}\right)-\cos \left(\mathrm{a}, \mathbf{b}^{+}\right)\right)\right)
此处的公式与 召回 - 双塔模型 - Pairwise 训练 中相似

3.4 样本选取

(1)< 种子笔记,正样本 >

方法一:人工标注二元组的相似度

方法二:算法自动选正样本

筛选条件:
  • 只用高曝光笔记作为二元组(因为有充足的用户交互信息)
  • 两篇笔记有相同的二级类目,比如都是“菜谱教程”
用 ItemCF 的物品相似度选正样本

(2)< 种子笔记,负样本 >

从全体笔记中随机选出满足条件的:
  • 字数较多(神经网络提取的文本信息有效)
  • 笔记质量高,避免图文无关

3.5 聚类召回总结

  • 基本思想:根据用户的点赞、收藏、转发记录,推荐内容相似的笔记
  • 线下训练:多模态神经网络把图文内容映射到向量
  • 线上服务用户历史喜欢的笔记 → 特征向量 → 最近的 Cluster → 每个 Cluster 上的新笔记

4.Look-Alike人群扩散

4.1 Look-Alike 起源于互联网广告

Tesla Model 3 典型用户:
  • 年龄 25~35
  • 本科学历以上
  • 关注科技数码
  • 喜欢苹果电子产品
符合全部条件的人很少,但是潜在符合调价的用户可能会很多,我们缺乏他们的主要信息,没有办法找到他们。
Look-Alike用户:和种子用户相似的用户。利用这种方式,可以用十几万个种子用户扩展到百万用户。
如何计算两个用户的相似度?
  • UserCF:两个用户有共同的兴趣点
  • Embedding:两个用户向量的 cosine 较大

4.2 Look-Alike 用于新笔记召回

  • 点击、点赞、收藏、转发——用户对笔记可能感兴趣
  • 把有交互的用户作为新笔记的种子用户
  • 用 look-alike 在相似用户中扩散

(1)Look-Alike 用于新笔记召回

  • 系统把新笔记推荐给了许多用户,由于是新笔记,所以受众不太精准
  • 而跟新笔记进行了交互用户,就成了种子用户
  • 用双塔模型学习种子用户的向量,然后取均值,把得到的向量作为 新笔记 的表征
  • 近线更新特征向量。近线:不用实时更新,做到分钟级更新即可
  • 此处是做到每当有新交互发生后,几分钟内更新特征向量
  • 特征向量是有交互的用户的向量的平均
  • 每当有用户交互该物品,更新笔记的特征向量

(2)线上召回

把新笔记向量都放在向量数据库中,这些向量数据库都支持最近邻查找;如果有用户刷一下小红书,就给用户做推荐。
用双塔模型计算用户的特征向量,用特征向量作为query,在向量数据库中做最近邻查找,取回几十篇笔记。
这个召回通道就叫 Look-Alike

4.3 Look-Alike 的原理

左边:种子用户,有交互行为
将种子用户的特征向量作为新笔记的特征向量
和广告中的Look-Alike 是一样的。

5.流量调控

5.1 流量调控

(1)冷启动的优化点

  • 优化全链路(包括召回和排序)
  • 流量调控(流量怎么在新物品、老物品中分配)
工业界的通常做法是扶持新笔记

(2)扶持新笔记的目的

目的 1:促进发布,增大内容池
  • 新笔记获得的曝光越多,作者创作积极性越高
  • 反映在发布渗透率、人均发布量
目的 2:挖掘优质笔记
  • 做探索,让每篇新笔记都能获得足够曝光
  • 挖掘的能力反映在高热笔记占比

(3)工业界的做法

  • 假设推荐系统只分发年龄 <30 天的笔记。
  • 假设采用自然分发,新笔记(年龄 <24 小时)的曝光占比为 1/30
  • 扶持新笔记,让新笔记的曝光占比远大于 1/30

(4)流量调控技术的发展

  1. 在推荐结果中强插新笔记;
  2. 对新笔记的排序分数做提权(boost)。很划算的做法,实现不难,抖音、小红书前期都这么做;
  3. 通过提权,对新笔记做保量;保量的手段也是提权,只不过更复杂一些
  4. 差异化保量:根据内容质量,来确定保量定多少

5.2新笔记提权(boost)

如果不做提权干预,新笔记的曝光机会是很少的
目标:让新笔记有更多机会曝光
  • 如果做自然分发,24 小时新笔记占比为 1/30
  • 做人为干涉,让新笔记占比大幅提升
干涉粗排、重排环节,给新笔记提权
优点:容易实现,投入产出比好
缺点
  • 曝光量对提权系数很敏感
  • 很难精确控制曝光量,容易过度曝光和不充分曝光

5.3 新笔记保量

保量:不论笔记质量高低,都保证 24 小时获得 100 次曝光

(1)最原始保量方法

在原有提权系数的基础上,乘以额外的提权的系数,比如:

(2)动态提权保量

用下面四个值计算提权系数
  • 目标时间:比如 24 小时
  • 目标曝光:比如 100 次
  • 发布时间:比如笔记已经发布 12 小时
  • 已有曝光:比如笔记已经获得 20 次曝光
提权系数 : 提权系数=f( 发布时间  目标时间 , 已有曝光  目标光 )=f(0.5,0.2)提权系数 =f\left(\frac{\text { 发布时间 }}{\text { 目标时间 }}, \frac{\text { 已有曝光 }}{\text { 目标光 }}\right)=f(0.5,0.2)

(3)保量的难点

保量成功率远低于 100%
  • 很多笔记在 24 小时达不到 100 次曝光
  • 召回、排序存在不足
  • 提权系数调得不好
线上环境变化会导致保量失败
  • 线上环境变化:新增召回通道、升级排序模型、改变重排打散规则......
  • 线上环境变化后,需要调整提权系数
思考题:是否可以给所有新笔记一个很大的提权系数(比如 4 倍),直到达成 100 次曝光为止?
  • 这样的保量成功率很高
  • 为什么不用这种方法呢?
给新笔记分数 boost 越多,对新笔记越有利?
  • 好处:分数提升越多,曝光次数越多
  • 坏处:把笔记推荐给不太合适的受众
    • 点击率、点赞率等指标会偏低
    • 笔记长期会受推荐系统打压,难以成长为热门笔记
即这个笔记如果推荐给合适用户,那它是不错的,但强行提高曝光次数,导致它被经常推给不适合的用户,进而交互指标偏低

5.4差异化保量

保量:不论新笔记质量高低,都做扶持,在前 24 小时给 100 次曝光
差异化保量:不同笔记有不同保量目标,普通笔记保 100 次曝光,内容优质的笔记保 100~500 次曝光
  • 基础保量:24 小时 100 次曝光
  • 内容质量:用模型评价内容质量高低,给予额外保量目标,上限是加 200 次曝光
  • 作者质量:根据作者历史上的笔记质量,给予额外保量目标,上限是加 200 次曝光
  • 一篇笔记最少有 100 次保量,最多有 500 次保量

5.5总结

  • 流量调控:流量怎么在新老笔记之间分配
  • 扶持新笔记:增加单独的召回通道、在排序阶段提权
  • 保量:帮助新笔记在前 24 小时获得 100 次曝光
  • 差异化保量:根据内容质量、作者质量,决定保量目标
本节后面讲的保留技术不是最新的,但也只有业界一线核心部门能做到,而且做到后对作者侧的指标提升显著

6.AB测试

想要上线新的模型或策略都要做 AB 测试。冷启动的 AB 测试特别复杂,所以单独讲一节

6.1新笔记冷启动 AB 测试

作者侧(发布)指标:
  • 发布渗透率、人均发布量
用户侧(消费)指标:
  • 对新笔记的点击率、交互率
  • 大盘指标:消费时长、日活、月活
标准的 AB 测试只测大盘指标,而冷启动 AB 测试还要测上面提到的指标
标准的AB测试

6.2用户侧实验

(1)缺点

  • 限定:保量 100 次曝光
  • 假设:新笔记曝光越多,用户使用 APP 时长越低 ;这个假设很合理,因为新笔记推送不准确,过多会影响体验
  • 新策略:把新笔记排序时的权重增大两倍
  • 结果(只看消费指标):
    • AB 测试的 diff 是负数(策略组不如对照组)
    • 如果推全,diff 会缩小(比如 −2% → −1%)
使用新策略后,实验组看到的新笔记会增多,又因为有着保量 100 次的目标,所以对照组看到的新笔记数量会减少;
实验组看多了新笔记,消费指标变差;对照组看少了新笔记,消费指标变好
但推全后,这 100 次的保量目标会均匀的分配给所有用户,消费指标依然会下降,但不会有 实验组 那么差

6.3作者侧实验

作者侧实验不好做,没有很完美的实验方案。
作者侧实验示意图

(1)作者侧实验:方案一

缺点:新笔记之间会抢流量。给实验组新笔记提权后,同是新笔记,实验组中的能获得更多曝光,而对照组中的曝光就少了,而一旦推全后,就不存在新笔记间强流量的情况,diff 就消失了 。
设定:
  • 新老笔记走各自队列,没有竞争
  • 重排分给新笔记 1/3 流量,分给老笔记 2/3 流量 ,两者曝光占比固定不变
新策略:把新笔记的权重增大两倍;这对新笔记来说依然是公平竞争,而新笔记在重排中还是 1/3 流量,所以新策略不会激励发布,不会改变发布侧指标 。
结果(只看发布指标):
  • AB 测试的 diff 是正数(实验组优于对照组);实验组的新笔记会抢走对照组的曝光,那么实验组的发布指标会涨,对照组的发布指标会跌。
  • 如果推全,diff 会消失(比如 2% → 0)

缺点一:新笔记之间会抢流量

给实验组新笔记提权后,同是新笔记,实验组中的能获得更多曝光,而对照组中的曝光就少了,而一旦推全后,就不存在新笔记间强流量的情况,diff 就消失了 。

缺点二:新笔记和老笔记抢流量

设定:新老笔记自由竞争
新策略:把新笔记排序时的权重增大两倍
AB 测试时,50% 新笔记(带策略)跟 100% 老笔记抢流量;一份新笔记抢走两份老笔记的流量。
推全后,100% 新笔记(带策略)跟 100% 老笔记抢流量;一份新笔记只能抢走一份老笔记的流量
作者侧 AB 测试结果与推全结果有些差异 。
新老笔记抢流量不是问题,问题是 AB 测试与推全后的 设定 不一致,导致 AB 测试的结果不准确

(2)作者侧实验:方案二

实验组用户只能看到实验组新笔记,对照组用户同理
这样就避免了两组新笔记抢流量
方案二比方案一的优缺点
  • 优点:新笔记的两个桶不抢流量,作者侧实验结果更可信
  • 相同缺点:新笔记和老笔记抢流量,作者侧 AB 测试结果与推全结果有些差异;依然是 AB 测试时 50% 新笔记跟 100% 老笔记抢流量,推全后 100% 新笔记跟 100% 老笔记抢流量 ;
  • 方案二缺点:新笔记池减小一半,对用户体验造成负面影响

(3)作者侧实验:方案三

相当于把小红书切成了 2 个 APP
这样做的实验结果是最精准的
不太可行,太损害用户体验了 ,内容池小了一般,消费指标一定会大跌;
但是跨国 APP 可以用这个方案呀

6.4总结

  • 冷启的 AB 测试需要观测作者发布指标和用户消费指标 ;两个目标:激励作者发布、让用户满意
  • 各种 AB 测试的方案都有缺陷(小红书有更好的方案,但也不完美)
  • 设计方案的时候,问自己几个问题:
    • 实验组、对照组新笔记会不会抢流量?
    • 新笔记、老笔记怎么抢流量? AB 测试时怎么抢?推全后怎么抢?
    • 同时隔离笔记、用户,会不会让内容池变小?
    • 如果对新笔记做保量,会发生什么?


Comment
avatar
Dongnian
A salty fish swimming in the sea of deep learning!
Follow Me
Announcement
Welcome to My Personal Blog!
If Not, Please Visit Gitee Mirror.
Catalog
  1. 1.评价指标
    1. 1.1物品冷启动
      1. (1)新笔记需要冷启动的原因
      2. (2)优化冷启的目标
      3. (3)评价指标
    2. 1.2作者侧指标
      1. (1)发布渗透率(penetration rate)
      2. (2)人均发布量
    3. 1.3用户侧指标
      1. (1)新笔记的消费指标
      2. (2)大盘消费指标(不区分新老笔记)
    4. 1.4内容侧指标
      1. 总结
  2. 2.简单的召回通道
    1. 2.1召回的难点
    2. 2.2 双塔模型
      1. (1)ID Embedding
      2. (2)多个向量召回池
    3. 2.3类目召回
      1. (1)用户画像
      2. (2)基于类目的召回
      3. (3)基于关键词的召回
      4. (4)缺点
    4. 2.4总结
  3. 3.聚类召回
    1. 3.1聚类召回
      1. (1)基本思想
      2. (2)聚类索引
      3. (3)线上召回
    2. 3.2内容相似度模型
    3. 3.3训练内容相似度模型
    4. 3.4 样本选取
      1. (1)< 种子笔记,正样本 >
        1. 方法一:人工标注二元组的相似度
        2. 方法二:算法自动选正样本
      2. (2)< 种子笔记,负样本 >
    5. 3.5 聚类召回总结
  4. 4.Look-Alike人群扩散
    1. 4.1 Look-Alike 起源于互联网广告
    2. 4.2 Look-Alike 用于新笔记召回
      1. (1)Look-Alike 用于新笔记召回
      2. (2)线上召回
    3. 4.3 Look-Alike 的原理
  5. 5.流量调控
    1. 5.1 流量调控
      1. (1)冷启动的优化点
      2. (2)扶持新笔记的目的
      3. (3)工业界的做法
      4. (4)流量调控技术的发展
    2. 5.2新笔记提权(boost)
    3. 5.3 新笔记保量
      1. (1)最原始保量方法
      2. (2)动态提权保量
      3. (3)保量的难点
    4. 5.4差异化保量
    5. 5.5总结
  6. 6.AB测试
    1. 6.1新笔记冷启动 AB 测试
    2. 6.2用户侧实验
      1. (1)缺点
    3. 6.3作者侧实验
      1. (1)作者侧实验:方案一
        1. 缺点一:新笔记之间会抢流量
        2. 缺点二:新笔记和老笔记抢流量
      2. (2)作者侧实验:方案二
      3. (3)作者侧实验:方案三
    4. 6.4总结
Recent Post
Info
Article :
87
Run time :
Total Count :
411.2k
UV :
PV :
Last Push :