閱讀476 返回首頁    go 阿裏雲 go 技術社區[雲棲]


概念解釋__產品簡介_推薦引擎-阿裏雲

客戶(org)

指RecEng的使用者,係統中由其阿裏雲賬號代表。通常客戶是一個組織,RecEng中常用org表示客戶。

用戶(user)

指客戶的用戶,即RecEng使用者的用戶。推薦是一個2C的服務,使用推薦服務的客戶必然有其自己的用戶,RecEng使用者的用戶簡稱為“用戶”,係統中常用user表示用戶。

物品(item)

指被推薦給用戶的內容,可以是商品,也可以是歌曲,視頻等其他內容,係統中常用item表示物品。

業務(biz)

業務針對數據集定義,定義了算法所能使用的數據範圍。一個客戶在RecEng上可以有多個業務,不同的業務必然有不同的數據集。RecEng要求每個業務提供四類數據(不要求全部提供):用戶數據,物品數據,用戶行為數據,推薦效果數據。每一組這樣的數據就構成一個業務。係統中常用biz表示業務。

比如某客戶A有兩類被推薦的物品,分別是視頻和歌曲,於是客戶A可以在RecEng上建立兩個業務M和N,其中M的物品數據為視頻,N的物品數據為歌曲,其他的數據(指用戶數據,用戶行為數據等)可以都相同。在這種方案下,業務M和N的數據是獨立的,即業務M雖然能看到用戶對於歌曲的行為,但是業務M中不包含歌曲的物品數據,所以會丟棄用戶對於歌曲的行為;如果業務M中某用戶隻對歌曲有行為,對視頻沒有行為,業務M也會丟棄這類用戶。反之對業務N亦然。

一個業務最好隻推薦一類物品,強行把多類物品放在一個業務中推薦,雖然RecEng不禁止這種做法,但是效果可能會打折扣。

場景(scn)

場景指的是推薦的上下文,說的更直白一點,場景由推薦時可用的參數決定。有兩種場景最為常見,分別是首頁推薦場景和詳情頁推薦場景。顧名思義,在執行首頁推薦時,可用的參數隻有用戶信息;而在執行詳情頁推薦時,可用的參數除了用戶信息,還包括當前詳情頁上所展示的物品信息。係統中常用scn表示場景。

一個業務可以包含多個場景,RecEng並沒有限定業務中每類場景的數目,即對於某個業務A,它包含多個首頁場景也是完全可以的。

事實上,回到場景的原始定義,場景隻是由推薦的上下文決定,客戶完全可以根據自己的需求建立全新的場景,比如針對搜索關鍵詞的推薦場景,這時可用的參數除了用戶信息,還有用戶所輸入的關鍵詞。

算法流程(path)

算法流程指數據端到端的處理流程,即從客戶的原始輸入數據開始,到產出最終的輸出結果為止。係統中常用path表示算法流程。

在RecEng中,算法流程分為兩類:推薦流程和實時修正流程。下文將會看到,一個場景下可以包含多個推薦流程;一個業務下至多隻能包含兩個實時修正流程。

推薦流程(rec_path)

推薦流程從客戶輸入的原始數據,如用戶信息,物品信息等開始,一直到產出能夠被客戶產品在線獲取的推薦結果為止。推薦流程由離線流程和在線流程兩部分組成,分別完成離線計算和在線推薦。係統中常用rec_path表示推薦流程。

一個場景下可以有多個推薦流程,客戶可以為每個推薦流程配置流量占比,實現A/B Testing功能。

  • 離線流程(offline_flow)

    離線流程以客戶提供的原始離線數據表,包括用戶信息,物品信息,用戶行為日誌開始,通過離線計算得到每個用戶、每個物品的特征,以及每個用戶可能感興趣的物品,和每個物品計算出與之相似的物品等,並將這些結果同步到在線存儲表格存儲(原OTS)上。係統中常用offline_flow表示離線流程。

  • 在線流程(online_flow)

    在線流程從客戶的產品發起的推薦API請求開始,根據API的參數獲取指定用戶在離線流程中計算好的信息,並根據在線流程定義的規則和算法進行過濾和排序處理,並最終返回給客戶的產品。係統中常用online_flow表示在線流程。

效果流程(index_path)

效果流程用於計算效果指標,一般每天一次。和其他流程不一樣的是,效果流程的過程不需要客戶配置,客戶隻需要選擇需要計算哪些指標,RecEng會自動生成效果流程的計算過程。

實時修正流程(mod_path)

實時修正流程從客戶實時上傳的實時日誌開始,經過一係列在線處理後將處理結果保存在在線存儲表格存儲(原OTS)上。根據實時處理的不同,實時修正流程可以分成針對單用戶數據的修正流程和針對物品數據的修正流程兩類。事實上,RecEng目前也隻支持這兩種實時修正流程,且每個業務下每種實時修正流程最多隻有一個實例。係統中常用mod_path表示實時修正流程。

針對單用戶的修正流程輸入數據為用戶實時日誌,輸出為修正後的用戶特征,或用戶感興趣的物品集合。係統中常用user_mod_path表示針對單用戶數據的實時修正流程。

針對物品數據的修正流程通過API或實時日誌輸入,根據輸入的要求調整調整可被推薦的物品及其信息。係統中常用item_mod_path表示針對物品數據的實時修正流程。

實時修正流程是針對推薦流程(rec_path)的,即每個推薦流程都可以,且隻能配置一個對應的實時修正流程。當然,為了簡便起見,不同推薦流程所對應的實時修正流程的處理邏輯是可以相同的,但在數據上它們是各自獨立的。

實時修正是RecEng中的高級功能,RecEng提供了實時修正功能的框架,以及一些可用於實時修正的默認算法,不同業務對實時修正的要求也有較大的不同,要充分發揮實時修正的功能,客戶需要根據需求自行定製實時修正算法。

算法(alg)

在RecEng中,算法就是算法流程中的處理節點,可以是比如像協同過濾這樣的推薦算法,也可以是很簡單的過濾或統計,或客戶自定義的邏輯,比如獲取所有用戶點擊最多的Top N個物品清單。係統中常用alg表示算法。

從算法的作者來看,算法可以分為兩類,即RecEng預先提供的算法(以下簡稱係統算法)和客戶自定義的算法(以下簡稱自定義算法)。係統算法可以被所有的客戶使用,而自定義算法則隻能被當前客戶使用。

算法從使用環境上分,可以分為離線算法和在線算法兩類。離線算法運行在MaxCompute(原ODPS)平台上,用Java編寫;在線算法運行在Node.js環境中,用Node.js編寫。RecEng中所有的離線算法都用於離線流程(rec_path->offline_flow),按功能的不同分為三類:

  • 業務算法:用於推薦業務相關的算法,包括特征抽取,興趣分析,相似計算等,這些算法通常會有一組可以調整的參數。

  • 質檢算法:用於進行數據質量檢測的算法,檢查離線算法每一步產出的結果是否滿足某些業務定義的規則。

  • 效果算法:用於計算效果報表中所展示指標的算法。

所有這些離線算法都是可以根據客戶需求自定義的。

RecEng沒有提供太多的在線算法,一般被用於在線流程(rec_path->online_flow),以及實時修正流程(mod_path)。online_flow中用到的在線算法相對簡單,主要是對推薦結果的評分,過濾和排序,mod_path中用到的在線算法會複雜一些,如何取舍視具體的需求而定。

流程模板

客戶可以把配置好的算法流程保存起來作為模板,以備後用。RecEng支持離線流程、在線流程、以及實時修正流程的流程模板。

RecEng預先設置了一套離線流程和在線流程的流程模板,客戶可以無需任何修改直接使用,實現一鍵配置。

作業(job)

作業指運行中的離線流程實例,作業和離線流程的關係完全等同於進程和程序的關係。每個作業都是不可重入的,即對每個離線流程,同一時間隻允許運行一份實例。

最後更新:2016-11-23 16:04:08

  上一篇:go DataV數據可視化__數加產品概覽_數加平台介紹-阿裏雲
  下一篇:go 部署和接入__產品簡介_推薦引擎-阿裏雲