在這一篇,我們將介紹 Recommendations Solution,並且實際測試推薦結果。原先想要介紹 cognitive service Recommendations API,但這幾天赫然發現這個服務在明年初就會關閉,頓時間沒了題材。運氣很好的是,依據官方建議使用 Recommendations Solution 這個專案。簡單瀏覽一下似乎這專案與原先的 Recommendations API 差異不大,似乎只是轉換成專案版本,可提供有興趣的朋友測試。
伺服器架構
Recommendations Solution 這個專案可以直接佈署至 Azure,會產生 Azure Web Application, Azure Storage, 與 Azure Application Insights (通常我會刪掉這個),如下圖所示:
整個推薦解決方案包含了幾個步驟
資料 - (Catalog and Usage Data )
目錄資料包含提供給客戶的資料格式,檔案格式為csv,內容格式如下:
Item Id | Item Name | Item Category | Description | Features list |
---|---|---|---|---|
商品 Id | 商品名稱 | 商品目錄 | 描述(可省略) | 特徵(可省略) |
官方提供的範例如下:
使用資料即為實際交易資料,檔案格式為 csv,內容格式如下:
User Id | Item Id | Time | Event Type | Custom Event Weight |
---|---|---|---|---|
使用者 Id | 商品 Id | 時間 | 交易類型 *only used in model evaluation *used only if Custom Event Weight is not provided. | 交易權重 *only used in model evaluation *if provided, Event Type will be ignored. |
官方提供的範例如下:
官方的經驗為交易數量為商品數量20倍為不錯的數據,意思是你有 20項商品的時候,應該要有400 交易資料。但你仍然要試驗自己的最佳數據。
演算法 - Smart Adaptive Recommendations (SAR) Algorithm
在上一章節,我們有提到協同過濾 (Collaborative Filtering) 推薦方法,SAR 也是協同過濾方法之一,而此演算法主要會建立兩種矩正,藉此紀錄關聯性並進行推薦。
推薦計算方法則有兩種:
詳細計算內容不在贅述,若有興趣請見:https://github.com/Microsoft/Product-Recommendations/blob/master/doc/sar.md
API
很貼心的在你佈署完專案後,專案內附加 swagger 服務,讓你使用 API 與測試更加方便