一种利用高度不均衡数据的广告账户优化方法
技术领域
本发明属于计算广告和人工智能技术领域,涉及高度不均衡数据条件下的机器学习建模方法,具体涉及一种基于高度不均衡数据的广告账户优化方法,能够挖掘并获取互联网广告投放中影响点击率和转化率的关键要素。
背景技术
计算广告方法是一门广告营销方法,以追求在线媒体上广告投放的综合收益最大化为目标,重点解决用户与广告匹配的相关性和广告的竞价模型的问题。竞价广告(auction-based advertising)是计算广告发展历史上革命性的产品模式,随着互联网、大数据等技术的发展在广告市场中占据越来越大的份额。在竞价广告中,广告主通过广告平台(DSP、ADX等)对在线媒体的广告位竞价,按照广告曝光、受众(在线媒体用户)点击或者商品销售向媒体付费。竞价广告极为复杂,是一个包括广告主、广告主代理、在线媒体、广告平台,甚至竞争对手的多方博弈环境。而广告主由于技术能力和数据的不足,往往处于相对弱势的位置。
账户优化就是利用广告展示数据,挖掘广告投放效果最好的账户要素组合,包括创意素材、出价策略、投放时段、投放媒体、媒体广告位、目标受众定向等。解决诸如“如何设计广告图和文案点击率才理想?”,“如何出价和选择定向人群曝光量才会高?”,“在哪些APP媒体投放广告下载率才会高?”等问题。目前业界一般只有大的广告平台实现了账户优化能力,腾讯广点通、阿里妈妈、今日头条、Google AdWords等大广告平台,相继推出了账户优化服务,例如腾讯广点通的OCPA(Optimized Cost Per Action)。广告主选定需要优化的转化目标(如APP激活),设置投放目标的平均支付价格,OCPA采用机器学习和最优化方法建立账户优化模型,实时预估每一次点击对广告主的转化价值,自动出价,满足广告主账户优化需求。
平台虽然具备数据和技术的优势,但与广告主本质上是利益对立的买卖关系,优化目标是最大限度获取平台的收益,而非让广告主获取收益。因此,广告主往往自己或委托代理公司研发账户优化模型,实际工作中会面临如下几个困难:
A.数据样本量小:广告主或代理公司依托在线广告平台投放广告,平台考虑到数据资产价值和使用合规性,往往只回传按小时汇总的广告投放数据,不提供受众级别的明细数据,且广告平台的API数据接口都会设置日访问限额;
B.数据高度不均衡:广告点击率(点击量/曝光量)一般小于1%,转化率(转换量/点击量)一般不超过10%,样本数据高度不均衡是账户优化面临的关键困难。业界解决样本的方法多为过采样(over-sampling)、欠采样(under-sampling)、数据加权(dataweighted)、数据合成(SMOTE,Synthetic Minority Oversampling Technique),但这些方法改变了数据分布,尤其在数据本就不足时很难采用;
C.数据分布不平稳:点击率和转化率在不同行业、不同日期、甚至一天中的不同时间点都有很大的不同,优化模型必须考虑数据分布不平稳的困难;
D.优化目标离散化:账户优化目标是广告点击率和转化率,优化任务是挖掘推高或降低点击率和转化率的账户要素。需要将点击率和转化率数值转化为高、低类别,但如何选取类别阈值是一个难题。
发明内容
为了便于说明,本文约定:
“响应率”统一表示广告点击率和广告转化率;
“账户要素”包括广告素材(文案、图、视频等)、广告组(投放站点、计费类型、竞投出价、投放时段等)、受众定向(年龄、性别、地区、兴趣、职业等);
“响应率类别”包括“高响应率”和“非高响应率”两类,本发明方法就是解决如何挖掘得到产生“高响应率”的账户要素组合。
本发明的目的是提供一种基于高度不均衡数据的广告账户优化方法,适应账户优化场景,利用场景数据的统计特性,使得在不进行样本数据增减和模型融合的情况下,通过统计推断和数据挖掘识别账户优化要素。
本发明提供的技术方案如下:
一种基于高度不均衡数据的广告账户优化方法,包括:应用假设检验将广告响应率数值转化为“高响应率”、“非高响应率”两类;应用机器学习算法提取账户要素组合频繁项集;计算关联规则条件概率,挖掘产生“高响应率”的账户要素组合;账户要素组合包括创意素材、出价策略、投放时段、投放媒体、媒体广告位、目标受众定向等;
优化方法包括如下步骤:
A.首先识别广告曝光响应场景下,数据分布服从的统计分布为二项分布,具体执行如下操作:
A1.广告响应属于离散型随机事件,可能服从二项分布或泊松分布;本发明通过伯努利试验找到广告响应场景可能符合的统计分布类型;
广告曝光响应只有“响应”与“不响应”两种结果,理论上属于伯努利试验(只有两种结果A与非A的试验)。相同条件下n次独立伯努利试验(即各次试验的结果互不影响),如果事件在每次试验中发生的概率保持不变,则称该试验为n重伯努利试验。设n重伯努利试验中成功次数x,x为随机变量,其分布称为二项分布。广告曝光响应可以看作是一次随机试验,且不同受众的广告响应是完全独立的,只要能够保证对于每次曝光,受众响应的概率不变,则理论上广告曝光响应就服从二项分布;
A2.通过数据预处理,使得广告曝光响应是平稳的;
在实际广告场景中,广告曝光响应是不平稳的,即不同时刻受众对广告曝光的响应概率不同。参见图2,一般节假日响应率高于工作日,晚间8-10点的响应率高于其他时刻。为了使广告响应符合平稳分布,本发明对数据做如下处理:
(1)将日期分为三种日期类型(节假日、周末、工作日),分别关联24(编号为0-23)个时段,共72种时段(3*24=72),分别统计各时段内的响应率期望和方差;
(2)计算每条数据的响应率(响应量/曝光量),如果高于该数据所属时段的响应率期望,则该条数据的响应率类别标记为“高响应率”,否则为“非高响应率”。
依此处理后,优化目标变量就消除了所属日期和时刻的影响,从而符合平稳性要求。
A3.按照实际数据情况(包括数据条数,每条数据的曝光量,以及响应率期望)进行二项分布数据仿真,绘制图形进一步验证广告曝光响应数据服从二项分布。
B.根据步骤A确定的二项分布,将响应率数值转化为响应率类别;执行如下操作:
B1.比较某条数据响应率Ri与其所属时段的响应率期望Ru,若Ri≤Ru,则标记为“非高响应率”;若Ri>Ru,此时如果曝光量(n)较小(本发明具体实施采用n≤30),则仍旧不能标记为“高响应率”,需要采用B2的假设检验方法进一步验证;
B2.采用二项分布对应的假设检验方法,逐条数据计算:
B2.1.定义原假设H0为“第i条数据响应率Ri为非高响应率”;
B2.2.根据曝光量(n)、Ri、Ru,根据统计分布对应的假设检验方法进行检验,具体细节参见后续“具体实施”部分的详细描述;
B2.3.如果假设检验通过,则接受H0,标记为“非高响应率”;如果假设检验不通过,则拒绝H0,标记该条数据为“高响应率”;
B2.4.此时标注的“高响应率”即为统计意义下归因于账户要素影响的结果。
B3.使用B2标注后,响应率数值就转化为响应率类别,正样本比例会有大幅提升。
C.通过机器学习算法,挖掘隐含的产生“高响应率”(记为R)的账户要素:
C1.设定支持度,挖掘账户要素组合的频繁项集I;
C2.推导频繁项集I包含高响应率的R的概率,即P(R|I);
P(R|I)=P(IR)/P(I) (式1)
式1中,I为步骤C1提取的频繁项集,R代表“高响应率”项,P(IR)为包含I和R项集的支持度;P(I)为只包含频繁项集I、不包含高响应率R数据的概率/支持度;
C3.计算lift值:
lift值=P(R|I)/P(R) (式2)
其中,P(R)为“高响应率”R数据出现的概率/支持度;即训练数据中某组合在训练数据中出现的概率。
设置lift值的阈值;将计算lift值大于lift值阈值的频繁项集I,作为账户优化要素。
通过上述步骤,实现基于高度不均衡数据的广告账户组合优化。
具体实施时,本发明训练数据中有5%的数据被标记为“高响应率”,则P(R)=0.05;lift值含义为当I出现时“高响应率”出现概率较平均出现概率提升的倍数。通过式2计算得到lift值,提取lift值>2.5的所有I,即为全部“高响应率”账户要素组合;由此实现基于高度不均衡数据的广告账户组合优化。
本发明的有益效果:
本发明提供一种高度不均衡数据的广告账户优化方法,应用二项分布假设检验标记广告曝光响应类别,并基于曝光量提取频繁项集,进而挖掘产生“高响应率”广告账户要素组合。
本发明方法巧妙利用了隐含于广告曝光响应场景中数据遵从二项分布的特性,采用假设检验方法标记出“高响应率”和“非高响应率”,进而可以通过机器学习算法挖掘产生“高响应率”的账户要素。本发明中,转化后的“高响应率”数据比例较曝光响应率提升近10倍,从而避免了常规特征工程方法改变数据分布的问题,可以较好地训练模型,使得优化更为稳定高效。
附图说明
图1是本发明方法的流程框图。
图2是本发明实施例中不同日期类型和时间下的响应率分布的示意图。
图3是本发明实施例中响应率二项分布仿真验证的示意图;
其中,横坐标为广告曝光响应率;纵坐标为横坐标表示的响应率出现次数;(a)为实际工作时段广告曝光响应率数据分布图;其中响应率为0的数据条数为700条,出现响应的数据中,响应率在0.01时达到峰值,峰值两侧呈逐步下降趋势;(b)为相同数据曝光和响应率期望0.01下,编写python代码生成的服从二项分布的数据分布。响应率为0的数据条数最多,出现响应的数据在0.01时达到峰值,两侧逐步下降;(b)与(a)中的实际数据分布基本一致,从实际数据验证了广告曝光响应数据服从二项分布。
图4是本发明实施例中“高响应率”特征选择结果样例;
其中,横坐标为特征编号;纵坐标表示特征重要性评分。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种高度不均衡数据的广告账户优化方法,包括通过假设检验将广告曝光响应率数值转化为响应率类别标志;使用基于曝光量频繁项集提取的关联规则,挖掘广告“高响应率”账户要素;本发明能够适应账户优化场景,利用场景数据的统计特性,通过统计推断和机器学习算法挖掘优选账户要素组合。
本发明中,“频繁”指账户要素组合曝光次数较多;“高响应率”指曝光后用户响应率比较高。
本发明方法基于投放广告平台API接口提供的小时级统计报表数据(主要数据项为日期、小时(0-23)、账户ID、广告计划ID、广告ID、广告曝光量、受众响应量等)和相关维表数据(如账户、广告、广告组等)。通过数据预处理,最终得到基础数据集(主要数据项为日期、小时(0-23)、广告曝光量、响应量、响应率、账户要素(广告行业、投放媒体、广告出价、广告图、广告文案、受众标的物类型(安卓、苹果IOS)、年龄、性别、地区、商业兴趣、职业、学历等))。参见图1本发明方法的流程图,具体实施过程如下:
A.对广告曝光响应数据进行二项分布拟合,使其服从二项分布;
基于前文分析,广告曝光响应理论上属于伯努利试验,在一定条件下,每条数据可以看作一次广告曝光n重伯努利试验,此时响应次数x就服从二项分布。因此需要对数据进行二项分布拟合,使其服从二项分布:
A1.首先再次明确二项分布的三个前提条件:
条件1:每次试验(广告曝光响应)只有两种可能的结果,即响应或者不响应,而且两种可能的结果是互相对立的;
条件2:每次试验是独立的,与其它各次试验结果无关;
条件3:受众响应发生的概率在整个系列试验中保持不变;
A2.实现数据的二项分布拟合。
根据业务经验和数据统计可知,响应率在不同日期类型和时刻的分布是非平稳的,如节假日响应率高于工作日,非工作时刻响应率高于工作时刻。将训练数据按照日期类型(工作日、周末、节假日)和时刻(0-23小时)的两两组合(共3*24=72种)进行划分,得到划分后的72个数据子集。在各子集内部,数据同属于一个日期类型和时刻,因此受众响应发生概率是相同的,每个子集的受众响应均服从二项分布B(k;n,p)(k为受众响应次数;n为广告曝光量;p为各子集数据的平均响应率,每个子集对应一个p值,共72个);
A3.通过数据仿真进一步验证二项分布拟合的正确性。
统计根据各子集数据的广告响应率分布,绘制出分布图;同时按照该子集对应的二项分布B(k;n,p),编写程序仿真该分布的数据,注意此时数据条数、每条数据的n(曝光量)、p(响应率)与该子集的数据必须相同,绘制各子集的响应率分布图。比较实际数据和仿真数据的响应率分布图,如果两个图相似,则进一步证明广告曝光响应是符合二项分布的。
B.对数据进行类别标记,标记为“高响应率”或“非高响应率”;
根据独立同分布的中心极限定理,当n很大(至少n>30)时,数据表示为式3所示的随
机变量:
随机变量近似服从标准正态分布N(0,1)。此处n为广告曝光量;μ为响应率期望;σ为响应率方差;Xi为受众对第i次曝光是否响应,响应等于1,不响应等于0;Yn即为二项分布Xi经处理后近似服从正态分布的随机变量。
采用下列方法对每条数据标记“高响应率”和“非高响应率”两类:
B1.分别计算72个数据子集的μ(响应率期望)、σ(方差)。对每条n>30的数据,按照所属的子集计算和Yn,对Yn是否服从标准正态分布进行假设检验;
B2.如果某条数据假设检验不通过,且响应率大于所属子集响应率期望μ,则说明在曝光量n下,该条数据较高的响应率是由账户要素组合影响的,标记为“高响应率”。此外所有其他情况(包括n<=30、假设检验不通过、响应率<=μ)全部标记为“非高响应率”。
C.对数据进行挖掘,得到“高响应率”的账户要素组合;
需要明确的是B2标记的“高响应率”和“非高响应率”与数据子集分布无关,因此所有数据可采用同一算法挖掘产生“高响应率”的账户要素组合关联规则,具体步骤如下:
C1.使用随机森林或XGBoost算法按照“高响应率”、“非高响应率”训练分类模型,提取“高响应率”重要性评分前n项特征(本发明中n=25,使用sklearn中RandomForestClassifier的feature_importances方法提取)。然后采用时间复杂度较低的FPGrowth算法(Frequent Pattern Growth,频繁模式生长树,由韩家炜等人在2000年提出)提取账户要素组合频繁项集I。
“频繁项集”是关联规则算法中的概念,在本发明中,指的是某些组合(如“游戏行业+QQ空间”)曝光次数大于支持度(如曝光总数的3%)的组合项。
考虑到业务场景,频繁项集使用曝光量代替常规方法中的数据条数,即满足式4的条件:
∑jinTWj≥P*∑iinMWi (式4)
M代全部训练数据,W代表第i条数据中的曝光量,T代表包含某账户要素组合(如“游戏行业+投放媒体为QQ空间+投放目标为IOS APP”)的数据,P为支持度;
C2.根据式1,计算条件概率P(R|I),P(R|I)表示频繁项集I包含高响应率的R的概率;I为步骤C1提取的频繁项集,R代表“高响应率”项,P(IR)为包含I和R项集的支持度;P(I)为只包含I、不包含R的概率/支持度;
C3.根据式2,计算lift值,提取高lift值频繁项集I,得到最终结果。P(R)为“高响应率”数据出现的概率,本发明训练数据中有5%的数据被标记为“高响应率”,则P(R)=0.05;lift值含义为当I出现时“高响应率”出现概率较平均出现概率提升的倍数。通过式2计算得到lift值,提取lift值>2.5的所有I,即为全部“高响应率”账户要素组合。
下面通过实例对本发明做进一步说明。
实施例使用2018年5月在某头部广告平台投放的数据,图2所示是本实施例中不同日期类型和时间下的响应率分布,可以看到,在不同日期类型和时间下的响应率分布具有显著的统计差异。
根据该批广告曝光数据,按照相同的响应率,我们仿真了一批服从二项分布的数据,python仿真代码如下。参见图3,很显然两批数据统计分布基本一致,例如横轴为0时统计值均较大,整体分布形态也非常相似。
参见表1,可以看到应用假设检验后,尽管561次曝光的响应率(0.04097387)高于平均响应率μ(0.029891),但因为曝光量不足而被标记为“非高响应率(ctr_m)”;曝光量为5720和1035的数据满足响应率大于μ,且曝光量较大,经假设检验后被标记为“高响应率(ctr_h)”。经统计,转换后“高响应率”正样本比例为5%左右。考虑到商业数据脱敏的需要,表1中数据为调整后的示意数据。
表1通过假设检验标记出的响应率标志数据样例
表2实施例中部分高响应率账户要素组合
参见图4,我们分布采用XGBoost和随机森林训练模型,提取重要特征(包括广告主行业、站点、受众性别、年龄、地区、商业兴趣、广告位、素材信息、广告图片文案、广告出价、广告投放时段等25个特征),提交给FPGrowth算法提取频繁项集(支持度为0.01),最终得到若干“高响应率”的频繁项集推导规则。部分项集规则参见表2,其中,前n列为账户要素取值;组合项数为账户要素数量;提升lift越高则账户要素组合产生响应率类的可能性越大。可以得到优选组合:①哈希值为39e6b3945e4e9e58ea6f72f089a9d9bc的广告图、“女总裁扮保安,惨遭下属的狗眼看人低,结局解气”的文案、移动插屏和移动开屏广告位,都能够唯一直接推导出“高响应率”,是较好的账户选择;②对于网站门户行业的广告,浏览器、QQ、手腾网是较好的选择;③具有“医疗健康”兴趣的受众在腾讯视频上的响应率较高等。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。