一、传统模型演进史
1. 协同过滤(CF)
利用user-item交互矩阵(m x n维, 一般用户数m远大于商品数n),生成user向量和item向量。
- UserCF
- 通过当前用户topk相似用户对待预测商品的评分加权平均得到,具有社交性、适合热点追踪。
- 需要维护m2m^2m2级别的用户相似度矩阵。
- 用户的购买历史数据大多稀疏,因此用户相似度计算不可靠。
- ItemCF:
- 通过当前用户最喜爱topk的商品,搜索其他相似商品,生成推荐列表。具有明显的兴趣类别特征。
2. 矩阵分解(MF)
业务数据为交互矩阵Dm×nD_{m\times n}Dm×n。注意消除打分偏差(用户给分偏好、评分体系均值等)
- 特征值分解:仅用于方阵,无法用于推荐
- 奇异值分解:要求原始矩阵稠密、计算复杂度高
- 梯度下降:目标函数为使user向量pu\boldsymbol p_upu和item向量qu\boldsymbol q_uqu点积尽可能逼近对应的交互评分ruir_{ui}rui
minq,p∑(rui−qi⋅pu)+λ(∣∣qi∣∣+∣∣pi∣∣)2min_{\boldsymbol{q,p}} \sum(r_{ui} - \boldsymbol q_i\cdot \boldsymbol p_u) + \lambda(||\boldsymbol q_i|| + ||\boldsymbol p_i||)^2minq,p∑(rui−qi⋅pu)+λ(∣∣qi∣∣+∣∣pi∣∣)2
3. 逻辑回归(LR)
-
步骤:
- 将用户特征转换成数值向量
- 确定优化目标(点击率、购买率)
- 训练、预测排序
-
公式:
f(x)=11+e−(w⋅x+b)f(\boldsymbol x)=\frac{1}{1+e^{-(\boldsymbol{w\cdot x} + b)}}f(x)=1+e−(w⋅x+b)1
arg maxw(f(x))y(1−f(x))1−y\argmax_{\boldsymbol w}(f(\boldsymbol x))^y(1-f(\boldsymbol x))^{1-y}wargmax(f(x))y(1−f(x))1−y -
缺点:无法进行自动特征交叉、筛选等操作。存在辛普森悖论。
4. 特征交叉模型(POLY2、FM、FFM)
- POLY2
POLY2(w,x)=∑j1=1n∑j2=j1+1nwh(j1,j2)x1x2POLY2(\pmb w, \pmb{x})=\sum^n_{j_1=1}\sum^n_{j_2=j_1+1}\pmb{w}_h(j_1,j_2)\pmb{x_1}\pmb{x_2}POLY2(www,xxx)=j1=1∑nj2=j1+1∑nwwwh(j1,j2)x1x1x1x2x2x2 - FM
- FFM
5. 集成学习模型(GBDT+LR)
6. 分段线性模型(LS-PLM)
通过聚类分片,在不同分段类使用LR, 实现整体上的非线性
二、深度学习模型演进史
三、业务关键问题
2.1 冷启动
2.2 数据稀疏
2.3
QA
- POLY2算法中,两个特征交叉为什么可以直接用乘法?与后深度学习中的各类向量乘法有什么关系?