Google: Bootstrapping Recommendations at Chrome Web Store(KDD2021)
1. Introduction
业务场景:
Google Chrome 中 Chrome Web Store,推荐浏览器第三方插件(以下以item代称)
任务:
在现实数据中,从零开始搭建大规模推荐系统
困难:
不同于学术研究中已处理好的数据,现实中通常面临隐私限制、数据分布不均、数据稀疏等问题
contributions:
1.设计了快速可解释非个性化神经网络排序模型(non-personalized recommendation),有助于从零开始的推荐系统进行数据和特征分析,从而实现快速训练和推断,为后续更先进的模型快速迭代铺路
2.设计了相关推荐模型(related extension recommendations),利用新的item-item based算法,解决现实数据问题
3.结合前两种模型,设计了个性化推荐模型(personalized recommen- dations),有效缩短开发周期,并规避了业务面临的困难
2. non-personalized recommendation
目的:快速构建打通pipeline,帮助端到端推荐更快实现,并更易分析解决机器学习模型问题
负责业务:面向未登录用户推荐猜喜
2.1 模型架构
数据:
(input)每个item构建为k-dim向量 x
(input)简单的上下文特征 q,如浏览器设置的地区、语言
(label)对当前item的操作(1-点击,2-安装,0-otherwise)
模型:
Neural RankGAM:从零开始搭建推荐系统过程中,为了方便迭代,选择训练可解释的generalized additive models (GAMs)。为每个特征单独构建子模型,再将子模型输出的和作为预测结果
y
^
=
f
(
x
)
=
∑
j
f
j
(
x
j
)
\hat{y}=f(\bold{x})=\sum_{j}f_{j}(x_{j})
y^=f(x)=∑jfj(xj)
Neural RankGAM+:引入简单的上下文特征
y
^
=
f
(
q
,
x
)
=
∑
j
w
j
(
q
)
f
j
(
x
j
)
\hat{y}=f(\bold{q,x})=\sum_{j}w_{j}(\bold{q})f_{j}(x_{j})
y^=f(q,x)=∑jwj(q)fj(xj)
2.2 改进
case:线上落败
原因:线上线下数据分布差异,线上候选集为整个item空间,而训练主要针对最热item
可选方案:对训练数据加权等;增加候选filter,对线上item只推荐训练数据中高频出现的item
3. related extension recommendations
面向业务:推荐当前item的相似扩展item
3.1 尝试1:pointwise mutual information (PMI)
对于任意两个item,计算其pointwise mutual information (PMI)(类似于item共现分)
P M I ( e 1 , e 2 ) = N # ( e 1 , e 2 ) # ( e 1 ) # ( e 2 ) PMI(e_1,e_2) = \frac{N \#(e_1, e_2)}{\#(e_1)\#(e_2)} PMI(e1,e2)=#(e1)#(e2)N#(e1,e2),给定 e 1 e_1 e1下, P M I ( e 1 , ⋅ ) ∝ # ( e 1 , e 2 ) # ( e 2 ) PMI(e_1, \cdot)\propto\frac{ \#(e_1, e_2)}{\#(e_2)} PMI(e1,⋅)∝#(e2)#(e1,e2)
面临困难:
1.冷启动问题:当前item没有任何交互数据
2.PMI一直在尝试推荐相关但罕见的item(极端情况可以考虑
e
2
e_2
e2仅和
e
1
e_1
e1共现,其余情况均不安装)
3.2 尝试2: learning to rank formulation
对于共现数据 { e 1 , e 2 , e 3 } \{e_1,e_2,e_3\} {e1,e2,e3},相互作为正样例,从整个空间中采样负样例
case1:所有相似推荐结果同质化(对于不同item推荐列表不变)
原因:安装item的分布是高度不均的,热度集中在少数item上
case2:针对case1优化,如加权,启发式负采样,更通用的特征(如文本类特征),但线上落败
原因:从一个极端(最热)到另一个极端(相关但不流行),单纯使用基于学习的方法在最热和相关之间取舍很难
3.3 A new hybrid item-item recommendation method
3.3.1 Mixture model解决流行度偏差
假设given e 1 e_1 e1下, e 2 e_2 e2安装的概率由 P i n s t a l l e d ( e 2 ∣ e 1 ) = ( 1 − λ ) P r e l a t e d ( e 2 ∣ e 1 ) + λ P ( e 2 ) P_{installed} (e_2|e_1)=(1-\lambda)P_{related}(e_2|e_1)+\lambda P(e_2) Pinstalled(e2∣e1)=(1−λ)Prelated(e2∣e1)+λP(e2)给出
用共现计数定义最大似然问题 L = ∑ e 2 l o g ( P i n s t a l l e d ( e 2 ∣ e 1 ) ) L= \sum_{e_2}log(P_{installed} (e_2|e_1)) L=∑e2log(Pinstalled(e2∣e1))
从而求出相似度 P r e l a t e d ( e 2 ∣ e 1 ) P_{related}(e_2|e_1) Prelated(e2∣e1)
3.3.2 Hybrid method
mixture model给出更流行的item,与PMI互补,因此采用加权和 P M I ( e 1 , e 2 ) + w P r e l a t e d ( e 2 ∣ e 1 ) , w = 5.0 PMI(e_1,e_2) + wPrelated(e_2|e_1), w=5.0 PMI(e1,e2)+wPrelated(e2∣e1),w=5.0。
然而mixture model 和hybird method都没能解决冷启动问题,因此引入额外信息,用bert获得item的文本embedding,以此作为base score,进而基于流行度重排。
4. personalized recommendation
负责业务:面向登录用户推荐猜喜
面临困难:涉及隐私限制
4.1 尝试1:采用序列建模用户安装item
将用户的安装历史item按序排列,预测下一个,但最终落败
原因:数据稀疏、分布不均、时序很短
4.2 A bootstrapping approach
- 利用前两种推荐模型,对用户安装历史(len=n)中所有item构建其相似集(共n个)
- 新增一个non-personalized recommendation 结果(有助于多样性)
- 每次取这n + 1个集合中的第 i 个 按流行度排列接在之前列表(前i - 1个生成的结果哦)后
5. future work
- non-personalized recommendation:尝试更复杂的机器学习模型
- related extension recommendations:在保障隐私的同时获得session数据;微调bert更好解决长尾问题;用统一的机器学习方法均衡流行度和相似度
- personalized recommendation:针对数据高度分布不均构建统一模型;提升前两种模型能力;探索其他方法,包括引入其他业务数据