传统推荐模型

协同过滤算法

  从物品相似度和用户相似度角度出发,衍生出物品协同过滤(ItemCF)和用户协同过滤(UserCF),又衍生出矩阵分解模型(Matrix Factorization,MF)。
  亚马逊协同过滤论文:Amazon.com recommendations: item-to-item collaborative filtering

UserCF
1)基于用户对其它商品的历史评价数据,和其他用户对这些商品的历史评价数据,组成共现矩阵(用户为行,商品为列,值为1、0、-1);
2)找到与用户兴趣最相似的 Top n 用户,综合他们的评价得出对指定商品的评价,决定某商品是否推荐,以及最终推荐的排序结果。
  向量常用相似度计算方法:余弦相似度和皮尔逊相关系数
  推荐结果排序:用户相似度和对应用户的评价的加权平均。
缺点:用户数远大于物品数,导致相似度矩阵存储开销巨大;用户历史数据稀疏,找到相似用户的准确率低。

ItemCF
1)基于历史数据构建“用户×物品”的 m×n 维共现矩阵;
2)计算列向量间的两两相似度,构建 n×n 维物品相似度矩阵;
3)针对目标用户历史行为中的正反馈物品,利用物品相似度矩阵找出相似的 Top k 个物品,并由相似度分值进行排序,生成推荐列表。(物品的相似度是与各个正反馈物品相似度的累加)
应用场景:UserCF 具备更强的社交特性,适用于新闻推荐;ItemCF 适用于兴趣变化较为稳定的应用。

矩阵分解算法

Matrix Factorization Techniques for Recommender Systems
  协同过滤的缺点在于,泛化能力弱;热门物品具有头部效应,而特征向量稀疏的尾部物品很少能与其它物品产生相似性;无法有效引入用户特征、物品特征和上下文特征。
  矩阵分解在共现矩阵的基础上加入了隐向量,增强了模型处理稀疏矩阵的能力。矩阵分解算法为每个用户和物品生成一个隐向量,将用户和物品定位到隐向量的表示空间上,距离相近则表示兴趣特点接近,隐向量通过分解协同过滤生成的共现矩阵得到。
  矩阵分解方法有特征值分解、奇异值分解(SVD)梯度下降,其中前两者不适用于分解用户-物品矩阵。
R m × n = U m × k × V k × n R^{m × n}=U^{m × k}×V^{k × n} Rm×n=Um×k×Vk×n,共现矩阵分解为用户矩阵和物品矩阵的乘积。 用户 u u u 对物品 i i i 的预估评分 r ^ u i = q i T p u \hat{r}_{ui}=q_{i}^{T}p_{u} r^ui=qiTpu q i q_{i} qi p u p_{u} pu 分别为 U U U V V V 的对应行、列向量。求解的目标函数为 m i n q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u ) 2 \underset{q*,p*}{min}\sum_{(u,i)\in K}(r_{ui}-q_{i}^{T}p_{u})^{2} q,pmin(u,i)K(ruiqiTpu)2 K K K 是用户评分样本集合。加入正则化项后所得目标函数可由梯度下降法求解:
m i n q ∗ , p ∗ , b ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u ) 2 + λ ( ∥ q i ∥ 2 + ∥ p u ∥ 2 ) \underset{q*,p*,b*}{min}\sum_{(u,i)\in K}(r_{ui}-q_{i}^{T}p_{u})^{2}+\lambda(\left \| q_{i} \right \|^{2}+\left \| p_{u} \right \|^{2}) q,p,bmin(u,i)K(ruiqiTpu)2+λ(qi2+pu2)
  为了消除用户和和物品得打分偏差,加入物品和用户的偏差向量, r ^ u i = q i T p u + μ + b i + b u \hat{r}_{ui}=q_{i}^{T}p_{u}+\mu + b_{i}+b_{u} r^ui=qiTpu+μ+bi+bu,目标函数变为:
m i n q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u − μ − b i − b u ) 2 + λ ( ∥ q i ∥ 2 + ∥ p u ∥ 2 + b i 2 + b u 2 ) \underset{q*,p*}{min}\sum_{(u,i)\in K}(r_{ui}-q_{i}^{T}p_{u}-\mu - b_{i}-b_{u})^{2}+\lambda(\left \| q_{i} \right \|^{2}+\left \| p_{u} \right \|^{2}+b_{i}^{2}+b_{u}^{2}) q,pmin(u,i)K(ruiqiTpuμbibu)2+λ(qi2+pu2+bi2+bu2)
优缺点:泛化能力强,一定程度上解决了数据稀疏问题;空间复杂度低;更好的扩展性和灵活性。但与协同过滤一样,不方便加入用户、物品和上下文相关特征。

逻辑回归

  将用户年龄、性别等特征转化为数值型特征向量,确定优化目标(如点击率),训练模型;在模型服务阶段输入特征值得到点击率排序,确定推荐列表。数学形式如下: f ( x ) = 1 1 + e w x + b f(x)=\frac{1}{1+e^{wx+b}} f(x)=1+ewx+b1
优缺点:数学原理,可解释性强,易于工程化;表达能力弱,无法进行高级操作。

特征交叉

POLY2
  对所有特征进行两两交叉并赋予权重,训练方式同逻辑回归:
    P O L Y 2 ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1 n w h ( j 1 , j 2 ) x j 1 x j 2 POLY2(w,x)=\sum_{j_{1}=1}^{n-1}\sum_{j_{2}=j_{1}+1}^{n}w_{h}(j_{1},j_{2})x_{j1}x_{j2} POLY2(w,x)=j1=1n1j2=j1+1nwh(j1,j2)xj1xj2
缺点:使特征向量更加稀疏,权重参数复杂度高。

FM(Factorization Machines
  用两个向量的内积取代单一权重,极大降低开销:
    F M ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1 n ( w j 1 ⋅ w j 2 ) x j 1 x j 2 FM(w,x)=\sum_{j_{1}=1}^{n-1}\sum_{j_{2}=j_{1}+1}^{n}(w_{j_{1}}\cdot w_{j_{2}})x_{j1}x_{j2} FM(w,x)=j1=1n1j2=j1+1n(wj1wj2)xj1xj2

FFM(Field-aware Factorization Machines
  引入特征域感知(field-aware)增强模型表达能力,每个特征对应一组隐向量,每次从域 f f f 中挑出一个对应的隐向量进行交叉:
    F M ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1 n ( w j 1 , f 2 ⋅ w j 2 , f 1 ) x j 1 x j 2 FM(w,x)=\sum_{j_{1}=1}^{n-1}\sum_{j_{2}=j_{1}+1}^{n}(w_{j_{1},f_{2}}\cdot w_{j_{2},f_{1}})x_{j1}x_{j2} FM(w,x)=j1=1n1j2=j1+1n(wj1,f2wj2,f1)xj1xj2

GBDT+LR

  Google GBDT+LR 论文:Practical lessons from predicting clicks on Ads at Facebook
  利用 GBDT 进行自动特征筛选与组合,生成新的离散特征向量,再输入 LR,两部分是独立的不需要梯度回传。GBDT 生成离散特征的方法是,每颗树通过样本最终落入的类别得到 one-hot 向量,再将这些向量相连得到最终特征。
优缺点:推进了特征工程模型化;容易过拟合,丢失大量数值特征信息。
在这里插入图片描述

LS-PLM(Large Scale Piece-wise Linear Model

  先用聚类函数对样本进行 m m m 分片,再在样本分片中应用逻辑回归进行 CTR 预估,两者相乘求和。(经验值 m = 12 m=12 m=12
f ( x ) = ∑ i = 1 m π i ( x ) ⋅ η i ( x ) = ∑ i = 1 m e μ i ⋅ x ∑ j = 1 m e μ j ⋅ x ⋅ 1 1 + e − w i ⋅ x f(x)=\sum_{i=1}^{m}\pi_{i}(x)\cdot \eta_{i}(x)=\sum_{i=1}^{m}\frac{e^{\mu_{i}\cdot x}}{\sum_{j=1}^{m}e^{\mu_{j}\cdot x}}\cdot\frac{1}{1+e^{-w_{i}\cdot x}} f(x)=i=1mπi(x)ηi(x)=i=1mj=1meμjxeμix1+ewix1
优点:端到端;非线性能力;模型稀疏性强。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值