電商產(chǎn)品設(shè)計:實現(xiàn)交叉銷售的Apriori算法
在電商行業(yè)里,有一個著名的公式:銷售額=UV*轉(zhuǎn)化率*客單價。而提高客單價的一個有效手段就是關(guān)聯(lián)銷售或者叫交叉銷售(cross-selling)。常見的產(chǎn)品形態(tài)就是組合產(chǎn)品、套餐搭配、配件中心等。而不同的商品如何搭配組合才能激發(fā)用戶最大的購買欲望就是一個關(guān)鍵的問題。今天,就介紹下關(guān)聯(lián)規(guī)則的Apriori算法。
一、簡介
Apriori算法是最常用的關(guān)聯(lián)規(guī)則挖掘算法。由RakeshAgrawal和Ramakrishnan Srikant兩位博士在1994年提出。關(guān)聯(lián)規(guī)則算法的目的就是在一個數(shù)據(jù)集中找出項與項之間的關(guān)系。在零售領(lǐng)域中,超市通過分析顧客的一張張訂單來指導(dǎo)商品的交叉銷售,所以也被稱為購物藍分析 (Basket analysis)。關(guān)于關(guān)聯(lián)銷售最有名的例子就是啤酒與尿布(真實性無證實)。講的是沃爾瑪員工通過訂單發(fā)現(xiàn)貨架相隔很遠的啤酒和尿布經(jīng)常出現(xiàn)在一個訂單里,他們走訪了顧客,發(fā)現(xiàn)妻子總是在上班前叮囑丈夫記得下班后買尿布回來,結(jié)果丈夫在買尿布的同時會順帶買一些啤酒。于是,沃爾瑪?shù)膯T工便把啤酒和尿布放在相鄰的位置,結(jié)果商品銷量大增。
Apriori算法的基本原理是用支持度表示關(guān)聯(lián)規(guī)則的強度,把具有關(guān)聯(lián)規(guī)則的商品看做一個集合。從最小的集合開始,篩選出支持度大于某個值的集合,然后合并集合,再循環(huán),直到找不集合為止。
二、名詞定義
- 關(guān)聯(lián)規(guī)則(association rules):形如”如果…那么…(If…Then…)”,前者為條件,后者為結(jié)果。一般表示為A→B。衡量一個規(guī)則是否好,可以用支持度和置信度衡量。
- 支持度(support):某事件發(fā)生的概率。A的支持度就是A被購買的概率:Support(A)=P(A)=num(A)/num(I)。A→B的支持度就是A和B同時購買的概率:Support(A→B)= P(A∩B) =num(A∩B)/num(I);
- 置信度(confidence):在A條件下,A和B共同購買的概率。Confidence(A→B)=P(B|A)=P(A∩B)/P(A)。
- 提升度(lift):相對于不用規(guī)則,使用規(guī)則可以提高多少。Lift(A→B)=Confidence(A→B)/Support(B)=P(B|A)/P(B)。
- K項集(K-itemset):同時購買的K項集合。
- 頻繁K項集(frequent itemset):滿足最小支持度閾值的K項集合。
- 候選K項集(candidate itemset):通過連接形成的K項集合。
三、原理
步驟:
- 先計算1項集的支持度,篩選出頻繁1項集。
- 然后排列組合出2項集,計算出2項集的支持度,篩選出頻繁2項集。
- 然后通過連接和剪枝計算出3項集,計算出3項集的支持度,篩選出頻繁3項集。
- 然后依次類推處理K項集,直到?jīng)]有頻繁集出現(xiàn)(具體例子參考首圖)。
關(guān)鍵:如何從K-1項集計算出K項集(K>=3,K=2時用組合公式C(2,n)即可)
- 連接:對K-1項集中的每個項集中的項排序,只有在前K-1項相同時才將這兩項合并,形成候選K項集(因為必須形成K項集,所以只有在前K-1項相同,第K項不相同的情況下才合并。)
- 剪枝:對于候選K項集,要驗證所有項集的所有K-1子集是否頻繁(是否在K-1項集中),去掉不滿足的項集,就形成了K項集。
四、局限
- 傳統(tǒng)的Apriori算法的計算量很大,當商品數(shù)據(jù)量大時更顯著,基本是不可計算的,不過后來有人用FP-Tree算法簡化了計算量。
- 電商常用的關(guān)聯(lián)規(guī)則應(yīng)用是單品推薦單品,所以一般只需要知道頻繁2項集即可。K>=3的項集并沒有被挖掘價值。
- 商品并不是全部平等銷售的,僅使用支持度衡量,容易導(dǎo)致出現(xiàn)假性關(guān)聯(lián)。組合、搭售、買贈、企業(yè)采購等訂單都會影響。
五、改進
- 支持度表示在歷史中A和B同時購買的概率,置信度表示A推薦B的可信程度。由此可以認為支持度*置信度表示A推薦B而A和B同時購買的概率。這樣相比于單純使用支持度更全面,同時避免了支持度中等或置信度中等的關(guān)聯(lián)規(guī)則被淘汰。
- 因為提升度表示提升單品購買概率的程度,所以可以使用提升度作為最終推薦依據(jù),避免組合、搭售、買贈關(guān)系的假性關(guān)聯(lián)。
本文由 @劉鑫(微信公眾號:pm-wolf)原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理?,未經(jīng)許可,禁止轉(zhuǎn)載。
沙發(fā) ??