設(shè)計(jì):從POS小票到關(guān)聯(lián)規(guī)則實(shí)戰(zhàn))
上周去某家社區(qū)超市結(jié)賬收銀員遞給我一張打印小票底部多了一行字“您常買的某品牌鮮牛奶下周有促銷搭配全麥面包更劃算”。我愣了一下——這家店什么時(shí)候開(kāi)始懂我了后來(lái)一問(wèn)才知道他們用一套上線不到三個(gè)月的商品推薦系統(tǒng)把小票、會(huì)員卡、促銷記錄和貨架數(shù)據(jù)全部串了起來(lái)。市面上聊推薦系統(tǒng)默認(rèn)語(yǔ)境全是電商千人千面、點(diǎn)擊率、實(shí)時(shí)會(huì)話。但超市這套邏輯完全不同顧客在線下推著購(gòu)物車逛貨架位置本身就是推薦位買單瞬間才是黃金窗口。我結(jié)合自己做的“超市智能商品推薦系統(tǒng)設(shè)計(jì)”項(xiàng)目把這幾個(gè)月踩過(guò)的坑和趟出來(lái)的規(guī)律整理成文希望能幫到正在做線下零售數(shù)據(jù)化的朋友。1. 超市推薦和電商推薦的底層邏輯差異先別急著上算法1.1 三個(gè)本質(zhì)不同的購(gòu)買場(chǎng)景電商推薦的整個(gè)鏈路是搜索—點(diǎn)擊—加購(gòu)—支付每一步都有明確的用戶反饋用戶在網(wǎng)站上的行為密度非常高一天能產(chǎn)生幾十上百次交互。超市不一樣顧客進(jìn)店之后的逛、拿、放回這些動(dòng)作在沒(méi)有攝像頭和貨架級(jí)傳感器的情況下基本采集不到你手里最干凈、最完整的信號(hào)只有一張張POS小票——也就是結(jié)賬那一刻的購(gòu)物籃。第二個(gè)差異是商品生命周期。電商絕大部分商品可以長(zhǎng)期掛售算法有充足時(shí)間學(xué)習(xí)。超市里生鮮、季節(jié)品、臨期品每天都在變土豆白菜保質(zhì)期就幾天一個(gè)上架周期內(nèi)可能根本攢不夠算法學(xué)習(xí)所需的樣本量。如果照搬電商那種“積累用戶行為——更新模型——再推薦”的閉環(huán)等模型學(xué)會(huì)的時(shí)候貨架早換了一輪。第三個(gè)差異藏在推薦位的物理屬性里。線上貨架無(wú)限長(zhǎng)推薦錯(cuò)了成本極低線下貨架和動(dòng)線是有限的顧客要走到你推薦的那個(gè)貨架前才算數(shù)。這意味著超市推薦系統(tǒng)輸出的任何結(jié)果都必須考慮到物理可達(dá)性和當(dāng)下的購(gòu)物階段不是算法算出來(lái)就完事的。1.2 從“猜你想要什么”到“幫你把這趟買順”電商推薦的核心是猜用戶當(dāng)前想要什么點(diǎn)擊率是生命線。超市推薦的目標(biāo)則完全不同業(yè)務(wù)上你要回答的問(wèn)題是這位顧客這趟來(lái)大概要買哪些品類購(gòu)物籃里還缺什么把缺的那部分補(bǔ)上客單價(jià)自然就上去了。舉個(gè)很直觀的例子顧客明明已經(jīng)選了牛排購(gòu)物籃里大概率還缺黑胡椒醬、西藍(lán)花、意面甚至一瓶紅酒。這不是猜他想買什么而是幫他完成“這頓飯”的拼圖。經(jīng)典零售故事里的“啤酒與尿布”雖然被營(yíng)銷敘事夸張過(guò)但原理是成立的——買尿布的年輕父親和買啤酒的人群高度重合把啤酒放在尿布附近雙方都受益。所以設(shè)計(jì)系統(tǒng)的第一件事不是選算法而是和目標(biāo)業(yè)務(wù)方對(duì)齊KPI你到底想提升客單價(jià)、消化臨期庫(kù)存、還是提高會(huì)員復(fù)購(gòu)這三個(gè)目標(biāo)會(huì)導(dǎo)向完全不同的推薦策略我在后面會(huì)展開(kāi)說(shuō)。順序搞反了算法再漂亮也沒(méi)人買單。1.3 誰(shuí)真的需要這套系統(tǒng)以及誰(shuí)不需要不是所有超市都需要推薦系統(tǒng)。我見(jiàn)過(guò)一些便利店老板拿著幾百個(gè)SKU的Excel表來(lái)找我聊協(xié)同過(guò)濾說(shuō)實(shí)話沒(méi)必要那個(gè)規(guī)模下貨架擺放和補(bǔ)貨策略帶來(lái)的收益遠(yuǎn)大于推薦算法。門店類型SKU規(guī)模數(shù)據(jù)基礎(chǔ)推薦方案建議社區(qū)便利店幾百個(gè)單店P(guān)OS流水暫不需要做好陳列即可中型社區(qū)超市幾百到幾千會(huì)員覆蓋率低關(guān)聯(lián)規(guī)則 規(guī)則引擎大型商超/連鎖上萬(wàn)會(huì)員體系完善多門店召回—排序完整架構(gòu)分店建模超市到家小程序同上有在線瀏覽行為可以參照電商思路但注意生鮮差異先對(duì)號(hào)入座再?zèng)Q定投入多少資源這是我給所有線下零售從業(yè)者的第一條建議。2. 整體架構(gòu)與數(shù)據(jù)鏈路從POS小票到推薦結(jié)果2.1 數(shù)據(jù)采集POS小票是主干但別忽略輔助信號(hào)超市里能采的數(shù)據(jù)其實(shí)比想象中多按重要性排序大概是POS訂單明細(xì)、會(huì)員檔案、促銷檔期、退貨記錄、庫(kù)存與缺貨記錄。POS明細(xì)是絕對(duì)的主干它能給出訂單號(hào)、商品編碼、數(shù)量、金額、門店、交易時(shí)間和會(huì)員ID。這中間最關(guān)鍵的一點(diǎn)是訂單粒度——同一張小票里的所有商品天然構(gòu)成一個(gè)“購(gòu)物籃”這是所有后續(xù)分析的地基。輔助信號(hào)同樣不能忽略。會(huì)員領(lǐng)了哪些優(yōu)惠券、核銷了沒(méi)有能反映價(jià)格敏感度退貨記錄能告訴你顧客對(duì)哪些品類不滿意庫(kù)存和缺貨記錄能幫你過(guò)濾掉“算法推薦了但庫(kù)里沒(méi)有”的尷尬。這里有個(gè)典型的坑很多超市的POS系統(tǒng)沒(méi)有把退貨單和原銷售單關(guān)聯(lián)起來(lái)“買了又退”被當(dāng)成了真實(shí)購(gòu)買這會(huì)嚴(yán)重污染關(guān)聯(lián)規(guī)則的統(tǒng)計(jì)。我在項(xiàng)目初始化階段花了整整一周做數(shù)據(jù)清洗剔除退貨、剔除員工內(nèi)部購(gòu)買、剔除批發(fā)團(tuán)購(gòu)單后面模型效果才正常。數(shù)據(jù)質(zhì)量決定算法上限這句話在超市場(chǎng)景體現(xiàn)得淋漓盡致。2.2 特征體系商品、顧客、門店三個(gè)維度缺一不可推薦特征分三大塊商品側(cè)、顧客側(cè)、門店側(cè)。商品側(cè)要梳理類目層級(jí)、品牌、規(guī)格、價(jià)格帶、保質(zhì)期類型、冷鏈要求、是否促銷品、季節(jié)標(biāo)簽。這里特別要注意“保質(zhì)期類型”這個(gè)特征——長(zhǎng)保商品適合被推薦短保生鮮商品推薦要非??酥迫思也粫?huì)因?yàn)槟愕耐扑]就多買一堆容易爛的菜。顧客側(cè)依賴會(huì)員體系包括RFM最近購(gòu)買時(shí)間、頻次、金額、平均籃單價(jià)、品類偏好分布、常購(gòu)時(shí)段、價(jià)格帶偏好。沒(méi)有會(huì)員體系的門店可以把匿名小票按“同一時(shí)段、同一收銀臺(tái)、連續(xù)單號(hào)”做臨時(shí)會(huì)話聚合效果打折但聊勝于無(wú)。門店側(cè)特征常被忽略門店面積、商圈類型、周邊客群結(jié)構(gòu)、歷史銷售增速這些決定了同一套模型在不同門店的表現(xiàn)差異。別指望用市中心大店的數(shù)據(jù)訓(xùn)練一個(gè)模型去服務(wù)所有門店后面踩坑部分會(huì)專門講這個(gè)問(wèn)題。2.3 離線管道和實(shí)時(shí)管道的分工我的做法是把系統(tǒng)切成兩條管道各干各的。離線管道每天凌晨跑T1任務(wù)產(chǎn)出每日推薦候選集、關(guān)聯(lián)規(guī)則、商品向量、用戶偏好畫像服務(wù)于小程序首頁(yè)、電子價(jià)簽、次日促銷推薦這些場(chǎng)景對(duì)時(shí)效性要求不高。實(shí)時(shí)管道專門服務(wù)收銀臺(tái)結(jié)賬前的那幾秒鐘邏輯非常簡(jiǎn)單但要求響應(yīng)在幾十毫秒內(nèi)完成。實(shí)時(shí)管道的推薦不是跑復(fù)雜模型而是基于“當(dāng)前購(gòu)物籃”的規(guī)則匹配把購(gòu)物籃里的商品編碼拿過(guò)來(lái)去查離線算好的規(guī)則表命中哪些關(guān)聯(lián)規(guī)則按置信度排序取前三個(gè)結(jié)果返回。整個(gè)鏈路用到的存儲(chǔ)也就一個(gè)關(guān)系型數(shù)據(jù)庫(kù)加一個(gè)緩存。把緩存打開(kāi)熱點(diǎn)規(guī)則全部提前加載接口P99延遲能壓到50毫秒以內(nèi)——這套組合便宜、可控、維護(hù)成本低是我最推薦的中小型超市起步方案。3. 算法選型把關(guān)聯(lián)規(guī)則、協(xié)同過(guò)濾和深度模型放在正確的位置3.1 關(guān)聯(lián)規(guī)則Apriori 與 FP-Growth 的取舍關(guān)聯(lián)規(guī)則是超市場(chǎng)景最容易出效果、也最好解釋的算法。核心概念就三個(gè)支持度、置信度、提升度。我拿項(xiàng)目里的真實(shí)例子說(shuō)明。假設(shè)有一千張小票其中兩百?gòu)埌D桃话傥迨畯埌姘鼉烧咄瑫r(shí)出現(xiàn)的有六十張。那么支持度就是60 / 1000 6%代表這個(gè)組合在全部訂單中出現(xiàn)的比例置信度牛奶→面包是60 / 200 30%代表買了牛奶的顧客里有多少也買了面包提升度是30%除以面包的整體購(gòu)買比例15%等于2。提升度大于1就說(shuō)明“牛奶和面包”之間有正向關(guān)聯(lián)大于1.5基本可以放心上推薦位。閾值怎么定數(shù)據(jù)量大時(shí)支持度可以設(shè)低一些比如1%數(shù)據(jù)量小時(shí)要設(shè)高一些避免偶然共現(xiàn)。置信度建議至少20%到30%低于這個(gè)值推薦出去的效果很差。算法實(shí)現(xiàn)上Apriori在幾千個(gè)SKU時(shí)還能跑SKU上萬(wàn)后性能下降非常明顯因?yàn)樗磸?fù)掃描數(shù)據(jù)集生成候選集FP-Growth用樹(shù)結(jié)構(gòu)壓縮事務(wù)不生成候選集內(nèi)存友好我最終選了FP-Growth。但不管用哪個(gè)生鮮短保商品都建議直接擋在推薦結(jié)果之外。3.2 協(xié)同過(guò)濾沒(méi)有評(píng)分時(shí)如何定義“相似”超市的用戶—商品矩陣?yán)餂](méi)有評(píng)分只有“買沒(méi)買”。解決思路是把購(gòu)買次數(shù)當(dāng)作隱式反饋構(gòu)造用戶—商品共現(xiàn)矩陣。這個(gè)矩陣極其稀疏一個(gè)普通會(huì)員一年也就幾十張小票和電商用戶動(dòng)輒上百次點(diǎn)擊完全不是一個(gè)密度。所以我強(qiáng)烈建議超市場(chǎng)景以Item-based協(xié)同過(guò)濾為主User-based只能做輔助。Item-based的思路是先算商品與商品之間的相似度——把每個(gè)商品在所有小票里的共現(xiàn)向量當(dāng)作它的“畫像”用余弦相似度計(jì)算兩兩相似度顧客買了A就推薦與A最相似且不在當(dāng)前購(gòu)物籃里的TopN。相比User-based它不依賴某個(gè)用戶的豐富歷史新用戶只要有一張小票就能推薦實(shí)用性高得多。這里有個(gè)業(yè)務(wù)細(xì)節(jié)計(jì)算相似度時(shí)要忍住誘惑把礦泉水、百元充值卡這類“人人都會(huì)買”的商品從共現(xiàn)向量里剔除否則它們會(huì)和所有商品都相似推薦出來(lái)毫無(wú)信息量變成了變相的熱銷榜。3.3 淺層模型還是深度模型按數(shù)據(jù)量決定我的判斷標(biāo)準(zhǔn)很簡(jiǎn)單先看每月有效小票量級(jí)。小于十萬(wàn)張關(guān)聯(lián)規(guī)則加Item-based協(xié)同過(guò)濾足夠別折騰深度學(xué)習(xí)幾十萬(wàn)到百萬(wàn)張可以在排序?qū)由弦粋€(gè)梯度提升樹(shù)模型比如XGBoost和LightGBM這類效果穩(wěn)定且好調(diào)到千萬(wàn)張以上才需要考慮商品向量化、圖神經(jīng)網(wǎng)絡(luò)這類更復(fù)雜的方案。別迷信深度學(xué)習(xí)。超市的數(shù)據(jù)密度遠(yuǎn)低于互聯(lián)網(wǎng)深度模型在小數(shù)據(jù)上很容易過(guò)擬合或者把促銷期的噪音當(dāng)成規(guī)律學(xué)進(jìn)去。一個(gè)清醒的判斷是推薦系統(tǒng)的離線指標(biāo)提升和業(yè)務(wù)收益之間隔著一條巨大的鴻溝簡(jiǎn)單模型更容易解釋、更容易排查、更容易讓業(yè)務(wù)方信任這就夠了。整體框架我采用的是標(biāo)準(zhǔn)的召回—排序結(jié)構(gòu)。召回階段把三類候選合并關(guān)聯(lián)規(guī)則候選、相似商品候選、門店熱銷補(bǔ)充排序階段用GBDT對(duì)候選打分特征拼接顧客、商品、門店、時(shí)間四類信息最后過(guò)一道規(guī)則過(guò)濾把臨期品、缺貨品、禁止推薦品類全部擋掉。這個(gè)結(jié)構(gòu)在超市場(chǎng)景完全夠用也方便后續(xù)擴(kuò)展。4. 工程實(shí)現(xiàn)從購(gòu)物籃向量到渠道下發(fā)4.1 把購(gòu)物籃當(dāng)成“句子”商品向量的訓(xùn)練細(xì)節(jié)排序模型再好也依賴召回質(zhì)量。我后來(lái)做了升級(jí)把每個(gè)會(huì)員的購(gòu)物籃按時(shí)間排序當(dāng)成“句子”把商品當(dāng)成“詞”用詞向量那套方法訓(xùn)練商品向量。道理很簡(jiǎn)單——經(jīng)常出現(xiàn)在同一個(gè)購(gòu)物籃里的商品和經(jīng)常出現(xiàn)在同一句話里的詞一樣語(yǔ)義上是相近的。這樣算出來(lái)的商品相似度比itemCF的共現(xiàn)矩陣平滑得多還能通過(guò)向量運(yùn)算做一些有意思的探索。幾個(gè)訓(xùn)練細(xì)節(jié)值得記錄。一是購(gòu)物籃序列構(gòu)造時(shí)同一張小票里商品的先后順序其實(shí)沒(méi)有意義要隨機(jī)打亂否則模型會(huì)學(xué)到假的“順序信息”二是窗口大小設(shè)3到5比較合適太大會(huì)把無(wú)關(guān)商品強(qiáng)行拉近三是負(fù)采樣時(shí)必須剔除礦泉水、抽紙這種超高頻率商品否則它們會(huì)成為萬(wàn)能的“負(fù)樣本中心”把向量空間搞壞。構(gòu)建訓(xùn)練樣本時(shí)我曾經(jīng)踩過(guò)數(shù)據(jù)泄漏的坑把當(dāng)天的退貨數(shù)據(jù)直接拿來(lái)當(dāng)負(fù)樣本結(jié)果模型學(xué)會(huì)了“識(shí)別那些會(huì)被退貨的商品”上線之后推薦質(zhì)量奇差。后來(lái)把退貨數(shù)據(jù)單獨(dú)清洗作為過(guò)濾規(guī)則而不是訓(xùn)練樣本才恢復(fù)正常。4.2 排序?qū)犹卣?、樣本與模型排序模型的作用是把召回來(lái)的候選商品按“顧客當(dāng)下會(huì)買”的概率重新打分。我的特征分三組。商品側(cè)有價(jià)格、折扣力度、歷史轉(zhuǎn)化率顧客側(cè)有該顧客對(duì)這個(gè)類目的歷史購(gòu)買頻率、價(jià)格帶匹配度、距離上次購(gòu)買該類目的時(shí)間。最后一組特別關(guān)鍵超市有周期購(gòu)買屬性牛奶喝完大概一周米面油大概一個(gè)月距離上次購(gòu)買時(shí)間太近就不推薦太遠(yuǎn)也不必追著推。場(chǎng)景側(cè)特征包括當(dāng)前時(shí)刻、門店編號(hào)、當(dāng)前購(gòu)物籃已有品類數(shù)量。比如晚上七點(diǎn)購(gòu)物籃里已經(jīng)躺著一盒雞蛋排序模型會(huì)傾向于把配菜類商品排前面。訓(xùn)練樣本定義要小心。正樣本是推薦后被加入購(gòu)物籃或者直接購(gòu)買的商品負(fù)樣本是展示了但沒(méi)買。這里必須等A/B測(cè)試閉環(huán)跑起來(lái)才能拿到真實(shí)的曝光數(shù)據(jù)所以第一個(gè)月往往是冷啟動(dòng)模型效果不會(huì)太好別慌先把曝光日志埋點(diǎn)埋全。4.3 渠道與時(shí)機(jī)推薦位不是越多越好推薦結(jié)果要分發(fā)到具體渠道每個(gè)渠道的特性完全不同。渠道時(shí)機(jī)展示數(shù)量適合內(nèi)容收銀臺(tái)屏幕結(jié)賬前幾秒1-3個(gè)湊單型、滿減門檻補(bǔ)齊電子價(jià)簽顧客在貨架前1個(gè)關(guān)聯(lián)提示當(dāng)前商品的搭配品到家小程序下單前/次日提醒3-6個(gè)生鮮補(bǔ)貨、促銷預(yù)告打印小票結(jié)賬后1-2個(gè)優(yōu)惠券二維碼線下回流時(shí)機(jī)規(guī)則比模型重要。不要顧客一進(jìn)門就推冷飲他還沒(méi)逛到飲料區(qū)不要顧客剛買完某個(gè)品類就推同類目他短時(shí)間內(nèi)不會(huì)再買生鮮補(bǔ)貨提醒適合在晚上八點(diǎn)后推送第二天的菜。我的經(jīng)驗(yàn)是一籃子推薦不要超過(guò)三個(gè)超過(guò)三個(gè)顧客根本看不過(guò)來(lái)還會(huì)覺(jué)得被冒犯。4.4 規(guī)則過(guò)濾與人工兜底這一層最不智能但往往決定系統(tǒng)能不能上線。無(wú)論模型給什么結(jié)果都必須過(guò)一遍硬規(guī)則缺貨商品不推、臨期商品不推、有合規(guī)風(fēng)險(xiǎn)的商品煙酒、處方性質(zhì)保健品堅(jiān)決不推、兒童營(yíng)養(yǎng)品類目不能推薦給沒(méi)有小孩的顧客。價(jià)格帶也要兜底——一個(gè)習(xí)慣買高端有機(jī)食品的顧客你不該給他推性價(jià)比散裝貨反之也一樣。規(guī)則兜底還有一個(gè)隱藏好處業(yè)務(wù)方敢把推薦位交給你。零售店長(zhǎng)和采購(gòu)最怕系統(tǒng)亂推影響庫(kù)存和毛利有了硬規(guī)則他們才愿意把真實(shí)曝光數(shù)據(jù)開(kāi)放給算法團(tuán)隊(duì)形成正向循環(huán)。5. 冷啟動(dòng)、效果評(píng)估與踩坑實(shí)錄5.1 三類冷啟動(dòng)的應(yīng)對(duì)方案新商品、新門店、新會(huì)員三類冷啟動(dòng)要分開(kāi)處理。新商品沒(méi)有歷史數(shù)據(jù)我按價(jià)格帶和品類把它歸入已有商品簇先給一個(gè)保守的推薦位積累三十次展示之后再進(jìn)入正常候選池。新門店沒(méi)有本地?cái)?shù)據(jù)先用同商圈、同面積級(jí)別的老門店模型做遷移跑兩到四周后再用本店數(shù)據(jù)微調(diào)。新會(huì)員沒(méi)有歷史記錄先用門店熱銷TopN加時(shí)段熱銷頂上同時(shí)在會(huì)員注冊(cè)時(shí)加一道“偏好品類勾選”——收集的信息量不大但對(duì)冷啟動(dòng)很有幫助。5.2 評(píng)估指標(biāo)怎么定推薦系統(tǒng)上線后我每周看四類指標(biāo)。直接指標(biāo)是推薦位的點(diǎn)擊、掃碼、加入購(gòu)物籃率生意指標(biāo)是客單價(jià)、購(gòu)物籃商品數(shù)、連帶率庫(kù)存指標(biāo)是臨期品清倉(cāng)率和滯銷品動(dòng)銷率體驗(yàn)指標(biāo)是退貨率和投訴率。只看點(diǎn)擊率會(huì)騙自己超市推薦的價(jià)值必須落到生意指標(biāo)上。A/B測(cè)試建議按門店組或會(huì)員ID分桶至少跑兩周。兩周是線下購(gòu)買周期的約數(shù)——很多家庭的超市大采購(gòu)是兩周一次跑不夠一個(gè)完整周期結(jié)論不可信。我不建議按“線上點(diǎn)擊用戶和線下到店用戶”來(lái)分實(shí)驗(yàn)組這個(gè)口徑混在一起根本解釋不清楚。5.3 我踩過(guò)的幾個(gè)具體的坑第一個(gè)是數(shù)據(jù)泄漏。訓(xùn)練集里混入當(dāng)天退貨單據(jù)模型學(xué)會(huì)了推薦“要退的商品”。清洗退貨數(shù)據(jù)之后離線指標(biāo)和在線轉(zhuǎn)化率同步明顯提升這算是我印象最深的一次教訓(xùn)。第二個(gè)是促銷干擾。大促期間所有關(guān)聯(lián)規(guī)則都被打折商品主導(dǎo)跑出來(lái)一堆“滿減湊單”規(guī)則促銷一結(jié)束全失效。解決辦法是訓(xùn)練時(shí)剔除促銷占比過(guò)高的樣本或者干脆給促銷單獨(dú)建一套規(guī)則庫(kù)。第三個(gè)是推薦了顧客剛買過(guò)的東西。顧客上周剛拿一箱牛奶這周又給他推牛奶體驗(yàn)極差。后來(lái)在排序特征里加入“購(gòu)買間隔”長(zhǎng)保商品設(shè)三十天冷靜期、短保設(shè)七天問(wèn)題才解決。第四個(gè)是忽略門店差異??偟陻?shù)據(jù)訓(xùn)練的模型放在寫字樓店表現(xiàn)很差因?yàn)閮蓚€(gè)店的顧客結(jié)構(gòu)完全不一樣。最終的方案是至少按大店、社區(qū)店、寫字樓店分三套模型效果才穩(wěn)定下來(lái)。最后再說(shuō)句實(shí)在話如果你的超市還在用Excel看銷售排名別急著上推薦系統(tǒng)。先把POS數(shù)據(jù)規(guī)范化、打通會(huì)員體系、把品類和價(jià)格帶標(biāo)簽補(bǔ)全這些基礎(chǔ)工作決定了后面所有算法的上限。我做這個(gè)項(xiàng)目最大的體會(huì)是線下零售的推薦不是要炫技而是要在一趟購(gòu)物已經(jīng)接近尾聲的時(shí)候恰到好處地遞上一個(gè)讓顧客覺(jué)得“這趟沒(méi)白來(lái)”的理由。先把關(guān)聯(lián)規(guī)則跑通親眼看到客單價(jià)在漲再考慮模型升級(jí)這個(gè)順序不會(huì)錯(cuò)。