背景

  • 對象儲存服務OSS

    阿里雲對象儲存服務(Object Storage Service,以下簡稱 OSS),是阿里雲提供的海量、安全、低成本、高可靠的雲端儲存體服務。

  • 雲機器學習服務平台PAI

    阿里雲機器學習服務PAI(Platform of Artificial Intelligence,以下簡稱PAI)是一款一站式的機器學習服務平台,包含大量封裝的演算法組件和視覺化檢視,用戶上手容易。

  • 業務場景

    本文通過OSS與PAI的結合,為一家傳統的文具零售店提供決策支援。本文涉及的具體業務場景(場景與數據均為虛擬)如下:

    一家傳統的線下文具零售店,希望通過資料採礦尋找強相關的文具品類,幫助合理調整文具店的貨架布局。但由於收銀裝置陳舊,是一台使用XP系統的POS收銀機,可用的銷售數據僅有一份從POS收銀機匯出的訂單記錄(csv格式)。本文介紹如何將此csv檔案匯入OSS,並連通OSS與PAI,實現商品的關聯推薦。

步驟

  1. 數據匯入OSS
    1. 新建一個名為“oss-pai-sample”的Bucket。
    2. 記錄其endpoint為 oss-cn-shanghai.aliyuncs.com。
    3. 選擇儲存類型為標準儲存
      说明
      OSS中有三種儲存類型,相關介紹請參見儲存類型介紹
    4. 單擊Bucket名稱(oss-pai-sample),然後依次單擊檔案管理 > 上傳檔案,將訂單數據Sample_superstore.csv上傳至OSS。
    5. 上傳成功,介面如下圖所示:
  2. 建立機器學習服務項目
    1. 在控制台頁面左側選擇機器學習服務,單擊右上方的建立項目
    2. 在顯示的DataWorks新用戶引導介面中,勾選region(本文中選擇與OSS相同的region:華東2),並勾選計算引擎服務機器學習服務PAI,然後單擊下一步
    3. 項目建立成功後,開通服務列中會顯示MaxCompute和機器學習服務PAI兩個表徵圖,如下圖所示:
    4. 回到機器學習服務頁面,點擊進入機器學習服務
  3. 連通OSS與PAI
    1. 在機器學習服務介面左側選擇組件,並將OSS資料同步組件拖拽至畫布。

      介面右側會提示填入組件需要的以下資訊:

      • OSS endpoint:根據步驟一中記錄的資訊,endpoint 為 oss-cn-shanghai.aliyuncs.com。
      • OSSaccessId 和 OSSaccessKey 可以在Object Storage Service的介面中獲取,如下圖所示:

      • OSSbucket 和 object 分別為 oss-pai-sample 和 Sample_superstore.csv。
      • OSScolumn 映射的作用是為OSS中的csv檔案增加列名。例如,虛擬數據Sample_superstore.csv共有如下6列:

        則OSScolumn映射應該填入:0:order_id,1:order_date,2:customer_id,3:item,4:sales,5:quantity

    2. 單擊運行,成功後右鍵查看組件,可觀察前100條數據,如下圖所示:

      此時OSS中的csv檔案已經在MaxCompute中生成一張暫存資料表:pai_temp_116611_1297076_1

      至此,本案例最關鍵的步驟已經完成,OSS中的數據已經與PAI連通,可以作為機器學習服務的樣本進行訓練。

數據探索流程

本案例中的數據探索流程如下:

本案例按8:2的比例將來源資料拆分為訓練集和測試集,其中一個訂單中可能有多個item,故ID列選擇order_id,保證含有多個item的訂單不會被拆分,如下圖所示:

本案例中共有17個產品item。通過協同過濾演算法組件,取相似性最高的item,結果如下表:

結論

通過機器學習服務,我們發現“紙張”與“訂書器”二者的相似性較高,且與其它產品也有較高的相似性。

對於這家文具零售店來說,根據此數據發現可以有兩種布局貨架的方式:

  • 紙張和訂書器貨架放在最中間,其它產品貨架呈環形圍繞二者擺放,這樣無論顧客從哪個貨架步入,都可以快速找到關聯程度較高的紙張和訂書器。

  • 將紙張和訂書器兩個貨架分別擺放在文具店的兩端,顧客需要橫穿整個文具店才可以購買到另外一樣,中途路過其他產品的貨架可以提高交叉購買率。當然,此布局方式犧牲了用戶購物的便利性,實際操作中應保持慎重。