基於物件特徵的推薦

阿里云云棲社群發表於2018-12-12

(本實驗選用資料為真實電商脫敏資料,僅用於學習,請勿商用)

在上一期基於協同過濾的的推薦場景中,我們介紹瞭如何通過PAI快速搭建一個基於協同過濾方案的推薦系統,這一節會介紹一些如何基於推薦物件特徵的推薦方法。

首先看下整個業務流程圖,這是一個基於物件特徵的推薦場景的通用流程:

  • 首先把資料匯入Maxcompute,有監督的結構化資料
  • 接著做特徵工程,在特徵工程環節主要做一些資料的預處理以及特徵的衍生,特徵衍生的作用是擴充資料維度,使得資料能更大限度的表示業務特點
  • 接著把資料通過拆分分成兩份,一份通過分類演算法生成二分類模型,另一份資料對模型效果進行測試
  • 最後通過評估元件得到模型效果

一、業務場景描述

通過一份真實的電商資料的4、5月份做模型訓練生成預測模型,通過6月份的購物資料對預測模型進行評估最終選擇最優的模型部署為線上http服務供業務方呼叫。

本次實驗選用的是PAI-Studio作為實驗平臺,僅通過拖拽元件就可以快速實現一套基於物件特徵的推薦系統。本實驗的資料和完整業務流程已經內建在了PAI首頁模板,開箱即用:

二、資料集介紹

資料來源:本資料來源為天池大賽提供資料,資料按時間分為兩份,分別是7月份之前的購買行為資料和7月份之後的。
具體欄位如下:

欄位名 含義 型別 描述
user_id 使用者編號 string 購物的使用者ID
item_id 物品編號 string 被購買物品的編號
active_type 購物行為 string 0表示點選,1表示購買,2表示收藏,3表示購物車
active_date 購物時間 string 購物發生的時間

資料截圖:

三、資料探索流程

本次實驗選用的是PAI-Studio作為實驗平臺,僅通過拖拽元件就可以快速實現一套基於協同過濾的推薦系統,並且支援自動調參以及模型一鍵部署的服務。

實驗流程圖:

(1)特徵工程

在特徵工程的流程中是把最原始的只有4個欄位的資料通過特種工程的方法進行資料維度的擴充。在推薦場景中有兩個方面特徵,一方面是所推薦的物件的特徵,另一方面是被推薦物件的特徵。

在商品推薦這個案例中:

  • 被推薦物件為商品(item),擴充的維度為每個item被購買量、每個item被點選量、每個item被點選購買率(購買量除以點選率)
  • 推薦物件為使用者(user),擴充的維度為每個user總的購買量、總的點選量、總的點選購買率(點選數除以購買率,可以得出每點選多少次購買一個產品,可以用來描述使用者購物的果斷性)

最終資料由原始的4個欄位變成了10個欄位:

(2)模型訓練

現在已經構建了一個大寬表,有了做完特徵工程的結構化資料,現在就可以訓練模型了。這個案例中選用了邏輯迴歸演算法,在做模型訓練過程中有一個痛點就是如何找到合適的引數,對於邏輯迴歸引數(如下圖)而言,如何調整以下幾個引數,使得模型訓練能達到最好的效果是一個非常有挑戰的任務。

為了解決繁瑣的調參工作帶來的勞動量問題,PAI產品內建了AutoML引擎幫助調參,在頁面上開啟AutoML,只要設定下需要調參的演算法的引數範圍以及評估標準,後臺引擎即可在最小的資源消耗下找到最合理的引數,詳見:

(3)模型評估

模型評估模組是用預留的一部分未參與模型訓練的資料評估模型質量,通常推薦場景都是二分類實驗,可以使用混淆矩陣和二分類評估元件去評估結果。

  • 二分類評估:開啟元件選擇“圖表”,會展示下圖ROC曲線,其中藍色區域的面積為AUC值,面積越大表示模型質量越高

  • 混淆矩陣:通過混淆矩陣可以確定具體的預測準確率、召回率、F1-Score等指標

(4)模型線上部署

模型生成後,如果效果也達到預期,可以使用PAI-EAS將模型一鍵部署為線上服務,通過http訪問。點選畫布上的“部署”按鈕,選擇“模型線上部署”功能,選擇需要部署的模型。

後續流程可以參考線上預測文件:https://help.aliyun.com/document_detail/92917.html

部署成線上服務之後,模型服務可以通過http請求訪問,這樣就可以做到模型跟使用者自身的業務結合,完成PAI模型訓練和業務應用的打通。


相關文章