引言
本文是 TalkingData 首席数据科学家张夏天翻译自 Highly Scalable Blog 的一篇文章,介绍了零售业中的数据挖掘问题。
问题 6: 类目管理
问题定义
零售商根据类目销售产品。一个类目表示一组相对内聚的产品,这些产品有很多共同点(如"甜点"、“女式牛仔”等),所以客户有可能在他们的首选产品因某些原因缺货时愿意用另一产品来替代。
产品缺货的主要原因有永久性的品种减少(如因为有限的货架空间)和暂时的性的售罄。类目管理的目标是利用替代效用用优化方法计算出一个产品子集,这一子集在满足物理约束如可用的货架空间的情况下可以最大化毛利率。
应用
品类管理是一项相对专业化的工作,但是当目标是优化一个产品类目的整体收益而不是一个单一产品的收益时,它也会涉及到在促销优化问题中存在的替代效应问题。零售商一般情况下对类目的整体收益的关心程度远胜于对单个产品的优化,因此在本节中讨论的方法可以被用在很多不同的应用中以实现最优解决方案。本节研究的模型可以直接应用于以下类目管理方式:
仓库的产品库存水平优化。一个特别重要的应用是对易腐产品的库存管理,这需要考虑到保质期和过去产品造成的潜在损失。
优化货架的布局来调整相关产品的份额。
类目规划(在类目中加入或者移除哪些产品)
解决方案
从计量经济学的角度来看,类目管理问题是由收益递减规律引起的。或者更具体地说,收入和成本与类目的规模关系是不同的,总的趋势是消费者购买能力在某个时候达到饱和,同时由于店铺面积和其他运营成本的增加,成本持续增长:
这一趋势引出了类目优化问题。这是一个非常具有挑战性的问题,因为它需要对整个类目中所有产品之间的相互依赖关系建模。然而,尽管面临这些挑战,在 [KOK07] 中已经提出了一种切实可行的类目优化模型,并在荷兰的连锁超市 Albert Heijn 中应用。在研究这一方法之前,我们先引入下列符号:
N= - 零售商给用户提供的一个类目下面的最大产品集合,即所有品类。
fi∈ - 产品 j 的库存水平。零售商通过选择 f 为 0(产品不出现在品类中)或者非 0 来优化品类。
F0 - 统一库存单位度量下的库存总容量。这里有个假设是所有产品的库存水平之和不能超过 F0。库存总容量可以由仓库或者店铺的可用货架空间所约束。
Nh ⊂ N - 店铺 h 的品类,是总品类的子集。
dj 表示产品 j 的原始需求率(当所有 N 品类都展示给客户时有多少顾客会选择该产品)
Dj - 观察到的产品的需求率(每天因为原始意愿或者替代效应而实际选择产品 j 的数量)。对给定产品观察到的需求与原始需求和其他产品的可获得性(替代效应)有关系,其可以被视为函数:
Dj(,)
使用上述符号,品类优化问题可以形式化如下:
其中毛利率 Gj 是给定产品和其对应的观测需求的函数。这一函数很大程度上与零售商的商业模式有关,所以我们下面介绍一些通用的函数模板,基于这些模板可以根据实际的使用情况来定制毛利率函数:
公式(6.2)将观测需求乘以毛利率 m,这是对毛利润最简单的建模方式。该公式隐含假设了补货及时而没有缺货的情况。杂货这样的快消品正是属于这种情况,但是在其他领域如服饰则必须如公式(6.3)那样考虑缺货的情况。销售易腐货物的零售商还要考虑货损,公式(6.4)通过引入单位损失变量 L 来对此进行建模。
为讨论方便,后面我们假设所有产品的补货都是及时的,所以缺货是不可能或者是可忽略的。因此我们可以将 j∈ 作为二值变量来表示产品是否在类目中。更复杂的处理缺货的模型可以在 [KOK07] 中找到。
要解决(6.1)中的优化问题,我们需要定义观测需求函数。在无缺货假设下,需求函数可按照下面公式来建模:
其中 αk-j 是产品 k 被产品 j 替换的概率。上述公式是比较自明的:第一项是原始需求,而第二项是所有被从类目中移除的产品的累计替代需求。
公式(6.5)需要估计替代概率 αk-j 和原始需求率 dj。为了做这些估计,我们假设下列变量是已知的(我们已经在本文的前面章节讨论过需求预测):
Qjh,j∈Nh – 每个客户在店铺对产品的需求。假设 Kh 是一天内进过店铺 h 的客户数量, 则 Dj = Kh * Qjh。
Q0jh,j∈Nh - 每个客户在店铺 h 具有全品类产品时的需求(假设商店的品类是全的)。因为品类齐全所以不存在替代效应,因此 Q0jh 就是原始需求。
估计替代率 αk-j 是比较困难的事情因为产品集合 J 中有多达不同 J2的替代率。不过,[KOK07] 找到了下述客户行为的简化模型,在实践中这一模型有足够的精度并仅需要用一个而不是 J2 个变量:如果产品 k 买不到,客户会选择其第二选择产品来替代的概率为 δ,这一概率对一个类目下的所有产品都是一样的,则客户不买任何东西的概率为(1- δ)。这一模型引出了如下替代率的简单公式:
为了估计 δ, 我们将给定店铺的总需求定义为Qjh(可由历史数据来估计)之和,
另一方面,该值也可以根据公式(6.5)估计如下:
现在 δ 可以通过最小化总需求的实际值和预测值之间的差异来估计:
求解优化问题(6.1)的下一步是计算公式(6.5)中使用的原始需求率。我们首先注意到店铺h对N中所有产品的总需求可以按如下方式计算:
其中Vh是每天到访店铺h的客户总数。在公式(6.10)中,所有Q0jh之和乘以Vh表示在给定全品类时的的总需求。然而的值时针对拥有全品类的店铺估计得的,其值时与给定店铺相关(如地点,店铺面积等等)而没有被建模的。这可以通过公式(6.7)估计的类目需求和从公式(6.8)预测的需求比值来补偿调整。
在一个品类有限的店铺,总需求是以下两个部分的和:对给定店铺品类中存在的商品的需求和对中其他产品的需求。两部分的比率可以由表示如下:
自然的,Th * rh 表示对品类中存在的产品的需求分额,而(1- Th * rh)则表示对不在品类中的产品的需求份额。最后,我们对单一产品的需求可以当作是总需求的一部份来计算:
所有公式(6.12)和(6.9)中的系数都可以根据数据来估计,因此我们可以把所有公式展开到原始优化问题(6.1)中,则这个问题可以使用 [KOK07] 提出的数值方法来求解。
公式(6.1)将为每个产品都产生一个假定的最有库存水平 fj。这些库存水平值可以用来调整库存和优化货架布局。值得注意的是该模型使得零售商可以做假设分析来评估对品类和库存水平的改变会如何影响毛利率。
例如,零售商可以画出毛利率根据给定产品或者产品组的库存水平变化的函数曲线。这些曲线对易腐产品尤其具有描述性,因为毛利率是凸函数,当库存水平为 0 时函数值为 0,而当库存水平过高时毛利率因为产品过期造成的损失也会为 0,毛利率的最优值是在两种极端情况之间。
领取专属 10元无门槛券
私享最新 技术干货