推荐算法学习笔记1.3:传统推荐算法-逻辑回归算法

1.3 逻辑回归

逻辑回归相比于基于共现矩阵的算法,将 推荐分数 转为 推荐概率,从而将原本的分数估计问题转为事件是否发生的分类问题(e.g. 点击率(Click Through Rate,CTR)估计问题)。该算法能够利用用户、物品、上下文等多种不同的特征,生成较为全面的推荐结果。

  • 学习过程:

    用户特征,物品属性,上下文等特征数值化+预处理→训练逻辑回归模型。

  • 推理过程:

    用户特征,物品属性,上下文等特征数值化+预处理→模型预测得到概率→概率排序→生成推荐结果。

数学建模:

逻辑回归算法将因变量y视为符合泊松分布的随机变量,适用于推荐语境,对于输入向量 x i \mathbf{x}_i xi,其计算过程如下:

y ^ i = f ( x i , w , b ) = 1 1 − e − ( w T x + b ) \hat{y}_i=f(\mathbf{x}_i,\mathbf{w},b)=\frac{1}{1-e^{-(\mathbf{w}^T\mathbf{x}+b)}} y^i=f(xi,w,b)=1e(wTx+b)1

结合最大似然估计法以及对数化简,其目标函数为,

m i n w , b L ( w , b ) = − 1 n ∑ i = 1 , … , n y i l o g ( f ( x i , w , b ) ) − ( 1 − y i ) ( 1 − f ( x i , w , b ) ) min_{\textbf{w},b}\quad L(\textbf{w},b)=-\frac{1}{n}\sum_{i=1,\dots,n}{y_ilog(f(\mathbf{x}_i,\mathbf{w},b))-(1-y_i)(1-f(\mathbf{x}_i,\mathbf{w},b))} minw,bL(w,b)=n1i=1,,nyilog(f(xi,w,b))(1yi)(1f(xi,w,b))

求导过程如下:

  1. z = w T x + b z=\mathbf{w}^T\mathbf{x}+b z=wTx+b, ∂ f ∂ w = e − z ( 1 − e − z ) 2 ∂ z ∂ w = ( 1 − f ( x i , w , b ) ) f ( x i , w , b ) x \frac{\partial{f}}{\partial{\mathbf{w}}}=\frac{e^{-z}}{(1-e^{-z})^2}\frac{\partial z}{\partial \mathbf{w}}=(1-f(\mathbf{x}_i,\mathbf{w},b))f(\mathbf{x}_i,\mathbf{w},b)\mathbf{x} wf=(1ez)2ezwz=(1f(xi,w,b))f(xi,w,b)x
  2. ∂ L ∂ w = − 1 n ∑ i = 1 , … , n y i f ( x i , w , b ) ( 1 − f ( x i , w , b ) ) f ( x i , w , b ) x + 1 − y i 1 − f ( x i , w , b ) ( f ( x i , w , b ) − 1 ) f ( x i , w , b ) x = 1 n ∑ i = 1 , … , n ( f ( x i , w , b ) − y i ) x \frac{\partial L}{\partial \mathbf{w}}=-\frac{1}{n}\sum_{i=1,\dots,n}{\frac{y_i}{f(\mathbf{x}_i,\mathbf{w},b)}(1-f(\mathbf{x}_i,\mathbf{w},b))f(\mathbf{x}_i,\mathbf{w},b)\mathbf{x}+\frac{1-y_i}{1-f(\mathbf{x}_i,\mathbf{w},b)}}(f(\mathbf{x}_i,\mathbf{w},b)-1)f(\mathbf{x}_i,\mathbf{w},b)\mathbf{x}=\frac{1}{n}\sum_{i=1,\dots,n}{(f(\mathbf{x}_i,\mathbf{w},b)-y_i)\mathbf{x}} wL=n1i=1,,nf(xi,w,b)yi(1f(xi,w,b))f(xi,w,b)x+1f(xi,w,b)1yi(f(xi,w,b)1)f(xi,w,b)x=n1i=1,,n(f(xi,w,b)yi)x
  3. ∂ L ∂ b = − 1 n ∑ i = 1 , … , n y i f ( x i , w , b ) ( 1 − f ( x i , w , b ) ) f ( x i , w , b ) + 1 − y i 1 − f ( x i , w , b ) ( f ( x i , w , b ) − 1 ) f ( x i , w , b ) = 1 n ∑ i = 1 , … , n ( f ( x i , w , b ) − y i ) \frac{\partial L}{\partial b}=-\frac{1}{n}\sum_{i=1,\dots,n}{\frac{y_i}{f(\mathbf{x}_i,\mathbf{w},b)}(1-f(\mathbf{x}_i,\mathbf{w},b))f(\mathbf{x}_i,\mathbf{w},b)+\frac{1-y_i}{1-f(\mathbf{x}_i,\mathbf{w},b)}}(f(\mathbf{x}_i,\mathbf{w},b)-1)f(\mathbf{x}_i,\mathbf{w},b)=\frac{1}{n}\sum_{i=1,\dots,n}{(f(\mathbf{x}_i,\mathbf{w},b)-y_i)} bL=n1i=1,,nf(xi,w,b)yi(1f(xi,w,b))f(xi,w,b)+1f(xi,w,b)1yi(f(xi,w,b)1)f(xi,w,b)=n1i=1,,n(f(xi,w,b)yi)

算法总结:

优点:可解释性强,易于工程化( 易于并行,模型简单,训练开销小)。

缺点:特征单一,表达能力弱,无法进行特征交叉特征筛选。

为什么不用线性回归? 因为线性回归对因变量y的假设是符合高斯分布,而逻辑回归是符合泊松分布,明显泊松分布更使用于这类二分类问题的数学假设。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值