保障离线在线一致性的CTR预估方案
本案例使用经典的CTR点击率预估数据集Avazu训练一体化模型,并将离线调试完成的归一化预测->热独编码预测->向量聚合->FM预测流程完整部署到EAS。您在线上环境进行模型预测时,也可以使用离线训练时的数据预处理和特征工程逻辑,保障线上线下处理流程的一致性。
前提条件
已创建工作空间,详情请参见创建工作空间。
数据集
Avazu是经典的CTR预估的数据集,PAI使用了Avazu的一个子集(20万,训练集16万,预测集4万)构建点击率预估流程。数据详情请查看Avazu,具体的字段如下。
列名 |
类型 |
描述 |
id |
STRING |
广告id |
click |
DOUBLE |
是否点击 |
dt_year |
INT |
点击的年份 |
dt_month |
INT |
点击的月份 |
dt_day |
INT |
点击的时间(天) |
dt_hour |
INT |
点击的时间(小时) |
c1 |
STRING |
匿名的离散变量 |
banner_pos |
INT |
标题的位置 |
site_id |
STRING |
地点id |
site_domain |
STRING |
地点domain |
site_category |
STRING |
地点类别 |
app_id |
STRING |
应用id |
app_domain |
STRING |
应用domain |
app_category |
STRING |
应用类别 |
device_id |
STRING |
设备id |
device_ip |
STRING |
设备ip |
device_model |
STRING |
设备模型 |
device_type |
STRING |
设备类型 |
device_conn_type |
STRING |
设备连接类型 |
c14 - c21 |
DOUBLE |
匿名离散变量(共8列) |
操作步骤
进入PAI-Designer页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择
,进入Designer页面。
构建工作流。
在PAI-Designer页面,单击预置模板页签。
在模板列表的CTR点击率预估区域,单击创建。
在新建工作流对话框,配置参数(可以全部使用默认参数)。
其中: 工作流数据存储配置为OSS Bucket路径,用于存储工作流运行中产出的临时数据和模型。 单击确定。
您需要等待大约十秒钟,工作流可以创建成功。在工作流列表,双击CTR点击率预估工作流,进入工作流。
通过模板创建的工作流,如下图所示。
在该工作流中,PAI将特征分为两类:数值型特征、离散型特征。对于数值型特征,PAI使用归一化算法,将特征做归一化处理;对于离散型特征,PAI使用热独编码组件处理。最后将两类特征融合成一个向量,并使用FM算法训练模型并推理。
运行工作流并查看输出结果。
单击画布上方的运行。
工作流运行结束后,右键单击画布中的二分类评估,在快捷菜单,单击可视化分析。
在二分类评估对话框,单击指标数据,即可查看预估准确率。
如果指标满足要求,您可以将数据预处理、特征工程、模型预测的完整流程打包,并部署至EAS。
在画布上方,单击模型部署>Pipeline部署。
手动选中归一化批预测-2节点后(会自动选中右侧的完整链路),单击下一步。
会把选中需要部署的数据处理链路和用到的模型打包成一个Pipeline模型。
在Pipeline部署对话框,确认模型打包信息,并单击下一步,启动Pipeline模型打包任务。
打包任务大概需要3~5分钟即可完成。
任务执行完成后,在Pipeline部署对话框,单击部署,会跳转到EAS控制台。配置服务名称和资源部署信息后,单击部署,即可完成模型部署,详情请参见Pipeline部署在线服务。
在EAS控制台,选择刚刚部署好的服务进行在线调试,详情请参见服务在线调试。
Request Body区域的请求数据可以输入和数据集相同结构的测试数据,例如:
[{"id":"10000169349117863715","click":0.0,"dt_year":14,"dt_month":10,"dt_day":21,"dt_hour":0,"C1":"1005","banner_pos":0,"site_id":"1fbe01fe","site_domain":"f3845767","site_category":"28905ebd","app_id":"ecad2386","app_domain":"7801e8d9","app_category":"07d7df22","device_id":"a99f214a","device_ip":"96809ac8","device_model":"711ee120","device_type":"1","device_conn_type":"0","c14":15704.0,"c15":320.0,"c16":50.0,"c17":1722.0,"c18":0,"c19":35.0,"c20":100084.0,"c21":79.0}]
该数据在服务中会顺序进行归一化预测->热独编码预测->向量聚合->FM预测,最终得到如下预测结果。