Skip to content

演算法類型 (Algorithm Type)

名詞說明

推薦階段

Recommend HQ 使用的是兩階段的推薦架構:

  • 推薦候選產生階段(generator):從完整資料集中選出少數的推薦候選,並排序。
  • 推薦候選排序階段 (ranker):將所有推薦候選重新排序。

一個專案可以同時部署一個候選產生模型 (generator_model) 和一個排序模型 (ranker_model),其中排序模型 (ranker_model)為非必須,也可直接使用候選產生模型 (generator_model)提供的推薦結果。

專案類型

不同的演算法適用於不同的專案類型。

G1

基於 collaborative filtering 概念的深度類神經網路實作。

適用專案類型 (project_type):

  • 對使用者推薦商品 (RECOMMEND_ITEMS_TO_USER)
  • 對商品推薦商品 (RECOMMEND_ITEMS_TO_ITEM)

適用推薦階段

  • 推薦候選產生階段 (generator)

演算法參數 (algorithm_parameters)

  • start_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為 0,從最古老的事件開始。
  • end_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為無窮大,即到最新的事件為止。
  • undirected: 0 或 1,建立使用者與商品關係圖時是否為無向圖。
  • walk_steps:2 到 7 之間,數字越小則推薦結果越貼近訓練資料的事件資料集,但較無新穎性,無法反映深層關聯性。數字越大能更反映出深層關聯性,但與訓練資料的事件資料集相差較遠。
  • support_event_weight: 非 target_event_type 在訓練時之權重。
  • cold_start_strategy: "popularity"null,使用熱門度處理冷開始(Cold Start),或不支援冷開始。

推薦參數 (generator_model_args)

  • enable_cold_start: 若訓練模型時的 cold_start_strategy 為開啟時,可在取得推薦結果時透過此參數控制是否開啟冷開始,預設為開啟。

G2

結合多種推薦演算法,同時考慮點擊紀錄與使用者、商品屬性的實作,能更好的支援冷開始(Cold Start),但使用者與商品的屬性數值分佈很大程度影響推薦品質。

適用專案類型 (project_type):

  • 對使用者推薦商品 (RECOMMEND_ITEMS_TO_USER)
  • 對商品推薦商品 (RECOMMEND_ITEMS_TO_ITEM)

適用推薦階段

  • 推薦候選產生階段 (generator)

演算法參數 (algorithm_parameters)

  • start_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為 0,從最古老的事件開始。
  • end_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為無窮大,即到最新的事件為止。
  • loss: 模型使用的損失函數,可選擇 bprwarpwarp 需要比較多的訓練時間,但對於改善推薦的精確度 (precision) 有一定的幫助。
  • support_event_weight: 非 target_event_type 在訓練時之權重。
  • cold_start_strategy: "popularity"null,使用熱門度處理冷開始(Cold Start),或不支援冷開始。
  • use_meta_feature: truefalse,是否使用商品屬性,若使用,模型會將商品屬性加入訓練特徵中,會需要較長的訓練時間和部署時間。
  • item_feature_attributes: 如果 use_meta_featuretrue,該項可控制模型使用商品屬性的白名單。預設值為 null,表示商品屬性全用。(註:系統會判定各個商品屬性是否適合當作特徵,不適合將不會使用該商品屬性。)
  • min_token_length: 如果 use_meta_featuretrue 且有使用文字特徵時,該項可控制關鍵字最小長度限制。預設值為 2。(註:系統如果判定該商品屬性不適合當作文字特徵,則不會使用。)

推薦參數 (generator_model_args)

  • enable_cold_start: 若訓練模型時的 cold_start_strategy 為開啟時,可在取得推薦結果時透過此參數控制是否開啟冷開始,預設為開啟。

GI1

使用商品屬性計算商品關聯性的深度類神經網路實作。

適用專案類型 (project_type):

  • 對商品推薦商品 (RECOMMEND_ITEMS_TO_ITEM)

適用推薦階段

  • 推薦候選產生階段 (generator)

演算法參數 (algorithm_parameters)

  • item_feature_attributes: 控制模型使用商品屬性的白名單。預設值為 null,表示商品屬性全用。(註:系統會判定各個商品屬性是否適合當作特徵,不適合將不會使用該商品屬性)
  • min_token_length: 有使用文字特徵時,該項可控制關鍵字最小長度限制。預設值為 2。

GU1

推薦使用者最近有互動過的商品。通常配合一個 ranker_model 排序互動過商品的順序。

適用專案類型 (project_type):

  • 對使用者推薦商品 (RECOMMEND_ITEMS_TO_USER)

適用推薦階段

  • 推薦候選產生階段 (generator)

G3

推薦一段時間內最熱門的商品。

適用專案類型 (project_type):

  • 對使用者推薦商品 (RECOMMEND_ITEMS_TO_USER)
  • 對商品推薦商品 (RECOMMEND_ITEMS_TO_ITEM)

適用推薦階段

  • 推薦候選產生階段 (generator)

演算法參數 (algorithm_parameters)

  • start_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為 0,從最古老的事件開始。
  • end_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為無窮大,即到最新的事件為止。

G4

建立用戶對商品特徵的用戶資料 (user profile)。此演算法的應用,包含: 推薦 / 查詢 / 分群。

適用專案類型 (project_type):

  • 對使用者推薦商品 (RECOMMEND_ITEMS_TO_USER)

適用推薦階段

  • 推薦候選產生階段 (generator)

R1

考慮商品屬性的排序模型。

適用專案類型 (project_type):

  • 對使用者推薦商品 (RECOMMEND_ITEMS_TO_USER)
  • 對商品推薦商品 (RECOMMEND_ITEMS_TO_ITEM)

適用推薦階段

  • 推薦候選排序階段 (ranker)

演算法參數 (algorithm_parameters)

  • diversity_attributes: 控制多樣性排序模型使用商品屬性的白名單。預設值為空名單,即不使用多樣性排序功能。

推薦規則 (Rules)

  • 使用方式: 在ranker_model_args中加入rules參數,rules為規則列表,裡面包含: rule_type以及parameters兩項。
  • 使用範例:
"ranker_model_args": {
   "rules": [
       {
           "rule_type": "diversity",
           "parameters": {
               "attribute": "catogery",
               "number": 3
           }
   ]
}
  • 多樣性排序 (diversity):
  • rule_type: diversity
  • attritube: 在diversity_attributes中指定的商品屬性
  • number: 為正整數,在推薦商品中的商品屬性種類數,越高代表該商品屬性有越高的多樣性

RU1

考慮使用者屬性、商品屬性、及其互動紀錄訓練,基於決策樹的排序模型。

適用專案類型 (project_type):

  • 對使用者推薦商品 (RECOMMEND_ITEMS_TO_USER)

適用推薦階段

  • 推薦候選排序階段 (ranker)

演算法參數 (algorithm_parameters)

  • start_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為 0,從最古老的事件開始。
  • end_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為無窮大,即到最新的事件為止。
  • support_event_weight: 非 target_event_type 在訓練時之權重。
  • use_interaction_features: 0 或 1,是否使用使用者與商品的交互特徵,若使用,模型會將使用者與商品的交互統計值加入訓練特徵中,會需要較長的訓練時間和部署時間。

RI1

考慮使用者屬性、商品屬性、及其互動紀錄訓練,基於決策樹的排序模型。

適用專案類型 (project_type):

  • 對商品推薦商品 (RECOMMEND_ITEMS_TO_ITEM)

適用推薦階段

  • 推薦候選排序階段 (ranker)

演算法參數 (algorithm_parameters)

  • start_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為 0,從最古老的事件開始。
  • end_ts: 從事件資料集取得訓練資料的開始時間(timestamp),單位為毫秒(ms)。預設值為無窮大,即到最新的事件為止。
  • support_event_weight: 非 target_event_type 在訓練時之權重。
  • use_interaction_features: 0 或 1,是否使用使用者與商品的交互特徵,若使用,模型會將使用者與商品的交互統計值加入訓練特徵中,會需要較長的訓練時間和部署時間。