2017双十一珠峰算法框架&Hierarchical中控算法

https://yq.aliyun.com/articles/551698

2017双十一珠峰算法框架&Hierarchical中控算法

1354259147032810 2018-03-19 10:25:52 浏览3697 评论0

摘要: 一.背景 2017珠峰项目是阿里巴巴集团在双十一战略决策上的重要项目,也是供应链和商业化结合的典型项目。通过智能供应链系统对商家销售能力、货品承接能力和用户购买需求进行精准预估,结合多层级的中央控制算法进行多维度的流量调控,使得平台整体流量利用率和转化率最大化的基础上,给予商家和核心商品一定的流量激励和扶持,同时调动商家参与和平台互动,建立双侧珠峰机制,形成共赢。

一.背景

2017珠峰项目是阿里巴巴集团在双十一战略决策上的重要项目,也是供应链和商业化结合的典型项目。通过智能供应链系统对商家销售能力、货品承接能力和用户购买需求进行精准预估,结合多层级的中央控制算法进行多维度的流量调控,使得平台整体流量利用率和转化率最大化的基础上,给予商家和核心商品一定的流量激励和扶持,同时调动商家参与和平台互动,建立双侧珠峰机制,形成共赢。

淘系平台有琳琅满目的流量渠道,其中一部分是公域流量,包括搜索、推荐、广告、会场、营销平台等,另一部分是私域流量,主要来自于店铺内。通常情况下,不同渠道之间相互独立,算法会根据自己的业务场景设计相应的目标函数和算法模型进行效率和体验上的优化,但是场景与场景之间流量协同无法通过优化单一场景来完成。

“珠峰”项目致力于打造一个公域渠道下的流量管理平台:
(1)在个性化背景下用柔性精准的算法调控保障商家的流量确定性;
(2)与供应链深度打通,将行业核心入仓货品基于销售计划做前后端流量协同;
(3)商家参与闭环建立,由单侧珠峰升级成双侧珠峰,充分调动商家的主观能动性。

二.珠峰算法框架

在介绍中控系统之前,首先介绍一下珠峰算法框架:

珠峰.jpg

今年珠峰第一个突破是将珠峰选品和供应链系统深度融合,并且引入了销售计划的概念,将双11当天的目标拆解到预售、预热和售卖期三个阶段,极大程度缓解了双十一当天的压力。首先卖家GMV预估和目标计划模型给卖家中控系统提供了可靠的信号输入,对双11珠峰大盘节奏把控起到了至关重要的作用(Manhattan商业化项目之卖家双十一GMV预估);今年新引入的主推款商品挖掘与供应链系统打通,不仅为商品中控系统和商品调控系统奠定了基础,同时还影响到了行业决策和商家备货,是珠峰商业闭环模式下不可或缺的一部分(Manhattan商业化项目之双十一主推款预测);商品销量预测在主推款挖掘的基础上实现了选品、目标计划、缺货限流等功能,大大提高了商品调控Plan和货+仓调控Plan的完成率和整体效率,是珠峰高维立体调控体系中的核心决策系统之一(Manhattan商业化项目之双十一销量预测)
今年珠峰第二个突破是Hierarchical中控体系的设计。在珠峰卖家中控层上游增加了主推款商品中控层,既保证了卖家整体目标的最优化分配和珠峰大盘目标的过程控制,又能够对核心货品流量进行差异化管理;在珠峰卖家+商品的精准计划的基础上,又增加了KA以上层次的柔性信号输入,形成了从珠峰核心商品层到珠峰卖家层再到KA-SKA-GSKA层的Hierarchical分层中控框架。
今年珠峰第三个突破是Plan与RL结合的高维立体调控体系。今年双11的Plan系统在TPP平台实现了基于抗积分饱和PID控制器的多线程并发框架,支持了卖家和商品调控Plan的过程控制,并且采用了基于Druid引擎的实时数据查询接口,将卖家Plan的一个PID采样周期从开始的10分钟缩短到了30秒以内,大大提升了控制精度(实时交互式大数据服务双11总结);而今年在基于Plan的精准调控的基础上,引入了基于强化学习的柔性调控,减小了基于Plan调控带来的瞬时损失,同时能够更快的收敛到新的局部最优解(基于强化学习的分层流量调控)
今年第四个突破是从单侧珠峰到双侧珠峰。在算法上的双侧指的是整个珠峰的反馈系统采用了新的正交AB分桶算法,使得搜索和推荐能够在统一的正交分层上进行AB测试;在商业上的双侧指的是优惠券权益联动、货品供应链融合、工具中枢到行业指导再到卖家参与的商业闭环机制等等。

珠峰系统中,卖家调控计划的框架图如下:
卖家调控框架.jpg
其中中控系统是整个框架的中转站,上游承接了基于销量预测和目标计划的决策系统,中间和工具中枢系统进行交互和Plan传递(2017双十一珠峰技术大练兵之工程篇),在下游对接调控系统,实现各个渠道的流量调控。

三.中控算法

珠峰是一个商业价值与流量价值相辅相成的项目,虽然公域流量下调控渠道占比有限,但是控制的都是全网效率较高的核心流量,通过这些渠道下的用户行为间接影响着全网大大小小的场景、同时还将流量直接或间接引导到了私域渠道,更重要的是通过这些核心流量对商家形成激励,带动更多的商业信号注入和权益资源倾斜,形成商业闭环模式下的双侧珠峰。因此珠峰更像是一种杠杆效应,以有限的流量作为撬动大盘的钥匙。

中央控制算法是对商家和核心商品的销售计划、流量承接能力(IPV价值)进行预测,提前判断商家和核心商品的目标规划是否合理,完成整体目标是否有风险,同时将商家和核心商品的目标在各个渠道进行全局效率最优的动态规划,在兼顾珠峰整体目标、商家目标、核心商品目标的同时,给予部分商家和商品流量激励。

中控系统的主要算法模块包括流量进度控制算法、实时IPV价值预估算法、中控分配算法、流量收敛控制算法、流量止损控制算法,下面将会对中控主要算法进行详细介绍。

1.流量进度控制算法

流量进度控制算法分为渠道流量进度控制和小时流量进度控制两部分,其中卖家和商品的流量进度控制算法相似,这里以卖家算法为例:

第一部分渠道流量进度控制。因为珠峰撬动的只是公域流量,而接收到的目标则为各个卖家的大盘整体目标,因此在珠峰卖家整体目标到渠道目标需要设计一个函数来映射:

 

Gt+1,c(i)=gt,c(i)+Mgt,n(i)+N×Gt+1,n(i)+pc(i)×grad(gt,c(i))Rt,c(i)\+pn(i)×grad(gt,n(i))Rt,n(i)

 

其中Gt+1,c(i)为t+1时刻卖家i的渠道全天目标,Gt+1,n(i)为t+1时刻卖家i的整体全天目标,gt,c(i)为t时刻卖家i的渠道当前真实值,gt,n(i)为t时刻卖家i的整体当前真实值,M、N为调控占比平滑因子,pc(i)、pn(i)分别为卖家i在渠道梯度累计值和大盘梯度累计值的背负系数函数,Rt,c(i)为卖家i在t时刻的渠道目标完成量累计占比,Rt,n(i)为卖家i在t时刻的大盘目标完成量累计占比。该式第一项通过计算卖家调控渠道和大盘实时数据的比值得到渠道占比,然后通过整体全天目标得到了当前时刻下估算出来的渠道全天目标初始值,第二、第三项分别先计算了渠道和大盘的实时数据梯度累计值,然后通过目标完成量累计占比预估出全天梯度累计值,最后通过背负系数函数得到卖家在渠道内需要完成的全天目标增量。

第一部分小时流量进度控制。在得到卖家调控渠道全天目标之后,需要把目标分拆到每个小时,通过分析猜你喜欢、手淘搜索、大盘等各个维度下卖家在2016年预热期和双11当天的流量进度曲线,最终卖家在各自渠道下分别采用了渠道珠峰大盘的IPV小时占比,在计算卖家全网流量进度时采用了全网珠峰大盘的IPV小时占比。但是考虑到调控期间风险前置的需要,在全网珠峰大盘小时占比计算时将最后一小时的流量按照分布比例累加到了前23小时,因此在最后一个小时开始前的累计完成占比提前达到了100%。

计算出了卖家在调控渠道大盘下的全天目标目标之后,通过实时IPV价值预估和和实时数据回流,方可通过中控分配算法来进行目标分配。

2.卖家中控分配算法

卖家中控分配算法是中控系统中最核心的算法,通过卖家 IPV 价值、原生流量和目标流量,进行多卖家、多渠道重新分配,保证珠峰整体 GMV 最大化、卖家目标的完成率、同时防止分配比例不会偏离原生流量过多。

卖家中控分配算法目标函数如下:

 

minx−γ∑jSj∑i∈Nj,kci,kxi,k+η∑j∑i∈Njciwi[gi−Sj∑kxi,k]+\+λ2∑jSj∑i∈Nj,k(xi,k−pi,k)2

 

s.t.

 

δi,k0Sj≤xi,k≤δi,k0+(uj,k+vi,k)δi,k1Sj∑i∈Nj,kxi,k=1

 

where

 

Sj=∑i∈Nj,kδi,k0+uj,k(δi,k1−δi,k0)[z]+={zz>00z≤0

 

Notations:

begin{aligned}
x_{i,k}: &the proportion of the i-th seller in the industry of the k-th channel. \
c_{i,k}: &the IPV value of the i-th seller in the k-th channel. \
c_i: &the averaged IPV value of the i-th seller. \
w_i: &the weight of the i-th seller. \
g_i: &the required IPV from the i-th seller. \
p_{i,k}: &the natural IPV of the i-th seller through the k-th channel. \
u_{j,k}: &up-bound’s magnification factor for the j-th industry from the k-th channel. \
v_{i,k}: &additional up-bound’s magification factor for the sellers from the k-th channel. \
delta_{i,k}^0: &the organic IPV of the i-th seller through the k-th channel. \
delta_{i,k}^1: &the up-bound IPV of the i-th seller through the k-th channel. \
N_j: &the set of sellers belonging to the j-th industry. \
S_j: &the limitation of IPV for the j-th industry.
end{aligned}

目标函数三个loss项之所以这么设计,主要为了分别解决以下三个核心问题:
(1)珠峰卖家整体GMV最大化,得到全局效率最优的分配解。
(2)对于不同卖家的流量需求能够差异化的达成。
(3)控制分配占比和原始流量占比的偏离程度,减小调控振幅。

很显然,目标函数将∑jSj项提出来之后可以分解为N个独立子问题,形式如下:

 

minx−γs∑i,kci,kxi,k+η∑iwi[gi−s∑kxi,k]+\+λ2s∑k(xi,k−pi,k)2

 

s.t.

 

li,k≤xi,k≤hi,k∑kxi,k=1

 

这里为了简化,用s表示Sj,li,k和hi,k分别表示xi,k的下确界和上确界,上式的向量化表示如下:

 

minxxTλ2x−(γcT+λpT)x+wT[g−Hx]+

 

s.t.

 

l≤x≤hdTx=1

 

其中:

 

x=(x1,1,⋯,x1,K,x2,1,⋯,x|Nj|,K)Tc=(c1,1,⋯,c1,K,c2,1,⋯,c|Nj|,K)Tp=(p1,1,⋯,p1,K,p2,1,⋯,p|Nj|,K)Tw=η(c1w1,c2w2,⋯,c|Nj|w|Nj|)Tg=(g1s,g2s,g|Nj|s)TH=(1,⋯,1⏞K,0,⋯,0⋮0,⋯,0,1,⋯,1⏟K)∈R|Nj|×|Nj|Kl=(l1,1,⋯,l1,K,l2,1,⋯,l|Nj|,K)Th=(h1,1,⋯,h1,K,h2,1,⋯,h|Nj|,K)Td=(1,1,⋯,1)T∈R|Nj|K

 

定义如下增广拉格朗日函数(Augmented Lagrangian Function):

 

Lβ(x,α)=xTλ2x−(λpT+γcT)x+wT[g−Hx]+\-α(dTx−1)+β2(dTx−1)2

 

s.t.

 

l≤x≤h

 

原始问题可以写为:

 

minxmaxαLβ(x,α)

 

对偶问题可以写为:

 

maxαminxLβ(x,α)

 

转化为求解如下迭代公式:

 

xt={∏[l,h]argminxLβ(x,αt)(1)αt+1=αt−β(dTxt−1)

 

对于这种非光滑凸函数(1),可以用投影梯度法来求解,具体求解方式可以参考
一种求解带约束的非光滑凸优化问题的通用算法

3.商品中控分配算法

买家中控保证了卖家流量的最优分配,但是并没有体现同一个卖家不同商品之间的差异。对于同一个卖家,可能出现流量过度集中在头部商品而导致加购过剩,也可能出现低效商品被加权后影响卖家整体 GMV 效率,同时还有部分卖家仓储维度的商品需要通过调控满足业务目标。
360截图18040226535496.png

例如,C1 为大促时卖家流量分布情况,绝大多数流量都集中在头部爆款商品;通过优化后的C2曲线,能够通过主推款预测挖掘出更多的潜爆款,提高珠峰卖家被调控商品的丰富度,同时在爆款断货之前提前将流量分配给更多潜力商品,从更高维度优化整体效率和体验。为了解决上述问题,保证卖家主推款整体 GMV 最大化、主推款商品和仓储货品目标完成度、加购过热的商品提前减小调控力度,给出目标函数如下:

 

minx−γ∑jSj∑i∈Nj,kci,kxi,k+η∑j∑i∈Njciwi[gi−Sj∑kxi,k]+\+β∑j∑i∈Njcot(π2di[di−ai,0]+)∑kxi,k

 

s.t.

 

δi,k0Sj≤xi,k≤δi,k0+(uj,k+vi,k)δi,k1Sj∑i∈Nj,kxi,k=1

 

where

 

Sj=∑i∈Nj,kδi,k0+uj,k(δi,k1−δi,k0)[z]+={zz>00z≤0

 

Notations:

begin{aligned}
x_{i,k}: &the proportion of the i-th item in the category of the k-th channel. \
c_{i,k}: &the IPV value of the i-th item in the k-th channel. \
c_i: &the averaged IPV value of the i-th item. \
w_i: &the weight of the i-th item. \
g_i: &the required IPV from the i-th item. \
u_{j,k}: &up-bound’s magnification factor for the j-th category from the k-th channel. \
v_{i,k}: &additional up-bound’s magification factor for the items from the k-th channel. \
delta_{i,k}^0: &the organic IPV of the i-th item through the k-th channel. \
delta_{i,k}^1: &the up-bound IPV of the i-th item through the k-th channel. \
N_j: &the set of items belonging to the j-th category. \
S_j: &the limitation of IPV for the j-th category. \
d_i: &the add-cart or pay number for the i-th item. \
a_i: &the stock for the i-th item
end{aligned}

由于上式出现了第三项hinge loss项,并且该项在库存趋于0时为无穷大,因此可以定义可售商品集合L来改写上式:

 

minx−γ∑jSj∑i∈Nj∩L,kci,kxi,k+η∑j∑i∈Nj∩Lciwi[gi−Sj∑kxi,k]+\+β∑j∑i∈Nj∩Lcot(π2di(di−ai))∑kxi,k

 

s.t.

 

δi,k0Sj≤xi,k≤δi,k0+(uj,k+vi,k)δi,k1Sj∑i∈Nj,kxi,k=1

 

至此第三项变为单调光滑项,可用类似卖家中控分配算法的解法求解。

在商品中控目标函数设计的时候和卖家中控有三点不同,一是减少了调控振幅的loss项,这是因为商品流量的不确定性和波动幅度相比卖家来说要大很多,这一项在商品中控的作用不明显,反而可能会抑制潜爆款的流量空间;二是增加了库存的loss项,主要是为了防止卖家商品头部过热现象,这里的loss项其实是一种广义约束,可以推广到商品过度曝光、效率止损等等场景,只要定义好自己的函数形式和区间范围即可;三是子问题空间(sub-problem space)定义从行业升维到一级类目,主要考虑到大部分情况下商品在一级类目即可达到流量隔离,因此只需要在一级类目内做目标分配和腾挪。

4.流量收敛控制算法

中控系统在预售期运转过程中,发现部分流量承接能力良好的卖家每个小时都能够超预期完成当前目标,甚至下午就能完成全天目标,这些卖家或是通过参与活动提高了当天的爆发系数,亦或是通过站内外广告拿到了较大的流量增量,再或是货品竞争力较强,总之在这部分超调卖家的流量挤压之下,导致部分弱势卖家成为了风险卖家,这是业务上不希望看到的。基于此,中控系统在分配算法下游设计了流量收敛控制算法,用于超调卖家的目标腾挪,给风险卖家创造更大的提升空间。
首先定义收敛算子Ft+1,c(i):

 

Ft+1,c(i)=1exp⁡(βc(i)⋅(gt,c(i)Gt+1,c(i)⋅Rt,c(i)−1))

 

式中gt,c(i)表示t时刻c渠道下卖家i的当前真实值,Gt+1,c(i)表示t+1时刻c渠道下卖家i的全天目标值,R_{t,c}(i)表示t时刻c渠道下卖家i的目标完成量累计占比,βc(i)为卖家在渠道下的收敛系数,后期主要通过调整该参数来控制收敛速度。
定义好收敛算子之后,我们可以得到收敛函数:

$$ G_{t+1,c}(i)= \begin{cases} 0 & g_{t,c}(i)>G_{t+1,c}(i) \\ F_{t+1,c}(i) \cdot G_{t+1,c}(i) & G_{t+1,c}(i)\cdot R_{t,c}(i) \leq g_{t,c}(i) \leq G_{t+1,c}(i) \\ G_{t+1,c}(i) & g_{t,c}(i)

对于第一个分段区间,主要考虑到如果卖家在某一时刻提前完成了全天目标,则停止调控;对于第二个分段区间,表示卖家在当前时刻完成度超出预期,但是并没有达成全天目标,因此按照收敛算子的结果进行目标收敛;第三个分段区间表示卖家在当前时刻完成度没有达到预期,则仍然沿用中控分配算法的计算结果进行调控。

5.流量止损控制算法

对于一个卖家来说,流量承接效率会随着流量的增加而下降,如下图所示:
image.png
尽管中控分配算法能够让整体效率最大化,但是对于同一个卖家来说,如果效率下降过多,不仅会造成流量浪费,还会对竞争卖家造成流量挤压,加剧高危卖家增多的风险,甚至造成渠道大盘指标下跌。因此中控系统在最末端增加了IPV价值的止损环节,实时监控卖家的效率波动情况,对效率下降的卖家提前作出预判和止损控制,这也是中控系统在保证渠道效率的最后一道关卡。首先定义止损算子Ht+1,c(i):

 

Ht+1,c(i)=1exp⁡(αc(i)⋅(vt,c(i)vt,c′(i)−1))

 

式中vt,c(i)表示t时刻c渠道卖家i在基准桶的IPV价值,vt,c′(i)表示t时刻c渠道卖家i在测试桶的IPV价值,αc(i)为卖家在渠道下的止损系数,控制止损速度。
因此,止损函数如下:

 

G_{t+1,c}(i)= \min\left\\{ G_{t+1,c}(i), H_{t+1,c}(i) \cdot G_{t+1,c}(i)\right\\}G_{t+1,c}(i)= \min\left\\{ G_{t+1,c}(i), H_{t+1,c}(i) \cdot G_{t+1,c}(i)\right\\}

 

四、数据分析

2017双十一珠峰整体目标完成率102%,同比增长58%,在达成目标的卖家数量上和分布的合理性上都较去年有明显提升。其中手淘搜索渠道成交金额同比增长151%,猫客和mall tab同比分别增长70%和125%,统一搜索&推荐珠峰调控正交分层之后,在相同分层调控AB下,全渠道GMV微跌基本无损。
双十一当天各个渠道下珠峰商家整体指标增幅如下:
珠峰增量.jpg

1.流量进度控制

下图为11.4手淘搜索流量进度控制曲线,可以看到由于小时流量进度控制算法,使得Rt,n(i)在前几个小时较自然流量占比偏大,再加上渠道流量进度控制算法的梯度累积算子,使得计算出来的渠道占比被进一步放大;随着时间的推移,渠道占比逐渐收敛到真实比例;最后由于完成目标的卖家数量逐渐增多,分配的流量比例会逐渐下降。
手淘搜索流量进度控制曲线.png
流量进度控制算法不仅担负着调控流量渠道占比的计算,还需要控制全天的调控节奏,尽量让效率高的卖家尽早达成目标,将风险卖家留在后面几个小时进行补救,将整体风险控制在最小。另外今年与往年不同的是,预售+预热期的引导成交首次超过了双11当天的直接引导成交,因此当天的流量进度控制策略从0点开始就不断地调整来适应当天的流量变化。

2.中控分配算法

下图为基于目标函数的卖家中控分配算法较基础版本分配算法的增幅曲线,横坐标为1-24小时整点,纵坐标为每个小时将全天目标更新之后重新计算的目标增幅,其中红色曲线为11.4预热期的效果,在1%至4%之间波动,11.11当天的增幅在4%至12%之间波动。
中控分配算法.png
下图为中控分配算法IPV目标相比自然流量的变化幅度,蓝色曲线为预热期11.4的效果,整体流量波动幅度控制在10%以内。
中控分配算法IPV变化幅度.png
预热期第一天只有卖家中控生效,第二天上线了商品中控,大概6w商品被覆盖,调控目标总量占到了卖家中控50%左右,相比只有卖家中控的版本,在搜索渠道的曝光增量增加69%,整体效率保持平稳,一定程度上缓解了卖家商品头部过热的现象。

3.流量收敛控制

下图为每个小时流量收敛算法腾挪出来的目标流量占渠道总流量的比值,可以看到随着时间的推移,完成目标的卖家数量增多,流量腾挪比例逐渐升高。
流量收敛.png

4.流量止损控制

下面两张图分别为11.4和11.11当天的流量止损控制曲线,图中横坐标为止损区间,定义为(卖家基准桶效率-卖家测试桶效率)/卖家基准桶效率,纵坐标为落在止损区间的卖家数量占珠峰卖家总数的比例,可以看到随着时间推移,低效卖家数量占比逐渐降低,卖家效率的损失值逐渐控制在10%~30%。
11.4止损曲线.png
11.11止损.png

五、结尾

转眼间珠峰项目已经陪伴双11走过了两个年头,去年IDST团队作为珠峰项目的开山鼻祖,留下了大量的技术沉淀和业务思考,是我们至今还在学习的宝贵财富,而今年的业务目标压力更大,业务约束也更多。刚开始拿到目标的时候,甚至整个项目室都觉得遥不可及,然而经过三个月的鏖战,转战了四个项目室,从日常到直营到预售到预热再到双11当天,经历了五个阶段的目标切换、七个版本的迭代更新、两套系统的开发维护以及双11期间大量的策略调整,终于在11.11当天24点前夕,把目标变成了现实。

在商业化大背景下,珠峰未来的路还很长,需要探索和优化的领域还有很多,如何能够将计划经济与市场经济更好地融合,是我们未来需要探索的方向。

六、参与团队与致谢

珠峰项目参与团队包括算法、产品、工程、BI、公共层、运营、测试等,通过多个BU同学紧密合作,共同打造了新的珠峰系统,去迎接2017双11更高的新零售珠峰!最后感谢理欣博士、仁重、悾傅、一尘老师的指导,感谢靖人、青峰、理欣、芍药、左向、融沐等老大们的关注、指导与支持。

版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值