使用梯度提升树算法进行CTR预测

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: 使用梯度提升树算法进行CTR预测

教程简介

耗时:55分钟

在本教程中,您将通过PAI提供的GBDT二分类v2训练与预测组件,实现流量数据的点击率预估,并通过二分类评估组件对预测结果进行评估。同时本教程还提供模型部署的方法,评估后的模型可以非常容易的部署成线上服务。

在教程示例的点击率预估模型中,对流量数据的处理思路如下:

  • 首先使用标准化组件将数值型的特征进行标准化处理。
  • 然后使用GBDT二分类v2组件对数据进行分类处理。
  • 最后使用二分类评估组件v2对分类结果进行评估。
  • 经过评估和调优后,我们还可以将标准化组件和GBDT二分类v2组件打包成一个复合模型,并部署成一个EAS的服务。

我能学到什么

  • 训练预测相关模型的构建思路。
  • 如何开通阿里云实时计算Flink版服务,并作为模型训练的资源。
  • 如何使用阿里云机器学习PAI构建模型、训练模型、部署模型。
操作难度

所需时间

55分钟

使用的阿里云产品

所需费用

  • Flink及相关产品

    • 实时计算Flink版提供3个月5000CUH的免费试用资源。您需要领取实时计算Flink版、负载均衡SLB、对象存储OSS资源抵扣包(领取方法已在教程下一步中给出)。如果未领取或者因为不满足领取条件,将会产生额外费用。

    • 试用资源满足任何一个条件(超过5000CUH或超过3个月)后,涉及到的阿里云产品将正常计费,计费详情请参见Flink按量付费SLB按量付费OSS按量付费

  • PAI

    • PAI-EAS抵扣包只适用于本教程中的PAI-EAS产品。如果您领取了PAI-EAS抵扣包后,使用了PAI-EAS及PAI的其他产品功能(如PAI-DSW、PAI-DLC等),PAI-EAS产品产生的费用由抵扣包抵扣,其他产品功能产生的费用无法抵扣,会产生对应的费用账单。

    • 抵扣包用尽或超出有效期后将收取费用,EAS的计费详情请参见PAI-EAS计费说明您可以前往节省计划页面,查看抵扣包剩余金额和过期时间,请务必在试用后及时停止服务,避免产生额外费用。


准备环境及资源

耗时:15分钟

开始教程前,请按以下步骤准备环境和资源:

  1. 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
  2. 申请免费试用OSS,并创建Bucket。
  1. 领取对象存储OSS资源抵扣包。
    进入OSS免费资源包申请页面,单击立即试用,在确认并了解相关信息后,根据页面提示申请试用。
    【注意】:如果您的对象存储OSS资源抵扣包已使用完毕或无领取资格,开通Flink试用后,将正常收取费用,计费详情请参见OSS按量付费
  2. 创建OSS Bucket。登录OSS控制台,在Bucket列表页面单击创建Bucket开始创建Bucket。本教程的核心配置参数如下,其他参数可保持默认值,详细创建步骤请参见创建有地域属性Bucket
  • 地域:选择有地域属性华南1(深圳)地域。
  • 其他参数:保持默认值即可。
  1. 申请免费试用SLB:领取传统型负载均衡CLB资源抵扣包。进入SLB免费资源包申请页面,单击立即试用,配置开通参数,根据页面提示申请试用。本教程的核心配置参数如下,其他参数可保持默认值。
  • 地域和可用区:选择华南1(深圳)地域,可用区可按需配置。
  • 其他参数:保持默认值即可。
  1. 开通VPC,并创建虚拟交换机。
  1. 登录VPC控制台,在顶部选择地域为华南1(深圳),单击创建专有网络开始创建VPC。操作详情请参见创建专有网络和交换机
  2. 登录VPC控制台,在交换机页面的顶部选择地域为华南1(深圳),单击创建交换机开始创建交换机,操作详情请参见创建交换机
  1. 申请免费试用Flink。进入Flink免费资源包申请页面,单击立即试用,配置开通参数,根据页面提示申请试用。
  1. 如果您第一次访问该服务,可能需要进行角色授权。请在弹出的授权请求页面,单击前往RAM进行授权后,单击同意授权,完成自动化角色授权。授权成功后,需返回立即试用页面。
  2. 在Flink开通页面,单击上方提示框中的领取免费的资源抵扣包,领取Flink资源抵扣包。

  3. 在Flink资源抵扣包页面,确认相关信息后,单击确认订单,根据页面提示完成领取。

  4. 领取完毕后,在Flink开通页面,刷新此页面后完成参数配置。

参数

说明

教程配置

付费模式

阿里云实时计算Flink版免费试用仅支持按量付费。

按量付费

地域

本教程不涉及上下游存储,所以可不与上下游存储保持一致。

华南1(深圳)

可用区

本教程不涉及上下游存储,所以可不与上下游存储保持一致。

可用区E

资源抵扣包

可用于抵扣中国内地公有云地域(目前仅支持上海,杭州,北京,深圳,张家口区域)按量付费模式用量,自购买资源包日起有效期三个月。领取资源包后,单击刷新按钮,即可更新此参数。

其中,本教程示例不适用于张家口地域。

5000CUH

您需要领取负载均衡SLB对象存储OSS资源抵扣包进行抵扣(即点击所给链接,单击对应产品卡片上的立即试用,在确认并了解相关信息后,根据页面提示申请试用),否则将会产生额外费用。

如果您的对象存储OSS或SLB资源抵扣包已使用完毕或无领取资格,开通Flink试用后,将正常收取费用,计费详情请参见SLB按量付费OSS按量付费

确认领取后,选中

SLB服务

SLB是通过浏览器访问Flink产品控制台的必要网络连接组件。在您开通阿里云实时计算Flink版服务后,会自动开通SLB服务,该SLB专用于阿里云实时计算Flink版服务。

选中

专有网络

选择您已创建的专有网络。如果您没有创建,请参见创建和管理专有网络进行创建。

选中您需要使用的VPC名称。

虚拟交换机

每个Flink作业的Task Manager和Job Manager实例都会占用一个IP,您需要至少选择1个虚拟交换机。

如果当前无可用虚拟交换机,请在当前地域当前可用区下进行创建,详情请参见创建和管理专有网络

选中您需要使用的交换机名称。

工作空间名称

每个工作空间的计算资源隔离,开发控制台相互独立。

创建成功后不可修改。

flink-test

OSS存储

OSS用于存储作业系统检查点、作业快照、日志和JAR包等信息。新建OSS存储的具体操作,请参见开通OSS服务

不推荐对选择的Bucket开启非默认策略,例如多版本、合规保留等,可能会导致Flink作业异常。

选中您需要使用的OSS Bucket名称。

监控服务

如果您选中了监控服务(为您提供商业版Prometheus监控能力),则会正常进行收费,计费详情请参见ARMS按量计费

不选中

  1. 开通PAI并申请免费试用PAI-EAS资源。
  1. 登录PAI控制台,在顶部选择地域为华南1(深圳),单击开通PAI并创建默认工作空间,开始开通操作,详情请参见开通PAI并创建默认工作空间
  2. 登录并进入PAI免费试用页面后,在模型在线服务PAI-EAS卡片上单击立即试用
    【说明】:如果您此前已申请过试用PAI的抵扣包,此时界面会提示为已试用,您可以直接单击已试用按钮,进入PAI的控制台。
  3. 模型在线服务PAI-EAS面板,勾选服务协议后,单击立即试用,进入免费开通页面。


下载示例数据并上传至OSS

耗时:5分钟

原始数据集来自于Criteo广告公司7天内的部分流量。需要注意的是,原始数据特别巨大,本教程所使用的数据在原始数据集的基础上进行了大幅度采样,因此预测及评估结果仅供演示作用。

  1. 单击以下下载链接,下载本实践所需的示例数据。
  1. 示例数据示例第一列为label值,1表示正样本,0表示负样本;接下来是13列数值型特征,其中可能有空值;然后是26列类别型特征。
  2. 登录OSS控制台,进入创建的Bucket空间中,单击上传文件,在弹出的页面中单击扫描文件,选择下载到本地的两个示例数据文件,单击上传文件
  3. 当界面显示上传成功时,表明本教程需使用的示例数据已成功上传至OSS。


配置PAI工作空间

耗时:5分钟

  1. 登录PAI控制台,在左侧导航栏单击工作空间列表,进入工作空间列表页面后,单击自动创建的默认工作空间名称,进入工作空间详情页。
  2. 关联Flink为PAI工作空间的计算资源。
    在工作空间详情页的右侧单击资源管理,在弹出的页面中选择Flink全托管资源页签,页面下方为您展示上述步骤中创建的Flink资源,您需要勾选对应的Flink资源,然后单击确认关联

    完成关联后,后续您即可以在PAI-Designer中使用Flink资源运行任务。
  3. 关联OSS为PAI空间默认存储。
    在工作空间详情页的右侧的存储设置后单击设置,在弹出的页面中配置上述步骤中创建的OSS Bucket为默认PAI工作空间默认存储路径。
    完成配置后,后续您在PAI-Designer即可将数据存储于对应的OSS Bucket中。


创建PAI-Designer工作流并建模

耗时:15分钟

  1. 进入PAI-Designer页面。
  1. 登录PAI控制台,在左侧导航栏单击可视化建模(Designer),在页面中单击进入Designer
  2. 单击新建工作流>新建,在弹窗中配置工作流名称,完成后单击确定,新建一个Designer工作流。
  3. 单击进入工作流,进入Designer页面。
  1. 构建工作流。
  1. 在左侧组件列表中的搜索框中,搜索并拖入读CSV文件组件进画布中两次。分别用于读取本教程的示例数据,作为训练集和模型效果的评测集。
  2. 分别单击这两个读CSV文件组件节点,在右侧组件的参数配置中配置文件路径Schema。两个组件节点的配置示例如下。

组件节点

组件配置

读csv文件-1

  • 文件路径:选择上传至OSS中的criteo_10w_train.csv文件。
  • Schema

    label INT, nf01 DOUBLE, nf02 DOUBLE, nf03 DOUBLE, nf04 DOUBLE, nf05 DOUBLE, nf06 DOUBLE, nf07 DOUBLE, nf08 DOUBLE, nf09 DOUBLE, nf10 DOUBLE, nf11 DOUBLE, nf12 DOUBLE, nf13 DOUBLE, cf01 STRING, cf02 STRING, cf03 STRING, cf04 STRING, cf05 STRING, cf06 STRING, cf07 STRING, cf08 STRING, cf09 STRING, cf10 STRING, cf11 STRING, cf12 STRING, cf13 STRING, cf14 STRING, cf15 STRING, cf16 STRING, cf17 STRING, cf18 STRING, cf19 STRING, cf20 STRING, cf21 STRING, cf22 STRING, cf23 STRING, cf24 STRING, cf25 STRING, cf26 STRING
  • 其他参数:保持默认

读csv文件-2

  • 文件路径:选择上传至OSS中的criteo_1w_test.csv文件。
  • Schema

    label INT, nf01 DOUBLE, nf02 DOUBLE, nf03 DOUBLE, nf04 DOUBLE, nf05 DOUBLE, nf06 DOUBLE, nf07 DOUBLE, nf08 DOUBLE, nf09 DOUBLE, nf10 DOUBLE, nf11 DOUBLE, nf12 DOUBLE, nf13 DOUBLE, cf01 STRING, cf02 STRING, cf03 STRING, cf04 STRING, cf05 STRING, cf06 STRING, cf07 STRING, cf08 STRING, cf09 STRING, cf10 STRING, cf11 STRING, cf12 STRING, cf13 STRING, cf14 STRING, cf15 STRING, cf16 STRING, cf17 STRING, cf18 STRING, cf19 STRING, cf20 STRING, cf21 STRING, cf22 STRING, cf23 STRING, cf24 STRING, cf25 STRING, cf26 STRING
  • 其他参数:保持默认
  1. 在左侧组件列表的搜索框中,搜索并拖入标准化批预测(拖入两次)、GBDT二分类V2GBDT二分类预测V2以及二分类评估V2组件进入画布中。
  2. 连接组件节点间的输出桩与输入桩,将个组件连接成如下的流程。

  3. 配置工作流的资源与存储。
  • 在工作流右侧,选择Alink算法默认执行资源类型Flink
  • 选择工作流数据存储的路径为上述步骤中创建的OSS Bucket,用于保存中间数据及模型输出。
  1. 分别右键两个读CSV文件组件节点,选择执行该节点,开始读取CSV的数据,等待读取完成。

  2. 分别单击其他组件节点,在右侧的参数配置中配置以下核心参数,其他参数保持默认即可。

组件名

组件配置

标准化训练

字段设置

特征列:选择所有数值列,包括:

nf01,nf02,nf03,nf04,nf05,nf06,nf07,nf08,nf09,nf10,nf11,nf12,nf13

标准化批预测

无需修改配置,保持默认即可。

GBDT二分类v2训练

  • 字段设置
    • 特征列:选择出label外的所有列。
    • 类型型特征列:选择cf开头的所有列。
    • 标签列:选择label。
  • 参数设置
    • 树的目录:配置为50。
    • 最大叶节点数:配置为16。
    • 最多类别数:配置为256。

GBDT二分类v2预测

无需修改配置,保持默认即可。

二分类评估V2

字段设置

  • 标签列:选择label。
  • 预测详细信息列名:配置为prediction_detail。
  1. 单击界面中的运行按钮,开始执行作业,等待作业运行完成。
  • 在作业运行过程中,对于正在执行或执行完成的组件,邮件右键对应组件节点选择查看日志。

  • 当所有组件都执行完成后,您可以右键二分类评估V2组件,单击可视化分析,查看评估指标。


部署模型为EAS服务

耗时:5分钟

如果对当前的实验的评估结果非常满意,您可以直接将实验中模型有选择的部署成一个EAS服务。

  1. 制作Pipeline模型。
  1. 单击页面顶部的制作Pipeline模型,在高亮的组件节点中选择需要部署的组件,然后单击下一步

  2. 在弹框中选择模型存储的OSS路径,完成后单击下一步,此时您可以在弹窗中看到模型制作的运行状态等基本信息,耐心等待模型制作完成。
  1. 将模型部署至EAS。
  1. 当模型制作完成后,单击部署至EAS,跳转至模型部署页面。
  2. 配置以下核心部署参数。

参数

配置说明

服务名称

自定义一个服务部署名称。

资源配置选择

选择试用活动下领取的免费资源。

  1. 单击部署,页面跳转至EAS推理服务列表页面,您可以在此查看部署状态,当服务显示为运行中时,表明已经部署完成。


在线调试

耗时:5分钟

服务部署完成后可单击在线调试,在弹出的测试窗口中进行调试。

  • 调试时可在调试请求参数的Body中配置与模型训练、预测数据一致的字段,并通过Key-Value的形式构造调试请求参数各个字段的取值。
  • 本教程中,您可以将以下内容复制粘贴至调试参数Body中,然后单击发送请求,在右侧调试信息中可查看调试结果。
{"label":0,"nf01":4,"nf02":3,"nf03":null,"nf04":3,"nf05":14,"nf06":2,"nf07":4,"nf08":8,"nf09":8,"nf10":1,"nf11":1,"nf12":0,"nf13":2,"cf01":"05db9164","cf02":"73a46ff0","":"0128cf0a","cf04":"a9c1f26a","cf05":"25c83c98","cf06":"fbad5c96","cf07":"2f6a74d9","cf08":"0b153874","cf09":"a73ee510","cf10":"edd99521","cf11":"7e2c5c15","cf12":"43f4ba46","cf13":"91a1b611","cf14":"07d13a8f","cf15":"376a23f2","cf16":"bea98bfa","cf17":"e5ba7672","cf18":"da507f45","cf19":"21ddcdc9","cf20":"b1252a9d","cf21":"240c7f2b","cf22":"null","cf23":"32c7478e","cf24":"4c8e5aef","cf25":"ea9a246c","cf26":"9636866f"}


清理及后续

清理

申领的免费资源具有时长和容量限制,使用完请及时清理相关资源。如果未及时清理资源可能会导致服务终止或收取费用。完成教程后,您可以按照如下场景进行处理:

  • 如果您需要继续使用,且免费资源已使用完或者已经超过免费试用周期(通常为3个月),请随时查看欠费金额,并在规定时间内充值结清欠费账单,否则无法继续正常使用。
  • 如果您不需要继续使用,请及时清理测试数据和试用资源:
  • 实时计算Flink版资源清理
    登录实时计算控制台单击目标工作空间操作列下的更多>释放资源,单击确定。应用实时监控服务ARMS(如果您开通时选中)和负载均衡SLB会随实时计算Flink版一起被释放。
  • PAI-EAS资源清理
  1. 登录PAI控制台
  2. 在页面左上方,选择服务的地域。
  3. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击默认工作空间名称,进入对应工作空间内。
  4. 在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入PAI EAS模型在线服务页面。
  5. 推理服务页签,单击目标服务操作列下的删除,删除模型服务。

后续

您还可以参考以上操作步骤,使用Flink计算资源构建新的Designer工作流进行模型训练和预测。


总结

常用知识点

问题1:设置工作流属性Alink算法默认执行资源类型为Flink后,是否还需要单独为每个组件设置使用的计算资源?(单选题)

正确答案是否,因为设置工作流属性后,即为每个组件设置了使用的计算资源,不需要再单独设置。

延伸阅读

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
2月前
|
存储 机器学习/深度学习 监控
网络管理监控软件的 C# 区间树性能阈值查询算法
针对网络管理监控软件的高效区间查询需求,本文提出基于区间树的优化方案。传统线性遍历效率低,10万条数据查询超800ms,难以满足实时性要求。区间树以平衡二叉搜索树结构,结合节点最大值剪枝策略,将查询复杂度从O(N)降至O(logN+K),显著提升性能。通过C#实现,支持按指标类型分组建树、增量插入与多维度联合查询,在10万记录下查询耗时仅约2.8ms,内存占用降低35%。测试表明,该方案有效解决高负载场景下的响应延迟问题,助力管理员快速定位异常设备,提升运维效率与系统稳定性。
191 4
|
5月前
|
监控 算法 安全
基于 C# 基数树算法的网络屏幕监控敏感词检测技术研究
随着数字化办公和网络交互迅猛发展,网络屏幕监控成为信息安全的关键。基数树(Trie Tree)凭借高效的字符串处理能力,在敏感词检测中表现出色。结合C#语言,可构建高时效、高准确率的敏感词识别模块,提升网络安全防护能力。
136 2
|
7月前
|
存储 机器学习/深度学习 算法
KMP、Trie树 、AC自动机‌ ,三大算法实现 优雅 过滤 netty 敏感词
KMP、Trie树 、AC自动机‌ ,三大算法实现 优雅 过滤 netty 敏感词
KMP、Trie树 、AC自动机‌ ,三大算法实现 优雅 过滤 netty  敏感词
|
7月前
|
监控 算法 数据处理
基于 C++ 的 KD 树算法在监控局域网屏幕中的理论剖析与工程实践研究
本文探讨了KD树在局域网屏幕监控中的应用,通过C++实现其构建与查询功能,显著提升多维数据处理效率。KD树作为一种二叉空间划分结构,适用于屏幕图像特征匹配、异常画面检测及数据压缩传输优化等场景。相比传统方法,基于KD树的方案检索效率提升2-3个数量级,但高维数据退化和动态更新等问题仍需进一步研究。未来可通过融合其他数据结构、引入深度学习及开发增量式更新算法等方式优化性能。
186 17
|
7月前
|
存储 监控 算法
局域网上网记录监控的 C# 基数树算法高效检索方案研究
在企业网络管理与信息安全领域,局域网上网记录监控是维护网络安全、规范网络行为的关键举措。随着企业网络数据量呈指数级增长,如何高效存储和检索上网记录数据成为亟待解决的核心问题。基数树(Trie 树)作为一种独特的数据结构,凭借其在字符串处理方面的卓越性能,为局域网上网记录监控提供了创新的解决方案。本文将深入剖析基数树算法的原理,并通过 C# 语言实现的代码示例,阐述其在局域网上网记录监控场景中的具体应用。
173 7
|
6月前
|
机器学习/深度学习 算法 搜索推荐
决策树算法如何读懂你的购物心理?一文看懂背后的科学
"你为什么总能收到刚好符合需求的商品推荐?你有没有好奇过,为什么刚浏览过的商品就出现了折扣通知?
|
9月前
|
人工智能 算法 语音技术
Video-T1:视频生成实时手术刀!清华腾讯「帧树算法」终结闪烁抖动
清华大学与腾讯联合推出的Video-T1技术,通过测试时扩展(TTS)和Tree-of-Frames方法,显著提升视频生成的连贯性与文本匹配度,为影视制作、游戏开发等领域带来突破性解决方案。
291 4
Video-T1:视频生成实时手术刀!清华腾讯「帧树算法」终结闪烁抖动
|
9月前
|
算法 Java
算法系列之数据结构-Huffman树
Huffman树(哈夫曼树)又称最优二叉树,是一种带权路径长度最短的二叉树,常用于信息传输、数据压缩等方面。它的构造基于字符出现的频率,通过将频率较低的字符组合在一起,最终形成一棵树。在Huffman树中,每个叶节点代表一个字符,而每个字符的编码则是从根节点到叶节点的路径所对应的二进制序列。
243 3
 算法系列之数据结构-Huffman树
|
11月前
|
存储 算法 测试技术
【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】
本任务旨在实现二叉树的遍历,包括先序、中序、后序和层次遍历。首先介绍了二叉树的基本概念与结构定义,并通过C++代码示例展示了如何定义二叉树节点及构建二叉树。接着详细讲解了四种遍历方法的递归实现逻辑,以及层次遍历中队列的应用。最后提供了测试用例和预期输出,确保代码正确性。通过这些内容,帮助读者理解并掌握二叉树遍历的核心思想与实现技巧。
471 3
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
155 0