常用的CTR领域经典机器模型介绍

简介: 逻辑回归(Logistic Regression)是经典的统计学习算法,因其简单、高效和可大规模并行化的特点,在早期工业机器学习中占据重要地位。它通过手动设计特征实现非线性学习能力,适用于CTR预估等场景。梯度提升决策树(Gradient Boosting Decision Tree, GBDT)是一种迭代决策树算法,通过多棵回归树的累加结果进行预测,具有较强的泛化能力。其核心思想是最小化平方误差来优化分枝依据,并利用残差拟合提升模型性能。

1 Logistic Regression(逻辑回归模型)

Logistic Regression是大家非常熟悉的基本算法,其作为经典的统计学习算法几乎统治了早期工业机器学习时代。这是因为其具备简单、时间复杂度低、可大规模并行化等优良特性。在早期的CTR预估中,算法工程师们通过手动设计交叉特征以及特征离散化等方式,赋予LR这样的线性模型对数据集的非线性学习能力,高维离散特征+手动交叉特征构成了CTR预估的基础特征。LR在工程上易于大规模并行化训练恰恰适应了这个时代的要求。

逻辑线性回归模型结构非常简单,通过拟合的方式(主要是多项式拟合)统计数据规律,可解释性比较强,计算复杂度较低且在工程上可以大规模的并行,数据表达式是y = w^Tx+b。但需要依赖人工设计大量的特征,需要一定的背景知识,并且只能够根据设计的特征进行学习对于训练集中没有出现的交叉特征不感知。

逻辑回归模型在推荐系统中的应用与CV跟NLP领域不同的是,推荐系统领域中特征X往往通过one-hot的形式,而不是后来的embedding look-up table。例如下图中有三种特征:性别、年龄段与User Id。图中w表示存储所有可能的特征值。对于当前的用户来说,他的性别,年龄段,ID分别是什么。由于输入的X是0/1的,直接取出对应的w ,并且和b相加。这里只画了用户侧的部分,item侧也是同样的道理。

逻辑回归\_1.jpg

2 Gradient Boosting Decison Tree(梯度提升决策树)

该模型又叫MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算法。

提升树\_2.jpg

其中,算法使用的决策树是回归树而不是分类树。如上图所示:回归树的每一个节点都会得一个预测值,以年龄为例,该预测值等于属于这个节点的所有人年龄的平均值。分枝时穷举每一个feature的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化平方误差。也就是被预测出错的人数越多,错的越离谱,平方误差就越大,通过最小化平方误差能够找到最可靠的分枝依据。分枝直到每个叶子节点上人的年龄都唯一或者达到预设的终止条件(如叶子个数上限),若最终叶子节点上人的年龄不唯一,则以该节点上所有人的平均年龄做为该叶子节点的预测年龄。

Gradient Boost Decision Tree则是使用迭代多棵回归树来共同决策。当采用平方误差损失函数时,每一棵回归树学习的是之前所有树的结论和残差,拟合得到一个当前的残差回归树,残差的意义如公式:残差 = 真实值 - 预测值 。提升树即是整个迭代过程生成的回归树的累加。

决策树\_3.jpg

训练集是4个人,A,B,C,D年龄分别是14,16,24,26。样本中有购物金额、上网时长、经常到百度知道提问等特征。Gradient Boost Decision Tree利用最速下降的近似方法,即利用损失函数的负梯度在当前模型的值,作为回归问题中提升树算法的残差的近似值,拟合一个回归树。

3 Gradient Boosting Decison Tree(梯度提升决策树)+ LR

Facebook在2014年提出将回归树训练好的模型得到的输入结合LR,前者主要是想通过树模型来巧妙的组合样本的高阶交叉特征,这就不需要通过用户手动设计特征,然后将得到的交叉特征送入到LR中进行模型训练。该模型是两阶段的,也就是说GBDT模型仅仅只是用来做特征交叉,通过GBDT训练模型,得到组合的特征向量。

交叉树\_4.jpg

例如训练了两棵树,每棵树有5个叶子结点,对于某个特定样本来说,落在了第一棵树的第3个结点,此时我们可以得到向量 [0,0,1,0,0] ;落在第二棵树的第4个结点,此时的到向量 [0,0,0,1,0] ;那么最终通过concat所有树的向量,得到这个样本的最终向量 [0,0,1,0,0,0,0,0,1,0] 。将这个向量作为下游LR模型的inputs,进行训练。

相关文章
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
基于Pytorch 在昇腾上实现GCN图神经网络
本文详细讲解了如何在昇腾平台上使用PyTorch实现图神经网络(GCN)对Cora数据集进行分类训练。内容涵盖GCN背景、模型特点、网络架构剖析及实战分析。GCN通过聚合邻居节点信息实现“卷积”操作,适用于非欧氏结构数据。文章以两层GCN模型为例,结合Cora数据集(2708篇科学出版物,1433个特征,7种类别),展示了从数据加载到模型训练的完整流程。实验在NPU上运行,设置200个epoch,最终测试准确率达0.8040,内存占用约167M。
基于Pytorch 在昇腾上实现GCN图神经网络
|
4月前
|
机器学习/深度学习 搜索推荐 PyTorch
基于昇腾用PyTorch实现CTR模型DIN(Deep interest Netwok)网络
本文详细讲解了如何在昇腾平台上使用PyTorch训练推荐系统中的经典模型DIN(Deep Interest Network)。主要内容包括:DIN网络的创新点与架构剖析、Activation Unit和Attention模块的实现、Amazon-book数据集的介绍与预处理、模型训练过程定义及性能评估。通过实战演示,利用Amazon-book数据集训练DIN模型,最终评估其点击率预测性能。文中还提供了代码示例,帮助读者更好地理解每个步骤的实现细节。
|
算法 计算机视觉 开发者
镜头边界检测(上)| 学习笔记
快速学习镜头边界检测(上),介绍了镜头边界检测(上)系统机制, 以及在实际应用过程中如何使用。
镜头边界检测(上)| 学习笔记
|
4月前
|
虚拟化 iOS开发 MacOS
VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS 集成 AQC 网卡驱动定制版
VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS 集成 AQC 网卡驱动定制版
183 2
VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS 集成 AQC 网卡驱动定制版
|
7月前
|
缓存 自然语言处理 算法
大模型意图识别工程化实践
本文重点介绍大模型意图识别能力在智能电视核心链路中的落地过程和思考,对比了基础模型、RAG 、以及7b模型微调三种方案的优缺点。
3367 120
|
4月前
|
算法 PyTorch 算法框架/工具
昇腾910-PyTorch 实现 Vggnet图像分类
本实验基于昇腾平台,使用PyTorch实现Vggnet模型对CIFAR10数据集进行图像分类。内容涵盖Vggnet模型创新点(小卷积核堆叠、深层网络结构)、网络架构剖析及代码实战分析。通过定义`blockVGG`函数构建卷积块,实现VGG11网络,并结合数据预处理、训练与测试模块完成分类任务。实验展示了深度学习中增加网络深度对性能提升的重要性。
|
4月前
|
搜索推荐 测试技术 C语言
NPU适配推荐系统GR模型流程
本示例将开源Generative Recommendations模型迁移至NPU训练,并通过HSTU融合算子优化性能。基于Atlas 800T A2平台,使用PyTorch 2.1.0、Python 3.11.0等环境。文档涵盖容器启动、依赖安装、算子适配、源码修改、数据预处理及配置文件设置等内容。性能测试显示,使用HSTU融合算子可显著降低端到端耗时(如ml_1m数据集单step从346ms降至47.6ms)。
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
Transformer总结笔记
1、PyTorch中的基础运算 2、自注意力机制 3、多头注意力机制 4、带隐码的多头注意力机制 5、交叉注意力机制
71 13
|
4月前
|
域名解析 安全 测试技术
|
4月前
|
定位技术 Python
LBA-ECO CD-02 亚马逊大气二氧化碳中的碳和氧同位素:1999-2004
该数据集报告了1999年至2004年间亚马逊流域森林、牧场及自由对流层大气中CO2的碳氧稳定同位素比值,包含三个ASCII文件。研究通过地面和飞机采样分析,揭示区域碳交换特征及其与土地利用变化的关系,为理解生态系统碳汇作用提供重要依据。数据涵盖多个采样点,包括浓度、同位素比率等详细信息,适用于生态与气候研究。
58 3