1- ---
2- title : ' 王树森推荐系统学习笔记_冷启动'
1+ ---
2+ title : " 王树森推荐系统学习笔记_冷启动"
33description : " "
44date : " 2025-09-27"
55tags :
66 - tag-one
77---
88
9- # 王树森推荐系统学习笔记_冷启动
9+ # 王树森推荐系统学习笔记 \_ 冷启动
1010
1111## 物品冷启动
1212
1313### 物品冷启动:评价指标
1414
15- ** 物品冷启动**
15+ ** 物品冷启动**
1616
17- - 小红书上用户新发布的笔记。
18- - B 站上用户新上传的视频。
19- - 今日头条上作者新发布的文章。
17+ - 小红书上用户新发布的笔记。
18+ - B 站上用户新上传的视频。
19+ - 今日头条上作者新发布的文章。
2020
21- ** 新笔记冷启动**
21+ ** 新笔记冷启动**
2222
23- - 新笔记缺少与用户的交互,导致推荐的难度大、效果差。
24- - 扶持新发布、低曝光的笔记,可以增强作者发布意愿。
23+ - 新笔记缺少与用户的交互,导致推荐的难度大、效果差。
24+ - 扶持新发布、低曝光的笔记,可以增强作者发布意愿。
2525
26- ** 优化冷启的目标**
26+ ** 优化冷启的目标**
2727
28- 1 . 精准推荐:克服冷启的困难,把新笔记推荐给合适的用户,不引起用户反感。
28+ 1 . 精准推荐:克服冷启的困难,把新笔记推荐给合适的用户,不引起用户反感。
2929
30- 2 . 激励发布:流量向低曝光新笔记倾斜,激励作者发布。
30+ 2 . 激励发布:流量向低曝光新笔记倾斜,激励作者发布。
3131
32- 3 . 挖掘高潜:通过初期小流量的试探,找到高质量的笔记,给予流量倾斜。
32+ 3 . 挖掘高潜:通过初期小流量的试探,找到高质量的笔记,给予流量倾斜。
3333
34- ** 评价指标**
34+ ** 评价指标**
3535
3636- 作者侧指标:
37- - 发布渗透率、人均发布量。
37+ - 发布渗透率、人均发布量。
3838
3939- 用户侧指标:
40- - 新笔记指标:新笔记的点击率、交互率。
41- - 大盘指标:消费时长、日活、月活。
40+ - 新笔记指标:新笔记的点击率、交互率。
41+ - 大盘指标:消费时长、日活、月活。
4242
4343- 内容侧指标:
44- - 高热笔记占比。
44+ - 高热笔记占比。
4545
4646#### 作者侧指标
4747
48- ** 发布渗透率(penetration rate)**
48+ ** 发布渗透率(penetration rate)**
4949
50- - 发布渗透率 = 当日发布人数 / 日活人数
51- - 发布一篇或以上,就算一个发布人数。
50+ - 发布渗透率 = 当日发布人数 / 日活人数
51+ - 发布一篇或以上,就算一个发布人数。
5252- ** 例** :
53- - 当日发布人数 = 100 万
54- - 日活人数 = 2000 万
55- - 发布渗透率 = 100 / 2000 = 5%
53+ - 当日发布人数 = 100 万
54+ - 日活人数 = 2000 万
55+ - 发布渗透率 = 100 / 2000 = 5%
5656
57- ** 人均发布量**
57+ ** 人均发布量**
5858
59- - 人均发布量 = 当日发布笔记数 / 日活人数
59+ - 人均发布量 = 当日发布笔记数 / 日活人数
6060- ** 例** :
61- - 每日发布笔记数 = 200 万
62- - 日活人数 = 2000 万
63- - 人均发布量 = 200 / 2000 = 0.1
61+ - 每日发布笔记数 = 200 万
62+ - 日活人数 = 2000 万
63+ - 人均发布量 = 200 / 2000 = 0.1
6464
65- 发布渗透率、人均发布量反映出作者的发布积极性。
65+ 发布渗透率、人均发布量反映出作者的发布积极性。
6666
67- 冷启的重要优化目标是促进发布,增大内容池。
67+ 冷启的重要优化目标是促进发布,增大内容池。
6868
69- 新笔记获得的曝光越多,首次曝光和交互出现得越早,作者发布积极性越高。
69+ 新笔记获得的曝光越多,首次曝光和交互出现得越早,作者发布积极性越高。
7070
7171#### 用户侧指标
7272
73- ** 新笔记的消费指标**
73+ ** 新笔记的消费指标**
7474
75- - 新笔记的点击率、交互率。
76- - 问题:曝光的基尼系数很大。
77- - 少数头部新笔记占据了大部分的曝光。
75+ - 新笔记的点击率、交互率。
76+ - 问题:曝光的基尼系数很大。
77+ - 少数头部新笔记占据了大部分的曝光。
7878
79- - 分别考察高曝光、低曝光新笔记。
80- - 高曝光:比如 >1000 次曝光。
81- - 低曝光:比如 < 1000 次曝光。
79+ - 分别考察高曝光、低曝光新笔记。
80+ - 高曝光:比如 >1000 次曝光。
81+ - 低曝光:比如 & lt ; 1000 次曝光。
8282
83- #### **内容侧指标**
83+ #### ** 内容侧指标**
8484
85- **高热笔记占比**
85+ ** 高热笔记占比**
8686
8787- 高热笔记:前 30 天获得 1000+ 次点击。
8888- 高热笔记占比越高,说明冷启阶段挖掘优质笔记的能力越强。
8989
90- #### **总结**
90+ #### ** 总结**
9191
9292- ** 作者侧指标** :发布渗透率、人均发布量。
9393- ** 用户侧指标** :新笔记消费指标、大盘消费指标。
9494- ** 内容侧指标** :高热笔记占比。
9595
96- **冷启动的优化点**
97-
98- - **优化全链路**(*包括召回和排序*)。
99- - **流量调控**(*流量怎么在新物品、老物品中分配*)。
100-
96+ ** 冷启动的优化点**
10197
98+ - ** 优化全链路** (_ 包括召回和排序_ )。
99+ - ** 流量调控** (_ 流量怎么在新物品、老物品中分配_ )。
102100
103101### 物品冷启动:简单的召回通道
104102
105103#### 召回的依据
106104
107- **冷启召回的困难**
105+ ** 冷启召回的困难**
108106
109- - 缺少用户交互,还没学好笔记 ID embedding,导致双塔模型效果不好。
107+ - 缺少用户交互,还没学好笔记 ID embedding,导致双塔模型效果不好。
110108- 缺少用户交互,导致 ItemCF 不适用。
111109
112110#### 双塔模型
@@ -124,19 +122,19 @@ tags:
124122- 查找 top k 内容最相似的高曝光笔记。
125123- 把 k 个高曝光笔记的 embedding 向量取平均,作为新笔记的 embedding。
126124
127- **多个向量召回池**
125+ ** 多个向量召回池**
128126
129127- 多个召回池,让新笔记有更多曝光机会。
130- - 1 小时新笔记,
131- - 6 小时新笔记,
132- - 24 小时新笔记,
133- - 30 天笔记。
128+ - 1 小时新笔记,
129+ - 6 小时新笔记,
130+ - 24 小时新笔记,
131+ - 30 天笔记。
134132
135133- 共享同一个双塔模型,那么多个召回池不增加训练的代价。
136134
137135#### 类目召回
138136
139- **基于类目的召回**
137+ ** 基于类目的召回**
140138
141139- 系统维护类目索引:
142140 $$ \text{类目} \rightarrow \text{笔记列表(按时间倒排)} $$
@@ -146,20 +144,20 @@ tags:
146144
147145- 取回笔记列表上前 k 篇笔记(即最新的 k 篇)。
148146
149- **基于关键词的召回**
147+ ** 基于关键词的召回**
150148
151149- 系统维护关键词索引:
152- $$\text{关键词} \rightarrow \text{笔记列表(按时间倒排)}$$
150+ $$ \text{关键词} \rightarrow \text{笔记列表(按时间倒排)} $$
153151
154- - 根据用户画像上的 \text{\color{red}{ 关键词}} 做召回。
152+ - 根据用户画像上的 ** 关键词** 做召回。
155153
156- **缺点**
154+ ** 缺点**
157155
158- - 缺点 1:只对刚刚发布的新笔记有效。
159- - 取回某类目 / 关键词下最新的 k 篇笔记。
160- - 发布几小时之后,就再没有机会被召回。
156+ - 缺点 1:只对刚刚发布的新笔记有效。
157+ - 取回某类目 / 关键词下最新的 k 篇笔记。
158+ - 发布几小时之后,就再没有机会被召回。
161159
162- - 缺点 2:弱个性化,不够精准。
160+ - 缺点 2:弱个性化,不够精准。
163161
164162### 物品冷启动:聚类召回
165163
@@ -197,8 +195,6 @@ tags:
197195
198196#### 内容相似度模型
199197
200-
201-
202198![ ] ( https://raw.githubusercontent.com/H0SH123/Books-and-Notes/main/RecommenderSystem/images/7-3-1.png )
203199
204200![ ] ( https://raw.githubusercontent.com/H0SH123/Books-and-Notes/main/RecommenderSystem/images/7-3-2.png )
@@ -212,16 +208,18 @@ tags:
212208基本想法:鼓励 $\cos(\mathbf{ a } , \mathbf{ b } ^+)$ 大于 $\cos(\mathbf{ a } , \mathbf{ b } ^-)$
213209
214210** Triplet hinge loss:**
211+
215212$$
216213L(\mathbf{a}, \mathbf{b}^+, \mathbf{b}^-) = \max\{0, \cos(\mathbf{a}, \mathbf{b}^-) + m - \cos(\mathbf{a}, \mathbf{b}^+)\}
217214$$
218215
219-
220216** Triplet logistic loss:**
217+
221218$$
222219L(\mathbf{a}, \mathbf{b}^+, \mathbf{b}^-) = \log(1 + \exp(\cos(\mathbf{a}, \mathbf{b}^-) - \cos(\mathbf{a}, \mathbf{b}^+)))
223220$$
224- **<种子笔记,正样本>**
221+
222+ ** < ; 种子笔记,正样本>**
225223
226224方法一:人工标注二元组的相似度
227225
234232
235233- 用 ItemCF 的物品相似度选正样本。
236234
237- **< 种子笔记,负样本>**
235+ ** & lt ; 种子笔记,负样本>**
238236
239237- 从全体笔记中随机选出满足条件的:
240- - 字数较多 * (神经网络提取的文本信息有效)* 。
238+ - 字数较多 _ (神经网络提取的文本信息有效)_ 。
241239 - 笔记质量高,避免图文无关。
242240
243241#### 总结
302300
303301** 工业界的做法**
304302
305- - 假设推荐系统只分发年龄 < 30 天的笔记。
303+ - 假设推荐系统只分发年龄 & lt ; 30 天的笔记。
306304
307- - 假设采用自然分发,新笔记(年龄 < 24 小时)的曝光占比为 1/30。
305+ - 假设采用自然分发,新笔记(年龄 & lt ; 24 小时)的曝光占比为 1/30。
308306
309307- 扶持新笔记,让新笔记的曝光占比远大于 1/30。
310308
351349- 已有曝光:比如笔记已经获得 20 次曝光。
352350
353351计算公式:
352+
354353$$
355354\text{提权系数} = f\left( \frac{\text{发布时间}}{\text{目标时间}}, \frac{\text{已有曝光}}{\text{目标曝光}} \right) = f(0.5, 0.2)
356355$$
356+
357357** 保量的难点**
358358
359359保量成功率远低于 100%
425425- 新策略:把新笔记排序时的权重增大两倍。
426426
427427- 结果(只看消费指标)
428-
429428 - AB 测试的 diff 是负数(策略组不如对照组)。
430429
431430 - 如果推全,diff 会缩小(比如 -2% ➝ -1%)。
442441** 缺点:新笔记之间会抢流量**
443442
444443- 设定:
445-
446444 - 新老笔记走各自队列,没有竞争。
447445
448446 - 重排:分给新笔记 1/3 流量,分给老笔记 2/3 流量。
449447
450-
451448- 新策略:把新笔记的权重增大两倍。
452449
453450- 结果(只看发布指标):
454-
455451 - AB 测试的 diff 是正数(策略组优于对照组)。
456452
457453 - 如果推全,diff 会消失(比如 2% ➝ 0)。
497493 - 新笔记、老笔记怎么抢流量?
498494 - 同时隔离笔记、用户,会不会让内容池变小?
499495 - 如果对新笔记做保量,会发生什么?
500-
501-
0 commit comments