冷启动 ¶
UGC & PGC
UGC(User-Generated Content) 和 PGC(User-Generated Content) 的区别即在于平台中物品主要由用户生成(知乎、Bilibili、小红书)还是平台提供(腾讯视频、QQ 音乐
在 UGC 平台,物品由用户提供,数量大且良莠不齐,冷启动较为困难。
为什么需要冷启动?
冷启动即对新物品予以适当的处理、激励,而:
- 新物品缺少用户交互等之前推荐过程中使用到的信息,直接进行推荐较为困难;
- 鼓励、扶持新物品有利于增强用户的创作欲望和发布意愿
- 对新物品予以流量倾斜以发掘潜在的高质量内容
冷启动本质是一种流量调控,有利于优化推荐系统全链路。
评估指标 ¶
- 作者侧指标
: (反映作者发布积极性)冷启动的重要优化目标是促进发布、增大内容池- 发布渗透率 = 当日发布人数 1 / 日活人数
- 人均发布量 = 当日新物品数量 / 日活人数
- 用户侧指标:
- 新笔记指标:新笔记的点击率、交互率
- 少部分新笔记占据了大部分的曝光和点击
- 分别考察高曝光和低曝光新笔记,扶持低曝光新笔记
- 大盘消费指标:消费时长、日活、月活
- 大力扶持低曝光新笔记将让作者侧指标变好
- 但是用户侧大盘消费指标变差
- 新笔记指标:新笔记的点击率、交互率
- 内容侧指标:
- 高热笔记占比
- 高热笔记可以自行定义,如 1 天内点击超过 1000 的物品
- 反映了冷启动阶段挖掘优质笔记的能力
- 高热笔记占比
冷启动召回 ¶
在前面的召回中我们几乎都使用了用户与物品的交互信息进行推荐,冷启动物品正是缺少了这些交互信息。ItemCF 几乎完全不可用,双塔模型经过改造可用。
双塔模型 ¶
在双塔模型做召回时,我们在物品塔中使用到了物品 ID embedding,但是缺少交互时 embedding 并不能较好地反映物品的本身的特征。
改进方案
- 使用 default embedding,即丢弃没有获得的特征信息,初始化为同一个 embedding,之后再来优化
- 基于标签、关键词(类目召回)或是基于神经网络生成的的向量(聚类召回)寻找 top k 最相似高曝光物品的 embedding 取平均作为物品的初始嵌入向量
类目召回 ¶
基于用户自身选择、填写以及从用户的历史交互行为中我们可以得到用户画像,包括其感兴趣的类目和关键词。
为此,我们可以维护(定期更新)一个“从类目 / 关键词到物品列表”的类目索引,索引物品按时间倒序排列,即最新发布的笔记在最前端。客户端发出请求时,返回其感兴趣的类目 / 关键词索引下前 k 个物品作为召回内容。
聚类召回 ¶
训练一个神经网络,依据物品本身的内容嵌入到向量库中,之后使用聚类算法(如使用余弦相似度的 k-means 聚类
为了加快召回,可以维护一个“从类簇 (cluster) 到物品列表”的聚类索引,索引中物品按时间倒序排列;维护时判断新物品属于哪一簇并插入对应索引中。
线上召回时,依据用户的 LastN 列表寻找最相似的(几个)类并召回索引的前 k 个物品。
基于索引召回的缺点
- 对于热门领域,可能发布一小时的物品就被挤出索引前 k 个物品了,失去了作为新物品的优势
- 没有将用户与物品逐一进行匹配,弱用户个性化,精准度较低
Look-Alike¶
Look-Alike 起源于互联网广告推送;基于已有的种子用户(例如已经购买了产品的用户
流量调控 ¶
相比于已有的物品数量,新物品数量实在太少了,所有物品混在一起新物品被召回的几率非常小。在评估指标中我们提到我们期望在不太影响用户体验的前提下新物品能够有更多的曝光机会。
- 强插:强行在推荐内容中插入新物品
- 保量提权:
- 提权:提高新物品排序分数(加或乘)
- 容易操作,但是提权系数难以选取
- 保量提权:确保新物品在短时间内能够获得足够的曝光量,动态调整提权系数
- 有时动态调整提权系数也较难达到曝光量目标
- 强行将物品推送给不感兴趣的用户,点击率、点赞率偏低,失去“新手保护”后将不再有竞争力
- 差异化保量:训练模型,依据内容质量和作者质量调整曝光量目标
- 提权:提高新物品排序分数(加或乘)
- 多召回池:按照发布时间单独划分召回池(1h 物品池、6h 物品池等)有利于新物品的曝光。这些召回池共享一个双塔模型,不会显著增加召回成本。
AB 测试 ¶
具体较为复杂,可见 Bilibili / CodeStrat_06。比较重要和难理解的是:针对新笔记的策略调整的 AB 测试结果可能与推全后得到的改进效果不一致。这是因为新笔记新旧策略之间很有较为剧烈的抢流量行为,都使用新策略后就会失去(或减小)相对优势。
-
发布一项以上物品的用户即算 ↩