1. 程式人生 > >如何利用DeepFM演算法設計推薦系統

如何利用DeepFM演算法設計推薦系統

經過了十幾年的發展,推薦系統在網際網路行業已經變得越來越流行。從早年沒有一個合適的產品形態,到如今在今日頭條和抖音等商業產品中發揮重要作用,推薦系統已經越來越受到網際網路公司和研究界學者的重視。

早年的推薦演算法主要是各種單模型,例如邏輯迴歸、協同過濾、矩陣分解等等。後來推薦演算法演化成了混合模型,例如 GBDT + LR , GBDT + FM 等。而隨著深度學習的崛起,深度神經網路越來越深刻地影響了推薦系統領域的發展。

Huifeng Guo 等中國國內學者在 IJCAI 2017 發表了一篇題為《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 》的論文,講解了如何將 FM 和深度學習模型進行融合之後進行推薦的演算法。

DeepFM 主要有以下三個優點:

  1. DeepFM 可以對低階特徵互動和高階特徵互動進行建模,不需要進行特徵工程。
  2. DeepFM 可以高效的進行訓練,因為模型寬的部分和深的部分,不僅共享輸入,也共享嵌入式向量。
  3. 實驗資料表明 DeepFM 可以在點選率預估問題上取得優秀的效果。

DeepFM 的輸入資料為點選率預估常見的 (X, y) 元組,其中 X 是表示使用者和物品的特徵向量,可能包括非數值資料,y 是點選資料標籤,y = 1 表示使用者點選了物品,y = 0 表示使用者沒有點選物品。

DeepFM 的預測函式如下: , 其實是利用 sigmoid 函式對基於 FM 的預測和基於 DNN 的預測進行了融合。演算法模型中的 FM 部分演算法架構如下圖所示:

DNN 部分的演算法架構如下圖所示:

在混合模型中,FM 和 DNN 共享同一個特徵嵌入層。嵌入層的結構如下圖所示:

嵌入層得到的向量記為: ,  該向量參與到後續的DNN計算中: ,以及  。

作者隨後在測試資料集合上對近年來的幾種不同的點選率預估演算法進行了測評,選擇的測評標準包括 AUC 和 Log-loss ,測評結果如下圖所示:

與 DeepFM 相比,其他幾種點選率預估演算法有以下缺點:

  1. FNN : FNN 是一個由 FM 初始化的前向神經網路。FM 預訓練策略有如下兩個問題:1). 嵌入層引數受 FM 影響較大 2). FM 預訓練對演算法效率有影響。另外,FM 只包含了高階特徵組合。
  2. PNN : PNN 及其變種 IPNN 和 OPNN 忽略了低階特徵的組合。
  3. 寬深網路:寬身網路的 FM 部分需要人工處理特徵工程。

DeepFM 設計思路簡單,源於 2016 年 Google 的寬深網路方法但是效果出眾。自推薦系統誕生以來,人們便設計了各種不同的模型融合方法。從修改主題模型的 Collaborative Topic Regression ,到基於 blending 的 GBDT + LR 再到後面的寬深網路方法, 給我們設計演算法提供了不同的思路。演算法本身是一個既要考慮模型,又要考慮資料和引數的學科,DeepFM 在如何設計模型層面給我們展示了很好的範例。

原文標題:DeepFM: A Factorization-Machine based Neural Network for CTR Prediction,作者:Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, Xiuqiang He