1
- ---
2
- title : ' 王树森推荐系统学习笔记_冷启动'
1
+ ---
2
+ title : " 王树森推荐系统学习笔记_冷启动"
3
3
description : " "
4
4
date : " 2025-09-27"
5
5
tags :
6
6
- tag-one
7
7
---
8
8
9
- # 王树森推荐系统学习笔记_冷启动
9
+ # 王树森推荐系统学习笔记 \_ 冷启动
10
10
11
11
## 物品冷启动
12
12
13
13
### 物品冷启动:评价指标
14
14
15
- ** 物品冷启动**
15
+ ** 物品冷启动**
16
16
17
- - 小红书上用户新发布的笔记。
18
- - B 站上用户新上传的视频。
19
- - 今日头条上作者新发布的文章。
17
+ - 小红书上用户新发布的笔记。
18
+ - B 站上用户新上传的视频。
19
+ - 今日头条上作者新发布的文章。
20
20
21
- ** 新笔记冷启动**
21
+ ** 新笔记冷启动**
22
22
23
- - 新笔记缺少与用户的交互,导致推荐的难度大、效果差。
24
- - 扶持新发布、低曝光的笔记,可以增强作者发布意愿。
23
+ - 新笔记缺少与用户的交互,导致推荐的难度大、效果差。
24
+ - 扶持新发布、低曝光的笔记,可以增强作者发布意愿。
25
25
26
- ** 优化冷启的目标**
26
+ ** 优化冷启的目标**
27
27
28
- 1 . 精准推荐:克服冷启的困难,把新笔记推荐给合适的用户,不引起用户反感。
28
+ 1 . 精准推荐:克服冷启的困难,把新笔记推荐给合适的用户,不引起用户反感。
29
29
30
- 2 . 激励发布:流量向低曝光新笔记倾斜,激励作者发布。
30
+ 2 . 激励发布:流量向低曝光新笔记倾斜,激励作者发布。
31
31
32
- 3 . 挖掘高潜:通过初期小流量的试探,找到高质量的笔记,给予流量倾斜。
32
+ 3 . 挖掘高潜:通过初期小流量的试探,找到高质量的笔记,给予流量倾斜。
33
33
34
- ** 评价指标**
34
+ ** 评价指标**
35
35
36
36
- 作者侧指标:
37
- - 发布渗透率、人均发布量。
37
+ - 发布渗透率、人均发布量。
38
38
39
39
- 用户侧指标:
40
- - 新笔记指标:新笔记的点击率、交互率。
41
- - 大盘指标:消费时长、日活、月活。
40
+ - 新笔记指标:新笔记的点击率、交互率。
41
+ - 大盘指标:消费时长、日活、月活。
42
42
43
43
- 内容侧指标:
44
- - 高热笔记占比。
44
+ - 高热笔记占比。
45
45
46
46
#### 作者侧指标
47
47
48
- ** 发布渗透率(penetration rate)**
48
+ ** 发布渗透率(penetration rate)**
49
49
50
- - 发布渗透率 = 当日发布人数 / 日活人数
51
- - 发布一篇或以上,就算一个发布人数。
50
+ - 发布渗透率 = 当日发布人数 / 日活人数
51
+ - 发布一篇或以上,就算一个发布人数。
52
52
- ** 例** :
53
- - 当日发布人数 = 100 万
54
- - 日活人数 = 2000 万
55
- - 发布渗透率 = 100 / 2000 = 5%
53
+ - 当日发布人数 = 100 万
54
+ - 日活人数 = 2000 万
55
+ - 发布渗透率 = 100 / 2000 = 5%
56
56
57
- ** 人均发布量**
57
+ ** 人均发布量**
58
58
59
- - 人均发布量 = 当日发布笔记数 / 日活人数
59
+ - 人均发布量 = 当日发布笔记数 / 日活人数
60
60
- ** 例** :
61
- - 每日发布笔记数 = 200 万
62
- - 日活人数 = 2000 万
63
- - 人均发布量 = 200 / 2000 = 0.1
61
+ - 每日发布笔记数 = 200 万
62
+ - 日活人数 = 2000 万
63
+ - 人均发布量 = 200 / 2000 = 0.1
64
64
65
- 发布渗透率、人均发布量反映出作者的发布积极性。
65
+ 发布渗透率、人均发布量反映出作者的发布积极性。
66
66
67
- 冷启的重要优化目标是促进发布,增大内容池。
67
+ 冷启的重要优化目标是促进发布,增大内容池。
68
68
69
- 新笔记获得的曝光越多,首次曝光和交互出现得越早,作者发布积极性越高。
69
+ 新笔记获得的曝光越多,首次曝光和交互出现得越早,作者发布积极性越高。
70
70
71
71
#### 用户侧指标
72
72
73
- ** 新笔记的消费指标**
73
+ ** 新笔记的消费指标**
74
74
75
- - 新笔记的点击率、交互率。
76
- - 问题:曝光的基尼系数很大。
77
- - 少数头部新笔记占据了大部分的曝光。
75
+ - 新笔记的点击率、交互率。
76
+ - 问题:曝光的基尼系数很大。
77
+ - 少数头部新笔记占据了大部分的曝光。
78
78
79
- - 分别考察高曝光、低曝光新笔记。
80
- - 高曝光:比如 >1000 次曝光。
81
- - 低曝光:比如 < 1000 次曝光。
79
+ - 分别考察高曝光、低曝光新笔记。
80
+ - 高曝光:比如 >1000 次曝光。
81
+ - 低曝光:比如 & lt ; 1000 次曝光。
82
82
83
- #### **内容侧指标**
83
+ #### ** 内容侧指标**
84
84
85
- **高热笔记占比**
85
+ ** 高热笔记占比**
86
86
87
87
- 高热笔记:前 30 天获得 1000+ 次点击。
88
88
- 高热笔记占比越高,说明冷启阶段挖掘优质笔记的能力越强。
89
89
90
- #### **总结**
90
+ #### ** 总结**
91
91
92
92
- ** 作者侧指标** :发布渗透率、人均发布量。
93
93
- ** 用户侧指标** :新笔记消费指标、大盘消费指标。
94
94
- ** 内容侧指标** :高热笔记占比。
95
95
96
- **冷启动的优化点**
97
-
98
- - **优化全链路**(*包括召回和排序*)。
99
- - **流量调控**(*流量怎么在新物品、老物品中分配*)。
100
-
96
+ ** 冷启动的优化点**
101
97
98
+ - ** 优化全链路** (_ 包括召回和排序_ )。
99
+ - ** 流量调控** (_ 流量怎么在新物品、老物品中分配_ )。
102
100
103
101
### 物品冷启动:简单的召回通道
104
102
105
103
#### 召回的依据
106
104
107
- **冷启召回的困难**
105
+ ** 冷启召回的困难**
108
106
109
- - 缺少用户交互,还没学好笔记 ID embedding,导致双塔模型效果不好。
107
+ - 缺少用户交互,还没学好笔记 ID embedding,导致双塔模型效果不好。
110
108
- 缺少用户交互,导致 ItemCF 不适用。
111
109
112
110
#### 双塔模型
@@ -124,19 +122,19 @@ tags:
124
122
- 查找 top k 内容最相似的高曝光笔记。
125
123
- 把 k 个高曝光笔记的 embedding 向量取平均,作为新笔记的 embedding。
126
124
127
- **多个向量召回池**
125
+ ** 多个向量召回池**
128
126
129
127
- 多个召回池,让新笔记有更多曝光机会。
130
- - 1 小时新笔记,
131
- - 6 小时新笔记,
132
- - 24 小时新笔记,
133
- - 30 天笔记。
128
+ - 1 小时新笔记,
129
+ - 6 小时新笔记,
130
+ - 24 小时新笔记,
131
+ - 30 天笔记。
134
132
135
133
- 共享同一个双塔模型,那么多个召回池不增加训练的代价。
136
134
137
135
#### 类目召回
138
136
139
- **基于类目的召回**
137
+ ** 基于类目的召回**
140
138
141
139
- 系统维护类目索引:
142
140
$$ \text{类目} \rightarrow \text{笔记列表(按时间倒排)} $$
@@ -146,20 +144,20 @@ tags:
146
144
147
145
- 取回笔记列表上前 k 篇笔记(即最新的 k 篇)。
148
146
149
- **基于关键词的召回**
147
+ ** 基于关键词的召回**
150
148
151
149
- 系统维护关键词索引:
152
- $$\text{关键词} \rightarrow \text{笔记列表(按时间倒排)}$$
150
+ $$ \text{关键词} \rightarrow \text{笔记列表(按时间倒排)} $$
153
151
154
- - 根据用户画像上的 \text{\color{red}{ 关键词}} 做召回。
152
+ - 根据用户画像上的 ** 关键词** 做召回。
155
153
156
- **缺点**
154
+ ** 缺点**
157
155
158
- - 缺点 1:只对刚刚发布的新笔记有效。
159
- - 取回某类目 / 关键词下最新的 k 篇笔记。
160
- - 发布几小时之后,就再没有机会被召回。
156
+ - 缺点 1:只对刚刚发布的新笔记有效。
157
+ - 取回某类目 / 关键词下最新的 k 篇笔记。
158
+ - 发布几小时之后,就再没有机会被召回。
161
159
162
- - 缺点 2:弱个性化,不够精准。
160
+ - 缺点 2:弱个性化,不够精准。
163
161
164
162
### 物品冷启动:聚类召回
165
163
@@ -197,8 +195,6 @@ tags:
197
195
198
196
#### 内容相似度模型
199
197
200
-
201
-
202
198
![ ] ( https://raw.githubusercontent.com/H0SH123/Books-and-Notes/main/RecommenderSystem/images/7-3-1.png )
203
199
204
200
![ ] ( https://raw.githubusercontent.com/H0SH123/Books-and-Notes/main/RecommenderSystem/images/7-3-2.png )
@@ -212,16 +208,18 @@ tags:
212
208
基本想法:鼓励 $\cos(\mathbf{ a } , \mathbf{ b } ^+)$ 大于 $\cos(\mathbf{ a } , \mathbf{ b } ^-)$
213
209
214
210
** Triplet hinge loss:**
211
+
215
212
$$
216
213
L(\mathbf{a}, \mathbf{b}^+, \mathbf{b}^-) = \max\{0, \cos(\mathbf{a}, \mathbf{b}^-) + m - \cos(\mathbf{a}, \mathbf{b}^+)\}
217
214
$$
218
215
219
-
220
216
** Triplet logistic loss:**
217
+
221
218
$$
222
219
L(\mathbf{a}, \mathbf{b}^+, \mathbf{b}^-) = \log(1 + \exp(\cos(\mathbf{a}, \mathbf{b}^-) - \cos(\mathbf{a}, \mathbf{b}^+)))
223
220
$$
224
- **<种子笔记,正样本>**
221
+
222
+ ** < ; 种子笔记,正样本>**
225
223
226
224
方法一:人工标注二元组的相似度
227
225
234
232
235
233
- 用 ItemCF 的物品相似度选正样本。
236
234
237
- **< 种子笔记,负样本>**
235
+ ** & lt ; 种子笔记,负样本>**
238
236
239
237
- 从全体笔记中随机选出满足条件的:
240
- - 字数较多 * (神经网络提取的文本信息有效)* 。
238
+ - 字数较多 _ (神经网络提取的文本信息有效)_ 。
241
239
- 笔记质量高,避免图文无关。
242
240
243
241
#### 总结
302
300
303
301
** 工业界的做法**
304
302
305
- - 假设推荐系统只分发年龄 < 30 天的笔记。
303
+ - 假设推荐系统只分发年龄 & lt ; 30 天的笔记。
306
304
307
- - 假设采用自然分发,新笔记(年龄 < 24 小时)的曝光占比为 1/30。
305
+ - 假设采用自然分发,新笔记(年龄 & lt ; 24 小时)的曝光占比为 1/30。
308
306
309
307
- 扶持新笔记,让新笔记的曝光占比远大于 1/30。
310
308
351
349
- 已有曝光:比如笔记已经获得 20 次曝光。
352
350
353
351
计算公式:
352
+
354
353
$$
355
354
\text{提权系数} = f\left( \frac{\text{发布时间}}{\text{目标时间}}, \frac{\text{已有曝光}}{\text{目标曝光}} \right) = f(0.5, 0.2)
356
355
$$
356
+
357
357
** 保量的难点**
358
358
359
359
保量成功率远低于 100%
425
425
- 新策略:把新笔记排序时的权重增大两倍。
426
426
427
427
- 结果(只看消费指标)
428
-
429
428
- AB 测试的 diff 是负数(策略组不如对照组)。
430
429
431
430
- 如果推全,diff 会缩小(比如 -2% ➝ -1%)。
442
441
** 缺点:新笔记之间会抢流量**
443
442
444
443
- 设定:
445
-
446
444
- 新老笔记走各自队列,没有竞争。
447
445
448
446
- 重排:分给新笔记 1/3 流量,分给老笔记 2/3 流量。
449
447
450
-
451
448
- 新策略:把新笔记的权重增大两倍。
452
449
453
450
- 结果(只看发布指标):
454
-
455
451
- AB 测试的 diff 是正数(策略组优于对照组)。
456
452
457
453
- 如果推全,diff 会消失(比如 2% ➝ 0)。
497
493
- 新笔记、老笔记怎么抢流量?
498
494
- 同时隔离笔记、用户,会不会让内容池变小?
499
495
- 如果对新笔记做保量,会发生什么?
500
-
501
-
0 commit comments