全部產品
Search
文件中心

Platform For AI:FM演算法

更新時間:Nov 26, 2024

因子分解機FM(Factorization Machines)是一種通用的預測模型,特別適合處理高維稀疏資料。FM演算法通過引入隱向量的方式建模特徵之間的互動,可以看作是矩陣分解技術的推廣,廣泛應用於推薦系統、廣告點選率預測等領域。

演算法說明

FM演算法包括兩個過程:FM訓練和FM預測。這兩個過程分別對應模型的構建和應用階段。

  • FM訓練:這一過程的核心目標是通過給定的訓練資料集來學習模型參數,以便模型能夠準確地預測目標變數。在此階段,演算法會對輸入資料進行分析和參數最佳化,以確保模型的高效性和準確性。

  • FM預測:在這一過程中,已經訓練好的模型被用來對新輸入資料進行預測。在FM預測階段,模型的參數已經被鎖定,通過這些固定的參數,模型能夠計算並輸出新資料的預測結果。

配置組件

方式一:可視化方式

FM訓練

在Designer工作流程頁面添加FM訓練組件,並在介面右側配置相關參數:

參數類型

參數

描述

欄位設定

特徵列

根據輸入資料表的特徵選取特徵列。支援STRING和DOUBLE類型的資料。

標籤列

根據輸入資料表的特徵選取標籤列。僅支援DOUBLE類型。

進階選項

僅在Designer控制台,需要配置該參數。

如果選中進階選項複選框,則Flink配置項生效,需配置Flink計算引擎,詳情請參見Flink配置

參數設定

任務類型

支援以下取值:

  • regression

  • binary_classification

迭代數

總訓練迭代次數,預設為10。

正則化係數

使用英文逗號(,)分隔的三個浮點數,分別表示0階項、1階項及2階項的正則化係數。

學習率

如果訓練發散,則降低該參數取值。

參數初始化標準差

參數初始化的標準差,用來歸一化資料。DOUBLE類型,預設為0.05。

維度

使用英文逗號(,)分隔的三個正整數,分別表示0階項、1階項、2階項的長度。

資料區塊大小

績效參數。

輸出表生命週期

僅在原PAI-Studio控制台,需要配置該參數。

輸出表的生命週期。

執行調優

底層Alink作業使用的計算資源

MaxCompute

使用MaxCompute/Flink計算資源,節點個數和單節點佔用的記憶體大小配置方法請參見附錄:如何預估資源的使用量

Flink

DLC

使用DLC計算資源,請根據介面提示配置資源規格。

FM預測

在Designer工作流程頁面添加FM預測組件,並在介面右側配置相關參數:

參數類型

參數

描述

參數設定

預測結果列名

預測結果列的名稱。

詳細預測資訊列名

詳細預測資訊列的名稱。

保持列

儲存至輸出結果表的列。

進階選項

僅在Designer控制台,需要配置該參數。

如果選中進階選項複選框,則每個Worker預測使用的線程數目模型大小類型生效。

執行調優

底層Alink作業使用的計算資源

MaxCompute

使用MaxCompute/Flink計算資源,節點個數和單節點佔用的記憶體大小配置方法請參見附錄:如何預估資源的使用量

Flink

DLC

使用DLC計算資源,請根據介面提示配置資源規格。

方式二:PAI命令方式

使用PAI命令配置FM訓練/FM預測組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見情境4:在SQL指令碼組件中執行PAI命令

FM訓練

參數

是否必選

預設值

描述

tensorColName

特徵列名稱。 資料格式為key:value,多個特徵使用英文逗號(,)分隔。例如1:1.0,3:1.0

labelColName

label列名。資料必須是數實值型別。如果task取值為binary_classification,則label只能取01

task

regression

任務類型。取值範圍為{regression,binary_classification}

numEpochs

10

迭代數。

dim

1,1,10

使用英文逗號(,)分隔的三個整數,分別表示0次項、線性項及二次項的長度。

learnRate

0.01

學習率。 如果訓練發散,則降低學習率

lambda

0.01,0.01,0.01

使用英文逗號(,)分隔的三個浮點數,分別表示0次項、線性項及二次項的正則化係數。

initStdev

0.05

參數初始化標準差。

FM預測

參數

是否必選

預設值

描述

predResultColName

prediction_result

預測結果列名。

predScoreColName

prediction_score

預測得分列名。

predDetailColName

prediction_detail

詳細預測資訊列名。

keepColNames

所有列

儲存至輸出結果表的列。

使用樣本

使用以下資料作為基於Alink架構的FM推薦模板的輸入資料,訓練產生的模型AUC約為0.97。輸入資料模型評估報告

相關文檔

基於Alink架構的FM推薦