资讯专栏INFORMATION COLUMN

Google内部案例分享 | 是如何构建定制化TensorFlow预测系统的?

Batkid / 2723人阅读

摘要:预测事件本质上是我们通过机器学习预测系统,创造出来的一个假想事件,并根据预测阈值的不同,可以在下载安装及最终付费之间做优化调节。目前,此机器学习系统已在行业内上线,每天会分析预测上百万用户,帮助他们优化游戏内及广告体验。

近年来,移动端游戏随着智能手机技术的发展,越来越成为人们娱乐休闲的新模式。据 NewZoo 数据调查研究发现,全球手机端游戏已达到 21 亿玩家规模,呈 14% 同比年增长趋势,其中大部分玩家有在游戏中付费的经历。

对于 SLG 策略类型手机游戏,由于前期用户需要时间了解及熟练游戏操作,即使有付费倾向,一般也会比较滞后。这种滞后为游戏的内部运营,市场投放效果的衡量及优化带来了很大挑战。本文基于一款日活 600 万的明星 SLG 游戏,根据游戏内用户的 500+ 个特征行为,对未付费用户在下载安装后 28 天内是否会转化为付费用户加以预测。

文章尽量避免涉及过多的技术细节,主要从系统架构的角度加以阐述,如何自动化一套机器学习预测系统并与 Google UAC (通用应用广告平台) 相结合,最终提高 7 倍转化率,2.6 倍投资回报率,降低 63% 付费用户获取成本。

数据准备

数据包括两部分, 预测目标 Y 及用户参数 X,其中用户参数 X 又分为状态参数 Xs 和行为参数 Xb。

原始数据符合如下模板:

其中,每行数据为每一位用户每天的行为参数汇总和状态快照。如若用户当天未登录,则不需记录当天状态或行为。如果用户前 n-1 天未付费,在第 n 天发生付费转化,则该用户有 n 行数据 (假设用户每天登陆)。

状态参数 (当天零点快照) 包括但不限于,游戏内人物等级,游戏内金币数量,登陆游戏手机品牌,登陆游戏地点等。

行为参数包括但不限于 (推荐四种对预测付费最重要的行为,其他行为越多越好):

付费相关类行为:打开付费窗口,点击付费按钮(还未确认付费成功)

游戏币购买物品:这里物品可缩小范围到游戏的核心追求品类,如皮肤,武器等

社交行为:是否加入公会,在团队发言次数,社交账号分享等

打折类行为:打开打折商店等

对原始数据处理后,得到如下数据 (假设模型目标是基于未付费用户下载后 7 天行为预测下载后 28 天内是否会付费):

预测目标 Y:如果用户下载游戏后 28 天内发生付费转化,则为 1,否则为 0

用户参数 X:假设原始数据中对于用户 i, 有 j 行数据,经过处理后每个用户只有一行数据

注 1:推荐取 7 天以内行为作预测基础,这样可以在用户下载安装 APP 后七天内产生预测,进而及时把预测信号发送给 Google UAC 广告投放平台,便于 UAC 平台内的机器学习。

注 2:推荐取 28 天内的付费作预测目标,这样便于在一个月内完成预测效果及 Google UAC 广告平台投放效果的衡量。

数据清洗与特征工程

对数据进行清洗

用 0 填充所有缺失值

以列为单位,标准化变形。sklearn.preprocessing.StandardScaler

主成分分析 PCA:降维到原纬度数量的一半。

经过数据清洗和特征工程处理后,得到如下数据(假设模型目标是基于未付费用户下载后7天行为预测下载后 28 天内会不会付费):

将处理后的数据按 1:1 分成两部分,train 和 test

预测目标没有变化,即 Y_noTransform_train, Y_noTransform_test:如果用户下载游戏后 28 天内付过费,则为 1,否则为 0;

相对应的用户参数经过变形,即 X_transformed_train, X_transformed_test;每个用户一行数据,但经过 PCA 降维之后,很难理解X中每一列代表什么行为。

基于TensorFlow深度神经网络分类器建模

创建分类器

设计系统时,选择调用 tensorflow Python API,直接建立 DNNClassifier 对象,省去了大量从底层开始架构模型的时间。对解决简单分类问题很有效,推荐给大家。

classifier = tf.estimator.DNNClassifier()

训练分类器

调用 DNNClassifier 对象的 fit 函数,建立训练模块。

classifier.fit(X_transformed_train, Y_noTransform_train, steps=2000, batch_size=5000)

分类器预测

调用 DNNClassifier 对象的 predict 函数,建立预测模块。输出为 0 或 1,0 代表分类器认为转化概率低于 50%,即不会付费转化,1 代表分类器认为转化概率大于等于 50%,即大概率付费转化。50% 为 predict 函数默认的缺省阈值,如需改变此阈值,则要调用 predict_proba 函数,输出为转化概率,而不再是 0 或 1。

Y_predict = classifier.predict(X_transformed_test)

分类器验证

Y_predict 和 Y_noTransform_test 都是真对同一批测试者,前者为预测值,后者为实际值。通过比较得出 Precision 和 Recall,以此衡量预测模型的准确度。如果用于 Google 广告平台的投放,则 Recall 比 Precision 重要,应尽量提高 Recall。如果用户内部运营,则 Precision 比 Recall 重要,应尽量提高 Precision。

其中 precision 代表精度,recall 代表广度。f1 是综合考虑 precision,recall 的整体参数。具体定义如下:

经过多次调参迭代,模型性能如下所示,

注:蓝色竖虚线与 x 轴的交点是使 f1 达到较高点的预测概率的取值

系统设计

系统基于 Google Cloud Platform,简称 GCP,进行架构。激活了 GCP 中三个组件,BigQuery, Compute Engine 和 Storage。每天,基于游戏内新产生的数据运行“预测模块”,对每个用户加以评估,是否会付费转化。每季度初,基于过去 120 天内注册的用户数据运行“训练模块”,对模型加以更新。这里采用了混合数据集的方法,即90天新数据,30 天老数据,以保证模型和谷歌广告投放平台的合作顺畅。

每季度

每天

预测结果在 Google UAC 广告平台的应用

Univeral App Campaign 即通用应用广告系列(以下简称 UAC),是 Google 开发的基于大数据和机器学习的移动端应用广告投放平台。旨在帮助用户简化广告投放流程,更轻松地在 Google 用户量最多的各款产品和服务(包括 Google 搜索、Google Play、YouTube 和 Google 展示广告网络)中宣传自己的应用 APP。用户只需添加几行文字、设置出价、提供一些素材资料,系统会自动优化其余部分(包括具体广告的设计、广告投放的目标定位和出价等),从而帮助用户推广应用 APP。

目前有三个版本,根据推广目标不同,分别为以提升 APP 下载安装量为目标、提升 APP 内事件触发频次为目标和提升 APP 内用户价值为目标。本文主要应用在 UAC 的第二个版本,以提升 APP 内事件触发频次为目标。

APP 内的事件多种多样,游戏内充值付费(以下简称 IAP,In-App-Purchase)应属最简单明了也最便于尝试的事件之一。大多数用户都有测试,但效果有好有坏,究竟是什么因素导致了效果的不同?有没有一种方法可以提升 UAC 广告投放效果?本文希望通过对大量投放经验的总结,提出一种基于预测付费用户的新的 UAC 广告投放方式,用于高质量的新用户获取。

如之前章节所述,最后得出的预测结果应为两列数据,DeviceID 及预测标签 (0 或1)。取决于预测概率阈值的不同,被标记为 1 (有付费倾向) 的用户数量及准确度也会不同。阈值越高,被标记为 1 的要求越苛刻,既被认为有付费倾向的用户数量越少,准确度越高,如图二所示。当阈值达到较高 100%,则预测事件等同于实际付费事件;当阈值达到较低 0%,则预测事件等同于 APP 安装事件。“预测事件”本质上是我们通过机器学习预测系统,创造出来的一个“假想”事件,并根据预测阈值的不同,可以在APP下载安装及最终付费之间做优化调节。

经大量实验研究发现,如果考虑把预测结果应用在 UAC 上,应尽量调节阈值,牺牲一些 precision,使 recall 尽可能高。

如下图所示,阐述了基于 TensorFlow 的机器学习预测系统与 Google UAC 广告投放平台结合的工作原理。左边蓝色的部分为本文搭建的预测系统,右侧绿色的部分为 UAC 系统。通过分析预测,找出潜在付费用户,扩大了发送给 UAC 的种子人群数量,缩短了从 APP 安装到有效转化发生的效果回馈时间,进而提升了 UAC 机器学习和广告投放的效果。

注:用户需要思考是否充值付费的时间越长,潜在付费用户群体越大

结论及未来展望

本文通过对行业背景的分析,提出了策略类手机游戏面临的挑战。并从系统架构的角度,介绍了如何对数据进行清理、特征工程、预测分类器的建模及系统自动化。其中,数据的搜集处理对模型的准确性及应用性有很大影响。文章也给出了四种对预测游戏内付费有重要影响的行为参数,并通过 PCA 主成分分析的特征降维方法,极大提高了模型的性能。另外,通过调节预测转化概率的阈值,可在精度和广度之间作以取舍,使模型的预测结果适用于不同的领域。

目前,此机器学习系统已在行业内上线,每天会分析预测上百万用户,帮助他们优化游戏内及广告体验。预测是为了更好地了解用户,进而更有效率地帮助用户。预测结果可对用户加以分层,可应用于内部运营、市场再营销、新用户获取等领域。在此案例中,通过把机器学习系统与 Google UAC 广告平台的结合,在新用户获取领域极大的提高了用户质量,使付费率提高了 7 倍,投资回报率提高了 2.6 倍。关于具体实施的细节,如感兴趣,请联系您的 Google Awords 账户经理,我们很乐意与您分享相关经验,这里不再赘述。

未来,我们会对用户终身价值 pltv 加以建模研究,期望基于用户的行为及付费数据,预测用户未来在游戏内的活跃时间及终身价值。这样可以帮助我们更细颗粒度地区分用户,构建千人千面的用户体验。

欢迎加入本站公开兴趣群

商业智能与数据分析群

兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识

QQ群:81035754

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/4761.html

相关文章

  • Move Mirror:使用 TensorFlow.js 在浏览器中预测姿势之 AI 实验

    摘要:文和,创意实验室创意技术专家在机器学习和计算机视觉领域,姿势预测或根据图像数据探测人体及其姿势的能力,堪称最令人兴奋而又最棘手的一个话题。使用,用户可以直接在浏览器中运行机器学习模型,无需服务器。 文 /  Jane Friedhoff 和 Irene Alvarado,Google 创意实验室创意技术专家在机器学习和计算机视觉领域,姿势预测或根据图像数据探测人体及其姿势的能力,堪称最令人兴...

    MiracleWong 评论0 收藏0
  • TensorFlow开源2年官方回顾】下一个重要方向分布式模型服务

    摘要:自从年月开源以来,我们做了一些重大改进。现在,让我们再回到这个项目开始的地方,回顾我们的进展过程,并分享我们下一步的方向。 自从2016年2月 TensorFlow Serving 开源以来,我们做了一些重大改进。现在,让我们再回到这个项目开始的地方,回顾我们的进展过程,并分享我们下一步的方向。在 TensorFlow Serving 启动之前,谷歌公司内的 TensorFlow 用户也必须...

    morgan 评论0 收藏0
  • TensorFlow-dev-summit:那些TensorFlow上好玩和黑科技

    摘要:现场宣布全球领先的深度学习开源框架正式对外发布版本,并保证的本次发布版本的接口满足生产环境稳定性要求。有趣的应用案例皮肤癌图像分类皮肤癌在全世界范围内影响深远,患病人数众多,严重威胁身体机能。 前言本文属于介绍性文章,其中会介绍许多TensorFlow的新feature和summit上介绍的一些有意思的案例,文章比较长,可能会花费30分钟到一个小时Google于2017年2月16日(北京时间...

    BLUE 评论0 收藏0
  • 计算机视觉中深度学习:技术、市场和5个你想不到未来

    摘要:接下来,介绍了使用深度学习的计算机视觉系统在农业零售业服装量身定制广告制造等产业中的应用和趋势,以及在这些产业中值得关注的企业。 嵌入式视觉联盟主编Brian Dipert今天发布博文,介绍了2016年嵌入式视觉峰会(Embedded Vision Summit)中有关深度学习的内容:谷歌工程师Pete Warden介绍如何利用TensorFlow框架,开发为Google Translate...

    baukh789 评论0 收藏0

发表评论

0条评论

Batkid

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<