Press "Enter" to skip to content

推荐系统融合排序之 LR

首先,我们先 了解 一下推荐系统的两个最主要部分:recall(召回)和rank(排序),一般最后还有rerank(根据业务场景和策略规则进行重排序,比如置顶、过滤等)。之 前的一篇文章主要介绍了召回流程 – 58部落帖子推荐系统的抬手动作 ,介绍如何通过不同的策略从海量数据中召回用户感兴趣的帖子作为推荐候选集,但由于不同的策略的评分标准、计算维度等不一致,无法直接推给用户,需要从中各拿出一部分做一个统一的排序,把用户可能最喜欢的帖子放在最上面曝光,这一步叫融合排序。

 

既然是排序,那幺就得有个评分标准,而CTR(click through rate)就是可以作为融合排序模型的目标,称为点击通过率。CTR预估中用的最多的模型是LR(Logistic Regression),称为逻辑斯蒂回归或者对数几率回归。

 

LR – 对数几率回归

 

首先了解一下线性回归(linear regression),它是将多个特征进行拟合成一条直线,然后通过该直线预测新的值:

 

LR是在线性回归的基础上增加了sigmoid函数 ,LR通过变换将数值映射到0~1区间,刚好是点击率的范围,可以用来预测用户是否会点击帖子,所以是一个分类问题。下图是sigmoid函数的曲线。

 

 

假设0表示反例,用户不点击,1表示正例,用户点击。那幺 就是用户点击的概率,x是不同的特征值,y是是否点击的类别。然后构建一个对数几率函数 , 就是点击与不点击概率的比值的对数,那幺这个值越大用户点击的可能性也就越大,对数几率是0到无穷的一个范围,可以通过线性回归方程 来表示。

 

 

根据公式推导得出 , 从公式中可以看出LR就是在线性回归的基础上做了sigmoid映射。

 

是(0~1)的取值范围,当 ,我们可以判定当前用户点击的概率比较大,判定为用户会点击;当 ,我们可以判定当前用户不点击的概率比较大,判定为用户不会点击。

 

因为是LR的结果是某个类别的概率,符合伯努利分布,所以可以通过极大似然函数作为代价函数来求解最优参数 (前提样本独立同分布)。

 

首先得到概率函数 ,N个独立样本的联合分布为

 

可以通过梯度下降法迭代求解最优参 , 是为了使用梯度下降求解,并为了求解方便取了对数,将连乘改为求和, 所以最终的优化目标函数为

 

 

梯度下降法求解步骤

 

给定一组数据集 , N是数据集记录数 , n是特征维度,每组记录一共n个值, 是类别标签数据。

 

 

赋初值,注意是个向量

 

根据梯度 ,求解梯度

 

 

 

表示第i条记录的第j维属性值。

 

 

梯度更新公式

 

 

 

是学习速率,指定迭代训练的快慢。

 

 

用新的 重复2,3直到满足迭代次数或者梯度小于设定阈值。

 

 

注:

 

使用梯度下降获取其他方法求解的原因是,LR损失函数梯度

 

 

没有解析解。

 

一般为了防止过拟合,还需要加入正则项L2范数:

 

 

LR特点

 

LR优点:

简单易实现,可以处理离散化特征,可以很好的屏蔽噪声。

 

LR的缺点:特征之间相互独立,需要人工挑选合适的特征,而且只能处理线性关系,然而很多情况下并非如此。

 

目前我们正在进行文本内容的特征处理,选取了一些关键特征,下一步会验证效果。

 

用户特征:性别、年龄、设备类型、网络类型、定位城市等。

 

帖子特征:部落id、部落大类别、发帖人userid、发布时间、帖子类型(图文还是视频)、评论数、点赞数、分享数、帖子字节总数、帖子业务标签、帖子关键词等

 

行为特征:帖子曝光次数、帖子点击次数、帖子点击率、用户当日曝光次数、用户当日点击次数、用户当日点击率、用户当日客户端时长、用户当日刷推荐请求次数、用户当日阅读帖子总次数、30日内活跃天数、30日内连续活跃天数、7日活跃天数、最后访问时间、最后访问部落id等

 

总结

 

本文主要是对LR算法的一个总结,LR适合前期的快速实现,简单,适用于高维稀疏特征,但是就因为太简单,不适用于非线性特征关系,一般会结合FM或者GBDT来实现,后期我们会更新相关对比实现的文章。

 

Logistic Regression理论总结:https://www.cnblogs.com/bentuwuying/p/6616680.html

 

Logistic Regression(逻辑回归)原理及公式推导-https://blog.csdn.net/programmer_wei/article/details/52072939

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注