其他分享
首页 > 其他分享> > 预算分配Budget Allocation:两篇论文(二)

预算分配Budget Allocation:两篇论文(二)

作者:互联网

1 达摩院:A Unified Framework for Marketing Budget Allocation

A Unified Framework for Marketing Budget Allocation
参考解读文章:A Unified Framework for Marketing Budget Allocation

预算分配核心是解决该把钱投在哪的问题,本篇文章意在提出一种做预算分配的通用框架,包括两个步骤,

学习需求曲线 -> 预算来预测每个组的销量变化情况

问题:尽管一些黑盒的预测方法,如深度学习,已经广泛应用于一些预测问题,但是这样预测和制定决策之间还有很大的gap,其中一个重要的问题就是很难将黑盒的预测结果转化成分配决策

1.1 通用预算分配框架

这篇paper总结的蛮给力的,一个预算分配的通用框架,包括两个步骤,

预测模型的输入被分成两部分:独立的变量和环境变量(上下文变量)。
环境变量是市场本身的属性,比如商品品牌、顾客属性、消费时间等等。

同时可以证明market cost(市场对于价格最敏感的点)只跟bias parameter有关,所以可以用相同的神经网络来计算不同segment的bias parameter,而弹性参数可以在拟合数据的时候求出,这样销量和花费的变动关系可以有一个显示的表示。

一旦需求曲线确定了,预算分配则可以表示成一个优化问题。
用 N N N表示segment数量,预算分配需要优化 N N N个变量,在一定预算约束下最大化销量。由于logit demand cruve是非凸的,所以优化问题也是非凸的,文中提出一种办法可以将该问题转化成等价的凸问题。

同时,这个框架可以兼容多种业务约束,包括花费上限、利润下限、或者roi下限。
因为有时候价格需要以 99 99 99结尾,比如 19.99 19.99 19.99,所以有时候变量需要从一个固定的集合取值,本框架也支持对于离散问题的优化求解,可以将该问题转化成一个多选择的背包问题(MCKP,Multiple Choice Knapsack Problem),近似在O(N)的时间复杂度下求解。

1.2 两种市场响应模型

1.2.1 比较常规的:Logit Response Model

在这里插入图片描述
这个是蛮典型的增长曲线,随着cost增加,一开始sales增长迅速,后续会到达一个瓶颈。
其中,market cost 指的是一个效率最佳的临界点

1.2.2 Semi-black-box Model

(本节没有细究,有些还没看明白…)
logit对于数据的使用能力有限,当我们对于每个segment都学习出一个 a i ai ai和 b i bi bi,并没有使用segment之间相同的数据,所以认为此处的c为独立变量,环境变量用xi表示,环境变量对于所有segment是通用的,并不会因为segment不同而改变(此处指的应该是有控制的改变,如对于某个segment人为改变花费,而环境变量contextual variables并不能控制),传统的神经网络可以将 x i xi xi和 c c c都作为输入,而logit只能利用 c c c作为输入。
相比于直接预测最终的销量,我们用神经网络 e ( x i ) e(xi) e(xi)来估计market cost处的的弹性,基于 e ( x i ) e(xi) e(xi),弹性的信息可以在不同segment间共享,传统的logit model可以扩展成
在这里插入图片描述

1.3 优化预算分配

对于N个segments,预算分配需要决定每个segment的花费 c i ci ci,用 c : = [ c 1 , ⋯ , c N ] c:=[c1,⋯,cN] c:=[c1,⋯,cN],我们的目标是找到一个最优的c在预算约束下来最大化总销量,
在这里插入图片描述
其中B表示预算上限,它既可以为正也可以为负,正的表示花费上限约束,负的表示利润下限约束。

一般来看,可以作为线性规划的来求解,这里论文也提及用可以将该问题转化成一个多选择的背包问题(MCKP,Multiple Choice Knapsack Problem),近似在 O ( N ) O(N) O(N)的时间复杂度下求解。


2 达摩院——MindOpt 优化求解器

文档:
https://solver.damo.alibaba-inc.com/doc/html/testing/compile-python.html

阿里云界面达摩院:
https://tianchi.aliyun.com/mindopt

申请列表:
https://solver.damo.alibaba.com/htmlpages/page#/


3 背包问题

3.1 线性规划

具体可参考:最优解问题——PuLP解决线性规划问题(一)

3.2 背包问题

大概一个案例来理解:

一个小偷面前有一堆(n个)财宝,每个财宝有重量w和价值v两种属性,而他的背包只能携带一定重量的财宝(Capacity),在已知所有财宝的重量和价值的情况下,如何选取财宝,可以最大限度的利用当前的背包容量,取得最大价值的财宝(或求出能够获取财宝价值的最大值)。

一般来讲,背包问题有以下几种分类:

例如恰好装满、求方案总数、求所有的方案等。本文接下来就分别讨论一下这些问题。

核心概念:
给定一组物品,每种物品都有自己的体积和价值,在限定的总体积内,我们如何选择,才能使得物品的总价值最高。

背包问题简要的分为以下3种,还有一些都是这3种的变形以及组合。

额外:
要求2:填满背包背包问题还有另一种要求,即如何选取物品将容量为 C 的背包恰好填满(可能不存在)。

几篇参考文献:
四种方法解0-1背包问题-基于python
01背包、多选择背包、完全背包与动态规划解法

3.3 贪心算法

选取当前状态下最好/最优的选择(局部最有利的选择),并以此希望最后堆叠出的结果也是最好/最优的解

事例一:找零钱问题
假设你开了间小店,不能电子支付,钱柜里的货币只有 25 分、10 分、5 分和 1 分四种硬币,如果你是售货员且要找给客户 41 分钱的硬币,如何安排才能找给客人的钱既正确且硬币的个数又最少?


4 论文:阿里妈妈:基于动态背包的多场景广告序列投放算法

https://www.infoq.cn/article/BVzcxT1UMqVJ0vY0GYH4
阿里妈妈:基于动态背包的多场景广告序列投放算法

4.1 序列投放的长期价值

假设消费者和广告存在两次接触,
第一次接触时,其转化的期望低于其它流量转化的平均期望,而如果在接触一次后再发生第二次接触,由于消费者心智累积效应,
其第二次接触后转化的期望显著升高,使得两次接触的整体转化期望高于其它流量转化的平均期望

序列投放算法和单次投放算法做出不同决策的核心原因在于:
第一次接触前,单次投放算法只评估了单次请求的价值,即短期价值
而序列投放算法评估了未来多次请求的整体价值,我们称为长期价值

将预算约束问题建模为背包问题:

我们按照性价比 ( 序列价值/成本 ) 由高到低逐个选择物品,直到选出的物品总消耗刚好不超过预算约束。

为求解此动态背包,我们采用双层优化问题的解法来迭代求解:
物品的贪心挑选物品价值/成本以及对应策略的优化

4.2 背包问题

物体:每次接触当作物品
重量 - 成本损耗,max(预算) = B - Ct
体积 -
价值 - 成交价值 Vt

多物体: U个人

目标函数:价值最大
约束条件:成本损耗 < B
在这里插入图片描述

标签:问题,背包,两篇,Budget,Allocation,物品,预算,价值,segment
来源: https://blog.csdn.net/sinat_26917383/article/details/117713999