服务器 频道

遗传算法在动态定价领域中的应用

  前言

  在全球化经济中,货运行业至关重要;有效的价格策略是企业提升竞争力的关键。然而,传统整数规划和因果推断方法因数据局限性和模型偏差,难以适应多变市场。电子商务的兴起为货运企业带来新机遇与挑战,要求价格策略能吸引客户、提高流通效率以实现盈利最大化,但是动态的复杂多变的环境,为该目标带来了诸多难题。

  遗传算法作为一种模拟自然选择的全局优化技术,已在多个领域展现独特优势。本文提出一种新的解决方案,旨在探讨遗传算法如何和因果推断算法相结合,优化货运价格策略,通过模拟自然选择过程找到更优解,增强企业市场竞争力和盈利能力。我们将分析其在价格决策中的应用,并讨论实际操作的可行性与挑战,为企业在竞争中保持领先提供新的解决视角和方案。

  业界方案综述

  在电子商务在线交易市场中,如何通过调整价格因素进而调节供给端与需求端的平衡匹配,已成为近年来业界研究因果推断(CA,Causal Inference)的重要驱动因素。不同于目前学界大部分文章中将因果treatment变量假设为“一维变量”、“二元0-1变量”,如Dragonnet[6]、VcNet[7]等,在实际的企业应用中,价格因素通常具有“多维变量”、“连续变量或多元离散变量”的特点;以滴滴技术发表在KDD22的文章为例,其说明了在对“价格折扣”的treatment的因果效益估计时,折扣是连续性变量[1];再以腾讯金融发表在KDD23的文章为例,其在建模假设时,将treatment变量视作多维的,对应其业务中不同的手续费套餐的不同优惠额度[3]。尽管业界各公司实际业务逻辑不尽相同,但是借由因果模型对不同的价格因素treatment进行“异质性效应估计”,已成为业界公认的算法应用。

  拥有了基于因果推断效应的预估模型后,企业通常要进一步去回答,如何在有限的资源约束下,实现最优的价格决策;这便进一步需要明确最优化目标与约束后,建立数学规划模型,通过整数规划(IP,Integer Programming)求解更优解。快手团队基于自行设计的多元因果森林模型,利用拉格朗日松弛算法与可并行的对偶梯度搜索算法,实现亿级用户的在有限预算下的最优treatment决策,该技术文章提交到WWW’22 [2]。另外,美团打车团队基于其现行的配对率因果预测模型(DragonNet+XGBoost),对司机端和用户端在有限预算下进行两端价格treatment决策,以最大化司乘配对成功率;同时,该团队考虑到预测模型总是存在误差值,其进一步采用鲁棒优化(Robust Optimazation)技术提供鲁棒最优决策,该文章发表在IEEE的ICDE期刊上[4]。

  如前所述,“预测+决策”的“两步走”框架是各大在线交易企业优化动态价格决策与迭代的重要方法基础。在这个框架下,“因果推断&整数规划”是业界与学界方案的重要基石。前文中,不论是快手团队还是美团打车团队,其在进行求解时均使用了运筹学中求解整数规划的常用方法,如拉格朗日松弛与对偶松弛以获得理论更优解,这是因为整数规划问题的非多项式复杂度在问题规模增加时难以在有限时间内得到更优解;实际业务对求解时长通常有要求,所以需要基于优化理论进行高效算法设计。而在问题规模有限的情况下,调用商业运筹求解器(如CPLEX、COPT、Gurobi)能够得到精确的结果。

  综上,因果模型的预测与优化算法的决策在业务实践中相辅相成,共同为提升企业价格策略效益提供举足轻重的技术支持。但是目前主流的因果推断&整数规划的方法除了运行时长随规模的指数级增长外,求解过程完全依赖于因果推断的预测结果,鲁棒优化的教程通过灵敏度分析证实了:对uncertain data的数学规划问题,即便参数发生微小万分之一的变动,更优解的变化幅度也可能达到惊人的6%,在实践中往往得到的结果并不优秀[5]。而实际业务用于训练的历史数据通常具备样本量小且容易同未来数据发生偏差的特点,使得因果推断的预测结果在输入到整数规划问题里,得到并不优秀的价格策略实践;由于市场受到众多要素的影响,而企业只能通过历史数据去规划未来,所以数据的不准确性与生俱来,无法改变。我们在“高峰节假日附加费动态调价”项目中使用该方法,得到了较为一般的实践效果。

  基于因果推断的遗传算法方案(CI-GA)

  如前所述,货运行业作为现代供应链管理的核心环节,其价格策略对企业的盈利能力和市场竞争力具有决定性影响。在理想状态下,稳定的运价能够为企业带来稳定的市场预期,有助于维持持续的客户需求和稳定的物流流量。

  但现实中货运市场常常面临供需波动、季节性变化、政策调整等因素的影响,导致运力与货物量的不匹配。在这种不稳定环境下,动态价格策略成为必要手段来应对突发事件或极端市场条件,以恢复供需平衡。

  目前业内主流的方案是因果推断结合整数规划,然而,由于货运领域,动态调价通常发生在极端情况下,因此相关数据的收集往往是有限的,也是不平衡的,有偏的。例如,在突发事件下紧急调价的记录可能远少于正常市场条件下的交易数据。这样的数据缺失和偏差问题使得基于传统统计和机器学习方法构建的价格优化模型难以达到理想的预测精度和鲁棒性。训练数据的局限性进而影响到模型在实际运营中的有效性,有时甚至会导致反效果,给企业带来损失。

  整数规划过于依赖因果推断和生存分析的中间过程和预测精度,导致实际项目中,策略的鲁棒性难以保证,作为一种不依赖于具体问题领域知识的全局搜索技术,遗传算法能够在广泛的解空间中寻找到最优或近似最优的策略,而无需严格的数据假设。通过模拟自然界中的遗传和进化过程,它能够在复杂的货运市场环境中找到稳定而灵活的价格策略,从而帮助企业更好地应对市场的不确定性,实现长期的稳定发展。

  综上,所以我们提出一种新的框架,因果推断&遗传算法相结合,并减少解决方案对数据集有效性的依赖的方式。通过利用遗传算法的全局搜索能力和因果推断的精确性,我们的方法能够在数据受限或存在偏差的情况下找到鲁棒的解决方案。

  因果推断模型应用

  用于推断的数据来自于企业实际的历史价格策略AB实验;以关注配对率增益的AB实验为例,最终的因果推断输出为配对率预测,参考当前业界实际业务中会使用的特征[9],可用于作为模型输入的特征通常包括如下四类:

  “订单维度特征”(如订单里程、订单金额等,反应订单对司机吸引力的优劣性)

  “场景实时特征”(如节假日、天气、城市、实时响应率等,反应订单所在场景的供需关系情况)

  “下单用户特征”(如用户历史完单率、平均取消时长等,反应用户)

  “价格策略特征”(如补贴金额、涨价幅度,为AB实验内容)  

  在对实验组和对照组同质性有保障的前提下,实验组与对照组的特征差异只表现在“价格策略特征”上,所以实验组与对照组的配对率指标差异同“价格策略特征”有着密不可分的关系,适合使用因果推断模型进行学习。

  目前常用的Uplift Model框架包括Meta-learner(S-learner、T-learner等)、Tree-based learner(Casual Forest等)以及NN-based learner(DragonNet、VcNet等)。由于业务数据的特征维度有限(通常少于100数量级),且业务数据中的数据多为离散不稀疏结构,不适合NN-based learner进行有效的拟合;其次,由于业务项目的多样,建立符合特定业务逻辑需求的Tree-based learner的工程实现难度较大、缺乏泛化推广能力[8]。

  综合这两点,在本团队业务中常选择Meta-learner的方法对历史AB实验数据继续ITE估计,基模型为梯度提升树类模型,如LightGBM、XGBoost等。

  遗传算法应用

  遗传算法,借鉴了生物学中的遗传学和进化论的思想,将待优化问题的解看作种群中的个体,通过“基因重组”、“突变”和“自然选择”等操作来实现逐代进化,经过迭代搜索后,最终找到的适应度最高的解的表现通常临近更优解。遗传算法适用于各种类型的优化问题,无需对问题域或目标函数做出任何特殊的假设(如问题的非线性、非凸性),作为一种高效、便捷的启发式算法被广泛应用在各类优化问题中。

  Google的DeepMind团队在改进神经网络的超参数优化中,受遗传算法“在种群中繁衍择优”启发,提出基于种群的训练方法(PBT),将每一个神经网络当作个体,定期用较优个体的参数取代劣势个体的参数并允许个体随机搜索,实践上获得了远超贝叶斯学习的效果,在模型训练上具备广泛应用场景[11];在数据拟合上,如数据特征工程后的特征提取上,以机器学习预测精度作为适应度,使用遗传算法编码来决策特征使用,相较于依据特征重要性(feature importance)阈值更有助于在如kaggle竞赛中获得更高分数[10]。  

  在线交易业务中,经过AB实验测试与分析后,为最大化价格策略提效,需要对细颗粒度场景(如精确到时空网格内)甚至对每个订单定制差异化的价格策略。而当在线交易市场规模巨大时,如何在有限时间内为广大的场景/订单配置价格决策,是业界普遍关注的问题。本文将在后续内容中,将因果推断与遗传算法相结合,详细介绍在实际业务中通过线上迭代实验得到最优决策的一套方法实践。

  因果&遗传策略(CI-GA)框架

  该策略方法框架如下,遗传算法与因果推断融合了两种不同领域的优势,以期在解决特定问题时能够达到更好的效果。该框架通常涉及以下几个关键方面:

  1.模型构建:

  非线性模型:通过引入非线性函数和噪声来描述变量之间的非线性因果关系,从而提高模型的描述能力。

  混合型方法:结合不同类型的因果发现方法,以提高因果关系发现的准确性和鲁棒性。

  2.算法设计:

  因果结构先验:利用已知的因果结构和先验知识,与现有的机器学习方法结合,以提高学习效率和准确性。

  深度学习结合:将因果结构与深度学习框架相结合,利用深度学习的能力来捕捉和建模复杂的因果关系。

  3. 搜索策略:

  全局搜索(初始化):遗传算法通过模拟自然选择的过程,进行全局搜索以找到最优或近似最优的解决方案。

  因果有效性评估:在搜索过程中,利用因果推断方法来评估解的因果关系,确保解决方案不仅在数学上最优,而且在因果关系上也是合理的。

  4.反馈机制:

  适应度函数设计:设计适应度函数时,将因果推断的结果作为评价标准之一,以此来引导遗传算法的搜索方向。

  迭代改进:在遗传算法的每一代中,都使用因果推断来评估个体的表现,以此来不断迭代改进解的质量。

  5.线上更新:遗传算法与因果推断的结合在解决特定问题时可以发挥出不同领域的优势,以达到更好的效果。线上子代更新(online-policy)是这种结合策略的一个重要方面。具体来说,线上子代更新指的是在遗传算法的迭代过程中,新生成的子代解会立即应用于实际环境,并根据其表现来调整和优化算法的搜索方向。这种方法有几个关键点。

  实时反馈:线上策略允许算法接收来自实际应用环境的即时反馈,这使得算法能够快速响应环境变化,并据此调整其搜索策略。

  动态调整:在遗传算法的每一代中,通过线上子代更新,可以根据个体在真实环境中的表现来评估其适应性,从而进行动态的调整和改进。

  提升效率:线上更新有助于提高算法的搜索效率,因为它可以减少对无效或次优解的探索,集中资源于有希望的区域。

  增强鲁棒性:通过实时的应用和反馈,算法能够更好地适应复杂和不断变化的问题空间,增强其在不同情况下的鲁棒性。

  综上所述,遗传算法与因果推断(CI-GA)的结合策略通过模型构建、算法设计、搜索策略、反馈机制以及线上子代更新等关键方面,能够在解决特定问题时发挥出更大的效能。这种结合了多种技术的方法,尤其适合于处理那些既需要全局搜索能力(特别是数据有偏情况下),又要求解决方案在因果关系上合理的复杂问题。

  离线模拟仿真

  在这一小节,我们将分别介绍实验数据集、评估方法以及实验结果。通过在不同数据集上的实验对比,对比CI-GA方法与其他传统方法的性能,包括在不同类型问题上的求解质量和运行时间,以及在数据集存在限制或偏差的情况下的表现。实验结果表明,我们提出的方法相比以往利用整数规划得到的结果,在业务数据有偏或训练样本量较少时有更好的线上实践表现。

  业务背景:模拟司机抽佣减免

  抽佣,即平台信息费,是货运网约平台收入的重要来源;降低订单的抽佣虽然会直接影响公司配对单的每单收益,但是增加了司机收入;让利给司机的金额作为激励能够提高订单的接单率,带来平台GTV和额外配对单的增长。如何合理的规划订单的降抽佣额度,既需要对每笔订单进行准确的异质性效应估计,又需要合理的规划所有订单的降抽决策以实现在有限资源约束下的配对效果最优化。

  策略上,智能降抽佣只针对订单进行减免;同时,不会对相同会员等级司机区别对待。

  仿真实验流程

  利用模拟数据进行仿真实验时,按照如下流程图进行“数据生成”、“数据划分”、“因果模型训练”、“决策优化”、“结果仿真评估”。

  Step 1: 根据实际业务生成同降抽佣有关的业务特征,如“订单金额、订单里程、响应率”,并刻画订单同价格treatment有关的配对函数,如某订单在不施加treatment(如(0,0))时不达成配对,但施加(1,3)时可以配对。

  Step 2:得到总的数据样本条目,并从中选择用于训练模型的数据;此处的划分可以让用于训练的数据分布同整体数据分布有偏,以对应实际业务中市场的不确定性波动,也可以划分较少的样本,以对应企业实际进行策略实验时不希望过多干涉现有规模而采用有限的分流。

  Step 3:因果模型训练,用于预测在各种treatment下的响应效果(do-respond function)和uplift效果;在此使用Meta Learner方法中的T-learner。

  Step 4:决策优化部分。在获得了配对率预测模型后,尝试在盈利下限约束与核销上限约束下获得对订单的最优决策,分别采用整数规划(如调用ortools)和遗传算法(调用Geatpy)进行。

  Step 5:

  IP:在获得决策结果后,将优化算法得到的结果treatment放入到仿真响应中,查看treatment的模拟配对情况,并统计口径指标(如配对单量、配对GTV等)。

  GA:能够得到种群规模大小的较优可行解;将这些解进行线上迭代获得真实响应值,继续采用遗传算法进行上线迭代,在有限上线次数后得到最优策略。  

  模拟数据说明

  场景的定义:在实际中,由于业务所涉及的时空范围庞大,为兼顾策略的高效性与一致性,通常将订单按照“城市”、“需求车型”、“时段”等信息划分到特定的颗粒度场景,场景内的订单施加同样的价格策略。

  模拟数据说明:类比真实业务,本文将可用特征划定为:

  “订单维度特征”:车型编号、城市编号、订单里程、订单金额、日期

  “场景实时特征”:订单响应率、高低峰编号

  “下单用户特征”:用户历史下单次数、用户取消次数

  “价格策略特征”:会员的减免幅度、非会员的减免幅度

  结果指标:类比货运市场真实业务中的司机抢单模式,订单的结果状态有三种可能:不配对/会员接单/非会员接单。其中不论是会员接单还是非会员接单都是做订单都配对。

  对价格策略的真实响应:为评价模型拟合效果并检验各种优化决策在模拟数据上的真实接单情况,实验设计了响应函数,用于从业务特征生成结果指标。

  因果推断模型

  如前文所述,本文在此使用T-learner的方法预估uplift,一个用于拟合对照组数据(在所有场景下的对照组价格策略都是统一的),一个用于拟合实验组数据。同时,根据市场逻辑,对于同一笔订单,减免幅度大的订单配对概率理应大于减免幅度小的,在实验中会采用样本增强的衍生方法来达到“保序”的效果。  

  优化决策

  数据预处理:借助因果推断,可以知晓场景订单在各种可能决策下的指标,如场景决策的“平均配对单量”、“平均核销金额”、“平均盈利金额”等。该结果将作为已知常量用于“整数规划寻优”和“遗传算法寻优”  

  数学规划问题:在经过数据处理后,可以得到对所有场景动态抽佣决策的规划问题的数学建模。该数学规划问题具有“背包问题”的形式,适合应用整数规划或遗传算法进行优化求解。  

  

  遗传算法(GA)的应用

  染色体编码:在本实验中,染色体的编码与编码位置具备真实业务含义;编码的长度对应所关注的场景的数目,通常要预先通过数据分析筛选出具备实施价格策略潜力的场景;在线上制定策略时就依据编码含义进行解码,得到决策配置。  

  染色体交叉(个体间):遵循遗传算法常用的染色体之间的交叉方法,对应编码位置随机选择;两条染色体(长度为n)的交叉后代至多会有2^n种可能。  

  染色体变异(个体内):遵循遗传算法常用的染色体之间的交叉方法,个体内编码在合理范围内发生改变  

  自然选择择优:在父代种群经过一定次数的“交叉和变异后”,和新生成的个体策略群放在一起称为子代种群,规模要大于父代种群;子代种群中每个个体都可以计算适应度,在此实验中可以看作如实验ROI、GTV增长等指标;按照轮盘赌选择的原则,每个子代个体都有被选入下一轮的概率,子代概率和为1,且适应度越高则入选概率越大;在进行n次选择后结束,这n个个体继续再进行遗传操作。  

  初始策略群的生成:同整数规划求解策略类似,遗传算法可以利用历史数据,获得多条在预估表现上同整数规划结果相近的次优解;这些将为首次线上迭代提供初始策略依据。

  线上迭代:将个体策略到线上实验,便可得到真实的市场响应情况(即实际指标);在完成一次线上迭代后,借由GA生成新的个体策略群(会比之前的规模要大,即下图中m > n)并对个体策略进行预估得到理论指标,经过“自然选择”择优得到下一轮进入迭代的策略。  

  结论

  为比较CI+GA与CI+IP两种方案,本文在四种数据集上进行效果对比;其中,生成的模拟数据总量为5万条,“大样本”代指抽取1万条进行CI的训练,“小样本”代指抽取1千条进行CI的训练,“无偏”代指从总样本中随机抽样、“有偏”代指采用非简单抽样的方式,训练样本同总样本分布存在较显著差异;在CI的评价指标上,由于对所有的样本都施加了treatment,可对Learner 2(实验组数据训练)的输出和真实响应进行结果评估,accuracy为分类准确率,log-loss为分布的对数熵差距。

  在每个数据集上运行100次,取平均值统计如下表:

  从learning的效果上看,“大样本&无偏”数据集在因果推断的两个指标上都获得取得了更优,“小样本&有偏”数据集在因果推断的两个指标上都获得取得了最差,直接影响到了依赖于预测效果的IP决策表现。

  从约束满足上看,GA因为同真实环境有进行交互,所以在四类数据集上都能够满足预设的约束;IP的决策依赖于数据学习,当数据有偏或样本量过少时会过分满足约束或违背约束,如在“有偏数据”上IP比GA超出约束下限的程度更大,而在“小样本&无偏”数据上违反了约束。

  从配对结果上看,GA在“小样本”或“有偏”的非理想数据条件下能够获得比IP更好的业务效果,这很大程度依赖于通过遗传算法的种群解与线上策略的有限迭代结合;而在“大样本&无偏”的理想数据下,GA同IP的配对效果上仅存在2%的差距。  

  总结

  综上所述,CI+GA方案在非理想数据条件下表现优于CI+IP方案,而在理想数据条件下,两种方案的差距较小。

  CI-GA特别适合于处理那些具有挑战性的数据环境,如小样本和有偏的数据集,更适合真实的货运场景,其优点如下:

  鲁棒性:遗传算法(GA)具有较强的鲁棒性,能够适应各种复杂的数据环境,包括小样本和有偏的数据集。这使得CI-GA在面对现实世界中常见的非理想数据条件时,能够保持较好的性能。

  全局搜索能力:GA通过模拟自然选择的过程进行全局搜索,能够有效地探索解空间,找到最优或近似最优的解决方案。这对于解决实际问题尤其重要,因为实际问题往往存在多个局部更优解。

  动态调整能力:GA结合线上策略,能够在每一代中根据个体在真实环境中的表现来评估其适应性,并据此进行动态调整。这种实时的反馈机制使得CI-GA能够快速适应环境变化,提高解决方案的质量。

  因果有效性评估:CI-GA在搜索过程中利用因果推断方法来评估解的因果关系,确保找到的解决方案不仅在数学上最优,而且在因果关系上也是合理的。这对于货运等实际应用场景尤为重要,因为决策需要基于可靠的因果关系,以更快收敛。

  适应性:CI-GA能够利用已知的因果结构和先验知识,与机器学习方法结合,提高学习效率和准确性。这种适应性使得CI-GA在数据有限或存在偏差的情况下,仍能做出有效的决策。

  因此,CI-GA方案特别适合于处理那些具有挑战性的数据环境,如小样本和有偏的数据集,更适合真实的动态货运场景,能够提供更鲁棒、更可靠、更具适应性的解决方案,提升用户和司机的体验,为公司在相关场景创造价值;实际业务中,使用CI-GA方案会遇到算法的稳定性、多目标优化、实时性与准确性权衡、收敛效率等问题,后续会结合业务场景,做进一步的分析阐述。

0
相关文章