如何利用Azure Machine Learning快速建立推薦系統

現在數位服務越來越多元,要讓消費者能有更好的體驗,就必須要精準的掌握消費者的喜好。針對每個服務的機會,我們都希望能快速掌握消費者的偏好,提供最好的推薦。無論消費者是在尋找一部可能喜歡看的商品、去附近可能喜歡的餐廳、還是一本可能喜歡閱讀的書,或者是對於可以在Facebook或LinkedIn上聯繫的具有類似興趣的人,都希望能有一個好的自動推薦系統。

推薦系統無所不在,如何快速搭建屬於自己的推薦系統,並上線服務持續優化它的準確度,就是提高競爭力的關鍵。這次展示的就是利用微軟發佈的Azure Machine Learning快速開發上線推薦系統,提供更廣泛的個人和企業用戶來使用,以便為他們自己的客戶提供更優質的服務。

推薦系統是如何運作?

一般來說,推薦系統中涉及兩種類型,我們稱之為用戶(User)和品項(Item)。 用戶是你想要提出建議的人,而品項是你想推薦給他們的東西,比如電影,書籍,網頁,食譜,甚至其他人。

假設,我們想根據在你的資料庫中,此用戶和其他用戶為某些餐廳提供的評價,向給定用戶推薦一家餐廳。 我們可以將推薦任務分為兩步:

  • 針對每個餐廳,預測用戶會如何評價它,例如, 給五星評級還是一顆星。 
  • 從符合條件餐館列表推行評分排序,推薦我們預測該用戶會給最高評分的餐廳。
但是,我們如何預測特定用戶如何評價他實際上沒有任何評價的餐廳呢? 這是機器學習(Machine Learning, ML)發揮作用的地方。

如何預測評分?

為了構建一個可以預測的機器學習模型,對於給定的用戶/項目組合,用戶如何評價項目,我們需要收集的數據包含用戶ID(userID)、品項ID(itemID)、評分(rating),可以將其視為一個大型矩陣,將用戶視為行,將品項視為列,將評分當作輸入的值。

用戶品項評分矩陣概念圖 (From Wiki)

這會是一個稀疏矩陣(sparse matrix, 有很多空格都會沒有資料),因為大多的用戶只會對一小部分品項進行評分。在Azure ML中的Bayesian 推薦系統(如果你對Bayesian推薦系統的數學模型有興趣,可以下載這篇來研究),就是用已經存在的用戶/品項配對評估資訊數據來訓練模型,預測出特定的用戶或品項的評分。這些評分不只可以用在於五星評級,也可以用在其他如購買,點擊,註冊,來電...等資訊。

如何對新用戶或新商品來進行預測呢?

在推薦系統中有個非常關鍵的問題,就是冷啟動(cold-start)問題:新的用戶可能還沒有對任何品項進行評分;另一方面,新的品項也沒有被足夠的用戶評分,來做出好的預測。

為了解決這個狀況,Azure ML 推薦系統可以根據用戶的其他資訊(如年齡、性別、地理位置...等任何信息)做類推,品項部份一樣可以參考,如電影中的分類,演員,導演,製作年份等信息。透過這個歸類的程序,我們就可以針對新用戶或新品項進行類推到有足夠評分基礎的群體中,來解決冷啟動的問題。

如果你急於構建自己的推薦系統,可以使用Azure ML中的功能,以及相關範例資料,就利用瀏覽器的圖形化界面,包括簡單的拖拉功能,並參考以下流程圖,快速的建立屬於自己的推薦系統了。



留言

這個網誌中的熱門文章

Power BI自動發送報告功能:Power BI Robots上線!! 從頭開始學

利用Power BI與R連結Google表單