什麼是RecEng:算法
推薦引擎( Recommendation Engine,簡稱RecEng )是在阿里雲計算環境下創建的一套推薦服務框架,用於實時預測用戶對物品偏好,支持您定製推薦算法,支持 A/B Test 效果對比。 阿里雲推薦引擎,以數據驅動業務,經過人工智能實現1對1營銷,爲您的顧客提供量身定作的服務,幫助企業快速創新。同時可以爲您的企業下降運營成本,提升顧客對企業的滿意度和忠誠度,提高企業的業務目標。
安全
課程詳細內容:搭建個性化推薦引擎系統
框架
本認證系統的講解了推薦系統的概念、應用、算法原理,並詳細介紹了阿里的推薦引擎產品RecEng,最後經過一個微項目讓學員親自動手搭建一個推薦系統。less
整個過程分爲數據上傳、數據預處理、推薦系統設置、測試上線四個部分,學員可參考本實驗,結合企業自身業務和需求,將所學應用到實踐中去。測試
經過本案例,學員可瞭解推薦系統的概念、應用、算法原理以及阿里的推薦引擎產品RecEng的使用方法。經過動手實踐,學員能夠獨立使用推薦引擎產品RecEng快速搭建企業推薦系統。
網站
推薦引擎基本概念:
阿里雲
指RecEng的使用者,系統中由其阿里雲帳號表明。一般客戶是一個組織,RecEng中經常使用org表示客戶。雲計算
指客戶的用戶,即RecEng使用者的用戶。推薦是一個2C的服務,使用推薦服務的客戶必然有其本身的用戶,RecEng使用者的用戶簡稱爲「用戶」,系統中經常使用user表示用戶。人工智能
指被推薦給用戶的內容,能夠是商品,也能夠是歌曲,視頻等其餘內容,系統中經常使用item表示物品。線程
業務針對數據集定義,定義了算法所能使用的數據範圍。一個客戶在RecEng上能夠有多個業務,不一樣的業務必然有不一樣的數據集。RecEng要求每一個業務提供四類數據(不要求所有提供):用戶數據,物品數據,用戶行爲數據,推薦效果數據。每一組這樣的數據就構成一個業務。系統中經常使用biz表示業務。
好比某客戶A有兩類被推薦的物品,分別是視頻和歌曲,因而客戶A能夠在RecEng上創建兩個業務M和N,其中M的物品數據爲視頻,N的物品數據爲歌曲,其餘的數據(指用戶數據,用戶行爲數據等)能夠都相同。在這種方案下,業務M和N的數據是獨立的,即業務M雖然能看到用戶對於歌曲的行爲,可是業務M中不包含歌曲的物品數據,因此會丟棄用戶對於歌曲的行爲;若是業務M中某用戶只對歌曲有行爲,對視頻沒有行爲,業務M也會丟棄這類用戶。反之對業務N亦然。
一個業務最好只推薦一類物品。多類物品的推薦在後續的行業模板會有支持,須要引入板塊(plate)的概念,一份業務數據能夠生成多個板塊的數據集,場景綁定某個板塊進行推薦算法計算。
場景指的是推薦的上下文,每一個場景都會輸出一個API,場景由推薦時可用的參數決定。有兩種場景最爲常見,分別是首頁推薦場景和詳情頁推薦場景。顧名思義,在執行首頁推薦時,可用的參數只有用戶信息;而在執行詳情頁推薦時,可用的參數除了用戶信息,還包括當前詳情頁上所展現的物品信息。系統中經常使用scn表示場景。
一個業務能夠包含多個場景,即對於某個業務A,它包含多個首頁場景也是徹底能夠的。
事實上,回到場景的原始定義,場景只是由推薦的上下文決定,客戶徹底能夠根據本身的需求創建全新的場景,好比針對搜索關鍵詞的推薦場景,這時可用的參數除了用戶信息,還有用戶所輸入的關鍵詞。
算法流程指數據端到端的處理流程,一部分流程屬於業務範疇,如數據導入流程,效果計算流程,數據質量分計算流程;一部分屬於場景,好比場景算法流程。從數據源類型和產出來劃分,又分爲離線流程,近線流程,在線流程
1. 離線流程
通常狀況下,離線流程的輸入和輸出都是MaxCompute(原ODPS)表,因此離線數據規範其實上是一組MaxCompute表的格式規範,包括接入數據、中間數據和輸出數據三類數據的格式規範。接入數據指客戶離線提供的用戶、物品、日誌等數據,中間數據是在離線算法流程中產生的各類中間性質的結果數據表,輸出數據是指推薦結果數據表,該結果最終將會被導入到在線存儲中,供在線計算模塊使用。
2. 近線流程
推薦引擎的的近線流程主要處理用戶行爲發生變化、推薦物品發生更新時,對離線推薦結果進行更新。不像離線算法,自然以MaxCompute(原ODPS)表做爲輸入和輸出,近線程序的輸入數據能夠來自多個數據源,如在線的表格存儲(原OTS),以及用戶的API請求,又或者是程序中的變量;輸出能夠是程序變量,或者寫回在線存儲,或者返回給用戶。出於安全性考慮,推薦引擎提供了一組SDK供客戶自定義在線代碼讀寫在線存儲(Table Store),不容許直接訪問,因此須要定義每類在線存儲的別名和格式。對於須要頻繁使用的在線數據,不管其來自在線存儲仍是用戶的API請求,RecEng會預先讀好,保存在在線程序的變量中,客戶自定義代碼能夠直接讀寫這些變量中的數據。
3. 在線流程
推薦引擎的的在線流程負責的任務是推薦API接收到API請求時,實時對離線和近線修正產生的推薦結果進行過濾、排重、補足等處理;後者主要處理用戶行爲發生變化、推薦物品發生更新時,對離線推薦結果進行更新
一個場景只包含一個離線流程和一個近線流程,能夠包含多個在線流程,用於支持A/BTest。
算法策略定義了一套離線/近線流程。而且透出相關的算法參數,幫助客戶構建本身的算法流程。一個場景能夠配置多個算法策略,最終會合並執行,產出一系列推薦候選集和過濾集,在線流程經過引用這些候選集來完成個性化推薦。
做業指運行中的離線流程實例,做業和離線流程的關係徹底等同於進程和程序的關係。每一個做業都是不可重入的,即對每一個離線流程,同一時間只容許運行一份實例。做業直接存在上下游關係,若是上游做業失敗,下游任務也會被取消。
更多精品技術課程:
阿里雲大學官網(阿里雲大學 - 官方網站,雲生態下的創新人才工場)