上一节介绍了协同过滤,相比协同过滤模型仅利用用户与物品的相互行为信息进行推荐,逻辑回归模型能够综合利用用户、物品、上下文等多种不同的特征,生成较为“全面”的推荐结果。
另外,相比协同过滤和矩阵分解利用用户和物品的“相似度”进行推荐,逻辑回归将推荐问题看成一个分类问题,通过预测正样本的概率对物品进行排序。这里的正样本可以是用户“点击”了某商品,也可以是用户“观看”了某视频,均是推荐系统希望用户产生的“正反馈”行为。因此,逻辑回归模型将推荐问题转换成了一个点击率( Click Through Rate,CTR)预估问题。
基于逻辑回归的推荐过程如下。
(1)将用户年龄、性别、物品属性、物品描述、当前时间、当前地点等特征
转换成数值型特征向量。
(2)确定逻辑回归模型的优化目标(以优化“点击率”为例),利用已有样本数据对逻辑回归模型进行训练,确定逻辑回归模型的内部参数。
(3)在模型服务阶段,将特征向量输人逻辑回归模型,经过逻辑回归模型的推断,得到用户“点击”(这里用点击作为推荐系统正反馈行为的例子)物品的概率。
(4)利用“点击”概率对所有候选物品进行排序,得到推荐列表。基于逻辑回归的推荐过程的重点在于,利用样本的特征向量进行模型训练和在线推断。
下面介绍逻辑回归模型的数学形式、推断过程和训练方法。
如图所示,逻辑回归模型的推断过程可以分为如下几步:
( 1)将特征向量x =(x1,x2,…,xn)T作为模型的输入。
(2)通过为各特征赋予相应的权重(w1, w2… , Wn+1),来表示各特征的重要性差异,将各特征进行加权求和,得到xTw。
(3)将xTw输入sigmoid函数,使其映射到0~1的区间,得到最终的“点击率
其中,sigmoid函数的具体形式为
f ( z ) = 1 1 + e − z f(z)=\frac{1}{1+e^{-z}} f(z)=1+e−z1
其函数曲线如图所示,可以直观地看到sigmoid 的值域在0~1之间,符合“点击率”的物理意义。
综上,逻辑回归模型整个推断过程的数学形式如下
f ( x ) = 1 1 + e − ( w x + b ) f(x)=\frac{1}{1+e^-(wx+b)} f(x)=1+e−(wx+b)1
对于标准的逻辑回归模型来说,要确定的参数就是特征向量相应的权重向量w,下面介绍逻辑回归模型的权重向量w的训练方法。
逻辑回归模型常用的训练方法是梯度下降法、牛顿法、拟牛顿法等,其中梯度下降法是应用最广泛的训练方法,也是学习深度学习各种训练方法的基础。我们这里介绍梯度下降法。
使用梯度下降法求解逻辑回归模型的第一步是确定逻辑回归的目标函数。已知逻辑回归的数学形式如下所示,这里表示成fw(x)。对于一个输入样本x,预测结果为正样本(类别1)和负样本(类别0)的概率如(式2-14)所示。
{ P ( y = 1 ∣ x ; w ) = f w ( x ) P ( y = 0 ∣ x ; w ) = 1 − f w ( x ) \begin{cases} P(y=1|x;w)=f_w(x)\\ P(y=0|x;w)=1-f_w(x)\end{cases} {P(y=1∣x;w)=fw(x)P(y=0∣x;w)=1−fw(x)
将上述式子合并,可写成下面公式
P ( y ∣ x ; w ) = ( f w ( x ) ) y ( 1 − f w ( x ) ) ( 1 − y ) P(y|x;w)=(f_w(x))^y(1-f_w(x))^(1-y) P(y∣x;w)=(fw(x))y(1−fw(x))(1−y)
根据极大似然估计的原理可以写出逻辑回归的目标函数,如下所示
L ( w ) = ∏ i = 1 m P ( y ∣ x : w ) L(w)=\displaystyle\prod_{i=1}^{m}P(y|x:w) L(w)=i=1∏mP(y∣x:w)
由于目标函数连乘的形式不便于求导,故在上事两侧取log,并乘以系数-(1/m),将求最大值的问题转换成求极小值的问题,最终的目标函数形式如下所示。
J ( w ) = − 1 m l ( w ) = − 1 m log L ( w ) = − 1 m ( ∑ i = 1 m ( y i log f w ( x i ) + ( 1 − y i ) log ( 1 − f w ( x i ) ) ) J(w)=-\frac{1}{m}l(w)= -\frac{1}{m}\log L(w)= -\frac{1}{m}(\sum_{i=1}^{m}(y^i\log f_w(x^i)+(1-y^i)\log (1-f_w(x^i))) J(w)=−m1l(w)=−m1logL(w)=−m1(i=1∑m(yilogfw(xi)+(1−yi)log(1−fw(xi)))
在得到逻辑回归的目标函数后,需对每个参数求偏导,得到梯度方向,对J(w)中的参数w;求偏导的结果如所示。
∂ ∂ w j J ( w ) = 1 m ∑ i = 1 m ( f w ( x i ) − y i ) x j i \frac{\partial }{\partial w_j}J(w)=\frac{1}{m}\sum_{i=1}^{m}(f_w(x^i)-y^i)x^i_j ∂wj∂J(w)=m1i=1∑m(fw(xi)−yi)xji
推导过程如下:
因 为 ∂ ∂ w j J ( w ) = − 1 m ∑ i = 1 m ( y i 1 f w ( x i ) + ( 1 − y i ) − 1 1 − f w ( x i ) ) ∂ f w ( x i ) ∂ w j 因为 \frac{\partial }{\partial w_j}J(w)=-\frac{1}{m}\sum_{i=1}^{m}(y^i\frac{1}{f_w(x^i)}+(1-y^i)\frac{-1}{1-f_w(x^i)})\frac {\partial f_w(x^i)}{\partial w_j} 因为∂wj∂J(w)=−m1i=1∑m(yifw(xi)1+(1−yi)1−fw(xi)−1)∂wj∂fw(xi)
由 ∂ f w ( x i ) ∂ w j = f w ( x i ) ( 1 − f w ( x i ) x i , 这 一 步 求 导 是 关 键 , 带 入 上 式 子 化 简 可 得 由\frac {\partial f_w(x^i)}{\partial w_j}=f_w(x^i)(1-f_w(x^i)x ^i ,这一步求导是关键,带入上式子化简可得 由∂wj∂fw(xi)=fw(xi)(1−fw(xi)xi,这一步求导是关键,带入上式子化简可得
∂ ∂ w j J ( w ) = − 1 m ∑ i = 1 m ( y i 1 f w ( x i ) + ( 1 − y i ) − 1 1 − f w ( x i ) ) f w ( x i ) ( 1 − f w ( x i ) x j i \frac{\partial }{\partial w_j}J(w)=-\frac{1}{m}\sum_{i=1}^{m}(y^i\frac{1}{f_w(x^i)}+(1-y^i)\frac{-1}{1-f_w(x^i)})f_w(x^i)(1-f_w(x^i)x _j^i ∂wj∂J(w)=−m1i=1∑m(yifw(xi)1+(1−yi)1−fw(xi)−1)fw(xi)(1−fw(xi)xji
展开化简即可得
∂ ∂ w j J ( w ) = 1 m ∑ i = 1 m ( f w ( x i ) − y i ) x j i \frac{\partial }{\partial w_j}J(w)=\frac{1}{m}\sum_{i=1}^{m}(f_w(x^i)-y^i)x^i_j ∂wj∂J(w)=m1i=1∑m(fw(xi)−yi)xji
在得到梯度之后,即可得到模型参数的更新公式,如下所示。
w j ← w j − γ 1 m ∑ i = 1 m ( f w ( x i ) − y i ) x j i w_j\leftarrow w_j- \gamma \frac{1}{m}\sum_{i=1}^{m}(f_w(x^i)-y^i)x^i_j wj←wj−γm1i=1∑m(fw(xi)−yi)xji
到这里推导就结束了。
优势:
1.可解释性强,使用各特征的加权和是为了综合不同特征对CTR的影响,而不同特征的重要程度不一样,所以为不同特征指定不同的权重,代表不同特征的重要程度。最后,通过sigmoid函数,使其值能够映射到0~1区间,正好符合CTR的物理意义。
2.适用工程化,其易于并行化、模型简单、训练开销小等特点,占据着工程领域的主流。
局限性:表达能力不强,无法进行特征交叉、特征筛选等一系列较为“高级”的操作,因此不可避免地造成信息的损失。
下一节讲解特征交叉FM,FFM,GBDT+LR