在用户增长解决方案中,通过流失用户召回子解决方案可以对用户进行流失预测,从而对高风险流失用户进行召回。本文介绍如何使用PAI-Studio提供的算法组件,构建用户流失预测召回模型。

背景信息

用户增长解决方案包含流失用户召回、用户LTV预测及买量预测等多个子解决方案。通过用户增长解决方案,您可以更精细化地进行流量运营。PAI团队在相关领域具有丰富实践经验,通过机器学习手段帮助多家互联网公司提升其流失用户召回率达30%以上。

在用户增长解决方案中,需要使用阿里云计算平台的多款产品:
  • 底层计算引擎使用MaxCompute(阿里云自研大数据平台)或EMR(开源Hadoop体系)计算引擎。
  • 数仓层使用DataWorks工具,供数据工程师开发用户标签。
  • 模型训练层使用PAI-Studio或EMR-DS等建模工具。
架构图如下所示。用户增长解决方案架构图

数据准备

在APP流失用户召回场景中,首先需要准备一份用户登录相关的数据,数据具体说明如下。
参数 类型 描述
app_key STRING APP唯一标识
Umid STRING 设备ID
install_channel STRING 首次安装渠道
app_channel STRING APP当前渠道
sdk_version STRING SDK版本
app_version STRING APP当前版本
event_name STRING 自定义事件名字
svr_timestamp STRING 服务器时间戳
pre_app_version STRING 升级前版本
screen_width Bigint 分辨率宽度
screen_height Bigint 分辨率高度
os_version STRING 操作系统版本
device_brand STRING 设备品牌
device_model STRING 设备机型
country STRING 国家
province STRING
city STRING 城市
is_wifi STRING 是否使用Wi-Fi,其中:
  • 0:使用Wi-Fi
  • 1:未使用Wi-Fi
imei STRING IMEI
idfa STRING IDFA
is_new_install STRING 新老用户,其中:
  • 0:老用户
  • 1:新用户
cli_timestamp BIGINT 客户端时间戳
event_kv_json STRING 参数和参数值数据,JSON结构。
session_id STRING 会话ID
provider STRING 用户通过第三方账号登录时的标识符
puid STRING APP用户账号ID
android_id STRING Android ID
oaid STRING OAID(匿名设备标识符)
system_properties STRING 系统属性(扩展字段)
event_type STRING 事件类型,其中:
  • 0:自定义事件
  • 1:预制事件

构建实验

在PAI-Studio中,已经预置了新用户流失召回实验模板。您可以从实验模板快速创建实验,并在此实验基础上通过拖拽形式构建自定义实验。PAI-Studio提供100余种机器学习算法组件供您使用,在流失预测用户召回场景中,需要使用One-Hot编码、逻辑回归、预测及二分类评估等组件。

  1. 进入PAI-Studio控制台。
    1. 登录PAI控制台
    2. 在左侧导航栏,选择模型开发和训练 > Studio-可视化建模
    3. PAI可视化建模页面,单击进入机器学习进入机器学习
  2. 构建并运行实验。
    1. 在PAI-Studio控制台的左侧导航栏,单击首页
    2. 模板列表,单击用户增长-新用户流失召回下的从模板创建
    3. 新建实验页面,配置参数(您也可以全部使用默认参数)。
      参数 描述
      名称 输入新用户流失召回
      项目 不支持修改。
      描述 输入计算新用户流失的概率,通过短信等服务触达方式召回用户
      位置 选择我的实验
    4. 单击确定
    5. 等待大约十秒钟,实验即可创建完成,如下图所示。
      新用户流失召回实验图
      序号 描述
      获取注册日期字段。
      本文中的用户流失召回方案通过用户在注册日期当天的行为,预测未来七天该用户是否会再次登录。如果未来七天该用户不登录,则判断为流失用户,因此需要先确定注册日期。您可以通过SQL JOIN方式获取每个用户的注册日期,例如add注册日期组件配置的如下SQL脚本。
      SELECT a.*,b.registration_date
      ,datediff(TO_DATE(a.ds,'yyyymmdd'),
      TO_DATE(b.registration_date,'yyyymmdd'),'dd')+1 day
      FROM  ${t1} a
      JOIN ${t2} b
      on a.umid=b.umid;
      构建训练和预测数据。

      将数据分为两部分,一部分为已知行为和目标列的训练数据,用于训练流失用户预测模型。另一部分为测试集(可以替换成待预测样本),用于效果校验。训练集和测试集的数据特征加工模式需要保持一致。

      训练集数据分为特征列和目标列,其构建规则如下:
      • 目标列的构建规则
        SELECT  umid id,if(max(day)<=1,1,0) label
        FROM    ${t1}
        WHERE   day <= 8
        group by umid;
        上述规则表明:如果未来7天该ID再次登录,则为非流失用户,即标记为1,否则标记为0。
      • 特征列的特征加工方法
        SELECT umid,
        COUNT(if(day=1,1,0)) cnt_event1,
        COUNT(if(day=2,1,0)) cnt_event2,
        COUNT(if(day=3,1,0)) cnt_event3,
        if(count(app_key)=1,1,0) app_key1,
        max(app_key) app_key2,
        max(install_channel) install_channel,
        max(app_channel) app_channel,
        max(sdk_version) sdk_version,
        max(app_version) app_version,
        max(screen_width) screen_width,
        max(screen_height) screen_height,
        max(os_version) os_version,
        max(device_brand) device_brand,
        max(device_model) device_model,
        max(std_device_model) std_device_model,
        ………………………………………
        COUNT(if(event_name="w_c_c_c",1,0)) w_c_c_c,
        COUNT(if(event_name="w_o_i_v",1,0)) w_o_i_v,
        COUNT(if(event_name="wifi_ad_c",1,0)) wifi_ad_c,
        COUNT(if(event_name="wifi_settings",1,0)) wifi_settings
        FROM ${t1} WHERE day <= 1 and ds<20201021 and ds>=20201006
        group by umid;
      特征编码。
      One-Hot编码可以将类别变量转换为机器学习算法易于使用的形式,经过One-Hot转换后的格式如下图所示。One-Hot编码转换后的数据格式
      模型训练和评估。

      通过逻辑回归算法生成二分类模型,该模型可以对每个样本是否在未来7天流失进行预测。此外,通过AUC指标评估模型准确率,本文的AUC指标为0.65左右,该数值越高表示模型的准确性越高。

      您可以通过如下方式查看AUC指标:
      1. 实验运行结束后,右键单击画布中的二分类评估-1,在快捷菜单中,单击查看评估报告
      2. 评估报告对话框,单击图表指标数据页签,即可查看AUC值。
    6. 单击画布上方的运行
      系统已自动配置了实验的数据源及各算法组件的参数(单击画布中的组件,在右侧面板可以查看已配置的参数),您直接运行实验即可。
  3. 流失用户召回。
    训练完成的模型可以为用户的流失可能性打分,右键单击画布中的预测-1,在快捷菜单中,单击查看数据,即可查看预测结果。您可以通过预测结果的Prediction_detail字段判断用户的流失概率。
    以如下两个用户的预测结果为例,Prediction_detail字段表明第二个用户标记为0的概率大于第一个用户,因此第二个用户的流失风险更高。针对高风险的流失用户,可以通过短信或邮件的方式进行召回。
    Umid Prediction_detail Phone_number
    0007482ca2a10f164f6c4857a890**** { "0": 0.3562608594874275, "1": 0.6437391405125725} 1521*
    0009fae0f0717574dcbf60e52501**** { "0": 0.5325922140416991, "1": 0.4674077859583009} 138***

后续步骤

您可以将训练完成的模型部署为服务,从而进行在线调用,详情请参见PAI-Studio模型部署及预测