基于LightGBM的广告商品平台推荐系统设计与应用
2022-10-27杨正成刘浩
杨正成,刘浩
(东华大学 信息科学与技术学院,上海 201620)
基于市场对短视频广告创意的需求增长[1],字节跳动旗下广告创意定制平台应运而生。该平台是一个广告创意定制化服务的双边交易平台,致力于将广告主的需求与创作者的能力进行撮合匹配。截至2021年底,平台提供超16 000个广告商品服务,导致广告主的商品挑选难度较大、效率较低。拆解广告主下单路径并构建转化漏斗,发现商品平台总体下单转化率较低,其中从商品广场到商品详情页的转化率为21.7%(无购买记录的新广告主的下单点击率更低,为12%左右),商品卡片的点击率(CTR)仅为2.0%。究其原因,是平台尚无以提升广告主的下单转化率与广告创作者的商品CTR为目标而设计的推荐排序策略。
本文针对上述问题,在整体架构、软件体系架构和算法层面做了优化设计。
(1)从整体架构层面,设计重构广告服务推荐策略,新增点击率预测模型。一方面将商品服务点击率作为评价指标,另一方面又作为预测结果[2]。
(2)从软件体系架构层面,采用责任链的设计模式,这种模式会根据给予请求的数据模型类型,对请求的数据发送方和接收方进行解耦,使得整个系统可以在不影响客户端的情况下动态地重新组织责任链和分配责任[3],达到可拔插和方便扩展的目的,方便了算法的接入与扩展。
(3)从算法层面,对平台商品售前能力进行优化,提出基于GBDT模型和LightGBM框架优化推荐策略[4],来提升商品的CTR。其中的原理可以概括成:利用我们所需要的全部特征来预测广告主是否点击推荐内容或者广告主是否会选择这个商品的概率[5-6],对广告主进行个性化推荐。
1 总体架构设计
本文以字节跳动旗下广告创意定制平台为研究系统,广告主从进入平台到下单的全流程如图1所示。
图1 广告主下单流程拆解图
图1展示了广告主从进入平台到下单,需要经过的几个阶段。首先,广告主进入广告商品平台,商品平台会展示不同的商品供客户挑选,客户选中商品点击进入详情页,最终完成下单的转化。
本文对该广告商品平台模块的商品推荐、排序、搜索能力进行重新架构设计[7]。该架构整体分为3个阶段:召回阶段,算法精排阶段和封装阶段,如图2所示。
图2 商品平台搜索推荐整体架构图
图2架构图解释了用户进入站点,从行为采集到反馈的全流程。其中,为了贯通召回及排序的整体逻辑,本文通过定义一个搜索执行流水线SearchPipeline来进行整体流程的控制。采用责任链模式,通过自定义搜索执行流水线上下文SearchContext,存放原始搜索参数及各阶段的参数和结果,而后搜索执行流水线SearchPipeline会按顺序执行单个搜索阶段的处理逻辑SearchHandler。
针对商品平台搜排推整体软件体系架构,共设计了4个搜索执行器,分别是商品召回执行器SpuRecal lHandler、商品算法精排执行器SpuSortHandler、商品封装处理器SearchPackHandler(SpuPacker),以及记录搜索关键词SearchRecordHandler。
2 整体流程
2.1 数据采集和清洗
通过前期埋点采集得到用户行为特征数据,由于数据量级巨大,需要借助HDFS(Hadoop分布式文件系统,由Apache开发的分布式系统框架[8])批量计算得到广告商品对用户的点击/曝光行为样本数据,以及广告主侧特征、广告商品侧特征、广告主与广告商品侧交叉特征4个特征数据,最终分别存储并生成5张Hive表。
2.2 商品召回阶段
起初商品平台使用的检索逻辑仅包含商品初步召回逻辑,查询分布式搜索引擎ElasticSearch[9]召回商品数据。ElasticSearch支持文档的全文搜索,为数据的每个字段建立倒排索引,倒排索引是ElasticSearch针对全文检索使用的索引数据结构。
利用ElasticSearch初筛召回规则如下:通过ElasticSearch索引召回、通过商品服务名字、创作者名字进行模糊匹配和通过查询销量等综合评分等数据进行召回等。
平台历史逻辑的召回阶段虽然能够通过广告主指定的筛选条件执行快速筛选,或者简单地通过订单评分召回的方式实现筛选,但是缺乏针对广告主行为,如对商品点击、曝光等交互场景更进一步地建模,导致召回排序排名靠前的CTR和下单转化率都不高。基于此,本文增加了精排模型的处理器,对召回的数据进行精排。
2.3 算法精排阶段
2.3.1 样本获取
本文主要使用广告创意定制平台的商品平台中的商品曝光和商品点击2张Hive表,见表1。
表1 广告商品曝光、点击表
market_spu_card_expose和market_spu_card_click 2张表分别记录广告主进入广告商品平台的广告商品服务的曝光和点击行为数据,每一条数据记录一次曝光或者点击行为。
利用Dorado平台(Dorado是字节跳动旗下集数据集成、数据开发、任务调度、运维管理和数据分析等功能为一体的大数据研发平台,提供一站式大数据研发解决方案,帮助业务部门进行数仓建设,包括ETL开发,数据分析及探索,简单高效构建自己的数据中台,专注于数据价值的挖掘和探索),通过HiveSQL语句,对Hive数据进行加工处理[10],对于数据样本量大且对数据处理时效性要求并不高的情况,使用Dorado处理离线数据,其步骤如图3所示。
图3 离线数据处理步骤图
样本构造后最终生成的ctr模型样本存放于名为market_spu_card_ctr_samples的表中,该表的每一条样本数据记录了某一广告主对某个广告创作者旗下的一个广告商品的曝光点击数据,如果广告主对广告商品发生曝光并点击则为正样本,如果商品曝光但未点击则为负样本。本实验数据选取时间2021年8月—2021年11月底,一共产生样本数1 273 186个样本数据,见表2。
表2 样本数据分布
2.3.2 特征工程
在广告主的商品点击率预估模型的建模中,最重要的就是特征工程。在信息透明化的互联网时代,用户特征行为对于互联网产品的更新迭代尤为关键[11]。模型综合考虑3个方面的特征,分别为广告主侧特征、商品服务侧特征和广告主与商品服务交叉特征。现存3张特征数据Hive表,见表3。
表3 特征数据Hive表
与处理样本类似,通过HSQL任务对特征大数据进行离线处理,加工上述3张Hive表特征数据到最终的点击率Hive表中ctr_market_label_and_features,总共166个初始特征。
3 实验模型与验证
3.1 模型构建
LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的工业级框架,具有训练速度更快、内存消耗更低、准确率更好及支持分布式等优点,在点击率预测方面有很好的应用[12]。在机器学习领域,GBDT是一个很好的算法模型,其利用弱分类器(决策树)的思想迭代训练,从而得到最优模型,该模型具有性能良好、不易过拟合等优点。在互联网界GBDT应用非常普遍,被用于多分类、点击率预测和搜索排序等任务,在Kaggle上的比赛一大半的优秀方案都是基于GBDT[13]。
LightGBM主要融合了2种算法:单边采样算法(Gradient-based One-Side Sampling,GOSS)和特征捆绑算法(Exclusive Feature Bunding,EFB)。
GOSS在采样时对样本的梯度绝对值进行排序,按照选取前a×100%个大梯度样本保留,对剩下的(1-a)×100%个小梯度样本进行随机采样,随机选取b×(1-a)×100%个数据,并且乘以(1-n)/m作为信息增益。使用这种方法学习一个新的弱学习器,重复直至收敛。这样的优化带来的好处是大梯度样本会有更多的信息增益,不用给予小样本过多的关注,能够对整个训练起正向作用。
GOSS算法降低时间复杂度的方式是减少样本数量,而EFB算法则考虑减少特征数量来降低复杂度。一般来说,使用的数据不会同时取0值,即存在互斥特征。EFB算法实现降维是通过绑定互斥特征来减少互斥特征的数量达成的。选择互斥的特征作为捆绑对象能够避免损失信息,如果2个特征并不是完全的互斥,可以通过引进冲突比率来对特征之间的不互斥程度进行衡量。如果当冲突比率值较小时,即使捆绑不完全互斥的2个特征,也不会影响最终精度。
利用LightGBM进行模型构建主要涉及以下2个步骤。
(1)导入上述的训练集和测试集数据。
(2)对模型参数进行调优。本次实验采用的是python中lightgbm包中的LGBMClassifier函数,其中主要的参数设定见表4。
表4 LightGBM参数设置
3.2 模型评估
将上述166个特征放入LightGBM训练处feat_importance特征树,通过特征树的重要性排序并导出得到3个特征的具体特征举例(按照特征重要性排序),见表5。
表5 特征重要性表
可以发现,原始推荐的粗排评分并不能作为点击率预估的主导因素,在商品维度下最重要的特征是商品在平台的CTR。因为CTR作为用户行为指标,主导因素是用户,其次才是商品维度的信息。
3.3 混淆矩阵评估
混淆矩阵是数据科学、数据分析和机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断2个标准进行汇总。利用LightGBM建模后测试样例的混淆矩阵见表6。
表6 测试集-LightGBM混淆矩阵
由表6可见,在246 282个测试样例中,真正点击的有6 845个,真阳性(TP)有4 702个,假阴性(FN)数据为2 143个;真正未点击的数据是239 437个,假阳性(FP)有58 231个,真阴性(TN)有181 206个。可以由此计算真阳性率(TPR)来评估模型的敏感度,以及利用真阴性率(TNR)来评估模型的特异度
3.4 AUC值分析
为评估模型的性能效果,选取曲线下方的面积大小(AUC)作为衡量指标,曲线下方的面积大小(AUC)是衡量学习器优劣的一种性能指标,二值场景即正例高于负例的概率。AUC值越大,说明分类模型的性能越好。
实验选取2021年8月12日—2021年11月7日的样本作为训练样本,利用2021年11月8日—2021年11月30日的样本作为测试样本。利用all-feature特征,采用LightGBM模型进行拟合,模型实验的结论基本符合预期,最终实验样本和测试样本的结果见表7。
表7 训练样本和测试样本AUC评分
3.5 实验验证
为验证模型的实际应用效果,进行推荐系统优化前后的线上A/B实验。展示了在接入本文推荐系统前后不同广告主进入服务广场的展示效果,达到了个性化的展示效果(由于涉及线上肖像数据,图片相应做了模糊处理,不影响结果的观察),如图4所示。
图4 广告主视角下推荐系统接入前后的对比图
图4模拟了接入本文推荐系统前后,不同广告主视角下进入平台服务广场页面进行选品的商品展示效果对比。其中,在接入文本推荐系统之前,服务广场对于不同广告主所展示的商品服务及其排列顺序是一致的。而在接入本文推荐系统之后,服务广场后所见的商品及其排序因不同广告主而异,因为系统会根据不同广告主的特征属性差异,以及不同商品的特征进行个性化的召回。
为了得到可靠的CTR数据支撑,将上述2个实验分为2组,将未接入该推荐模型的版本作为v1基准组,以及本次实验新增点击率模型推荐版本v2为对照组,分别记录CTR参数指标。实验选取选取2022年1月4日—2022年1月17日共14 d作为本次A/B实验的时间窗口,在此周期内检测基准组和对照组数据。实验点击率结果如图5和图6所示。
图5 单个用户对商品点击率对比图
图6 商品整体点击率对比图
记录基准组与对照组的下单转化率数据见表8。
表8 下单转化率对比
实验结果表明,新推荐系统下,单个用户的广告商品点击率平均上涨27.67%,广告平台商品点击率总体上涨10.52%;下单转化率从优化前的1.89%提升至3.39%,增长79.3%。可见,该商品推荐系统有助于改善从商品点击到下单转化的营销链路,为平台带来收益。
4 结束语
为了提高字节跳动广告定制平台商品服务的点击率和转化率,本文在原有平台能力的基础上,对平台商品推荐系统进行设计和应用。本研究涉及从数据采集、召回,以及精排的全流程,核心亮点体现于算法精排阶段。精排模型增加了基于LightGBM模型的点击率预估功能,以AUC为评分指标评估模型效果,并通过线上A/B实验对商品点击率的提升效果进行验证。实验结果证实了本文提出的新增算法能够根据广告主特征进行个性化点击率预估并进行合理的推荐,该算法已应用至字节跳动的线上服务中,可为广告定制平台的商品点击与转化的提升带来实际收益。