FM(Factorization Machine)算法兼顧特征之間的相互作用,是一種非線性模型,適用于電商、廣告及直播的推薦場景。
組件配置
Designer提供的FM算法模板包括FM訓練和FM預測組件,您可以在原PAI-Studio控制臺首頁的FM算法實現推薦模型區域,單擊從模板創建;或在Designer控制臺工作流模板的基于Alink框架的FM推薦區域,單擊創建,快速構建FM實驗。
您可以使用以下任意一種方式,配置FM算法組件參數。
方式一:可視化方式
在Designer工作流頁面配置組件參數。
組件 | 頁簽 | 參數 | 描述 |
FM訓練 | 字段設置 | 特征列 | 根據輸入數據表的特征選擇特征列。支持STRING和DOUBLE類型的數據。 |
標簽列 | 根據輸入數據表的特征選擇標簽列。僅支持DOUBLE類型。 | ||
高級選項 | 僅在Designer控制臺,需要配置該參數。 如果選中高級選項復選框,則Flink配置項生效。 | ||
Flink配置項 | 僅在Designer控制臺,需要配置該參數。 配置Flink計算引擎,詳情請參見Flink配置。 | ||
參數設置 | 任務類型 | 支持以下取值:
| |
迭代數 | 總訓練迭代次數,默認為10。 | ||
正則化系數 | 使用英文逗號(,)分隔的三個浮點數,分別表示0階項、1階項及2階項的正則化系數。 | ||
學習率 | 如果訓練發散,則降低該參數取值。 | ||
參數初始化標準差 | 參數初始化的標準差,用來歸一化數據。DOUBLE類型,默認為0.05。 | ||
維度 | 使用英文逗號(,)分隔的三個正整數,分別表示0階項、1階項、2階項長度。 | ||
數據塊大小 | 性能參數。 | ||
輸出表生命周期 | 僅在原PAI-Studio控制臺,需要配置該參數。 輸出表的生命周期。 | ||
執行調優 | 節點個數 | 與單個節點內存大小配合使用。取值范圍為1~9999。 | |
單個節點內存大小 | 與節點個數配合使用。取值范圍為1024 MB~64*1024 MB。 | ||
FM預測 | 參數設置 | 預測結果列名 | 預測結果列的名稱。 |
預測得分列名 | 僅在原PAI-Studio控制臺,需要配置該參數。 預測得分列的名稱。 無。 | ||
詳細預測信息列名 | 詳細預測信息列的名稱。 | ||
保持列 | 保存至輸出結果表的列。 | ||
高級選項 | 僅在Designer控制臺,需要配置該參數。 如果選中高級選項復選框,則每個Worker預測使用的線程數目、模型大小類型生效。 | ||
每個Worker預測使用的線程數目 | 每個Worker下預測使用的線程數目,默認為1。 | ||
模型大小類型 | 模型的大小類型,支持以下取值:
| ||
執行調優 | 節點個數 | 與單個節點內存大小配合使用。取值范圍為1~9999。 | |
單個節點內存大小 | 與節點個數配合使用。取值范圍為1024 MB~64*1024 MB。 |
方式二:PAI命令方式
組件 | 參數 | 是否必選 | 描述 | 默認值 |
FM訓練 | tensorColName | 是 | 特征列名稱。 數據格式為key:value,多個特征使用英文逗號(,)分隔。例如1:1.0,3:1.0。 | 無 |
labelColName | 是 | label列名。數據必須是數值類型。如果task取值為binary_classification,則label只能取0或1。 | 無 | |
task | 是 | 任務類型。取值范圍為{regression,binary_classification}。 | regression | |
numEpochs | 否 | 迭代數。 | 10 | |
dim | 否 | 使用英文逗號(,)分隔的三個整數,分別表示0次項、線性項及二次項的長度。 | 1,1,10 | |
learnRate | 否 | 學習率。 說明 如果訓練發散,則降低學習率。 | 0.01 | |
lambda | 否 | 使用英文逗號(,)分隔的三個浮點數,分別表示0次項、線性項及二次項的正則化系數。 | 0.01,0.01,0.01 | |
initStdev | 否 | 參數初始化標準差。 | 0.05 | |
FM預測 | predResultColName | 否 | 預測結果列名。 | prediction_result |
predScoreColName | 否 | 預測得分列名。 | prediction_score | |
predDetailColName | 否 | 詳細預測信息列名。 | prediction_detail | |
keepColNames | 否 | 保存至輸出結果表的列。 | 所有列 |
例如,使用如下數據作為FM算法模板的輸入數據,訓練生成的模型AUC約為0.97。