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


內置算法和模板說明__用戶指南_推薦引擎-阿裏雲

離線算法流程模板

離線算法

在線算法流程模板

在線算法


離線模板信息表

模板code 簡介 適用場景 適用行業 數據規模 主要算法 冷啟動策略
main_ofl 默認首頁推薦離線計算流程 首頁 電商、社交 物品量級小於500萬。用戶量級小於1億 ig_sm_02, svdpp, crs_04
main_itm main_ofl基礎上支持在線物品修正 首頁 電商、社交 物品量級小於500萬。用戶量級小於1億 ig_sm_02, svdpp, crs_04
main_dft main_ofl基礎上增加topn冷啟動策略 首頁 電商、社交 物品量級小於500萬。用戶量級小於1億 ig_sm_02, svdpp, crs_04simple_default_list 熱門topn物品
detail_ofl 默認詳情頁推薦離線計算流程 詳情頁&首頁 電商、社交 物品量級小於500萬。用戶量級小於1億 ig_sm_02, svdpp, crs_04
detail_itm detail_ofl基礎上支持在線物品修正 詳情頁&首頁 電商、社交 物品量級小於500萬。用戶量級小於1億 ig_sm_02, svdpp, crs_04
detail_dft detail_ofl基礎上增加topn冷啟動策略 詳情頁&首頁 電商、社交 物品量級小於500萬。用戶量級小於1億 ig_sm_02, svdpp, crs_04simple_default_list 熱門topn物品
spl_grd_svd 簡單基於用戶顯式評分+svd矩陣分解的推薦計算模板 詳情頁&首頁 電影、音樂 物品量級小於500萬。用戶量級小於1億 svdppgrade_based_sm
ig_rec spl_grd_svd的變體 ,使用用戶行為和物品信息建模用戶評分 詳情頁&首頁 電影、音樂 物品量級小於100萬。用戶量級小於1000萬 svdppig_sm_01
spl_bhv_svd spl_grd_svd的變體 ,基於用戶行為建模用戶評分 詳情頁&首頁 電影、音樂 物品量級小於500萬。用戶量級小於1億 svdppig_sm_02
large_scale_rec 基於用戶行為的協同過濾推薦,支持百萬以上物品的推薦場景 詳情頁&首頁 電商、社交 物品量級小於5000萬。用戶量級小於10億 ig_sm_02, crs_04 熱門topn物品
content 利用用戶行為和物品內容相似度完成用戶-物品推薦的算法流程 詳情頁&首頁 視頻,圖書 物品量級小於500萬 tfidf_irf_01, crs_06ig_sm_02
content_cf 融合content與large_scale_rec 的推薦模板 詳情頁&首頁 視頻,圖書 物品量級小於500萬.用戶量級小於10億 tfidf_irf_01, crs_06ig_sm_02, crs_04
usr_tag_rec 一個簡單快捷的基於用戶標簽生成的群體推薦,可以做到千人百麵或者千人十麵。 首頁 電商 用戶量級小於10億 simple_user_tag_rec 用戶分組熱門topn物品
itm_prop_rec 一個簡單的計算相似物品進行物品-物品推薦的算法流程。 詳情頁 短視頻 物品量級小於500萬。 tfidf_irf_01, crs_06

離線算法流程模板

main_ofl

【簡介】

默認首頁推薦離線計算流程,基於用戶行為的協同過濾推薦。

【適用場景】

適用於首頁的推薦場景,用戶登錄後直接展現的推薦結果,如電商網站banner,熱帖推薦,以user_id 作為key獲取推薦列表。

【適用行業】

建議用於行為豐富的業務,如電商,社交。

【數據規模】

  • 建議物品量級小於500萬。
  • 建議用戶量級小於1億

【主要算法】

ig_sm_02, svdpp, crs_04

【數據約束】

  • 行為表需要 click,view,consume,use,search_click 行為類型的數據,至少有其中一種。
  • 用戶表和物品表實際並沒有使用,可以簡單處理^1 ,用戶屬性維度表和物品屬性維度表也是不需要的。
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【主要計算邏輯】

流程主要分3個階段

  1. 用戶行為評分階段:對用戶行為建模,融合多種行為特征,生成用戶評分。
  2. 相關性計算階段:使用兩種協同過濾算法(svdpp,crs_04)計算用戶-物品推薦列表。
  3. 列表融合階段:融合兩種推薦算法得到的用戶-物品推薦列表。(st_cb_02)

【建議搭配使用的在線模板】

main_ol


main_itm

【簡介】

main_ofl的變體,增加的在線的候選集篩選,適用於需要返回物品信息的場景。默認隻返回item_id 和打分,增加在線的候選集篩選,可以把候選集的 item_info 附在推薦列表返回返回。

【數據約束】

  • 需要可推薦物品表


main_dft

【簡介】

main_ofl的變體,增加默認推薦列表,通過全局熱門物品排序獲得。用於召回率較低的場景。

【增加算法】

simple_default_list

【建議搭配使用的在線模板】

detail_dft_ol


detail_ofl

【簡介】

默認詳情頁推薦離線計算流程,基於用戶行為的協同過濾推薦。

【適用場景】

適用於詳情頁或者首頁的推薦場景,用戶點擊物品詳情頁,展示物品相關的推薦列表,如買了再買,相關帖子推薦等,以user_id,item_id 作為key獲取推薦列表。

【適用行業】

建議用於行為豐富的業務,如電商,社交。

【數據規模】

  • 建議物品量級小於500萬。
  • 建議用戶量級小於1億

【主要算法】

ig_sm_02, svdpp, crs_04

【數據約束】

  • 行為表需要 click,view,consume,use,search_click 行為類型的數據,至少有其中一種。
  • 用戶表和物品表實際並沒有使用,可以簡單處理^1 ,用戶屬性維度表和物品屬性維度表也是不需要的。
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【主要計算邏輯】

流程主要分3個階段

  1. 用戶行為評分階段:對用戶行為建模,融合多種行為特征,生成用戶評分。
  2. 相關性計算階段:使用兩種協同過濾算法(svdpp,crs_04)計算用戶-物品推薦列表和物品-物品推薦列表。
  3. 列表融合階段:分布融合兩種推薦算法得到的用戶-物品推薦列表及物品-物品推薦列表。(st_cb_02)

【建議搭配使用的在線模板】

detail_ol


detail_itm

【簡介】

detail_ofl的變體,增加的在線的候選集篩選,適用於需要返回物品信息的場景。默認隻返回item_id 和打分,增加在線的候選集篩選,可以把候選集的 item_info 附在推薦列表返回返回。

【數據約束】

  • 需要可推薦物品表


detail_dft

【簡介】

detail_ofl的變體,增加默認推薦列表,通過全局熱門物品排序獲得。用於召回率較低的場景。

【可自定義算法優化參數】

可以參考 simple_default_list

【建議搭配使用的在線模板】

detail_dft_ol


spl_grd_svd

【簡介】

簡單基於用戶顯式評分+svd矩陣分解的推薦計算模板。直接取用戶的顯式評分(即bhv_type=grade,不考慮其他行為)進行svd矩陣分解(基於LTR排序學習指標進行優化)得到user,item的特征向量並計算相似度,適用於movielens類數據集。

【適用場景】

詳情頁&首頁

【適用行業】

movielens 數據集或者其他基於用戶評分的推薦場景,如電影推薦,音樂推薦。

【數據規模】

  • 建議物品量級小於500萬。
  • 建議用戶量級小於1億

【主要算法】

可以參考svdpp

【數據約束】

  • 行為表需要 grade 行為類型的數據。
  • 用戶表和物品表實際並沒有使用,可以簡單處理^1 ,用戶屬性維度表和物品屬性維度表也是不需要的。
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【主要計算邏輯】

流程主要分2個階段

  1. 用戶行為評分階段:直接使用grade行為類型的bhv_amt值作為用戶評分。
  2. 相關性計算階段:使用svdpp生成用戶,物品向量,計算相關性得到計算用戶-物品推薦列表和物品-物品推薦列表。

【建議搭配使用的在線模板】

detail_ol


ig_rec

【簡介】

spl_grd_svd的變體。評分模塊用ig_sm_01替換grade_based_sm,基於用戶行為及物品信息計算評分。建議沒有顯式評分,且具有豐富的物品數據的推薦場景使用,如短視頻推薦。

【數據規模】

  • 建議物品量級小於100萬。
  • 建議用戶量級小於1000萬。

【數據約束】

  • 行為表需要 consume 行為類型的數據。click,view,collect 至少有其中之一。
  • 用戶表實際並沒有使用,可以簡單處理^1 ,用戶屬性維度表也是不需要的。
  • 物品表需要,需要 keywords,properties,description字段不全為空。

【增加算法】

ig_sm_01


spl_bhv_svd

【簡介】

spl_grd_svd的變體。評分模塊用ig_sm_02替換grade_based_sm,基於用戶行為計算評分。建議隻有行為數據的場景使用。

【數據約束】

  • 行為表需要 click,view,consume,use,search_click 行為類型的數據,至少有其中一種。
  • 用戶表和物品表實際並沒有使用,可以簡單處理^1 ,用戶屬性維度表和物品屬性維度表也是不需要的。
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【增加算法】

ig_sm_02


large_scale_rec

【簡介】

基於用戶行為的協同過濾推薦。適用於詳情頁推薦,支持百萬以上物品的推薦場景。精準度略差與 detail_ofl,但是支持的數據更大。

【適用場景】

適用於詳情頁或者首頁的推薦場景,用戶點擊物品詳情頁,展示物品相關的推薦列表,如買了再買,相關帖子推薦等,以user_id,item_id 作為key獲取推薦列表。

【適用行業】

建議用於行為豐富且物品和用戶維度都很大的業務,如電商,社交。

【數據規模】

  • 建議物品量級小於5000萬。
  • 建議用戶量級小於10億

【主要算法】

可以參考 ig_sm_02, crs_04

【數據約束】

  • 行為表需要 click,view,consume,use,search_click 行為類型的數據,至少有其中一種。
  • 用戶表和物品表實際並沒有使用,可以簡單處理^1 ,用戶屬性維度表和物品屬性維度表也是不需要的。
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【主要計算邏輯】

流程主要分2個階段

  1. 用戶行為評分階段:對用戶行為建模,融合多種行為特征,生成用戶評分。
  2. 相關性計算階段:使用itemcf協同過濾算法(crs_04)計算用戶-物品推薦列表和物品-物品推薦列表。

【建議搭配使用的在線模板】

detail_dft_ol


content

【簡介】

利用用戶行為和物品內容相似度完成用戶-物品推薦的算法流程

【適用場景】

建議物品特征(keywords,description,properties)豐富的業務場景。可用於首頁或者詳情頁推薦。

【適用行業】

視頻、圖書

【數據規模】

  • 建議物品量級小於500萬。

【主要算法】

tfidf_irf_01, crs_06ig_sm_02, crs_04

【數據約束】

  • 用戶表實際並沒有使用,可以簡單處理^1
  • 物品表需要,至少有keywords,description,properties中的一個。如果properties存在,需要物品屬性維度表
  • 行為表需要 click,view,consume,use,search_click 行為類型的數據,至少有其中一種。
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【主要計算邏輯】

流程主要分4個階段

  1. 特征提取階段:通過tfidf_irf_01完成對物品信息特征化
  2. 用戶行為評分階段:對用戶行為建模,融合多種行為特征,生成用戶評分。
  3. 物品相關性計算階段:使用crs_06計算物品-物品推薦列表。
  4. 用戶-物品相關性計算:利用近鄰規則,生成用戶-物品推薦列表。

【建議搭配使用的在線模板】

detail_ol


content_cf

【簡介】

融合content與large_scale_rec 的推薦模板

【適用場景】

建議用於行為和物品特征都十分豐富的業務,如視頻,電商,適用於詳情頁或者首頁,。會單純用content模板和detail_ofl達到更好效果,以user_id,item_id 作為key獲取推薦列表。

【適用業務】

視頻、圖書

【數據規模】

  • 建議物品量級小於500萬。
  • 建議用戶量級小於10億

【主要算法】

tfidf_irf_01, crs_06ig_sm_02, crs_04

【數據約束】

  • 用戶表實際並沒有使用,可以簡單處理^1
  • 物品表需要,至少有keywords,description,properties中的一個。如果properties存在,需要物品屬性維度表
  • 行為表需要 click,view,consume,use,search_click 行為類型的數據,至少有其中一種。
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【主要計算邏輯】

流程主要分5個階段

  1. 特征提取階段:通過tfidf_irf_01完成對物品信息特征化
  2. 用戶行為評分階段:對用戶行為建模,融合多種行為特征,生成用戶評分。
  3. 物品相關性計算階段:使用crs_06計算物品-物品基於內容推薦列表。使用crs_04計算物品-物品基於行為的推薦列表
  4. 用戶-物品相關性計算:利用近鄰規則,分別生成基於內容的用戶-物品推薦列表和基於行為的物品-物品推薦列表
  5. 列表融合階段:分布融合兩種推薦算法得到的用戶-物品推薦列表及物品-物品推薦列表。(st_cb_02)

【建議搭配使用的在線模板】

detail_ol


usr_tag_rec

【簡介】

一個簡單快捷的基於用戶標簽生成的群體推薦,可以做到千人百麵或者千人十麵。

【適用場景】

建議規則性較強,行為數據不多且單一的業務場景。輸入數據為 tag_id,即代表一組用戶的標簽id。

【適用業務】

電商

【數據規模】

  • 建議用戶量級小於10億

【主要算法】

可以參考 simple_user_tag_rec

【數據約束】

  • 物品表實際並沒有使用,可以簡單處理^1
  • 用戶表需要,且需要在用戶屬性維度表中定義tags的數據類型,目前隻支持 sv_enum。
  • 行為表需要,算法隻統計行為次數,不關注行為類型。
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【主要計算邏輯】

  1. 根據用戶表的tags字段進行用戶分組,每組用戶統計行為頻次,統計最熱門的商品topn生成推薦列表。

【建議搭配使用的在線模板】

usr_tag_rec_ol


itm_prop_rec

【簡介】

一個簡單的計算相似物品進行物品-物品推薦的算法流程。

【適用場景】

建議詳情頁場景且用戶行為較少,物品特征(keywords,description,properties)豐富的業務場景。適用於詳情頁,

【使用行業】

短視頻等

【數據規模】

  • 建議物品量級小於500萬。

【主要算法】

tfidf_irf_01, crs_06

【數據約束】

  • 用戶表和行為表實際並沒有使用,可以簡單處理^1
  • 物品表需要,至少有keywords,description,properties中的一個。如果properties存在,需要物品屬性維度表
  • 可推薦物品表影響最終的推薦列表的物品推薦池,建議添加,如果未添加則使用物品表來過濾。

【主要計算邏輯】

流程主要分2個階段

  1. 特征提取階段:通過tfidf_irf_01完成對物品信息特征化
  2. 相關性計算階段:使用crs_06計算物品-物品推薦列表。

【建議搭配使用的在線模板】

main_ol


離線算法

ig_sm_01

【簡介】

基於興趣圖譜的評分矩陣構造。

【適用業務場景】

沒有顯式評分,具有consume類型行為且具有豐富的物品數據的推薦場景使用,如短視頻推薦。

【數據約束】

  • 行為表需要 consume 行為類型的數據。click,view,collect 至少有其中之一。
  • 物品表需要,需要 keywords,properties,description字段不全為空。

【主要計算邏輯】

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
retain_days 屬性權重建模篩選的行為天數 30 這個參數是控製行為權重訓練的輸入樣本,如果行為豐富,可以選擇更小的行為天數,樣本量大約為可以利用的屬性維度的50倍左右即可。比如物品集一共有1000個關鍵詞,那麼屬性權重差不多需要的樣本在 5萬~10萬即可。當然樣本越多屬性權重預測將更加準確,覆蓋率也會越高。
domain 分詞算法詞庫(默認為’0’(標準版),也可選擇’1’(煙草行業),’2’(廣播電視行業),’3’(電力行業),’4’(法律行業),’5’(電商行業),’6’(軍事領域)) 0 這個參數與輸入的物品數據類型有關,用在對description的分詞,選擇特定行業詞庫,分詞可以更加準確。


ig_sm_02

【簡介】

基於規則的評分矩陣構造,支持的行為類型包括:view、click(推薦點擊,可以認為等同於view,click的直接結果是view)、search_click(搜索點擊)、consume(消費,依業務特性決定,如視頻業務也可以將觀看行為定義為consume),collect(收藏)

【適用業務場景】

建議用於行為豐富且缺乏顯式評分(grade)的業務,如電商,社交。

【數據約束】

  • 行為表需要 click,view,consume,use,search_click 行為類型的數據,至少有其中一種。

【主要計算邏輯】

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
retain_days 計算時讀取最近多少天內的行為表分區 1 會影響最終生成的評分矩陣大小。建議設置在 1~30 之間,1代表隻選擇當天的數據。
click_weight click行為權重,包含click和search_click兩種行為 0.2 行為權重會被歸一化到0-1,如果隻有部分行為,可以把其他權重設為0
view_weight view行為權重 0.1
consume_weight consume行為權重,包含consume,use兩種行為 0.4
collect_weight collect行為權重,包含collect,comment,share,like 四種類型 0.3


grade_based_sm

【簡介】

grade_based_sm 基於用戶顯式評分的user-item評分矩陣構造,直接從用戶行為表中篩選bhv_type=’grade’對應的bhv_amt作為評分,對於同一user對同一item的多次評分,提供[最大|最小|均值]三種選項

【適用業務場景】

處理movielen等顯式評分

【主要計算邏輯】

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
op 如何處理同一user對同一item的多次評分,可選取值為[max,min,avg],分別代表取[最大,最小,平均]值 avg 根據業務場景選擇
retain_days 計算時讀取最近多少天內的行為表分區 1 會影響最終生成的評分矩陣大小。建議設置在 1~30 之間,1代表隻選擇當天的數據。


svdpp

【簡介】

融合顯式反饋和隱式反饋的矩陣分解算法

【適用業務場景】

中等數據量追求推薦精準度的推薦場景

【數據約束】

  • 建議物品量級小於500萬。
  • 建議用戶量級小於1億

【主要計算邏輯】

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
learning_rate 學習率 0.008 建議小範圍調整,會影響訓練速度和收斂效果
iteration 訓練迭代輪數 20 建議在20~100 中調整,訓練速度和精準度的tradeoff。迭代次數越多,訓練速度越慢,精準度越高,但不會線性提高,存在不斷逼近的上界。
lr_decay 學習率衰減係數,默認為1.0即不衰減 1.0 建議在 0.9~1.0中調整
lr_min 最小學習率,當學習率衰減到該值以下後不再衰減 0.00001 建議不修改
regularization 0.004 正則強度,避免過擬合 建議根據數據分布來決定,需要實驗。
featurelen 128 分解得到的向量維數 明顯影響訓練速度和精準度的參數,建議設為128或256,不要超過512.
workernum 20 odps worker數量,增大機器數量一定程度上增加處理速度 如果報內存不足的錯誤,則需要適當增加workernum或者減少featurelen,增加workernum可能會增加你的MaxCompute賬單。


crs_04

【簡介】

基於user-item 評分item候選集生成,為標準的itemcf算法。

【適用業務場景】

數據量較大的場景。

【數據約束】

  • 建議物品量級小於5000萬。
  • 建議用戶量級小於10億

    【主要計算邏輯】

    通過用戶行為共現來計算物品之間的相關性,支持的相關性算法有:

  • Cosin :餘弦夾角

  • BiNetwork:對分網絡
  • ModifiedCosin:調整餘弦夾角
  • PearsonRelation:皮爾遜相關距離

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
topn 最多保留多少個推薦結果 100 與具體業務有關,計算時間正相關。
measure 特征向量相似度的計算方法,可選取值為[Cosin,BiNetwork,ModifiedCosin,PearsonRelation],分別代表餘弦夾角、對分網絡、調整餘弦夾角、皮爾遜相關距離 Cosin 計算速度類似,具體選擇可以參考上文。


crs_05

【簡介】

基於item-item 相似度及用戶評分的user候選集生成

【適用業務場景】

一般與 crs_04搭配使用。

【數據約束】

  • 建議物品量級小於5000萬。
  • 建議用戶量級小於10億

【主要計算邏輯】

通過用戶評分過的物品,以及物品的相關的物品,生成用戶的推薦列表。

用戶對自己未評分的物品的打分通過用戶對已有物品評分和物品間的相關性權重加權求和得到。

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
topn 最多保留多少個推薦結果 100 與具體業務有關,計算時間正相關。
remove_history_action 是否移除用戶曆史評分 true 默認為true,意味的用戶有行為的物品不會出現在推薦列表中。


crs_02

【簡介】

item_item相似度計算(symmetric_feature)

【數據約束】

  • 建議物品量級小於500萬。

【主要計算邏輯】

標準的矩陣相乘,計算兩個item_feature之間的距離,然後截取topn。通過MapReduce分塊矩陣相乘算法實現。支持兩種相關性算法:

  • Cosin:餘弦夾角
  • InnerProduct:向量內積

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
topn 最多保留多少個推薦結果 100 與具體業務有關,計算時間正相關。
measure 特征向量相似度的計算方法,可選取值為[Cosin,InnerProduct],分別代表餘弦夾角和向量內積 Cosin 一般情況Cosin效果好於InnerProduct。InnerProduct速度更快,對於稠密矩陣InnerProduct效果和Cosin基本一樣。


crs_03

【簡介】

user_item相似度計算(symmetric_feature)

【數據約束】

  • 建議物品量級小於500萬。
  • 建議用戶量級小於1億。

【主要計算邏輯】

標準的矩陣相乘,計算user_feature ,item_feature之間的距離,要求兩個向量在同一個向量空間內,然後截取topn。通過MapReduce分塊矩陣相乘算法實現。支持兩種相關性算法:

  • Cosin:餘弦夾角
  • InnerProduct:向量內積

【可自定義算法優化參數】

crs_02


crs_06

【簡介】

基於物品原始特征獲取推薦列表(item_feature)

【數據約束】

  • 建議物品量級小於500萬。

【主要計算邏輯】

標準的矩陣相乘,計算兩個item_feature之間的距離,然後截取topn。通過MapReduce分塊矩陣相乘算法實現。支持兩種相關性算法:

  • Cosin:餘弦夾角
  • InnerProduct:向量內積

與crs_02 唯一的區別是輸入數據不同,crs_06輸入為物品特征提取得到的ITEM_FEATRUE,crs_02輸入為通過UIF類型算法得到的user-item向量組(SYMMETRIC_FEATURE)。

【可自定義算法優化參數】

crs_02


tfidf_irf_01

【簡介】

物品tfidf原始特征提取,基於keywords,properties,分詞後的description

【適用業務場景】

物品信息豐富,使用內容推薦的場景

【數據約束】

  • 物品表需要至少有keywords,description,properties中的一個。如果properties存在,需要物品屬性維度表

【主要計算邏輯】

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
domain 分詞算法詞庫(默認為’0’(標準版),也可選擇’1’(煙草行業),’2’(廣播電視行業),’3’(電力行業),’4’(法律行業),’5’(電商行業),’6’(軍事領域)) 0 這個參數與輸入的物品數據類型有關,用在對description的分詞,選擇特定行業詞庫,分詞可以更加準確。
remove_stop_word 1 去掉停用詞 0 原始分詞串 1


st_cb_01

【簡介】

基於簡單排序的item推薦列表融合,篩選推薦候選集,支持在產生推薦列表時帶上item對應的rec_item_info.item_info的若幹屬性

【主要計算邏輯】

基本邏輯是根據上遊的輸入權重(流程配置連接線上的可配置權重)分配推薦列表取舍,然後每個輸入的推薦列表根據排序計算一個新的權值w,按照新的權重w統一排序多個推薦列表,生成新的推薦列表。

例如:輸入有3個推薦列表,已經經過排序,長度分別為 100,200,200。對應輸入權重為 0.5,0.3,0.2。算法會先按照權重截取推薦列表,

截取後的長度:1000.5 = 50 ,200 0.3 = 60,200 * 0.2 = 40.

對於每個截取後的推薦列表i:每一項的權值 w(i,j) = (len(i)-rank(i,j)+1)/len(i)

  • len(i) 指推薦列表i的長度

  • rank(i,j) 指推薦項j在推薦列表i中的排序值

最終每一項的權值為 w(j) = w(1,j)+w(2,j)+…

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
topn 最多保留多少個推薦結果 100 根據業務場景選擇
fields 最終的推薦列表裏每個item_id需要額外帶上的rec_item_info表裏item_info字段的屬性值(多個屬性之間用分號隔開,如cityid;price),要求item_info字段按json格式存儲

默認為空,根據業務場景選擇


st_cb_02

【簡介】

基於簡單排序的user推薦列表融合,篩選推薦候選集,支持在產生推薦列表時帶上item對應的rec_item_info.item_info的若幹屬性

【主要計算邏輯】

參見 st_cb_02

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
topn 最多保留多少個推薦結果 100 根據業務場景選擇
fields 最終的推薦列表裏每個item_id需要額外帶上的rec_item_info表裏item_info字段的屬性值(多個屬性之間用分號隔開,如cityid;price),要求item_info字段按json格式存儲

默認為空,根據業務場景選擇


simple_default_list

【簡介】

按照pv選出熱門item生成推薦列表

【適用業務場景】

適合很多需要冷啟動的場景

【主要計算邏輯】

統計最近n天的最熱門的物品,生成一個默認推薦列表。

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
topn 最多保留多少個推薦結果 100 根據業務場景選擇
retain_days 使用最近n天的行為數據 7 選擇的依據就是需要當天熱門還是當周熱門。


simple_user_tag_rec

【簡介】

基於用戶標簽的默認推薦

【適用業務場景】

適合很多需要冷啟動的場景,可以看做simple_default_list的分組版本。

【數據約束】

  • 需要用戶表和用戶屬性維度表。選取的key必須是sv_enum類型

【主要計算邏輯】

按照用戶分組統計最近n天的最熱門的物品,生成一個默認推薦列表。

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
topn 最多保留多少個推薦結果 100 根據業務場景選擇
retain_days 使用最近n天的行為數據 7 選擇的依據就是需要當天熱門還是當周熱門。
key tags中選取作為分組的key,必須為sv_enum類型

填寫tags裏麵用於分組的key


結束節點

【簡介】

匯總離線結果,同步到在線,有兩個規則:

  • 每種數據類型隻會同步一份數據到線上,所以如果生成多個推薦列表,務必需要增加CB類型的算法去融合推薦列表。
  • 不會同步客戶自定義的數據表。

【可自定義算法優化參數】

參數code 參數描述 默認值 優化建議
retain_days 是否合並前n天的結果 0 建議選擇0-90,默認為0,意味著不合並前n天的計算結果。如果retain_days > 0,推薦引擎會累計前n=retain_days 天的推薦結果,把結果合並,如果今天也生成同一個id對應的推薦列表,則覆蓋。這個參數可以明顯增加線上結果的覆蓋率,減少計算需要引用的行為數據,讓離線運算隻關注當天數據即可。缺點是可能部分被推薦物品會過期。


在線算法流程模板

main_ol

【簡介】

默認首頁推薦在線計算流程。

【先決條件】

1、要求在線請求query參數裏必須帶有user_id字段,否則報錯。

【流程步驟】

1、使用get_usr_based_rec節點獲取離線計算得到的針對user的推薦列表。2、截取前6個推薦結果返回。


detail_ol

【簡介】

默認詳情頁推薦在線計算流程。

【先決條件】

1、要求在線請求query參數裏必須帶有user_id字段,否則報錯。2、要求在線請求query參數裏必須帶有item_id字段,否則基於item的推薦列表為空。

【流程步驟】

1、使用mg_usr_itm_reclist節點合並離線計算得到的針對item和user的推薦列表,若item相關推薦結果不足或無相關推薦,使用用戶的個性化推薦進行補足。2、針對步驟1中的合並結果進行去重。3、截取前6個推薦結果返回。


detail_dft_ol

【簡介】

增加補足策略的詳情頁推薦在線計算流程。

【先決條件】

1、要求在線請求query參數裏必須帶有user_id字段和item_id字段,否則報錯。

【流程步驟】

1、使用mg_usr_itm_reclist節點合並離線計算得到的針對item和user的推薦列表,若item相關推薦結果不足或無相關推薦,使用用戶的個性化推薦進行補足。2、若步驟1產出的推薦結果不足30個,使用默認推薦結果進行補足;否則直接返回。3、針對步驟2的產出結果進行去重。4、截取前30個推薦結果返回。


usr_tag_rec_ol

【簡介】

在線獲取離線計算產生的基於tag的推薦列表

【先決條件】

1、要求在線請求query參數裏必須帶有tag的相關字段,如city_id=beijing,否則返回為空

【流程步驟】

1、根據請求參數獲取全量離線tag推薦列表。2、截取前6個推薦結果返回。


在線算法

get_topn

【簡介】

根據上遊節點輸出的推薦列表,截取前topn個推薦結果。

【可選參數】

參數code 參數描述 默認值
topn 截取前多少個推薦結果 2


uniq_reclist

【簡介】

對上遊節點輸出的推薦列表按item_id進行去重

【說明】

離線產出的推薦列表通常都是去過重的,但在線流程中當上遊輸出的推薦結果是多路合並而來時,這個方法非常重要。


get_itm_based_rec

【簡介】

獲得離線計算產生的針對item的推薦結果。

【先決條件】

1、要求在線請求query參數裏必須帶有item_id字段,否則基於item的推薦列表為空。


get_usr_based_rec

【簡介】

獲得離線計算產生的針對user的推薦結果。

【先決條件】

1、要求在線請求query參數裏必須帶有user_id字段,否則報錯。


mg_usr_itm_reclist

【簡介】

合並離線計算產出的針對item和user的推薦結果,把item推薦列表放在最終列表前部,user推薦列表放在尾部用以做結果條數補足

【說明】

該節點僅對兩個推薦列表進行簡單的concat連接操作,不進行列表去重,請注意在下遊掛載去重節點。


get_default_rec

【簡介】

當推薦結果不足時,用離線計算產生的默認推薦結果進行補足

【可選參數】

參數code 參數描述 默認值
num 當推薦結果小於num個時執行默認推薦結果補足 30

【先決條件】

1、離線算法流程中配置有產生默認推薦結果的算法節點,同時該算法的類別(dataform)限定為DR012、在線算法流程左側麵板中”選擇離線數據”勾選”RD_DFLT”,表示讀取離線計算的默認推薦結果

【說明】

該節點僅對推薦列表進行簡單的concat連接操作,不進行列表去重,請注意在下遊掛載去重節點。


get_rec_item_info

【簡介】

獲取推薦item的item_info信息(對應離線基礎表rec_item_info的item_info字段)

【先決條件】

1、離線算法流程中已配置rec_item_info節點。

【說明】

當上遊產出的推薦列表長度比較大時,會向在線存儲產生大量並發異步請求,導致在線性能下降,因此請慎用本節點。關於rec_item_info的另一巧用方法,請參考雲棲社區-阿裏雲個性化推薦引擎


get_tag_reclist

【簡介】

獲取離線計算產生的基於tag(如城市、性別等)的推薦結果

【可選參數】

參數code 參數描述 默認值
key 用於查詢tag的參數名

【先決條件】

1、離線算法流程中配置有產生基於Tag做推薦的算法節點,同時該算法的類別(dataform)限定為TAG_BASED_REC2、要求在線請求query參數裏必須帶有tag的相關字段,如city_id=beijing,此時節點參數的key=”city_id”


注釋

  1. 新建一個固定的分區,插入一條mock數據

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

  上一篇:go 配置業務和場景__用戶指南_推薦引擎-阿裏雲
  下一篇:go 啟動離線計算__用戶指南_推薦引擎-阿裏雲