AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

基于 LSTM 模型的广告库存预估算法

  • 2020-01-03
  • 本文字数:3194 字

    阅读完需:约 10 分钟

基于LSTM模型的广告库存预估算法

爱奇艺广告算法团队结合广告业务特点,提出基于 LSTM(Long short-term memory,长短期记忆)模型的广告库存预估深度学习算法。在节省训练资源的同时,构建更具泛化性的模型,并将预测时间进行工作日、节假日等更精细化的多类标签,体现出节假日特征对库存波动的影响,从而对广告库存进行更为精确的预估。

背景

广告仍然是互联网流量变现及商业模式的重要手段,随着互联网高速的发展,广告服务愈加精细化,需要提前预知用户的访问量来保证广告的策略,这就需要理解和预测广告库存量,这就是广告库存预估。广告库存预估属于时间序列预测任务,主要利用历史库存来预测未来一天或多天的广告库存,从而预估出更为准确的库存,对广告售前询量、离线分配等工作有极为重要的指导作用。


广告库存预估作为时间序列预测算法的业务场景之一,其数据拥有时间序列数据的基本特点,趋势性与随机性并存,在长期的规律性中蕴含了短期的波动性;同时,广告库存预估有以下几个业务特点和难点:


  1. 样本较少:广告库存往往以天为单位结算,相对而言样本较少,若建立复杂的时序预估模型时易出现过拟合的问题;

  2. 库存的波动受节假日影响较大:在寒暑假、春节等节假日,甚至在每一个周末,广告库存量都会有大幅上升,这一特点需要利用时序模型进行捕捉;

  3. 广告主的特殊定向需求:预估维度需精确到站点、平台、城市、频道等维度,这给预估工作带来了资源和效率等方面的挑战。

解决方案

1.1 常用方案

时序预测方法主要可以分为两种方法:传统时序建模方法和机器学习。


最初的传统时序预测,可以追溯到移动平均法、指数平滑法,这类方法基于某段时间的历史数据拟合曲线,对于周期性的波动或方差较大的数据模拟效果较差;之后,随着移动平均与自回归的 ARMA,ARIMA 等模型出现,时序预测与此相结合。ARIMA 模型[1],全称差分整合移动平均自回归模型,其中 AR 是自回归,I 为整合,MA 为滑动平均,模型主要采用三个参数分别表示时序数据的滞后数、达到稳定状态需要的差分阶数、预测误差的滞后数。[1] 该模型简单易实现,对近期数据波动规律捕捉较好。但是 ARIMA 模型要求观测数据本身或是其差分后的数据是稳定的,且模型重点关注内生变量,不易添加外部特征,尤其与时序关联较小的特征。


随着人工智能的发展,机器学习方法开始普及,SVM、XGBoost 等方法也被运用于时序预测任务中。深度学习作为机器学习中的一种被不断提及,其中,循环神经网络 RNN 逐渐被证明在时序预测中能获得较好的效果,在捕捉长期数据规律上更有不错的表现。


在调研 LSTM 算法模型之前,爱奇艺广告算法团队采用 Adaptive-ARIMA 模型(后文简称为 A-ARIMA 模型),进行广告库存预估。A-ARIMA 模型将传统 ARIMA 算法和库存预估背景相结合,主要流程如下:



其中,A-ARIMA 算法对于传统 ARIMA 的改进主要在于缺失值、异常值等处理,另外,在后续处理时加入了进出节假日及周末的预估偏差矫正,以更好地描述实际流量波动。实验结果显示:在库存预估场景下,A-ARIMA 模型较传统算法预测效果更好,偏差率下降 1.16pp。

1.2 基于 LSTM 模型的预估算法

LSTM(Long short-term memory,长短期记忆)模型[2],属于 RNN(Recurrent neural network,循环神经网络)模型的一种,在长序列预测过程中相比普通 RNN 有更好的效果。在确定采用 LSTM 模型作为基础网络模型后,需要构建基本数据集:以过去 N 天的历史库存数据作为训练集,设置时间滑动窗口为 t,则每个维度每 t 天的数据可作为一个训练样本,而随后的一天数据则作为标签值,同时,为了保证参数训练方向的随机性,在选择训练样本时,我们采用随机选取样本的方式,而不是将单一维度的样本依次放入训练。LSTM 整体网络结构如下:



该结构基于 LSTM 网络模型主要有以下几个优化点:


  • 数据归一化


数据归一化是机器学习中的常见方法,在此进行归一化的主要原因是为了使得不同样本能训练同一组模型参数。具体针对这一问题,库存预估在不同维度下库存量级差距巨大,热门维度库存量可达到近千万,而部分维度则只有个位数的库存,而且同一维度下也可能存在库存水平随时间区间的变化而大幅浮动的情况。因此,在数据输入至 LSTM 网络前,需要对数据进行归一化。


我们分析了对数函数转换、min-max 标准化、z-score 标准化、最大值标准化等不同的归一化方法,发现最大值标准化在归一化效果和预测效果上都更加稳定。值得注意的是,相对于 min-max 方法在归一化时扣减训练数据最小值从而改变数据偏移量,直接采用最大值标准化能避免改变时序数据的相关性。最大值标准化方法具体可描述为:设一个维度可被划分为 M 个 RNN 样本,其中第 m 个样本为



对应 label 为



则归一化后的样本数据可表示为



其中



  • 维度聚类


正如库存预估业务特点中所描述,预估维度通常需要精确到站点、平台、城市、频道等维度。若对各维度采用相同参数的 LSTM 网络,模型则很难准确地描述各个维度;反之,如果每一个维度单独训练,样本数不够,模型将失去泛化性,且训练成本过大。


本文希望通过聚类的方法,选择波动趋势近似的维度组成同一类,进而训练相同的模型参数,因此,首先需计算 IAE 误差并完成层次聚类[3],组成所需数据集。


IAE(Integrated AbsoluteError) ,综合绝对误差,公式表示为:



t 为时间周期,表示某时刻两条库存曲线之间的误差,由于实际问题中库存值不连续,体现为离散的点,故该公式可表示为:



从几何角度分析,该误差公式可理解为两条库存曲线相交部分的面积大小,以此表示维度之间的“距离”。得到各维度两两之间的“距离”后,可利用该结果进行聚类,聚类过程可视为将库存曲线波动趋势相似的维度放入同一类。


下图展示了两个类的聚类效果:




可以明显看出,这两类间的各个维度曲线整体波动趋势差异明显,而同一类内的曲线波动趋势比较近似。因此,根据聚类结果,对不同类训练不同参数的 LSTM 模型能更好地描述各维度库存波动趋势,而且这也不需要占用过多的训练资源。


  • 节假日特征


正如我们所预见,广告库存跟日期特征有很强的相关性:如下图所示,寒暑假、法定节假日、周末等日期的流量明显上涨,广告库存也大幅提升。由此可得,在模型中加入节假日特征能有效提升预测正确度。



通过在 LSTM 模型外增加了一层全连接层,将 LSTM 预测的输出与节假日特征拼接。在设置节假日特征的方法上,我们通过观察上图流量波动的特征,大致将日期分为普通工作日、节假日前一天、节假日等多种类别。

实验结果

通过上述方案构建基于 LSTM 模型的库存预估方法后,我们需要对模型的准确性进行评估。本文的主要比较对象为 LSTM 模型单天预估结果和 A-ARIMA 模型预估结果,采用来自 2019 年 6、7、8、9 四个月,共 49 天的数据,包含了暑假期间及暑假前后,同时每星期的数据包含了工作日与周末,样本具有较好的代表性与随机性。评估指标采用加权偏差率,描述如下:



实验数据表明:在维度加权偏差率方面,LSTM 模型相较于 A-ARIMA 模型整体日均下降 0.72pp。而在全维度总库存预估上, LSTM 预测偏差率日均下降 1.48pp,效果更为明显。基于以上实验结果,我们可以判断基于 LSTM 的广告库存预估算法较 A-ARIMA 算法有更好的预测效果。

总结与展望

将 LSTM 模型运用于广告库存预估的背景下,通过比对 A-ARIMA 模型与 LSTM 模型的预测结果,实验数据表明 LSTM 模型在广告库存预估上具有更高的准确度。为了更好地适应业务特点,主要在以下几个方面进行优化:


  1. 数据归一化:将各个维度历史库存数据归一化,并根据归一化后的结果聚类,在节省训练资源的同时,尽可能地构建更具泛化性的模型;

  2. 预测日期精细化分多类标签:将普通工作日、普通节假日、节假日第一天等多类标签,embedding 后与 LSTM 模型输出连接,体现出节假日特征对库存波动的影响。


基于 LSTM 预估模型的模型,广告库存预估深度学习算法取得了较好的预估结果。在未来的工作中,会不断的优化和探索更加准确有效的方法,如构建更准确的节假日特征,更准确地捕捉到库存波动曲线的特征等,将不断提升广告库存预估结果的精确度。


2020-01-03 10:212829

评论 1 条评论

发布
用户头像
给广告算法团队点赞
2020-01-03 10:57
回复
没有更多了
发现更多内容

英特尔全方位打造算力基础,助推“算”赋百业

科技之家

数据中台建设(七):数据资产管理

Lansonli

数据中台 8月月更

新书上市 |《谁在掷骰子?》在“不确定性时代”中确定前行

图灵教育

重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”

科技热闻

mysql进阶(二十二)MySQL错误之Incorrect string value中文字符输入错误问题分析

No Silver Bullet

MySQL 特殊字符 8月月更

C#/VB.NET 将PPT或PPTX转换为图像

Geek_249eec

C# SVG PPT png VB.NET

OpenHarmony高校技术俱乐部计划发布

科技汇

JavaScript高级程序设计(第4版)-生成器

掘金安东尼

JavaScript 前端 7月月更

设计消息队列存储消息数据的MySQL表格

Geek_7a789a

elasticsearch安装和使用ik分词器

程序员欣宸

Java Elastic Search 8月月更

用户体验 | 如何度量用户体验 ?

易观分析

用户体验

未来源码 | 终于有人把大数据、机器学习、数据科学讲明白了

MobTech袤博科技

数据挖掘 机器学习 大数据

MVVM响应式

flow

8月月更

首届中国计算机学会芯片大会召开,宋继强分享英特尔最新底层技术创新进展

科技之家

基于mysql的消息队列设计

Geek_e8bfe4

如何设计高可用高性能中间件 - 作业

阿拉阿拉幽幽

表达式引擎在转转平台的实践

转转技术团队

表达式 引擎

Prometheus 监控什么时候可以使用 PushGateway

耳东@Erdong

Prometheus PushGateway 7月月更

语音聊天app源码——语音聊天派对

开源直播系统源码

软件开发 直播系统源码 开源源码 语音聊天源码 一对一语音聊天系统

博弈论(Depu)与孙子兵法(42/100)

hackstoic

博弈论

大众碰到点评的一个字体反爬,落地技术也是绝了

梦想橡皮擦

Python 爬虫 8月月更

消息队列消息存储设计(架构实战营 模块八作业)

Gor

Web3.0:构建 NFT 市场(一)

devpoint

区块链 NFT 7月月更

学习Java的网站

玄兴梦影

Java core

数字化转型实践:世界级2B数字化营销的方法框架

雨果

数字化转型 DaaS数据即服务

JAVA编程规范之安全规约

源字节1号

后端开发 网站开发

七日算法先导(一)—— 数组

工程师日月

8月月更

开源一夏|基于ArkUI eTS开发的坚果食谱(NutRecipes)

坚果

开源 HarmonyOS OpenHarmony OpenHarmony应用开发 8月月更

【云驻共创】【HCSD大咖直播】亲授大厂面试秘诀

恒山其若陋兮

7月月更

从RabbitMQ平滑迁移到RocketMQ技术实战

vivo互联网技术

RocketMQ RabbitMQ 消息队列 消息中间件 Apache RocketMQ

轮询和长轮询的区别

CRMEB

基于LSTM模型的广告库存预估算法_架构_广告算法团队_InfoQ精选文章