逻辑回归模型与GBDT+LR——特征工程模型化的开端

随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:

  • 信息消费者:如何从大量的信息中找到自己感兴趣的信息?
  • 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注?

为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协同过滤,矩阵分解,LR, FM, FFM, GBDT)到深度学习的浪潮之巅(DNN, Deep Crossing, DIN, DIEN, Wide&Deep, Deep&Cross, DeepFM, AFM, NFM, PNN, FNN, DRN), 现在正无时无刻不影响着大众的生活。

推荐系统通过分析用户的历史行为给用户的兴趣建模, 从而主动给用户推荐给能够满足他们兴趣和需求的信息, 能够真正的“懂你”。 想上网购物的时候, 推荐系统在帮我们挑选商品, 想看资讯的时候, 推荐系统为我们准备了感兴趣的新闻, 想学习充电的时候, 推荐系统为我们提供最合适的课程, 想消遣放松的时候, 推荐系统为我们奉上欲罢不能的短视频…, 所以当我们淹没在信息的海洋时, 推荐系统正在拨开一层层波浪, 为我们追寻多姿多彩的生活!

协同过滤模型存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导致生成的结果往往会比较片面。

而今天的这两个模型是逻辑回归家族系列, 逻辑回归能够综合利用用户、物品和上下文等多种不同的特征, 生成较为全面的推荐结果。相比于协同过滤和矩阵分解利用用户的物品“相似度”进行推荐, 逻辑回归模型将问题看成了一个分类问题, 通过预测正样本的概率对物品进行排序。这里的正样本可以是用户“点击”了某个商品或者“观看”了某个视频, 均是推荐系统希望用户产生“正反馈”行为。

逻辑回归模型将推荐问题转成成了一个点击率预估问题。协同过滤是“TOPN"推荐的问题, 而逻辑回归转成了一种点击率预估问题, 成了一种二分类, 如果模型预测用户会点击, 那么就进行推荐。

本篇文章会首先介绍逻辑回归模型,易于并行, 模型简单, 训练开销小,由于其局限性引出更为强大的组合模型GBDT+LR, 这个模型利用GBDT的”自动化“特征组合, 使得模型具备了更高阶特征组合的能力,被称作特征工程模型化的开端。

本篇文章的重点在于:GBDT的原理, GBDT的在解决二分类问题上的细节和GBDT+LR模型的细节, 最后是基于GBDT+LR模型完成一个点击率预测的任务。

大纲如下

  • 逻辑回归模型
  • GBDT模型的细节介绍
  • GBDT+LR模型及及细节
  • 编程实践

逻辑回归模型

逻辑回归模型在推荐领域里面, 相比于传统的协同过滤, 能够综合利用用户、物品、上下文等多种不同的特征生成较为“全面”的推荐结果, 而在机器学习领域, 逻辑回归模型是面试当中非常容易被问到的一个算法, 做为神经网络中的最基础单一神经元, 成为了深度学习的基础性结构。

逻辑回归是在线性回归的基础上加了一个Sigmoid 函数(非线形)映射,使得逻辑回归成为一个优秀的分类算法:

逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的

涉及到了伯努利分布, 极大似然, 梯度下降, 二分类, sigmoid函数,损失函数的推导等。

逻辑回归模型已经将推荐问题转换成了一个点击率预测的问题, 而点击率预测就是一个典型的二分类, 正好适合逻辑回归进行处理, 逻辑回归推荐流程如下:

  • 将用户年龄、性别、物品属性、物品描述、当前时间、当前地点等特征转成数值型向量
  • 确定逻辑回归的优化目标,比如把点击率预测转换成二分类问题, 这样就可以得到分类问题常用的损失作为目标, 训练模型
  • 在预测的时候, 将特征向量输入模型产生预测, 得到用户“点击”物品的概率
  • 利用点击概率对候选物品排序, 得到推荐列表

在这里插入图片描述

!(https://cdn.mathpix.com/snip/images/ixtRTjccZusk1-XuqxWzK0DXNsul3LDrhywoR0KesEk.original.fullsize.png)

这里的关键就是每个特征的权重参数 w w w ,一般使用梯度下降的方式,先随机初始化一批 w w w ,然后将特征向量(上面数值化出来的特征) 输入到模型,通过计算得到模型的预测概率,然后通过对目标函数求导得到每个 w w w 的梯度,然后进行更 新 w w w,通过若干次迭代, 就可以得到最终的 w w w
这里的目标函数长下面这样:
J ( 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}\left(\sum_{i=1}^{m}\left(y^{i} \log f_{w}\left(x^{i}\right)+\left(1-y^{i}\right) \log \left(1-f_{w}\left(x^{i}\right)\right)\right)\right. J(w)=m1(i=1m(yilogfw(xi)+(1yi)log(1fw(xi)))
求导之后的方式长这样:
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}\left(f_{w}\left(x^{i}\right)-y^{i}\right) x_{j}^{i} wjwjγm1i=1m(fw(xi)yi)xji

逻辑回归模型的优缺点

优点

  • LR模型可解释性好,从特征的权重可以看到不同的特征对最后结果的影响
  • 训练时便于并行化,在预测时只需要对特征进行线性加权,适合处理海量id类特征,用id类特征可以防止信息损失(相对于范化的 CTR 特征)
  • 资源占用小,尤其是内存。在实际的工程应用中只需要存储权重比较大的特征及特征对应的权重
  • 方便输出结果调整。很方便可以最后的分类结果,因为输出的是每个样本的概率分数,可以很容易的对这些概率分数进行cutoff,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)
  • 和复杂模型对比,易于并行化, 模型简单,训练开销小会提升效果

局限性:

  • 表达能力不强, 无法进行特征交叉, 特征筛选等一系列操作
  • 准确率不高。只是一个线性模型加了个sigmoid,很难去拟合数据的真实分布
  • 处理非线性数据较麻烦。 如果想处理非线性, 需要对连续特征离散化(离散化的目的是为了引入非线性),人工分桶
  • LR 需要进行人工特征组合,模型迁移起来比较困难,换一个领域又需要重新进行大量的特征工程。

所以如何自动发现有效的特征、特征组合,弥补人工经验不足,缩短LR特征实验周期,是亟需解决的问题, 也正是由于这些问题, 使得推荐系统继续朝着复杂化发展, 衍生出了因子分解机(FM), 组合模型等高维复杂模型, FM模型通过隐变量的方式,发现两两特征之间的组合关系,但这种特征组合仅限于两两特征之间, 这个模型后面也会介绍到。 深度学习时代之后, 多层神经网络凭借着其强大的表达能力替代了逻辑回归, 到现在, 基本上各大公司很少能看到逻辑回归的身影了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PMBOK® 第六版 项目是什么

目录 读后感—PMBOK第六版 目录 项目定义 定义:项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目的特征具备以下三点: 独特性:独一无二,无法简单重复过去的做法。 临时性:项目有明确的起点和终点&…

EOCR-i3MS-WRDUW电机保护器 韩国三和 进口施耐德

韩国三和,EOCR,SAMWHA,Schneider,施耐德,电机保护器,电动机保护器,电子式电动机保护继电器,电子式过电流继电器,电子式欠电流继电器,电子式电压继电器&#x…

一起陪伴走过20多年,XILINX五大系列CPLD/FPGA将于6月截止接单

一起陪伴走过20多年,XILINX五大系列CPLD/FPGA将于6月截止接单 Product Discontinuation Notice AMD/XILINX于2024年春节后,发布了最新的产品停产通知,产品系列包括:XC9500XL, CoolRunner XPLA 3, CoolRunner II, Spartan II, a…

css中新型的边框设置属性border-block

border-block 是 CSS 中的一个属性,主要用于在样式表中一次性设置元素的逻辑块向边框的属性值。这个属性是简写属性,可以同时设置 border-block-width、border-block-style 和 border-block-color。其中,border-block-start 用于设置元素的开…

Lagent AgentLego 智能体应用搭建-笔记六

本次课程由Lagent&AgentLego 核心贡献者樊奇老师讲解【Lagent & AgentLego 智能体应用搭建】课程 课程视频:https://www.bilibili.com/video/BV1Xt4217728/ 课程文档:https://github.com/InternLM/Tutorial/tree/camp2/agent 大语言模型的局限…

2024全国大学生高新技术竞赛——算法智星挑战赛(A~J)

好多都是之前的原题&#xff0c;甚至有上次第二届全国大学生信息技术认证挑战赛的原题&#xff0c;刚打完又来一遍&#xff0c;没绷住。 A. 手机 原题之一&#xff0c;具体出处忘了 最无脑的方法直接用map记录每个按下的值就行了&#xff0c;代码仅供参考。 #include <bit…

appium相关的知识

>adb shell dumpsys window | findstr mCurrentFocus adb devices # 实例化字典 desired_caps = dict() desired_caps[platformName] = Android desired_caps[platformVersion] = 9 # devices desired_caps[deviceName] = emulator-5554 # 包名 desired_caps[appPackage] …

【云原生系列】云计算概念与架构设计介绍

1 什么是云计算 云计算是一种基于互联网的计算模式&#xff0c;在这个模式下&#xff0c;各种计算资源&#xff08;例如计算机、存储设备、网络设备、应用程序等&#xff09;可以通过互联网实现共享和交付。云计算架构设计的主要目标是实现高效、可扩展、可靠、安全和经济的计算…

Android Studio开发之路(八)Spinner样式设置

一、需求 白色背景显示下拉框按钮 问题&#xff1a; 设置Spinner的背景可以通过设置background&#xff1a; android:background"color/white",但是一旦设置了这个值&#xff0c;右侧的下拉按钮就会消失 方法一、自定义一个style&#xff08;不成功&#xff09; …

Packet Tracer - 交换机安全配置解析

第一步先连线SW1连到SW2接口连接G0/2到G0/2 指令配置 SW-1 SW-1>enable SW-1#conf t Enter configuration commands, one per line. End with CNTL/Z. SW-1(config)#interface range G0/1-2 SW-1(config-if-range)#switchport mode SW-1(config-if-range)#switchport no…

多批道处理算法

一、实验目的&#xff1a; 了解多道批处理系统的工作原理和调度算法熟悉先来先服务调度算法&#xff08;First Come First Served, FCFS&#xff09;的实现学习如何模拟多道批处理系统的调度过程 实验设备与实验环境&#xff1a; 计算机,Java编译系统,idea,ChatGPT 二、实验程…

Golang实现一个批量自动化执行树莓派指令的软件(8)辅助模块-远程IP端口是否开放连接(TCP)

简介 基于 上篇 Golang实现一个批量自动化执行树莓派指令的软件(7)辅助模块-本地活动网络&#xff0c; 看看本地活动网络接口网络里面有哪些设备是支持ssh网络的。 环境描述 运行环境: Windows&#xff0c; 基于Golang&#xff0c; 暂时没有使用什么不可跨平台接口&#xff0c;…

Linux驱动开发——(八)Linux异步通知

目录 一、异步通知简介 二、信号处理 2.1 驱动程序中的处理 2.1.1 fasync_struct结构体 2.1.2 fasync操作函数 2.1.3 kill_fasync函数 2.2 应用程序中的处理 三、驱动代码 一、异步通知简介 异步通知的核心就是信号。信号类似于硬件上使用的中断&#xff0c;只不过信号…

TCP协议是如何保证数据可靠传输的?

一、什么样的数据传输是可靠的&#xff1f; 数据正确&#xff1a;传递 123 &#xff1b;接收 123数据顺序正确&#xff1a;传递123 &#xff1b;接收不能是 321或其他数据不重复&#xff1a;传递123 &#xff1b;接收不能是1223或其他数据不被篡改&#xff1a;传递 123 &#…

sqlserver 开启发布订阅模式

主服务器 用于发布与分发 从服务器 订阅 分发服务器的概念&#xff0c;是指用于管理发布与订阅的交互&#xff0c;这里用发布服务器充当即可 主服务器操作&#xff1a; 按需选择&#xff0c;一般选择快照发布 如果不需要排除列则不做任何选择 定义执行时间 这里配置连接到…

WPF之RadioButton单选框和checkbox多选框

RadioButton 单选框: 实现分组的单选框&#xff0c; checkbox 多选框: 表示用户可以选择和清除的控件。 常用属性 GroupName 获取或设置指定哪些 RadioButton 控件互相排斥的名称Content内容IsChecked是否选中 常用事件 checked 选中的事件unchecked 未选中的事件 RadioBu…

Linux server

查看服务器版本&#xff1a; rootpsh-ats-02:/# cat /etc/issue Ubuntu 16.04.3 LTS \n \l rootpsh-ats-02:/# chromedriver --version ChromeDriver 103.0.5060.53 (a1711811edd74ff1cf2150f36ffa3b0dae40b17f-refs/branch-heads/5060{#853}) rootpsh-ats-02:/# google-chrome…

Web前端开发 小实训(二) 简易计算器

实训目的 学生能够使用函数完成简易计算器编写 操作步骤 1、请将加减乘除四个方法生成为以下函数&#xff0c;且有返回值 中文英语加法add减法subtract乘法multi除法division次幂pow()平方根sqrt() 提示&#xff1a; 除法中的除数不能为0&#xff01; 参考代码&#xff1…

Web 服务器(一)

一、Web 服务器介绍 1、WEB服务简介 目前最主流的三个Web服务器是Apache、Nginx、 IIS。 Web服务器一般指网站服务器&#xff0c;是指驻留于因特网上某种类型计算机的程序&#xff0c;可以向浏览器等 Web客户端提供文档&#xff0c;也可以放置网站文件&#xff0c;让全世界浏览…

ES6 Module 的加载实现,浏览器加载,ES6 模块与 CommonJS 模块具体解析(2024-04-23)

目录 1、浏览器加载 1.2 加载规则 1.3 ES6 模块与 CommonJS 模块的差异 2、Node.js 的模块加载方法 2.1 概述 2.1.1 package.json 的 main 字段 2.1.2 package.json 的 exports 字段 &#xff08;1&#xff09;子目录别名 &#xff08;2&#xff09;main 的别名 &…