拍賣的價格怎么定?聊聊轉(zhuǎn)轉(zhuǎn)拍賣場的起拍定價算法演變
價格策略、定價調(diào)價算法是諸多中大規(guī)模電商不可或缺的一項能力,涉及到精準(zhǔn)定價、智能調(diào)價、智能發(fā)券、成本控制等一系列智能運(yùn)營場景,尤其對于二手行業(yè)來說,定價能力更是面臨諸多挑戰(zhàn),卻又不可或缺。本文將旨在介紹轉(zhuǎn)轉(zhuǎn) TOB 拍賣場景下的二手機(jī)定價能力的技術(shù)演變,從場景特點(diǎn)引入,以指標(biāo)為出發(fā)點(diǎn),闡述轉(zhuǎn)轉(zhuǎn) TOB 拍賣場這一特殊場景下起拍價定價能力的算法思路演變,希望對各位讀者有所啟發(fā)。
1 有些什么——場景特點(diǎn)
這里我們首先向讀者介紹一下轉(zhuǎn)轉(zhuǎn)的 ToB 場景,也即 APP 采貨俠的業(yè)務(wù)場景,采貨俠是轉(zhuǎn)轉(zhuǎn)公司針對 B2B 場景下的二手手機(jī)交易平臺,其包含暗拍手機(jī)、一口價手機(jī)、多品類暗拍等多業(yè)務(wù)場景,感興趣的小伙伴可以自行下載了解哈,這里著重了解其中暗拍的概念。
暗拍,顧名思義,是一種拍賣的形式,想必大家多少都了解,涉及到不同用戶對不同商品的競價。暗拍則是其中一種競價各方對其他方出價價格不可見的形式,從商業(yè)意義上來說,目的是避免惡意抬價,或用低價壓價,盡可能讓商品在合理的價格區(qū)間最大可能售出,并且爭取更多利潤,其基本模式如下圖:
圖片
采貨俠暗拍賣場每天包含下午與晚間兩場,商品以起拍價標(biāo)價上拍。賣場進(jìn)行期間,買家可對不同商品進(jìn)行出價,越高越有競爭力。當(dāng)出價小于起拍價時則無法競得商品,用戶可查看特定時間段的競價排名,以此決定后續(xù)是否繼續(xù)出價。賣場結(jié)束后會自動對價最高者生成訂單,該訂單需要用戶在后續(xù)完成支付結(jié)算。下面是基本流程示意與暗拍賣場的界面:
圖片
圖片
2 關(guān)注什么——核心指標(biāo)
介紹完場景,筆者這里要談的重點(diǎn)是起拍價。我們先從一個例子引入:
圖片
假設(shè)一件商品回收成本為800元,本身的客觀市場價值平均為1000元,預(yù)期利潤為100元。賣家如果按1元起拍,正常情況幾乎100%成交,即使競價抬價行為會促使其在1-1000元成交,但實(shí)際上仍有很大可能所獲利潤為0甚至為負(fù),競價不充分,存在丟失毛利的風(fēng)險。同樣的,賣家如果按5000元起拍,可能理論上一本萬利,但幾乎不能成交,也等于沒有利潤,即使通過流拍策略不斷降價,周轉(zhuǎn)過慢,一樣丟失毛利。
聰明的讀者可能已經(jīng)發(fā)現(xiàn)了,如果在這個例子中以合適價位起拍,自然能在保證成交的情況下留有合理利潤空間,比如按照950元起拍,或許成交價格可以在1000、1020、1100甚至更高。退一步來說,若不成交,其流轉(zhuǎn)周期也相對較短可及時止損。即使僅僅獲得了951元的出價,也達(dá)到了我們的預(yù)期——既成交了也保證利潤空間,也說明該商品或許現(xiàn)階段買家最大預(yù)期即是如此,無法苛求更多,說明競價過程已然充分。
足見合理的起拍價既是賣家視角拍賣商品的底線價值衡量,也是對商品能夠充分競價的保證。討論其制定,首先需要以下三個指標(biāo):
圖片
- 成交率即售出占比,衡量的是商品對于買家來說的受歡迎程度,也是賣場好壞指標(biāo)的直觀體現(xiàn);
- 毛利則是銷售額與回收成本的差值,代表著每次成交中賣家獲得的利潤,是根本的經(jīng)營指標(biāo);
- 溢價則指的是成交價格與起拍價的差值,代表著一種不確定性,溢價空間越小,說明起拍價格貼近真實(shí)市場價格,同時成交價格也會被逼近至理想值,競價空間也會充分釋放。
3 如何去做——衡量先行
那么如何定出合適的起拍價呢?回答這一問題前,要先回答一個問題,如何衡量起拍價是合適的?由果索因,有評價論才有方法論。有了指標(biāo),當(dāng)然還需要知道如何去從指標(biāo)反映效果。
如下圖,從買家角度來看,起拍價是賣家給出的,是定量,出價是變量,最后的成交價必然是圍繞著客觀市場價值且大于起拍價的值,但作為制定起拍價的賣家一方來說,成交價才是定值,而起拍價是變量,起拍價一定是小于等于最終成交價且圍繞著客觀市場價值的值,而由于客觀市場價值沒有辦法準(zhǔn)確獲取,最終成交價可以視為客觀市場價值。
圖片
既然如此一定存在如下關(guān)系,假設(shè)對于單個商品,起拍價為sp,成交價為dp,成本價格為cp,用函數(shù)F(sp)衡量起拍價的好壞,函數(shù)η(sp)表示溢價率,函數(shù)γ(sp)表示成交率,則有:
圖片
該式有以下幾個含義:
- 起拍價制定的好壞標(biāo)準(zhǔn)與成交可能、準(zhǔn)確度有關(guān),成交可能越大,定價越準(zhǔn)確,說明起拍價制定越好。當(dāng)起拍價與最終成交價的差距越小時,相比最終成交價更接近,說明起拍價制定更為準(zhǔn)確,這個差距正是溢價率;
- 成交率的變化與成交價和起拍價的關(guān)系有關(guān),假設(shè)一個商品已經(jīng)以500元成交,對賣家成交價已然是定量,那么如果回到出售之前,是否可以認(rèn)為1-500元定價,其成交率均為100%,而超過500定價,其成交率必然隨著價格呈現(xiàn)指數(shù)型下降;
- 溢價率為定義式,值越小,說明起拍價與成交價差距越小,起拍價的制定更加貼近真實(shí)成交,相對更能反映真實(shí)價值。
實(shí)際上,從賣家視角來看,最終的目標(biāo)也是最初的優(yōu)化出發(fā)點(diǎn),是想提升毛利,從單一商品角度來看,毛利其實(shí)是不確定因素,因?yàn)槌山粌r是由買家控制的,但我們?nèi)匀患僭O(shè)dp0為理想成交價,cp為固定成本價,即不會再有更高的成交價存在,設(shè)G(dp)表示毛利率與成交價的關(guān)系,g(sp)表示毛利率與起拍價的關(guān)系,那么存在以下關(guān)系轉(zhuǎn)化:
圖片
以上關(guān)系可以推出,若成交價為定值,起拍價按照真實(shí)成交價制定時,其所獲利潤最大,我們再把成交率和溢價率與起拍價的關(guān)系畫出函數(shù)圖像如下:
圖片
可以看出當(dāng)起拍價小于等于且逼近成交價時,成交率始終為1,溢價率逐漸趨近于0,而超出成交價時,成交率指數(shù)下降,溢價率也逐漸增大。自然不難發(fā)現(xiàn),讓F(sp)最大化即最大化成交率,最小化溢價率,而由于在小于成交價的范圍內(nèi),成交率取得最大值1,那么理論上整個優(yōu)化點(diǎn)則可以用如下式子描述:
圖片
最終優(yōu)化目標(biāo)歸結(jié)于使得起拍價從正向趨近于真實(shí)成交價,則該起拍價制定最為合理。而從評價的角度,則當(dāng)成交的情況下,溢價率越小說明起拍價制定更好。
下面借助圖來說明:
圖片
當(dāng)溢價越來越小時,利潤空間右端點(diǎn)越向右,范圍越大,毛利率也就越多。由于起拍價是從小于成交價的一邊趨近,其成交率始終可視為1。
對于全局多商品來說,每個商品要么估價高了,模型向理想成交價降低價格促使成交,要么估低了,模型逼近成交價提升利潤空間,同樣適用降低溢價的理論。由此我們便找到了優(yōu)化與評價的方向。
4 取經(jīng)路上——早期實(shí)踐與痛點(diǎn)
了解了指標(biāo)和基本的思路,接下來就往前一些,從早期思路出發(fā),探討下演變過程中種種實(shí)踐的得與失,優(yōu)與劣。
4.1 基于回收價的實(shí)踐
做電商必然要保證一定的利潤預(yù)期,又要盡可能保證能成交,最直觀的思路便是以下規(guī)則進(jìn)行制定:
圖片
這樣做的優(yōu)點(diǎn)是,簡單直接,實(shí)現(xiàn)比較容易,賣場直接與回收掛鉤,獲得的毛利比較穩(wěn)定可控,適合品類與庫存規(guī)模相對單一的場景。但缺點(diǎn)相對也很突出,主要有以下幾點(diǎn):
- B端二手市場回收成本價格不穩(wěn)定,由于賣家貨源不同,即使是同SKU近似機(jī)況的兩臺機(jī)器,可能回收成本也相差較大,無法反映出客觀的買家市場價值,放在同賣場無法按照統(tǒng)一標(biāo)準(zhǔn)定價上拍;
- 對于預(yù)期毛利率,賣家乃至賣場方均無法給出或者持續(xù)給出一個合理的心理預(yù)期,尤其在不同SKU乃至不同機(jī)況的機(jī)器,可能預(yù)期均不相同,沒有統(tǒng)一衡量的標(biāo)準(zhǔn),制定困難;
- 基于運(yùn)營人力去制定預(yù)期利率,對于大體量的品類與庫存規(guī)模下,非常缺乏人效;
- 很大概率仍然存在成交與利潤空間未被充分釋放的可能,因?yàn)槠鹋膬r不能準(zhǔn)確反映其買家市場價值,極易出現(xiàn)定價偏離等情況。反映在指標(biāo)上則是,不同商品高成交高溢價或者低成交低溢價,整體方差極大且不穩(wěn)定。
所以這種思路在發(fā)展初期尚且可行,但在規(guī)模逐漸變大的情況下,難以長期運(yùn)營。
4.2 基于價目表邏輯的實(shí)踐
既然買家市場價值是最好的制定起點(diǎn),我們不妨就沿著這個思路進(jìn)行。盡管市場價值無法準(zhǔn)確獲取,但作為運(yùn)營方可以通過歷史數(shù)據(jù)、經(jīng)驗(yàn)、規(guī)則輔以人工校準(zhǔn)等確定一個SKU維度價目表,根據(jù)成色等其他機(jī)況再乘以系數(shù),思路舉例如下:
圖片
該思路基于價目表這一先決條件的維護(hù),用以模擬標(biāo)品市場價格,隨后再根據(jù)具體的成色、機(jī)況等確定系數(shù)進(jìn)行微調(diào)。其優(yōu)點(diǎn)是相對基于回收價出發(fā),維護(hù)標(biāo)準(zhǔn)價格會使得整個鏈路模塊化、細(xì)致化,制定相對準(zhǔn)確。其不足之處也同樣明顯:
- 價目表的維護(hù)仍然需要運(yùn)營人力介入,人效較差,需要定期維護(hù)更新困難,難以形成自動化的算法方法論;
- 價目表本身的準(zhǔn)確性、時效性有待商榷,在龐大的類目體系下,不同類目的數(shù)據(jù)量、人力投入、人員經(jīng)驗(yàn)不足以實(shí)時準(zhǔn)確捕獲其回歸到SKU維度標(biāo)品的價值情況;
- 控制性較差,即使確保價目表一定準(zhǔn)確實(shí)時,在從SKU向成色機(jī)況等細(xì)粒度落時,仍然需要確定龐大的系數(shù)體系。即使可隨時配置調(diào)整,其不同品類機(jī)況下想保證覆蓋準(zhǔn)確,這點(diǎn)仍然非常吃力。
故在人力資源充盈且缺乏算法能力時,該方案值得一試,如果需要長期高效運(yùn)營,自動化算法能力必不可少。
4.3 基于成交價策略的實(shí)踐
如果需要自動化省時省力,又需要一定的準(zhǔn)確性、時效性,再結(jié)合前一章中的內(nèi)容,那么在已有的合適數(shù)據(jù)中能反饋其市場價值的首先是成交價。前面我們也提到,成交價對于賣家視角可以認(rèn)為是定量,代表著買家的最終心理預(yù)期,基于歷史成交價去制定起拍價,有以下好處:
- 每日均會產(chǎn)生新的成交數(shù)據(jù),成交價可按日期進(jìn)行滑動窗口更新,保證穩(wěn)定取到新數(shù)據(jù),時效性強(qiáng);
- 成交價作為制定目標(biāo),理想情況下可以認(rèn)為相同商品下次按照這個價格上架,成交率100%,溢價率0%。雖說理想,一定程度上也說明了作為目標(biāo)其評價足夠好。
出發(fā)點(diǎn)有了,要實(shí)現(xiàn)算法自動化,且效果足夠理想,還需要設(shè)計整個算法系統(tǒng),初期我們的框架構(gòu)想如下:
圖片
其基本的設(shè)計理念與內(nèi)容有以下幾點(diǎn):
4.3.1 首次與流拍劃分
首先將起拍價的制定分為兩塊,首次上架與流拍,分別指第一次進(jìn)入賣場和多次進(jìn)入賣場的商品,前者使用模型自動化出價,后者按前次價格與預(yù)置比例折價后再上架。
為何如此劃分?我們可以基于一個基本假設(shè),如果是理想模型,對于每一個商品在首次上架時就能制定出成交率為100%,溢價為0的起拍價,理論上就不存在首次與流拍,顯然不可能。
必然一部分可成交,認(rèn)為小于等于買家預(yù)期,另一部分不可成交超過買家預(yù)期。如果我們?nèi)匀辉诘诙烊杂媚P蛯Σ豢沙山坏牟糠謭髢r,由于模型每日更新,新模型給出的結(jié)果必然會出現(xiàn)價格跳變這一不可控因素,影響買家印象。
若認(rèn)為模型給出的價格相對靠譜,即使流拍,我們以此為價格高點(diǎn),逐漸平滑下降,這樣能確保低溢價的同時逐漸增大成交可能,也減輕了模型負(fù)擔(dān),如下所示:
圖片
4.3.2 SKU成交基準(zhǔn)價
流拍策略較為簡單的就縮小了求解范圍,重點(diǎn)來到首次上拍商品定價模型。首先就是用成交價自動計算的“類價目表”,其基本邏輯如下:
圖片
每一種SKU維度的商品都基于該SKU下的全部N個商品成交價格關(guān)于業(yè)務(wù)系數(shù)α放縮后進(jìn)行加權(quán)平均,這里的放縮操作考慮了不同機(jī)況下的平滑機(jī)制,防止異常價格和賣場差異的影響,使最后的基準(zhǔn)更加趨近于真實(shí)價值,α詳細(xì)邏輯基于不同業(yè)務(wù)進(jìn)行單獨(dú)條件設(shè)計,這里不再詳述。
通過這樣較為簡單的設(shè)計,可以將基準(zhǔn)價的獲取基于成交價自動化,有效且可解釋,并且天然低溢價。
4.3.3 系數(shù)調(diào)控模塊
在上一節(jié)中我們知道,合理的起拍價區(qū)間介于回收成本與成交價之間,假如市場恒定,即庫存、需求、供貨等穩(wěn)定不變,我們必然可以找到一個穩(wěn)定的起拍價使得成交/溢價最大化。
但很顯然的是,實(shí)際上市場不會這么理想,對于不可控的市場因素,基于已然發(fā)生的成交價結(jié)果很難、甚至不太能用算法去捕捉這種變化因素,自然,人工介入的調(diào)控機(jī)制也不可或缺,這里需要引入以下三個維度的可配置系數(shù):
- SKU基準(zhǔn)系數(shù),用于糾偏部分SKU基準(zhǔn)價格,系數(shù)量等同SKU數(shù)量;
- 成色等級系數(shù),用于控制不同成色等級機(jī)況價格變化,數(shù)量等同質(zhì)檢成色等級數(shù)量;
- 全局調(diào)控系數(shù),僅一個,對所有模型輸出結(jié)果生效,用以整體控制輸出口徑。
這樣做從原本商品粒度人力調(diào)控轉(zhuǎn)到SKU×成色粒度調(diào)控,理想情況下本身相對準(zhǔn)確的價格不必需要頻繁調(diào)整,只需要根據(jù)市場反饋適當(dāng)監(jiān)控即可。
4.3.4 風(fēng)控模塊
即使是非常清晰簡單的模型構(gòu)建,風(fēng)控模塊仍然在價格領(lǐng)域不可或缺,畢竟即使是一個badcase也是利潤的損失。風(fēng)控模塊在起拍價定價中主要起到兩個作用,一是過濾糾偏異常價格,二是提高報價覆蓋度兜底。
異常價格一般出現(xiàn)在特殊機(jī)況,比如質(zhì)檢項難獲取、質(zhì)檢有誤等異常質(zhì)檢機(jī)器,會通過單獨(dú)維護(hù)機(jī)況條件進(jìn)行系數(shù)控制,并依據(jù)回收價設(shè)置價格上下限,防止定價過低或過高。
報價覆蓋度邏輯主要解決新機(jī)、老舊機(jī)器等數(shù)據(jù)稀疏,成交缺失的部分,讓模型報價能力更全面,這部分分層處理,對于報價要求高的新機(jī)進(jìn)行異常處理交予人工,對于報價要求低的老舊機(jī)器使用均價降級策略兜底,即細(xì)粒度機(jī)況缺失便向粗粒度聚合報價即可,最粗可以到機(jī)型粒度,如下圖:
圖片
整體來看,基于成交價策略的起拍價算法化的核心點(diǎn)是一種統(tǒng)計思路,并把問題拆解模塊化,先拆報價范圍,后拆策略模塊,對于不同的模塊制定不同的策略。在早期的實(shí)踐中,該方案具有以下成效:
- 使得成交率與溢價率進(jìn)入一個比較可觀的范圍;
- 模塊化使得問題定位排查更清晰;
- 微調(diào)反饋明顯,可以及時跟上市場需要;
- 基本實(shí)現(xiàn)了自動化,提高了人效。
但在實(shí)踐過程中同樣有很明顯的問題亟需解決:
- 定價粒度過粗,基本停留在SKU成色等級粒度,對于機(jī)況粒度捕捉較少,這使得整個起拍價格分布相比實(shí)際價值刻畫欠擬合;
- 成色等級是人為劃分概念,在B端市場對于實(shí)際機(jī)況劃分不準(zhǔn),這使得這一策略天然有偏;
- 基于回收價格使用上下限進(jìn)行風(fēng)控,在3.1中提到的回收價的弊端在這里依然存在,以此風(fēng)控使得部分正常報價也陷入異常;另外降級聚合兜底的方式也無法摒除異常數(shù)據(jù)、稀疏數(shù)據(jù)帶來的覆蓋難問題;
- 調(diào)控模塊系數(shù)量過大,即使光手機(jī)一個品類,其機(jī)型、SKU粒度便有成千上萬,在交叉更細(xì)粒度后更有甚之,僅僅case by case去監(jiān)控調(diào)整,也容易因?yàn)橄禂?shù)過多而難以判斷調(diào)整思路,其調(diào)節(jié)復(fù)雜度是O(*N_sku*×*N_level*×...)。并且由于欠擬合狀態(tài)下,系數(shù)的調(diào)控非常容易誤傷,造成成交和溢價空間未充分釋放,成交與溢價容易產(chǎn)生trade-off現(xiàn)象。
5 修成正果——現(xiàn)有模型構(gòu)建思路
針對4.3中提出的思路與缺陷,我們順著這個模式進(jìn)行進(jìn)一步優(yōu)化迭代,首先需要肯定的是,該思路中對于起拍價制定問題的模塊化拆解思路值得延續(xù),雖存在缺陷但基本都囿于具體的模塊內(nèi),僅需進(jìn)行針對性改進(jìn)。
5.1 現(xiàn)有模型框架
整體給出現(xiàn)有的模型框架如下圖所示:
圖片
可以看到整體的模塊設(shè)計與流拍邏輯基本上沒有變化,不同在于模塊內(nèi)細(xì)節(jié)進(jìn)行了大幅度調(diào)整,在首次定價模型上從SKU基準(zhǔn)價直接躍升至商品粒度定價,下面將詳述。
5.2 主要模塊設(shè)計與思路
5.2.1 價格模塊
相較于此前的SKU基準(zhǔn)價格,本次價格模塊豐富了較多內(nèi)容,核心改進(jìn)點(diǎn)有以下幾個方面:
- 粒度
價格分布的刻畫擬合能力不足,核心原因還是模型只是通過統(tǒng)計手段給出了SKU粒度的價格,然后使用統(tǒng)一的等級機(jī)況系數(shù)去推進(jìn)到商品粒度。本質(zhì)上還是停留在SKU×等級的粒度,很難將報價精確到每一種機(jī)況上。而本模塊則將模型報價能力聚焦至質(zhì)檢項粒度,針對每一種不同的SKU——驗(yàn)機(jī)項單獨(dú)報價,摒棄了不夠準(zhǔn)確的等級粒度。
- 模型
粒度更細(xì),傳統(tǒng)統(tǒng)計方法自然無法滿足期待,我們需要擬合SKU——質(zhì)檢項數(shù)據(jù)與歷史成交價數(shù)據(jù)二者間的關(guān)系,對于多維度特征來說,機(jī)器學(xué)習(xí)模型當(dāng)然更好。這里可選用的模型較多,常見回歸模型均可,這里筆者選用決策樹模型,整體基本邏輯與使用的特征類型如下:
圖片
由于成交數(shù)據(jù)量不算龐大,且商品信息與質(zhì)檢項數(shù)據(jù)可以處理為純表格數(shù)據(jù),故而樹模型更具有優(yōu)勢。另外在天然的可解釋性前,不同商品、質(zhì)檢項特征可以根據(jù)重要性進(jìn)行特征選擇。
這里還有一些小trick,對于回歸模型,可以將label價格取對數(shù),調(diào)參時可適當(dāng)增加樹的復(fù)雜度以使得稍微過擬合,這樣對于數(shù)據(jù)量有限的價格預(yù)測來說更具有穩(wěn)定性。
- 數(shù)據(jù)與特征
敲定粒度,選型模型,自然需要回到最初的數(shù)據(jù)選擇與特征處理,除成交數(shù)據(jù)與商品的基礎(chǔ)特征外,本次引入的數(shù)據(jù)包括質(zhì)檢項數(shù)據(jù)與出價數(shù)據(jù)。
質(zhì)檢項數(shù)據(jù)即每臺機(jī)器質(zhì)檢報告中項目的明細(xì),其檢測結(jié)果一般以ID與程度詞進(jìn)行描述,對于機(jī)器學(xué)習(xí)模型來說很難直接使用,于是首先需要對其進(jìn)行預(yù)處理,處理方式如下:
圖片
單一質(zhì)檢項的程度詞(如細(xì)微、輕微、明顯、嚴(yán)重)降序映射為分?jǐn)?shù)(如8、6、4、2),而不同的質(zhì)檢項根據(jù)重要程度升序進(jìn)行打分,另外根據(jù)價格排序下的質(zhì)檢項共現(xiàn)頻次也可以獲得不同機(jī)型下的核心質(zhì)檢項打分。通過這種方式就可以把離散程度值轉(zhuǎn)為可比較的連續(xù)值,使機(jī)器學(xué)習(xí)模型可進(jìn)行訓(xùn)練、驗(yàn)證、預(yù)測。
另外,每個商品在進(jìn)入賣場后,無論是否最終成交,成交在什么價位,只要成交就一定有相應(yīng)的出價,可能只有一個且等于成交價,也可能來自于不同買家的多個均小于等于成交價,其大致的分布如下:
圖片
這里引入出價的含義為,即便成交價代表了最理想的成交結(jié)果,但合理的出價所落的區(qū)域則更能反映該商品在買家心中的價格錨點(diǎn),用作風(fēng)控是非常理想的,如果模型給的價格過于偏離錨點(diǎn),則進(jìn)行糾偏的置信度相比回收價更高,如果按照成本基線風(fēng)控,其附近的價格點(diǎn)均浮動在異常出價附近,與成交基線相去甚遠(yuǎn)。
5.2.2 系數(shù)調(diào)控模塊
既然價格模塊已經(jīng)能做到商品粒度報價,那么調(diào)控模塊自然減少壓力,僅僅需要全局系數(shù)與流拍系數(shù)即可實(shí)現(xiàn)整體的指標(biāo)影響,由于本身擬合度高一般不需要細(xì)粒度微調(diào),若需要則根據(jù)需要按由細(xì)到粗的生效優(yōu)先級配置個別系數(shù)即可實(shí)現(xiàn),其調(diào)節(jié)復(fù)雜度是O(1)級別。
5.2.3 風(fēng)控模塊
在上一節(jié)中提到使用出價作為風(fēng)控價格錨點(diǎn)相比回收價更準(zhǔn)確,以及降級聚合進(jìn)行兜底收效不佳。那么對風(fēng)控模塊的迭代將針對這兩處進(jìn)行:
- 上下限邏輯
對于模型價格進(jìn)行歸正,直觀的方式就是設(shè)置上下限,簡單說就是需要模型報價落在合理區(qū)間,此前使用回收價作為錨點(diǎn)設(shè)置上下限反而倒反天罡,因小失大。作為錨點(diǎn)來說,歷史成交價置信度最高,買家出價次之,最后才是成本價,這三種價格數(shù)據(jù)特點(diǎn)如下:
歷史成交價 | 買家出價 | 成本價 | |
覆蓋率與數(shù)量 | 最低 | 中高 | 最高 |
置信度與準(zhǔn)度 | 最高 | 高 | 最低 |
可以看到三種數(shù)據(jù)在兩種特征上呈逆序排布,成交價很難在所有機(jī)器上都能覆蓋,畢竟不能說所有的SKU×等級機(jī)器都有售出且數(shù)量可觀,長尾機(jī)器一定存在,但是作為商品價值反映一定是最可信的,其余兩種數(shù)據(jù)同理,于是設(shè)計上下限風(fēng)控邏輯時可以做閾值控制,其大概邏輯如下:
# 閾值集合
thres_value_set = [tv1, tv2, tv3, tv4, tv5]
# 歷史成交價
historical_deal_price_set = [dp1, dp2, dp3, ...]
# 歷史出價
historical_offer_price_set = [op1, op2, op3, ...]
# 最終報價初始為模型報價
final_price = model_price
# 閾值判斷: 歷史成交價與歷史出價均置信 以成交為超限判斷
if historical_deal_nums > thres_value_set[0] and historical_offer_nums > thres_value_set[1]:
# 超出上下限判斷
if model_price < min(historical_deal_price_set) * thres_value_set[2] or model_price > max(historical_deal_price_set) * thres_value_set[3]:
# 最終價格取成交與出價均值
final_price = (np.average(historical_deal_price_set) + np.average(historical_offer_price_set))/2
# 閾值判斷: 僅歷史出價置信 以出價為超限判斷
elif historical_offer_nums > thres_value_set[1]:
if model_price < min(historical_offer_price_set) * thres_value_set[2] or model_price > max(historical_offer_price_set) * thres_value_set[3]:
# 超限取模型與歷史出價的較大值 以保利潤優(yōu)先 未售出可流拍
final_price = max(model_price, np.average(historical_offer_price_set)) * thres_value_set[4]
根據(jù)閾值控制置信度與區(qū)間范圍,再根據(jù)同SKU×等級下的價格聚合值控制是否超限,超限后如何處理。這樣做的好處是基本上能將模型可能會出現(xiàn)的異常報價控制在一個合理的范圍內(nèi),并且所用到的系數(shù)不多,調(diào)節(jié)方便,閾值可以通過數(shù)據(jù)分析求解。
- 兜底邏輯
在提高覆蓋率這部分邏輯中,先前的想法是細(xì)粒度的價格數(shù)據(jù)稀疏,就向粗粒度降級聚合,這樣做雖然可以提高覆蓋,但是很容易受貨源結(jié)構(gòu)影響,報價不準(zhǔn)確且在稀疏側(cè)容易被帶偏。迭代中采取如下思路:
- 考慮商品的最低可接受報價粒度,在手機(jī)上則是機(jī)型×容量×等級;
- 現(xiàn)狀是機(jī)型容量幾乎滿覆蓋,但具體到等級甚至機(jī)況則歷史缺失較多,要解決的低覆蓋問題也在此;
- 基本思路是用粗粒度去推廣泛化到細(xì)粒度,但直接用粗粒度聚合去替代報價,會發(fā)現(xiàn)偏差較大;
- 取而代之,將直接替代進(jìn)行轉(zhuǎn)化,舉例說明如下:
圖片
簡單來說,根據(jù)已有的機(jī)型容量×等級聚合出機(jī)型容量均價,將等級序列化后,考慮機(jī)型容量均價與等級存在如下簡單的線性關(guān)系,從而推廣到全部機(jī)型容量×等級粒度,實(shí)現(xiàn)全覆蓋,并且在劃定價格段前提下一定程度內(nèi)近似準(zhǔn)確且嚴(yán)格防止等級倒掛,對于兜底報價需求能夠滿足。
至于求解上就比較容易了,使用一個簡單的線性回歸OLS模型即可對其進(jìn)行求解,需要注意的是,在實(shí)際使用中對于這種簡單模型,通常需要按照價格段劃分,縮窄成交價格值域后訓(xùn)練多組線性模型進(jìn)行覆蓋補(bǔ)全時,效果更好。
5.3 效果與后續(xù)優(yōu)化空間
介紹清楚了當(dāng)前最優(yōu)版本的邏輯與架構(gòu),我們簡單看一下該版本投入采貨俠拍賣場起拍定價后的效果,并討論其后續(xù)改進(jìn)方向。
5.3.1 模型效果
我們從蘋果與安卓手機(jī)分別進(jìn)行舉例說明這個效果,下面圖中為模型AB實(shí)驗(yàn),對照組A為第三節(jié)中的SKU成交均價策略,實(shí)驗(yàn)組B為第四節(jié)新模型體系,脫敏隱去實(shí)際值,相同指標(biāo)處于同坐標(biāo)刻度下,蘋果手機(jī)效果如下圖:
圖片
從品牌來看蘋果手機(jī)特點(diǎn)是品類少,數(shù)據(jù)量大,高值商品多,價格方差小,所以本身在精確度,也即溢價率上本身效果較好,所以新模型在溢價率上小幅度降低,但在成交率上提升明顯,說明模型在中低值商品上估價更準(zhǔn),使得商品流通速度更快。
圖片
而從安卓機(jī)上來看,其品類繁多,數(shù)據(jù)量相對少,低值機(jī)器更多,價格方差大,本身成交率已經(jīng)很高,相應(yīng)的價格擬合度差,溢價高,于是新模型通過商品粒度報價、風(fēng)控兜底改進(jìn),主要在報價準(zhǔn)確上獲得較大提升,數(shù)據(jù)上體現(xiàn)于成交率持平,溢價率大幅度下降。
本質(zhì)上來說,其實(shí)模型優(yōu)化的都是價格準(zhǔn)確度,即降低價格方差,提升擬合度,讓起拍價更逼近真實(shí)成交,只是在不同的商品結(jié)構(gòu)上呈現(xiàn)不同的側(cè)重點(diǎn),本質(zhì)上都是雙端優(yōu)化,既降低溢價又提升成交,使看起來trade-off的兩個指標(biāo)都獲得提升,釋放了利潤空間。
為什么可以這么說,還記得系數(shù)調(diào)控機(jī)制嗎,實(shí)際上我們只要對其中一幅圖像中的模型報價輸出進(jìn)行放縮,兩幅圖像就會獲得相同的呈現(xiàn)形式。因?yàn)榉趴s系數(shù)不改變分布,只是讓成交和溢價呈現(xiàn)同步變化。而這個雙端優(yōu)化加上同步變化既釋放了利潤空間又給出了可通過調(diào)控應(yīng)對市場的能力,且調(diào)節(jié)成本不高,方向明確。
5.3.2 后續(xù)優(yōu)化空間
- 整個系統(tǒng)中雖然實(shí)現(xiàn)了幾乎無人力介入,但在應(yīng)對市場變化時仍然存在一定的滯后性,需要人工及時反饋給調(diào)控模塊,這一點(diǎn)還需要繼續(xù)精進(jìn)以實(shí)現(xiàn)完全脫離人力;
- 當(dāng)前架構(gòu)下,流拍商品的邏輯過于簡單,雖然高位折價溢價低,但普遍設(shè)置的流拍系數(shù)不具備普適性,單獨(dú)設(shè)置又耗費(fèi)人效,部分商品折價過慢導(dǎo)致售出效率低,這里可以通過類似強(qiáng)化學(xué)習(xí)的方法進(jìn)行動態(tài)折價優(yōu)化;
- 風(fēng)控模塊還不足以完全高準(zhǔn)確率、高覆蓋率的實(shí)現(xiàn)糾偏與兜底報價,期待更完備的方案設(shè)計;
- 整體架構(gòu)與模塊設(shè)計可能亦是山外青山樓外樓。
6 再說兩句——總結(jié)
本文主要從起拍價定價這一實(shí)際應(yīng)用場景出發(fā),以實(shí)際問題舉例,指標(biāo)先行提供指導(dǎo)方向,再逐步介紹每一種算法思路,步步為營,揚(yáng)長避短進(jìn)行優(yōu)化,最終給出目前還比較work的一種方案。作為算法類技術(shù)分享來說,本文不包含復(fù)雜高深的算法理論,單從分析、解決問題的角度演進(jìn),旨在分享系統(tǒng)化、模塊化、結(jié)構(gòu)化的思考方式,希望廣大讀者有所裨益,疏漏、不足之處萬望海涵。
關(guān)于作者
陳燁,轉(zhuǎn)轉(zhuǎn)高級算法工程師,負(fù)責(zé)轉(zhuǎn)轉(zhuǎn)B端搜索召回、排序算法設(shè)計優(yōu)化,以及B賣場起拍價定價算法、C賣場調(diào)價系統(tǒng)迭代優(yōu)化等價格方向工作。