(本實驗選用資料為真實電商脫敏資料,僅用于學習,請勿商用)
在上一期基于協同過濾的的推薦場景中,我們介紹了如何通過PAI快速搭建一個基于協同過濾方案的推薦系統,這一節會介紹一些如何基于推薦對象特征的推薦方法。
首先看下整個業務流程圖,這是一個基于對象特征的推薦場景的通用流程:
- 首先把資料導入Maxcompute,有監督的結構化資料
- 接着做特征工程,在特征工程環節主要做一些資料的預處理以及特征的衍生,特征衍生的作用是擴充資料次元,使得資料能更大限度的表示業務特點
- 接着把資料通過拆分分成兩份,一份通過分類算法生成二分類模型,另一份資料對模型效果進行測試
- 最後通過評估元件得到模型效果
一、業務場景描述
通過一份真實的電商資料的4、5月份做模型訓練生成預測模型,通過6月份的購物資料對預測模型進行評估最終選擇最優的模型部署為線上http服務供業務方調用。
本次實驗選用的是PAI-Studio作為實驗平台,僅通過拖拽元件就可以快速實作一套基于對象特征的推薦系統。本實驗的資料和完整業務流程已經内置在了PAI首頁模闆,開箱即用:
二、資料集介紹
資料源:本資料源為天池大賽提供資料,資料按時間分為兩份,分别是7月份之前的購買行為資料和7月份之後的。
具體字段如下:
字段名 | 含義 | 類型 | 描述 |
---|---|---|---|
user_id | 使用者編号 | string | 購物的使用者ID |
item_id | 物品編号 | 被購買物品的編号 | |
active_type | 購物行為 | 0表示點選,1表示購買,2表示收藏,3表示購物車 | |
active_date | 購物時間 | 購物發生的時間 |
資料截圖:
三、資料探索流程
本次實驗選用的是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模型訓練和業務應用的打通。