大數據

推薦系統排序算法及架構說明

課程地址:https://developer.aliyun.com/course/2052

一、排序模塊在推薦系統中的位置

在如何構建企業級推薦系統系列課程的第一課中,我們介紹瞭如何去設計整個企業級的推薦系統架構。在第二課中,我們介紹了怎麼去理解召回算法以及召回算法的一些意義。在本節課中,我們分享一下推薦系統的排序算法,以及它的一些架構特點。首先,我們再回顧一下這張圖,確定一下排序算法在推薦系統中的一個位置。一個用戶進入到平臺,會發現有很多商品,得把用戶可能喜歡的商品先挑出來。我們通過召回模塊,進行一個初篩,縮小排序模型的一個受眾的範圍。
召回模塊從潛在的超大規模的item中篩選用戶可能喜歡的較小比例的item。比如說平臺上有10萬個item,用戶進來之後篩選出500個他可能會喜歡的。接下來通過排序模塊根據他的喜好程度對item進行排序。從這500個item裡怎麼挑出用戶最喜歡的東西,怎麼挑出用戶第二喜歡的東西,這時候需要一個排序的算法模型。它會針對這500個商品和用戶的一些特點,即用戶特徵進行一個排序。
image.png

二、排序算法介紹

我們今天介紹一下排序算法究竟有哪些種類,排序的模型該怎麼訓練,它的系統架構是怎麼樣的。排序模型非常多,隨著深度學習的發展,整個的排序算法已經從淺層的算法逐漸往深度學習遷移。目前比較經典的排序算法還是我列的這4種,如下圖所示。首先,邏輯迴歸是應用非常廣泛的一種算法。它是目前業內最經典的線性二分類算法,特點是容易上手,對於計算力要求低,模型可解釋性好。第二,FM算法近一兩年來,在很多客戶的場景中都得到大規模的應用,效果也不錯。它是通過內積的方式增強特徵的表現力。第三,在LR基礎上通過GBDT和特徵編碼增強數據特徵的可解釋性。第四,DeepFM算法也是現在被應用得非常多的一個深度學習的算法,它把深度學習和經典的機器學習算法做一個結合。如果大家剛開始嘗試搭建一套推薦系統,建議先從簡單的算法去嘗試,後續再逐漸的往更復雜的模型遷移。當然,這些算法都已經內置到了PAI平臺,已經可以插件化的應用。
image.png

三、離線排序模型訓練架構

接下來講一下排序模型該怎麼訓練產生,訓練過程分為離線訓練和在線訓練,首先講離線排序。
離線訓練用的是T-1的數據,也就是說,今天業務上用的模型是通過今天以前的數據訓練出來的。好處是可以把歷史的大量數據幾乎集合到一個數據倉庫裡,然後基於整體的全樣本的特徵和數據進行離線的訓練,並且再做一個離線的驗證。這樣的話,生成的模型已經離線驗證過了是沒問題的。第二天直接把它推到線上去用,可以保證一定的安全性和效果。這是一個離線的訓練模型的架構。目前幾乎所有的客戶都採用離線排序模型的訓練方案。如果你想做實時化的訓練,會有比較大的架構挑戰。
image.png

四、在線排序模型訓練架構

我們今天重點放在在線模型訓練這塊。相比於離線訓練,在線訓練提供什麼好處。離線訓練畢竟使用的是T-1或者T-2的數據去做的,沒有對線上實時產生的行為數據進行利用,對於數據的時效性利用相對較差。比如說,有這樣的一個場景,今天我的整個平臺只對14歲以下的少女做某個運營活動,而平臺上充斥了大量的年齡段的客戶,整個平臺的交互行為都變了,這個時候你的模型還是T-1去做的,將無法對線上業務做一個及時的感知。這個時候,通過在線訓練就能比較好的解決這個問題。在線模型訓練的流程如下圖所示。在線模型訓練意味著我可以用實時線上傳輸化的數據,然後用我們的實時機器學習模型訓練框架去做訓練。在線訓練雖然數據是實時進來的,但你的模型並不是從0開始的。而是說我從離線先訓練好這個模型,我站在離線模型的巨人的肩膀上,再往上去優化。這就是在線排序模型訓練的一個框架。它有3個特點。第一,它是基於Flink框架實現的流式模型訓練能力。第二,它是基於實時生成的模型去實時評估模型效果。第三,它具備線上模型回滾和版本管理的能力。你要達到這三個標準,才可以構建一個完整的在線模型訓練的架構。
image.png

五、參考資料

最後,介紹一下我們給大家準備的一些資料。這第一個link它對應的是PAI團隊結合自身過去幾年在推薦領域的一些探索,總結了140頁的推薦業務的動手實踐文檔。沒有機器學習背景的人基於我們這些文檔,也可以在一週之內搭建一套企業級的推薦系統,大家如果感興趣可以去用一下。另外這一個是PAI的產品地址。
image.png

Leave a Reply

Your email address will not be published. Required fields are marked *