萬字長文,細數零售業中的那些數據挖掘問題(值得收藏)
引言
本文是 TalkingData 首席數據科學家張夏天翻譯自 Highly Scalable Blog 的一篇文章,介紹了零售業中的數據挖掘問題。
本文內容包括零售業中的多個常見問題,如響應建模、推薦系統、需求預測、價格差異、促銷活動規劃、類目管理、財務影響等。
其中涉及的資源分配優化問題、個性化推薦、定向廣告等業務問題,上下兩篇完整閱讀大約需要兩個半小時。
原文作者為 Ilya Katsov,原文鏈接見閱讀原文。
零售是數據科學和數據挖掘重要的商業應用領域之一。零售領域有著豐富的數據和大量的優化問題,如優化價格、折扣、推薦、以及庫存水平等可以用數據分析優化的問題。
全渠道零售,即在所有線上和線下渠道整合營銷、客戶關係管理,以及庫存管理的崛起產生了大量的關聯數據,大大增強了數據驅動型決策的重要性和能力。
儘管已經有許多關於數據挖掘在營銷和客戶關係管理方面的書,如 [BE11, AS14, PR13 etc.],但絕大多數書的結構更像是數據科學家手冊,專註在演算法和方法論,並且假設人的決策是處於將分析結果到業務執行上的中心位置。
在這篇文章中我們試圖採用更加嚴謹的方法和系統化的視角來探討基於數據分析的經濟學模型和目標函數如何使得決策更加自動化。在這篇文章里, 我們將描述一個假想的收入管理平台,這一平台基於零售商的數據並控制零售策略的很多方面,如價格、營銷和倉儲。
我們專註在將經濟學框架和數據挖掘方法的組合有以下兩個主要的原因:
- 我們可以從經濟學教科書上找到上百個與零售有關的經濟學模型,因為關於市場、折扣、競爭等問題在上個世紀得到了深入的研究。然而,許多模型都是高度參數化的(即嚴格的由帶有有限參數的公式所定義)並且不能足夠靈活而精確地對現實世界的問題建模。但數據挖掘提供了很多非參數建模技術,可以幫助創建靈活而實用的模型。在最近十年里,也有許多成功的平衡抽象模型和機器學習技術的文章和案例研究已經發表。
- 快速的數據循環使得在現代零售業中可以使用相對簡單的模型做出更加準確的預測,因為小規模增量式的預測一般而言要比大決策更加容易。例如,因為對於一個新的顛覆性產品在消費者心中的感知價值是未知的,要計算它的最優價格是很困難的。但是根據需求和庫存水平實時調整促銷價格則是相對容易的。有一些成功的商業解決方案對價格優化就幾乎丟棄了經濟學模型,簡單的根據銷售閉環的反饋情況來決定價格的上升和下降 [JL11]。
以上兩點意味著在零售業自動化決策和動態優化具有很高的潛力,因此我們專註於研究這個領域。本文很大篇幅用於綜述零售業者和研究人員發表的成果,這些成果都是他們在綜合應用抽象經濟學模型和數據挖掘方法構建實際的決策和優化系統中產生的。
特別的,本文主要受到 3 個案例研究的啟發,分別出自 Albert Heijn [KOK07],荷蘭最大的連鎖超市,Zara [CA12],一家國際服裝零售商,以及 RueLaLa [JH14],一家創新在線時尚零售商。我們同樣綜合了來自 Amazon、Netflix、LinkedIn 和許多獨立研究者和商業項目的結果。同時,我們避免使用那些缺乏實踐支持的學術結果。
我們的研究主要著眼於與收入管理相關的優化問題,包括營銷和定價等問題。更加特殊的數據挖掘應用,如供應鏈優化和欺詐檢測, 數據挖掘過程實現的細節(如模型質量的驗證)則不在這我們研究的範疇內。
本文剩餘部分組織如下:
- 我們首先引入一個簡單的框架將零售商的行為,利潤和數據聯繫在一起。此框架將作為更統一的方式來描述分析問題。
- 本文的主體部分探討了一系列與零售業相關的優化問題。我們將在不同章節逐個介紹這些問題。每個章節會簡要描述問題,並提供一組業務案例和應用,以及詳細介紹如何將問題分解成經濟學模型和數據挖掘任務,使得可以通過數值優化方法來解決業務問題。
- 然後,我們會有一個章節專門討論這些方法在實際應用中的可期的經濟收益。
- 最後,總結部分會對這些問題之間的依賴關係進行討論,從而闡明一般的原則和關鍵點。
優化框架
本文介紹了 6 個主要與營銷和定價相關的優化問題,這些問題都能夠應用數據挖掘技術來解決。儘管這些問題非常不同,但我們嘗試建立了一般性的框架來幫助設計求解所需的優化和數據挖掘任務。
該框架的基本思想是用一個經濟指標,例如毛利率作為優化目標,並將這一目標作為零售商行為(如營銷活動或者分類調整)的函數。
同時計量經濟學目標也是數據的一個函數,即計量經濟模型應該被零售商的特性參數化,從而在其輸出中產生一個數值,如毛利率。
例如,某零售商在計劃一個郵件營銷活動。可行的行動空間可被定義為一組對於每個客戶發送/不發送決策集合,而活動的毛利率則決定於營銷動作(有些人會接受激勵而另一些人不會)以及給定客戶的期望收入和郵件成本。這一方法可以更形式化的由如下公式表達:
此公式里 G 是可用於分析的數據,是零售業者行為和決策空間, 是計量經濟模型函數,其參數是 d 和 A,而 A0 是最優策略。這一框架由文獻 [JK98] 整理提出。
模型 G 的設計十分依賴於問題本身。在大部分情況下,對毛利率建模和優化都是合理的。但是,有些情況下其他的目標也是有可能的,就如下一章探討的響應建模。同時需要注意的是優化問題(1)也跟時間有關係,因為環境會隨著如新產品的上架、競爭對手的行動等因素變化,零售業者自己的行為也會產生影響。
數據挖掘在這一優化問題中的角色是非常重要的,因為計量模型 G 通常都比較複雜且必須基於數據通過回歸等數據挖掘技術學習確定。
在某些情況下因為複雜性太高(如用戶的行為很難精確預測)或者因為無法將現有數據做外推(如對於完全新的服務),模型是無法完全確定的。這時,可以用 A/B 測試和問卷調查來獲得額外的數據來改進模型的精度。
問題 1: 響應建模
問題描述
在廣告或者特價優惠活動中,需要決定將一些資源投放給一些客戶。而這些資源都是有成本的,如郵寄印製商品的目錄的資金成本,或者一些負面效應(如使得用戶取消郵通知訂閱)。
同時, 這些資源將會影響用戶的決策,如促使他們更多地消費或者購買更高價值的產品。其目標是找到一組最靠譜的候選客戶,對他們投入資源後能夠使得業績最大化。
投入的資源可以是同質的(如所有參加的客戶都得到同樣的激勵)也可以是個性化的。在後一種情況下,零售業者將對每個不同的客戶提供不同的激勵如不同產品的優惠券來最大化總體的收益目標。
應用
響應建模被廣泛的應用在營銷和客戶關係管理上:
- 確定特定的折扣、優惠券和特價,需要識別出客戶對這些激勵的反應。
- 有這對性的郵件促銷、活動和贈品(如 4S 店提供的免費太陽眼鏡)通常需要識別出最優價值的客戶來降低營銷費用。
- 客戶挽留計劃需要識別出那些可能會離開但可以通過激勵來改變主意的客戶。例如,電商可以向那些放棄購物車或者離開搜索會話的客戶發送特價優惠。
- 在線目錄和搜索結果可以根據客戶對某些商品的的喜好來重新調整。
- 響應建模幫助優化了電郵促銷來避免不必要的垃圾郵件,這些垃圾郵件可能會讓客戶取消郵件訂閱。
求解
基於以上的討論,我們現在可以認識到這個問題就是資源分配的優化問題,而優化問題由一個目標函數驅動。一個最基本的方法是根據每個客戶的響應概率和期望凈價值來對促銷活動的整體利潤建模。
這裡 Pr(R│u;I) 是給定客戶 u 對激勵 I 的響應概率,g(u|R)) 是這個客戶響應的激勵的凈價值,而 c 則是激勵的成本。公式中第一項是響應從響應用戶獲得的凈收益,而第二項則是對應在沒有響應的客戶上的期望損失。目標是通過找到一組最有可能響應活動並能貢獻高利潤的客戶子集來最大化 G。因為公式 (1.1) 可以約簡如下:
這裡 E{g|u;I} 表示對給定客戶在假定他會接受激勵的情況下的毛利率的數學期望,而客戶的選擇標準則要符合以下條件:
同時,最優的客戶子集 U 可以定義為最大化毛利率的子集:
我們也可以以隨機分配激勵為基準的凈值最大化。為此,我們假設參與該次營銷活動的客戶數固定為 |U|。首先,我們將公式 (1.2) 展開,顯示的包括對於隨機選取的 |U| 個客戶的營銷活動的期望毛利率。
此處 E{g|I} 是所有客戶上的平均凈價值。這一平均凈價值是常數,因此在 |U| 確定的情況下在目標函數中可以被略去。因此,公式(1.2)在固定 的情況下同樣可以得到(1.3):
然而,文獻 [VL02] 提出這一模型存在一定的缺陷,因為該模型偏向於易於接受激勵的客戶,而沒有考慮那些有沒有激烈都會貢獻同樣利潤的的客戶。為解決這一 缺陷,我們需要根據以下四種情況來計算客戶集合 U 的毛利率:
- G1 - 根據公式(1.2)選擇 U 並向中所有客戶發送激勵
- G2 - 隨機選擇 U 並向 U 中所有客戶發送激勵
- G3 - 根據公式(1.2)選擇 U 但是不發送任何激勵
- G4 - 隨機選擇 U 但是不發送任何激勵
公式(1.2)是最大化 之差即相較於隨機投放的提升度。另一種方法是優化,這一目標函數不僅僅度量相較於隨機投放的提升度同時還考慮去除掉在同樣的客戶集合上不做任何激勵的提升度。在此情況下,公式(1.2)變為如下形式:
此處最後一項對應的是未被激勵的客戶的期望凈價值。這一方法被稱為差分響應分析或者提升度建模由文獻 [BE09] 提出。
值得注意的是,公式(1.2)和(1.4)都不是通過最大化營銷費用來優化的。考慮如下情況,每個響應的用戶可以貢獻 100 美元的凈利潤,而激勵費用為 1 美元。如果一個客戶組有 100 萬客戶,其中有 0.5% 的潛在響應者,則花費最大的營銷活動是對每個客戶都做觸達則最終將損失 50 萬美元(總的響應者貢獻的 50 萬美元凈價值減去活動費用 100 萬美元)。
公式(1.4)對於各種類型的價格折扣特別重要(優惠券、臨時價格折扣、特價)。考慮如下問題:「一個零售商應該向每天都買蘋果的人提供蘋果優惠券嗎?」 根據公式(1.2),回答是肯定的。因為這個人很有可能會使用優惠券。
然而,更可能的是這個客戶用更低的價格購買了同樣數量的蘋果,根本上這會降低零售商的利潤。公式(1.4)考慮了默認的客戶行為從而消除了這一問題。我們在下一節將繼續討論價格區分問題因為這一是個複雜的問題遠超了公式(1.4)範疇。
公式(1.2)和(1.4)中凈收入的數學期望能夠基於過去客戶對激勵是否接受的歷史數據用分類或者回歸模型來確定。這一問題可能是非常有挑戰性的,特別是當需要評估的激勵與過往出現過的都存在某種程度上的差異。
在這種情況下,全規模的活動上線之前需要在一個客戶測試組上進行測試。另外,對於零售業者而言毛利率並非唯一的關鍵指標。在公式(1.2)和(1.4)中使用的毛利率度量關心的是第一次付款後即時的彙報,從客戶關係管理的角度看這是非常簡單的視角。
零售業者還會關心其他不同的度量,度量上的多元性是如此巨大以至於有一門專門研究這個問題的經濟學分支 - 傾向性建模[SG09, LE13] - 這一學科發展了不同的模型來預測用戶未來的行為。最重要的傾向性模型包括:
- 生命價值預測。生命價值模型是估計一個客戶在其生命周期內可以貢獻的收入或者利潤總額。這一指標對於那些目標為獲取新客的營銷活動而言是很重要的。
- 錢包份額預測。錢包份額模型用來估計用戶對於某些類型商品,如雜貨或者服飾,在某一零售商及其在各競爭對手那花錢的比例。這一度量能夠揭示哪些客戶具有貢獻高收入的潛力,因為這一模型能夠用在忠誠計劃和提升使用的營銷活動中。
- 類型擴展傾向。該模型估計首次購買某一類型的商品後,從休閑產品轉換到奢侈品的可能性。這一模型能夠幫助設計目的是獲得使用擴展的活動。
- 流失傾向。這一模型估計客戶從給定零售商流失並轉換到競爭對手的可能性。如果客戶具有較高的流失傾向則可以定向進行挽留活動。例如,一個零售商可以識別出那些放棄了在線購物車或者退出了搜索會話但是提供一定折扣或者贈品後會改變主意的客戶。
- 購物習慣改變傾向。每個客戶的購物習慣最終確定了其對一個零售商的價值,即客戶的購買頻率、購買什麼產品、購買什麼類型的產品等等。這些習慣通常是穩定的,一旦零售商改變一個客戶的分層,這個分層將會持續。
因此,零售業者通常對找到那些對改變習慣比較開放的客戶感興趣, 如那些從一個城市遷移到另一個城市的人群, 從學校畢業的學生, 剛剛結婚的人群等等。一個典型的例子是預測客戶是否在懷孕早期 [DG12] 因為新生命的誕生會顯著的改變客戶的購物行為。
以上模型都能夠嵌入類似公式(1.4)的公式來代替毛利率目標。我們在後面的小節中將針對討價格差異化的情況下對摺扣的響應傾向建模的情況仔細探討傾向性建模。關於傾向性建模的更多細節可以參考 [FX06] 和 [SG09] 兩本書。
這一框架也能夠擴展到在多個可能的激勵方案中選擇最優的方案。例如,一個零售商可以估計對於兩個激烈方案 A 和 B(例如巧克力冰激淋和香草冰激淋)的期望表現然後對於給定的用戶可以根據以下標準[WE07]來選擇最優的選項:
最後,值得注意的是響應建模是與客戶分群緊密耦合的:
- 響應建模能夠用來檢驗通過聚類行程的客戶分群的可行性。一個分群應該對特定的營銷計劃有持續的響應。
- 傾向性模型是基於客戶數據訓練得到的回歸和分類模型。客戶分群可以參考對於主要回歸量的分析結果。另一方面,從聚類結果中也可以發現合理的傾向性模型。
問題 2:推薦
問題說明
一組激勵中的每一項激勵對應著一個產品或者其他目錄項目。展示這些激勵並不直接與費用成本相關,但是只有有限數量的激勵能夠展示給用戶。從這個角度來說,每個激勵的展示都會佔用一定的屏幕空間或者客戶的注意力,所以給客戶提供的某個激勵的負面激勵能夠被機會成本的損失來度量。
在這樣的目標下就需要將激勵的子集對於每個客戶而言都是個性化的(如網站上的推薦)從而最大化群體的購買表現。
應用
該問題最典型的應用有推薦系統, 個性化搜索結果, 和定向廣告。 此外還有一些其他重要的應用:
- 廠商贊助折扣可以歸為這類問題,因為零售商對激勵的成本不關心(由廠商覆蓋這部分成本), 他們僅關心有效的定向。廠商贊助的活動被廣泛的應用在很多零售細分領域,如雜貨店或者百貨商店,因為這些廠商市場份額的提升有很重的依賴。
- 交叉銷售的營銷能也夠從推薦模型中獲益,因為一些推薦技術能夠揭示出客戶畫像中的隱含維度,如生活方式。這些能力對於跨類之間的推薦是特別有用的,可以基於客戶服飾方面的消費行為向客戶推薦家居或者廚具。
- 推薦系統可以將用戶的購買和瀏覽歷史概括為心心理學畫像,因此乏味的著裝品味或者運動型的生活方式能夠量化測量。同樣的技術也可以根據競爭者銷售產品的來對競爭者畫像,就像根據客戶購買來對客戶畫像。
- 一些推薦演算法能夠基於文本描述來區分產品的心理維度,如生活方式等。所以商家可以利用它們來評估產品描述,也可以用來獲得關於產品定位的適當措辭的建議。
特別需要注意的是儘管推薦通常被認為是線上服務特有的,但其所產生的基本原則和技術對於零售業的許多方面也是非常重要的。因為這些技術致力於揭示客戶對產品興趣的隱含關係。而這是零售商最基本的任務。
解決方案
推薦系統在過去20年是非常受關注的研究領域,[JZ10, RR10] 兩本書提供了對幾十種在各種論文,演講和白皮書中提出的推薦演算法和技術的系統化視角。
某種程度上,推薦技術的高度多樣性在於一些實現推薦時遇到的挑戰,如客戶評分的稀疏性,計算的可擴展性,以及缺乏新物品和客戶的信息。
顯然,我們無法在本節中綜述哪怕一下部分方法和演算法,而且在此處探討這些也沒有太多的意義,因為這樣的綜述俯拾皆是。相反我們將關注於驅動設計推薦系統的目標和效用函數而基本上忽略這一問題的演算法和技術側的細節。
從計量經濟學的觀點來看,推薦系統問題與電商和全渠道商業在很多零售領域的興起帶來銷售品類的快速擴張是緊密相關。大的平類增加了很多非暢銷產品,每一個產品的銷售量和貢獻的收入都是很少的,但是這個「長尾」的總體貢獻是非常顯著的。
傳統推薦技術如推廣最暢銷的商品不能有效利用非暢銷商品的潛力,這就需要更巧妙的推薦方法在數百萬他或者她從未探索過的產品中對其進行引導。
因為我們主要關注模型對客戶在產品上的偏好的描述,我們將從根據效用函數的複雜性從簡單到負責來介紹使用最廣的推薦技術。 我們將依據如下圖所示的推薦技術層次分類圖。這個層次分類綜合了推薦系統的常用分類,但也不是完全一致:
單一目標
讓我們從單一目標推薦任務的基本定義開始,這一定義被廣泛的應用在推薦系統的文獻之中。零售商向用戶群體 U={u_1,...,u_m } 銷售物品 J={j_1,...,j_n }。評分函數 R:J×U 表示一個用戶對一個物品的觀點從負面(「不喜歡」)到正面(「喜歡」),通常使用數字來表示。
一些用戶和物品對的評分值可以基於用戶的評分或者通過分析購買歷史,網站訪問記錄來估計。推薦任務則可以被定義為對給定用戶-物品對 (u,j) 評分值 ?r_(u,j) 的預測。
有兩種方法可以解決評級預測問題:通過查找與特定用戶過去喜歡的項目相似的項目來獨立估計每個用戶的評分; 也可以通過對來自與給定用戶類似的用戶的評分進行平均來估計評分。這兩種方法分別被稱為內容過濾和協作過濾。
內容過濾
內容過濾的主要思想是基於對用戶過往對於產品的偏好,行為和購買。儘管不可以對內容過濾做不同的解釋, 我們選擇將其作為分類問題 [PZ07] 來強調數據挖掘的應用:
- 每個用戶可以被視作一個對物品預測評分的回歸模型。一個特殊的例子是可以用二分類將物品分為兩個類別 - 「喜歡」和「不喜歡」。
- 一個用戶的畫像就是上面介紹的回歸模型的一個實例。這一模型使用該用戶的已知評分(顯示評分,購買歷史等等)來訓練。
- 給指定用戶的推薦物品列表是通過對所有目錄物品採用該用戶對應的回歸模型預測評分然後選擇那些估計評分最高的物品子集來獲得的。
儘管以上的過程似乎是是比較直接的,但是實際上確實非常挑戰的。因為用戶和物品是根本不同的實體,而且要找到一種可以直接將物品轉換成回歸模型可以使用的用戶偏好這種微妙的東西。
最主要的問題是存貨屬性諸如品牌、物品名,或者價格對於衡量物品對用戶的效用是根本不夠的。儘管一些客戶能夠被滿足忠於某品牌或價格取件的特徵,但是需要更多微妙而有信息的維度如生活方式或者品味來描述觀察到的模式和共性。
這些隱式的維度對於如電影、書籍、音樂,甚至是如服飾這樣的有形物品都是非常重要的。零售商可以用如下的方法基於標準的分類技術來對帶有隱含維度的物品打標籤 [GH02]:
- 例如,服裝可以用諸如時髦、保守、運動等標籤來標識。
- 標準產品屬性(如文本描述)旨在向客戶提供特定的營銷信息,因此它們隱含地包含了一些無形的屬性。因此,人工評分項目的物品子集可以用於構建將從產品屬性映射到隱含維度的分類模型。例如,可以使用貝葉斯分類方法來估計描述在隱含屬性值出現時詞出現的條件概率 Pr(詞項描述 | 隱含屬性值)。
- 物品然後可以通過計算後驗概率 Pr(隱式屬性值 | 項目描述)來自動分類沒有人工評分的商品。
一般化的來看,內容過濾和物品建模實際是信息檢索任務,所以許多的為恩本挖掘和搜索技術(例如,[MA08] 的綜述所提到的)可以被用來構建推薦系統。我們在此略過這些細節,因為從計量經濟的角度來看這些都不是最重要的部分。
協同過濾. 前面部分提到的隱含維度的問題具有重要意義,此問題可以引導我們了解推薦技術的第二個系列。這個問題源於根本無法嚴格的對人的口味和傾向建模。
協同過濾是一種自然的,也許是唯一不需要對系統進行很多人工工作的解決方案 - 推薦決策中對"人的因素"的需求通過其他用戶的反饋來滿足。
最基本的協同過濾模型 [RE04, BR98] 直接由用戶之間的相似度度量來定義:
此處 r_u,j 為用戶 u 對 j 物品的評分,U 是所有用戶的集合或者啟發式選取的給定用戶的鄰近用戶,λ 是規範化係數,sim(u,v) 是兩個用戶之間的相似度度量, 而 ˉr_u 是戈丁用戶的平均評分:
假設 J_u 是一組用戶評分過的物品。公式 (2.1) 使用的平均用戶評分概念來建模用戶比其他用戶在打分傾向上是偏高還是偏低,因為他們有的要求高有的要求低。雖然不是絕對必要,這一修正在實踐是上非常重要並在最開始實現協同過濾時就被廣泛應用了。
一般用餘弦距離或者皮爾森相關係數來計算評分向量 J_u 和 J_v 之間的相似度。此外,文獻 [ER98, SU09] 介紹了很多對於此基本相似度度量進行調整的多種方法來改進使用中的性能。
模型(2.1)存在一些顯著的缺陷,首先這一模型的計算複雜性(與物品和用戶數量成正比)很高,其次用戶的評分是非常稀疏的。評分的稀疏性是指每個用戶都只會對很小一部分物品進行評分,所以在計算向量 J_u 和向量 J_v 的相似度時經常會出現沒有重合的元素,這會降低推薦的質量。
例如,眾所周知 Amazon[SA01] 和 Netflix[YK08] 的評分矩陣中的評分缺失率達到 99%。為了克服這一限制,基於用戶的模型(2.1)在通常被概念上非常相似的基於物品的模型 [SA01, YK
其中物品之間的相似度度量是基於那些在兩個物品上都有評分的用戶的基準評分 ˉr_(u,j) 來計算的。基準評分同時考慮了用戶偏差(用戶的平均評分值相較於整體評分的偏差)以及物品偏差(物品的平均評分相較於整體評分的偏差)。
值得注意的是,有一簡單的方法來實現公式(2.2),此方法通過尋找頻繁項集(被頻繁一起購買的物品)並基於在頻繁項集的同現來計算相似度。這一方法因其簡單被視為「窮人的推薦引擎」[RE03]。
模型(2.1)和(2.2)屬於所謂最近鄰模型,這些模型通過分析相似的用戶或者物品的鄰居來估計他們的評分。這一系列的演算法也包括很多變種的技術 [SU09] 通過使用跟緊湊的概率模型或者其他近似方法來取代計算開銷昂貴的檢查鄰居的方法。
儘管最近鄰模型是一種被諸如亞馬遜等領先的零售商驗證過的推薦技術。但在根本上這些技術還是在根本上具有在內容過濾中就有的隱含維度所帶來的問題。前面考慮的用戶之間和物品之間的相似度度量對於揭示用戶和無偏之間的複雜關係,其能力是有限的。
這與信息檢索裡面的同義搜索和多義搜索棉面臨的問題是類似的,要揭示搜索者的實際意圖,並將其意圖翻譯成文本和查詢之間的相似度是非常挑戰的事情。
為了解決這一問題,一種被稱為隱含語義分析的的技術被提出來 [DR90]。該方法被提出來 10 年後被用來設計推薦系統 [SA00],並開創了一類新隱含因子模型。
隱含因子模型主要的思想能夠被描述如下:評分函數 R 能夠被表達成 m×n 矩陣(m 是用戶數,n 是產品數), 其中的元素是評分值。這可以被當作一個線性空間問題。
推薦任務則可以被重新定義為用其他評分向量的組合來計算用戶評分向量。實際上,公式(2.1)自然的就是一種權重由相似度函數定義的評分制的線性組合。然而,問題是評分矩陣缺失評分而稀疏,因偏見和隨機因素通常帶有噪音,而且基於物品維度則限制了揭示用戶品味的能力,而品味通常是與一組物品相關而不是與單個物品相關。
換句話說, 被散落在巨大的低密度矩陣中並混有一定程度噪音的信號智能通過研究隱含模式才能顯示出來。隱含因子模型的思想是用低維度的基來近似一個高維線性空間。這有助於達成以下目標:
- 較少的維度能夠幫助把信號的能量集中,則每個基向量對評分估計的貢獻都是顯著的。它通過丟棄簡單的不適應這些較小的基啊的波動來減少雜訊。
- 基本的計算過程可以被設計來產生有著最少依賴的基向量,從而有效的揭示用戶品味的主要傾向,這些傾向每個對應一個基向量。例如,Netflix 用這一方法來預測電影評分 [YK08, YK09] 時, 系統產生的維度清晰的對應著諸如喜劇,男女等坐標軸。
集合中的每個點沿著 R_1 和 R_2 維度都有著很大的坐標值並顯示出數據的複雜而不規則的結構。然而,在另一個坐標系 B 中則揭示了數據可以被維度 B_1 有效描述,而維度 B_2 則並不重要,這暗示了這是一個一維的隱含因子模型。
某種程度上,隱含因子模型能夠與離散餘弦變換 (DCT) 相比較,離散餘弦變換被用在圖像壓縮演算法諸如 JPEG 中來用少量的諧波來近似圖片。
以上的思考鏈引導我們到如下的隱含因子的形式化模型。首先選擇維數 b?n,m 並將每個用戶和物品都當作該維度空間中的一個向量。我們將用戶 u 的向量標識為 p_u∈R^b, 物品 j 的向量標識為 q_j∈R^b。這些向量是基於評分舉證計算 R 得到的,計算過程中通過某種辦法讓向量 b 的個分量都對應到上面所述的一個隱含維度。
因此,用戶和物品都可以在同樣的主題下進行編碼,同時評分可以通過計算兩個向量的內積,即將向量的維度兩兩對應相乘然後求和得到:
有許多不同的方法來計算用戶和物品的隱含因子向量 p_u 和 q_j。最直接的方法就是用奇異值分解 (SVD) 對評分矩陣 R 進行分解。然而,基於計算穩定性和複雜性的考慮,在實踐中一般使用迭代的梯度瞎講優化方法 [YK09]。
下圖展示了卷積(2.1)和(2.3)之間的區別。左邊對於給定物品的稀疏的評分向量與稀疏度相似的給定用戶做卷積得到評分估計。而在右邊,評分是通過計算兩個降維後且能量密度很好的向量的卷積得到的。
多目標
以上討論的推薦方法本質上都是由一個單一目標驅動,這一目標是提供最好的語義匹配或者預測偏好評分。然而,推薦精度並不是推薦系統設計的唯一考慮,零售商可能有興趣對綜合多個有衝突的目標在一起給用戶提供推薦。
例如,食品雜貨商可能有興趣提升具有較短貨架期的易腐食物的銷量,時尚商店可能希望推廣贊助品牌或當季款,更多的零售商可以從推薦較高利潤率的產品或考慮產品庫存水平避免以避免缺貨來獲得更好收益。
文獻 [JW10] 提出了多目標推薦系統並在 LinkedIn[RP12] 中做了大規模驗證。在 LinkedIn 的例子中, 其主要的目標是給候選人推薦語義上匹配的工作機會,其次是顯示找工作的行為。[RP12] 描述了該方法,將推薦任務定義為如下的優化問題:
此處:
- ˉr 是由底層推薦系統基於語義匹配和相關性產生的原生推薦向量,ˉr 中的第 j 個元素表示的是第 j 個產品的相關性分值(或排序)。
- ˉf 是二級特徵值向量,ˉf 中的第個元素對應的是第 j 個產品在次要目標上對應的分值。例如,這一向量可以產品的毛利率。
- R(·) 是組合排序函數其綜合了 ˉr 和 ˉf 形成一個新的物品排序平衡了兩個目標。
- g(·) 表示度量推薦系統性能的整體效用函數。
- E{?} 對所有推薦效果的平均。
- (·)_(1...K) 表示的是前 K 個具有最高分數的元素,這裡 K 是給用戶推薦的物品數。例如,如果 ˉr 中包括在冊的所有 n 個產品的推薦分,則 ˉr_(1..K) 對應的是 K 個最值得推薦的產品。
- dist(·) 是度量兩個推薦向量之間的差異的距離函數,而 c 是這一差異的限制閾值。根據 [RP12], 一個合理而實際的距離度量是兩個分值向量直方圖的平方誤差和。
上述優化問題的主要事項是是增加混合了次要目標的相關度分值的綜合推薦的效用,但是對原聲的相關性推薦結果和綜合推薦結果的差異做懲罰來保證不會為了最求次要目標而完全犧牲相關性。
函數 R(·) 的設計需要包括可調整的參數來調節兩個目標的權重並決定哪個是主要的優化目標。這一方法可以直接的擴展到多於兩個目標的情況。
我們能夠使用大量的例子來展示上述優化模型是可以適配到實際的問題中去的。首先,考慮零售商要將收入目標整合到推薦分值里的情況。
整體的效用函數可以被期望毛利率定義,設 m(p)∈[0,1] 為物品 p 的規範化毛利率,而被購買的概率則由排序位置的倒數表示(即在推薦列表裡排序越低的的物品,其轉化概率越低)。
此處是概率規範化常數。綜合排序函數可以被定義為如下:
其中 β 是一個控制相關性和選取高毛利率產品之間的權衡的參數。這一參數決定了優化問題(2.4)的主要目標。
根據次要目標重新排序的另一個例子是促銷特色商品,如打折產品或易腐貨物。效用函數可以指定為特選產品在有 K 個推薦項的推薦列表中的平均個數。
此處 F(·) 是特選標誌當物品是特選時為 1,不是則為 0。綜合排序函數組合了相關性分值和特選標誌,通過參數 β 來權衡哪個是主要的優化目標。
以上的排序函數能夠直接擴展到整合多個分離的特徵,每個特徵對最終排序分值的貢獻尤其對應的權衡參數(所有參數需要聯合起來優化):
關於問題(2.4)的數值優化演算法的細節可以在 [RP12] 中找到。
問題 3: 需求預測
問題定義
零售商為客戶提供一組產品。對給定產品的需求依賴於許多因素,包括產品本身的特性如價格或品牌,同類產品競爭對手的價格, 促銷活動,甚至是天氣。該問題的目標是整合這些因素來構建需求模型並且允許進行假設分析以預測對價格變化的響應,品類的擴充和減少,計算最佳庫存水平,並分配貨架空間單位。
應用
在本節中我們將討論需求預測核心問題。這一問題可以被考慮為一個建造模塊,該模塊要求對影響需求的行為或者庫存水平的限制建模:
- 價格優化,促銷活動計劃, 以及定向折扣。
- 品類管理和計劃。
- 庫存水平優化。
- 需求預測模型通常應用在市場營銷活動設計中,因為這些模型能夠解釋需求回歸量的影響。例如,一個需求預測模型可以揭示某一產品的價格敏感性(當價格變化時需求有多少變化)與包裝大小和和銷售區域的人口特性緊密相關,這就暗示了可以在不同的商店使用不同的價格並對不同包裝的產品設定不同的單位毛利率。
我們將在後面的章節中把需求預測模型用在價格優化和品類計劃問題上。
解決方案
需求預測可以被認為是一個相對簡單的數據挖掘問題,只需要建立一個回歸模型並用歷史數據進行評估。然而,設計回歸模型則不是那麼簡單的事情,因為需求受到很多有著複雜依賴關係的因素的影響。
在本節中,我們將研究文獻 [KOK07] 為 Albert Heijn(一家荷蘭的連鎖超市)構建並驗證的回歸模型。這一模型基於早期的營銷研究如 [BG92],以及時尚零售商如 RueLaLa[JH14] 和 Zara[CA12] 的實踐,這些實踐中應用了相似的模型。
然而,重要的是要理解不同的優化問題需要不同的需求預測模型並且幾乎不可能構建通用的需求模型來整合各種不同的需求影響因子。
我們從以下對一給定產品的需求模型開始:
此處:
- V 是在給定時間窗口內顧客到訪商店的數量,例如一天。
- Pr(purchase | visit) 是客戶在逛商店期間購買任意商品的概率。
- Pr(j | purchase) 是當客戶發生購買時在所有可選項中選擇產品的概率。
- E{Q | j;purchase} 是當客戶選擇了產品併購買時購買數量(單位數量)的數學期望。
公式(3.1)中的所有因素都可以用店鋪的歷史交易數據來估計。需求通常與日期(周幾、節假日等)和店鋪(大小、鄰近區域的人口統計情況等等)相關,所以我們引入下標 t 和 h 來分別表示日期和店鋪,而估計的需求就是這些參數的函數。
另外,商店屬性,如大小、位置和平均消費者的收入可以納入模型作為回歸。根據 [KOK07],商店訪客的數量可以建模如下:
此處 Tt 是天氣溫度,Wt 是天氣舒適度指數(濕度、陰晴等),Bti 和 Eti 分別是表示一天是星期幾和公共假期的 0/1 啞變數,H 是公共假期的天數,而 α 是回歸係數。
購買事件是一個二值變數(購買/沒有購買),所以我們可以用一個標準的建模方法 - 將購買概率用一個 Sigmoid 函數來表達並從數據估計指數參數:
則 x 的回歸模是:
此處 Ajht 是啞變數,產品 j 在促銷時值為 1 否則為 0,Nh 是所有產品的數量,而 β4 對應的是促銷產品佔整體銷售產品中的百分比。
Pr(j | purchase) 的估計則更為棘手一些。客戶選擇建模在本質上是計量經濟問題,是一個特別的經濟學研究分支——選擇建模理論。選擇建模理論證明了多項 logit 模型(MNL)是有效的方法來對多個選項中選擇的概率進行建模。
此處會 i 迭代遍歷所有產品,yj 是一個參數變數。類似於購買事件的概率,我們對參數 yj 建立了一個回歸模型:
此處係數 Γn+1 和 數 Γn+2 由所有產品共享,Rjht 和 R 分別是單個產品的價格和產品的平均價格,而 Ajht 和 A 是促銷啞變數和平均促銷率,如上面對購買可能性回歸模型描述的那樣。
最後,單位產品的平均銷售數量可以建模如下:
通過將上述模型代入根表達式(3.1),可以得到完全特別的需求預測模型。 這一模型可以根據零售商的業務用例來調整,這些跳幀個可以通過增加更多的解釋性變數如營銷事件來完成。
推薦閱讀:
※文化消費 | 全國第一雜誌的IP化之路
※Ted Baker利用360度影片推廣2017年新款
※18年2.28消息:「李寧到中國李寧」現象:國際零售進入中國時間(一)
※18年-2.25消息:堡獅龍半年虧損過千萬 幾無翻身希望
※什麼是新零售