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。