大資料下的關聯規則,你知多少?

大聖眾包平臺發表於2016-11-18

作為產品推薦中最常用的演算法之一,你對關聯規則知道多少呢?本文從概念和基本指標說起,向你介紹一些指標應用的方法。

  關聯規則是產品推薦中最常用的演算法之一,簡單地說,就是通過客戶的歷史購買資訊,挖掘出客戶在所有產品間按照某種順序進行選擇的可能性。然而,關聯規則中的常用度量指標並不唯一,三四個指標相互聯絡,如何進行合理的排列組合、找出值得向客戶推薦的產品呢?我們將從簡化的實際場景跟大家探討一下究竟如何應用這些指標去做產品推薦。

  首先,我們先來了解一下關聯規則中所涉及到的一些指標:

  1. 產品的期望概率

  產品期望概率就是對於任意一個客戶來說,購買某一產品的可能性。

  如果我們現在有兩個產品A和B,那麼A、B的期望概率就是所有客戶中購買了產品A或者產品B的比例,也就是P(A)和P(B)。

  2. 產品的置信度和支援度

  置信度是用來衡量客戶在選擇一個產品(即前項產品)後,又選擇另一個產品(即後項產品)的可能性。比如,我們想知道有多少客戶選擇了A之後又選擇了B,其實就是統計學中條件概率,表示式為:

  P(B|A)=P(A,B)/P(A)

  分母中P(A,B)的意思為同時選擇A、B的概率,也就是關聯規則中的支援度。從公式中,我們可以看出,置信度就是支援度與產品A(前項產品)期望概率的比值。

  3. 產品的提升度

  那麼,是不是產品的置信度越高,我們就越應該給買了產品A的客戶推薦產品B呢?

  答案並非如此。舉個例子來說,如果產品B是一個特別大眾的產品,幾乎所有客戶都會購買,而產品A卻是一種小眾產品,只有一小撮人會購買,那麼,置信度

  P(B|A)=P(A,B)/P(A)

  會無限接近於1,相應的支援度也會很高。也就是說,雖然購買了產品B客戶客幾乎都會購買產品A,但產品B的高購買率並非受益於產品A,不是因為客戶先購買了產品A帶來的提升。

  所以,為了測量先購買某一產品對另一產品購買度的提升比例,關聯規則中提出了提升度這一指標,表示式為置信度與後項產品期望概率的比值,即

  P(B|A)/P(B)=P(A,B)/(P(A)*P(B))

  只有當提升度大於1,才能說明購買過產品A的客戶比任意一個客戶有更高可能性去購買產品B,才有推薦的必要性。

  通常在關聯規則中,我們會採用Apriori演算法去計算以上指標,篇幅所限,具體演算法就不再細說了,感興趣的讀者可以尋找相關資料。下面就展示一個通過演算法得到的規則表吧,來看看業務中會用到的資訊究竟長什麼樣吧:

  需要注意的是,在演算法中我們已經自行排除了一些出現概率較低的規則,一般會將產品同時發生率和置信度根據資料本身的情況設定一個閾值。

  但是,有了以上幾個指標資料之後,我們又要如何給客戶進行產品推薦呢?實際應用中,我們可以從兩個方向出發:

  1. 以規則為導向

  舉個例子,現在有一個客戶進入店中,我們通過歷史資訊知道了他曾經購買過何種產品,接下來我們要如何給他做推薦呢?

  以規則為導向的意思是說,通過篩選購買前項產品的客戶群,來推薦其購買右邊的產品。這裡其實需要解決兩個問題,一是客戶購買了多種產品,那要針對哪一種種前項產品做推薦呢?二是對於同一前項產品,又該推薦何種後項產品呢?

  解決這兩個問題也就是要解決兩個順序,即前項產品的推薦排序和相同前項產品下的後項產品排序。前項產品推薦排序方面,建議以前項產品的期望概率出發,從大到小進行排序。當確定了前項產品後,推薦後項產品的順序則應該綜合考慮提升度和置信度。由於提升度的大小是由置信度(分母)和後項期望概率(分子)的比值決定,所以會存在由於後項期望概率(分子)過小、而導致提升度反而比較大的情況。因此,在後項推薦的時候,如果一定要有個先後順序,則是先篩選出提升度大於1的規則,隨後再根據置信度的大小進行排序。

  2. 以產品為導向

  以產品為導向,意味著你有一款待銷的產品,需要通過回溯規則的左邊,找到最有可能購買的客戶。這種情況下,我們已經確定了後項期望概率,就可以同樣通過提升度大於1的規則,隨後在根據置信度的大小進行排序,找到推薦關係比較強的產品的購買者。



相關文章