在推薦業務場景中,使用Designer提供的整套FM-Embedding方案可以快速獲得User和Item對應的特征向量,您只需要在召回模塊對該特征向量進行乘積,即可得到User對Item的評分結果。本文為您介紹如何使用FM算法和Embedding提取算法,快速生成User和Item的特征向量。
前提條件
已創建工作空間,詳情請參見創建工作空間。
已將MaxCompute資源關聯到工作空間,詳情請參見管理工作空間計算資源。
背景信息
智能推薦包括召回和排序模塊。召回模塊中,通常使用向量分別表示User(用戶)和Item(待推薦的內容),且通過User與Item的向量乘積判斷User對Item的興趣程度。該工作流基于真實的推薦場景數據,其完整業務流程已預置在Designer模板中,您僅通過拖拽組件即可快速生成User和Item的特征向量。
數據集
原始數據包括如下字段。
字段名 | 類型 | 描述 |
userid | STRING | 用戶ID。 |
age | DOUBLE | 用戶年齡。 |
gender | STRING | 用戶性別 |
itemid | STRING | 商品ID。 |
price | DOUBLE | 商品價格。 |
size | DOUBLE | 商品大小。 |
label | DOUBLE | 目標列,含義如下:
|
工作流的原始數據示例如下。
實現推薦召回
進入Designer頁面。
登錄PAI控制臺。
在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應的工作空間。
在工作空間頁面的左側導航欄選擇 ,進入Designer頁面。
構建工作流。
在Designer頁面,單擊預置模板頁簽。
在模板列表,單擊使用FM-Embedding實現推薦召回下的創建。
在新建工作流對話框,配置參數(可以全部使用默認參數)。
其中:工作流數據存儲配置為OSS Bucket路徑,用于存儲工作流運行中產出的臨時數據和模型。
單擊確定。
您需要等待大約十秒鐘,工作流可以創建成功。
系統根據預置的模板,自動構建工作流,如下圖所示。
區域
描述
①
針對全量特征的One-Hot編碼。One-hot編碼可以將字符型數據轉換為數值型,該FM-Embedding工作流中,onehot編碼-1組件先對全量數據進行One-Hot編碼,再將生成的編碼模型輸入至onehot編碼-2和onehot編碼-3組件。
②
生成FM模型。您可以單擊該組件,在右側的參數設置頁簽,查看系統已配置的默認參數。其中維度(默認值為1,1,10)的第三個參數(默認值中的10)表示生成的Embedding維度。
③
生成User特征編碼。該組件的輸入(選擇二值化列)為userid、gender及age,附加列為userid。
④
生成Item特征編碼。該組件的輸入(選擇二值化列)為itemid、price及size,附加列為itemid。
⑤
提取Item-Embedding。該組件的參數含義如下:
Embedding向量的id列名:FM訓練中的模型feature_id。
Embedding向量列名:FM訓練中的模型feature_weights。
權重向量列名:One-Hot編碼對應的稀疏化數據列。
輸出結果列名:輸出的Embedding字段名。
運行工作流并查看輸出結果。
單擊畫布上方的按鈕。
工作流運行結束后,右鍵單擊畫布中的Embedding提取-1,在快捷菜單,單擊 ,即可查看User特征向量。
右鍵單擊畫布中的Embedding提取-2,在快捷菜單,單擊 ,即可查看Item特征向量。