DeepCTR專題:Neural Factorization Machines 論文學習和實現及感悟

papers地址:https://arxiv.org/pdf/1708.05027.pdf算法

  借用論文開頭,目前不少的算法任務都是須要使用category feature,而通常對於category feature處理的方式是通過one hot編碼,而後咱們有些狀況下,category feature 對應取值較多時,如:ID等,one hot 編碼後,數據會變得很是的稀疏,不只給算法帶來空間上的複雜度,算法收斂也存在必定的挑戰。網絡

  爲了能解決one hot 編碼帶來的數據稀疏性的問題,咱們每每能想到的是否是經過其餘的編碼Embeding方式。剛好深度學習的爆發,咱們能夠經過深度學習構架神經網絡對category feature進行embeding。爲了介紹該篇論文,主要圍繞該篇論文進行介紹一下。論文主要分爲四個部分:機器學習

第一部分:介紹背景學習

第二部分:介紹Factorization Machines和DNN優化

第三部分:介紹NFM網絡結構及其原理(本文的重點)編碼

第四部分:實驗部分blog

最後談談我的的理解和想法。深度學習

一、介紹背景io

如上面所述,背景部分主要內容說的現階段的問題和痛點:pdf

(1)category feature在傳統機器學習中處理的方法——one hot編碼,而這種編碼方式會帶來數據的維度暴增和數據的稀疏性。這個會給傳統機器學習帶來空間複雜度和算法收斂較爲困難。

(2)FM的二階交叉項僅僅是兩兩之間的交叉特徵,對於三階或者高階的特徵並不能很好的表達。

二、介紹Factorization Machines和DNN

(1)Factorization Machines 因式分解機

  因式分解機是在LR的基礎之上,增長一個二階交叉特徵。其表達式以下所示:

          

  其中,vi和vj是經過矩陣分解的方式獲得。

(2)DNN 

  DNN實際上就會一個全鏈接的深度神經網絡,該網絡的特色主要是具備必定的層數,層與層之間是全鏈接的。

三、NFM網絡及其原理

(1)NFM的原理和表達式:

               

  從表達咱們能夠看出,其基本形式與FM是一致的,區別在於最後一項,NFM使用的是一個f(x)來表示,實際上該f(x)是一個統稱,他表示的一個網絡的輸出。該網絡以下所示:

                

  從f(x)的網絡結構咱們一樣能夠看出,其主要解決的問題就是二階交叉項的問題。其結構是:

  1)第一層是輸入層/,即輸入category feature

  2)第二層Embeding,對category feature進行編碼

  3)第三層是二階交叉項層,該層論文中主要是經過網絡獲得二階交叉特徵,計算方式:(a+b)^2-a*b 獲得二階交叉項

  4)DNN層,該層是經過DNN提取高階特徵

以上就是NFM的基本原理和網絡結構。

四、實驗部分

  實驗部分主要用了兩個數據集,分別以下:

  

  實驗結構以下所示:

    

 

 五、感悟

從該論文內容來看,基本上仍是圍繞着怎麼解決(1)category feature 編碼的問題和(2)獲取高階特徵,經過神經網絡來優化FM,提出了一個NFM的網絡結構。論文主要創新點是:

一、Embeding

二、將二階交叉特徵經過DNN提取高階特徵

相關文章
相關標籤/搜索