xTR系统架构与流程
xTR系统架构
FreeWheel拥有海量的数据资源,日访问量达15亿次,在如此庞大规模的数据上进行CPx-event的预估首先需要大数据平台的支持。FreeWheel大数据平台采用YARN管理不同应用,提供MapReduce、Spark等分布式计算服务。
xTR分为离线任务组与在线服务两部分。离线任务在分布式计算平台处理广告投放日志,对一些上下文信息(比如视频信息、网页信息、LBS、设备信息)抽取特征,根据前端视频播放器返回的事件Callback抽取样本。当收到事件Callback时认为事件发生,没有收到事件Callback,则认为事件没有发生,并且选择合适的机器学习算法训练模型,最终将特征信息写入Key-Value存储中。
xTR在线服务对外部系统提供服务请求,我们选择Thrift作为Server架构。预测系统与广告服务器会实时访问xTR server, xTR server经过运算返回预测结果,预测的对象就是某个事件发生概率。
在机器学习方法被应用之前,预测系统通过统计方法计算事件发生概率,即利用之前一段时间事件发生概率平均值估计下一时间点事件发生概率;使用机器学习方法之后,建模时考虑了更多上下文信息,xTR系统帮助离线预测更加准确,同时帮助在线广告服务器更加精确地预测广告投放过程中不同事件发生概率。
xTR算法流程
xTR的算法流程大致如下:
1.从广告投放日志中解析出文本特征与统计类特征,用特征回归模型解决特征量巨大问题,这是我们第一个优化点;
2.特征过滤之后,筛选出优质特征,再利用特征交叉丰富特征空间,缺省值处理/特征平滑是我们特征工程主要做的处理;
3.对于不同事件,使用抽样方法处理正负样本不均匀问题,这是我们第二个优化亮点;
4.获得训练样本后,我们利用在线学习与强化学习设计出自适应模型算法,这是我们的第三个优化亮点;
5.最终经过模型分析,更新线上模型。
对于任意一种事件,xTR的目标是判断该事件是否发生,因此将xTR问题转化为机器学习中的二类分类问题。更进一步,可以将xTR算法问题分解为特征工程与模型构建两部分。