機器學習簡介,ALS、LR、GBDT

市面上的主流app,大多數情況下不同的用戶看到的頁面都是不同的,這裏面就有一個推薦的因素了。

那麼我們如果想要做推薦,首先需要實現的當然是千人千面,也就是不同的人推薦展示的內容是不一樣的,再有就是需要根據場景去推薦。

推薦的方法

基於規則的推薦:可以按照銷量、品類等方式來推薦。

基於傳統機器學習的推薦:是根據海量的用戶的歷史行爲或門店用戶的特徵等。當然,上面說的推薦都是基於機器學習的算法。

基於深度學習的推薦:基於神經網絡的算法,可以更深層次的發掘用戶的訴求,通過不斷地反推遞歸來計算。

推薦模型

規則模型:有明確的規則定義,有簡單的算數公式。

機器學習模型訓練:數據訓練後的算數公式。雖然也有調節的過程,但更多的會依賴歷史行爲上的數據,只要這些數據足夠好,就可以推算出算數公式。

機器學習模型預測:待預測數據經過訓練模型算數公式後的結果。例如有用戶的基本數據和歷史行爲,那麼就可以拿這些數據跟我們門店的特徵共同做訓練。算出算數公式。

模型評價指標

離線指標:查全率、查準率、auc(是否預測對的比預測錯的更靠前)等

在線指標:點擊率、交易轉化率等

A/B測試:A組和B組的公式同時測試,看哪個好。

推薦系統架構

先說一下召回排序和重排,召回相當於根據用戶習慣,從一堆數據中心選取其中前100個,然後將前100個商品用另一種算法精排,然後進行第三次排序,這裏的重排可以將例如做廣告的上架的排序提前。一般三種排序的算法都是不一樣的。

再說下數據層,在線數據採集是指用戶的行爲,例如點擊、交易等,離線數據採集是指業務數據庫的數據等,這些數據都可以歸到大數據平臺,供機器學習來使用。離線召回模型是指從大數據平臺抽取想要的數據訓練的模型。協同過濾大概就是指:AB兩個用戶的行爲都很類似,有一天B新添加了一個商品,那麼就把這個商品推薦給A。然後通過模型計算後將數據存到存儲設備中,這樣,當用戶訪問的時候,粗排可以從中拿取數據。


個性化召回算法ALS

ALS是最小二乘法,他利用矩陣分解的結果無限逼近現有數據,得到隱含特徵。再利用隱含的特徵預測其餘結果。

先看下錶格,4個用戶,user2瀏覽過商品2和商品3,不管瀏覽了幾次,都記做1分,user1購買過商品1,所以在1分的基礎上再加2分,也就形成了我們這個矩陣表格。

  商品1 商品2 商品3
user1 3.0    
user2   1.0 1.0
user3     3.0
user4 1.0    

而推薦系統需要做的是挖掘用戶的潛在需求,就是預測沒有數值的矩陣。這就是ALS要做的事情。

那ALS是怎麼做的呢?

有兩個表:

  特徵1 特徵2 特徵3 特徵4 特徵5
user1 0.21 0.31 0.01 0.20 0.89
user2 0.29 0.22 0.31 0.23 0.12
user3 0.12 0.68 0.56 0.63 0.11
user4 0.12 0.98 0.54 0.34 0.34
  特徵1 特徵2 特徵3 特徵4 特徵5
商品1 0.43 0.95 0.23 0.63 0.22
商品2 0.23 0.05 0.65 0.23 0.42
商品3 0.11 0.46 0.34 0.27 0.27

每個user和每個商品都會有五個特徵,當然兩個表中的特徵可以不一樣,但是數量必須一樣,而且有相對應的打分。然後通過

V'=UP^{T}user矩陣和商品p轉置矩陣相乘,user1的特徵1乘商品1的特徵1,最後相加,就會生成一個我們第一個的表格。那麼ALS就是通過不斷地遞歸擬合,去逼近現有表格中的分數,從而預測得到其他空格里面的數字。


個性化排序算法LR

LR,也叫邏輯迴歸。看一個公式:

Y=ax1+bx2+cx3+dx4...

排序的問題在某些意義上也可以看成是點擊率預估,公式中x1x2x3這些可以看成是用戶的特徵,例如x1是年齡,x2是性別等等,在公式中,每個特徵都有一個權重abcde等,結果會得到一個Y,越趨近1代表點擊概率越大。這是個預測的過程。

LR算法也就是要算出abcde,在大數據平臺會採集Y的樣本,可能是1也可能是0,上面途中,藍色爲正樣本,紫色爲負樣本,也lr需要推算出紅線,等學習出紅線以後,就可以做預測了,新進來一個x點,可以根據紅線來推算這個點是正樣本的概率大還是負樣本的概率大。這就是比較簡單的邏輯迴歸的排序算法原理。


決策樹算法

決策樹算法,事實上是一個多重分類選擇器組合承德結果,也就是輸入一個參數,根據這個參數返回1/0,舉個例子的話,可以想象成以前雜誌上的那種心理測試題。通過多個選擇,獲得一個結果。

那麼如何定義決策樹的每個節點的特徵呢?原則上越能分出絕大部分特徵的越往上。如何衡量?數學上有一個名詞叫做信息熵,來衡量信息量的大小,也就是對隨機變量不確定的一個衡量,熵越大,不確定性越大。

舉個例子,天氣有晴天、多雲、雨天,溫度有冷、熱、適中,溼度有高、中等,風有有風、無風,最後有個結果,是否出去玩。

那麼我們如何構建這個抉擇樹?我們選取熵大的節點放在上面,依次往下。離散特徵直接按照分類選擇器,連續特徵可以用二分、三分等分類方式進,例如小20歲,20-40等等。

對於決策樹的缺點:樣本特徵過多時,樹的高度太高。樣本特徵本身有問題時,如果過擬合,會對預測產生偏差。

爲了避免決策樹的缺點,我們對決策樹衍生出了兩種算法:隨機森林法和GBDT

隨機森林:通過隨機的選擇樣本(放回抽樣),也就是隨機選擇幾個樣本,幾個特徵,生成一個決策樹,放回去再隨機選擇樣本生成決策樹,這樣就可以生成隨機森林。最後在測試階段,把所有決策樹的結果彙總到一起取平均數。

當然,隨機的缺點也就是不確定性,既是優勢、又是劣勢。基於這個,衍生出了另一種算法:GBDT

關於GBDT,順序爲:

從初始訓練集中得到一個基準學習器。

用基準學習器預測訓練樣本並調整做錯樣本屬性的權重。

反覆迭代生成T個學習器

T個學習期串行預測加權結合

對於GBDT,它是以第一棵樹作爲基準,逐步調整,所以這樣出來的樹也就更準確了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章