1. 程式人生 > >DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 論文閱讀總結

DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 論文閱讀總結

Abstract

Learning sophisticated feature interactions behind user behaviors is critical in maximizing CTR for recommender systems. Despite great progress, existing methods seem to have a strong bias towards low- or high-order interactions, or require expertise feature engineering. In this paper, we show that it is possible to derive an end-to-end learning model that emphasizes both low- and highorder feature interactions. The proposed model, DeepFM, combines the power of factorization machines for recommendation and deep learning for feature learning in a new neural network architecture. Compared to the latest Wide & Deep model from Google, DeepFM has a shared input to its “wide” and “deep” parts, with no need of feature engineering besides raw features. Comprehensive experiments are conducted to demonstrate the effectiveness and efficiency of DeepFM over the existing models for CTR prediction, on both benchmark data and commercial data.

1. CTR預估

CTR預估資料特點

  1. 輸入中包含類別型和連續型資料。類別型資料需要one-hot,連續型資料可以先離散化再one-hot,也可以直接保留原值
  2. 維度非常高
  3. 資料非常稀疏
  4. 特徵按照Field分組

CTR預估重點在於學習組合特徵。注意,組合特徵包括二階、三階甚至更高階的,階數越高越複雜,越不容易學習。Google的論文研究得出結論:高階和低階的組合特徵都非常重要,同時學習到這兩種組合特徵的效能要比只考慮其中一種的效能要好。

那麼關鍵問題轉化成:如何高效的提取這些組合特徵。一種辦法就是引入領域知識人工進行特徵工程。這樣做的弊端是高階組合特徵非常難提取,會耗費極大的人力。而且,有些組合特徵是隱藏在資料中的,即使是專家也不一定能提取出來,比如著名的“尿布與啤酒”問題。

在DeepFM提出之前,已有LR,FM,FFM,FNN,PNN(以及三種變體:IPNN,OPNN,PNN*),Wide&Deep模型,這些模型在CTR或者是推薦系統中被廣泛使用。

2. 模型演進歷史

DeepFM借鑑了Google的wide & deep的做法,其本質是

  1. 將Wide & Deep 部分的wide部分由 人工特徵工程+LR 轉換為FM模型,避開了人工特徵工程;
  2. FM模型與deep part共享feature embedding。

2.1 線性模型

最開始CTR或者是推薦系統領域,一些線性模型取得了不錯的效果。比如:LR,FTRL。線性模型

有個致命的缺點:無法提取高階的組合特徵。所以常用的做法是人為的加入pairwise feature interactions。即使是這樣:對於那些出現很少或者沒有出現的組合特徵以及高階組合特徵依舊無法提取。

LR最大的缺點就是無法組合特徵,依賴於人工的特徵組合,這也直接使得它表達能力受限,基本上只能處理線性可分或近似線性可分的問題。

2.2 FM模型

線性模型差強人意,直接導致了FM模型應運而生(在Kaggle上打比賽提出來的,取得了第一名的成績)。FM通過隱向量latent vector做內積來表示組合特徵,從理論上解決了低階和高階組合特徵提取的問題。但是實際應用中受限於計算複雜度,一般也就只考慮到2階交叉特徵。

後面又進行了改進,提出了FFM,增加了Field的概念。

2.3 遇上深度學習

隨著DNN在影象、語音、NLP等領域取得突破,人們見見意識到DNN在特徵表示上的天然優勢。相繼提出了使用CNN或RNN來做CTR預估的模型。但是,CNN模型的缺點是:偏向於學習相鄰特徵的組合特徵。 RNN模型的缺點是:比較適用於有序列(時序)關係的資料。

FNN (Factorization-machine supported Neural Network) 的提出,應該算是一次非常不錯的嘗試:先使用預先訓練好的FM,得到隱向量,然後作為DNN的輸入來訓練模型。缺點在於:受限於FM預訓練的效果。
隨後提出了PNN (Product-based Neural Network),PNN為了捕獲高階組合特徵,在embedding layerfirst hidden layer之間增加了一個product layer。根據product layer使用內積、外積、混合分別衍生出IPNN, OPNN, PNN*三種類型。

無論是FNN還是PNN,他們都有一個繞不過去的缺點:**對於低階的組合特徵,學習到的比較少。**而前面我們說過,低階特徵對於CTR也是非常重要的。

Google意識到了這個問題,為了同時學習低階和高階組合特徵,提出了Wide&Deep模型。它混合了一個線性模型(Wide part)Deep模型(Deep part)。這兩部分模型需要不同的輸入,而Wide part部分的輸入,依舊依賴人工特徵工程。

但是,這些模型普遍都存在兩個問題:

  1. 偏向於提取低階或者高階的組合特徵。不能同時提取這兩種型別的特徵。
  2. 需要專業的領域知識來做特徵工程。

DeepFM在Wide&Deep的基礎上進行改進,成功解決了這兩個問題,並做了一些改進,其優勢/優點如下:

  1. 不需要預訓練FM得到隱向量
  2. 不需要人工特徵工程
  3. 能同時學習低階和高階的組合特徵
  4. FM模組和Deep模組共享Feature Embedding部分,可以更快的訓練,以及更精確的訓練學習

3. DeepFM

DeepFM閃亮登場!

主要做法如下:

  1. FM Component + Deep Component。FM提取低階組合特徵,Deep提取高階組合特徵。但是和Wide&Deep不同的是,DeepFM是端到端的訓練,不需要人工特徵工程。
  2. 共享feature embedding。FM和Deep共享輸入和feature embedding不但使得訓練更快,而且使得訓練更加準確。相比之下,Wide&Deep中,input vector非常大,裡面包含了大量的人工設計的pairwise組合特徵,增加了他的計算複雜度。

DeepFM架構圖:

Figure 1: Wide & deep architecture of DeepFM. The wide and deep component share the same input raw feature vector, which enables DeepFM to learn low- and high-order feature interactions simultaneously from the input raw features.

3.1 FM Component

FM部分的輸出由兩部分組成:一個Addition Unit,多個內積單元

y F M = < w , x > + j 1 = 1 d j 2 = j 1 + 1 d < V i , V j > x j 1 x j 2 y_{FM} = <w,x> + \sum_{j_1 = 1}^{d} \sum_{j_2 = j_1 + 1}^{d} <V_i, V_j>x_{j_1} \cdot x_{j_2}
這裡的d是輸入one-hot之後的維度,我們一般稱之為feature_size。對應的是one-hot之前的特徵維度,我們稱之為field_size

FM架構圖:

Figure 3: The architecture of DNN

Addition Unit 反映的是1階的特徵。內積單元反映的是2階的組合特徵對於預測結果的影響。

注意:
雖然公式上Y_fm是所有部分都求和,是一個標量。但是從FM模組的架構圖上我們可以看到,輸入到輸出單元的部分並不是一個標量,應該是一個向量。

實際實現中採用的是FM化簡之後的內積公式,最終的維度是:field_size + embedding_size(對應FM Layer中的神經元個數: Field數量 + 嵌入維度 = F + k,其中 F 為one-hot之前特徵維度,k 為embedding的特徵維度)

這裡分別展開解釋下維度的兩部分是怎麼來的,對於理解模型還是很重要的:

  1. field_size 對應的是 <W,X>

    這裡的X是one-hot之後的,one-hot之後,我們認為X的每一列都是一個單獨的維度的特徵。這裡我們表達的是X的1階特徵,說白了就是單獨考慮X的每個特徵,他們對最終預測的影響是多少。是多少那?是W!W對應的就是這些維度特徵的權重。假設one-hot之後特徵數量是feature_size,那麼W的維度就是 (feature_size, 1)

    這裡<W,X>是把X和W每一個位置對應相乘相加。由於X是one-hot之後的,所以相當於是進行了一次Embedding!X在W上進行一次嵌入,或者說是一次選擇,選擇的是W的行,按什麼選擇那,按照X中不為0的那些特徵對應的index,選擇W中 row=index 的行。

    這裡解釋下Embedding: W是一個矩陣,每一行對應X的一個維度的特徵(這裡是one-hot之後的維度,一定要注意)。W的列數為1,表示嵌入之後的維度是1。W的每一行對應一個特徵,相當於是我們拿輸入X_i作為一個index, X_i的任意一個Field i中只有1個為1,其餘的都是0。哪個位置的特徵值為1,那麼就選中W中對應的行,作為嵌入後這個Field i對應的新的特徵表示。對於每一個Field都執行這樣的操作,就選出來了X_i Embedding之後的表示。注意到,每個Field都肯定會選出且僅選出W中的某一行(想想為什麼?),因為W的列數是固定的,每一個Field都選出W.cols作為對應的新特徵。把每個Field選出來的這些W的行,拼接起來就得到了X Embedding後的新的表示:維度是num(Field) * num(W.cols)。雖然每個Field的長度可能不同,但是都是在W中選擇一行,所以選出來的長度是相同的。這也是Embedding的一個特性:雖然輸入的Field長度不同,但是Embedding之後的長度是相同的。

    什麼?Embedding這麼複雜,怎麼實現的?**非常簡單!直接把X和W做內積即可。**是的,你沒看錯,就是這麼簡單(tensoflow中封裝了下,改成了tf.nn.embedding_lookup(embeddings, index),原理就是不做乘法,直接選出對應的行)。自己寫個例子試試:X.shape=(1, feature_size), W.shape = (feture_size, embedding_size)就知道為什麼選出1對應W的行和做內積結果是一樣的是怎麼回事了。

    所以:**FM模組圖中,黑線部分是一個全連線!W就是裡面的權重。**把輸入X和W相乘就得到了輸出。至於Addition Unit,我們就不糾結了,這裡並沒有做什麼加法,就把他當成是反應1階特徵對輸出的影響就行了。

  2. embedding_size

    embedding_size對應的是
    j 1 = 1 d j 2 = j 1 + 1 d &lt; V i , V j &gt; x j 1 x j 2 \sum_{j_1 = 1}^{d} \sum_{j_2 = j_1 + 1}^{d} &lt;V_i, V_j&gt;x_{j_1} \cdot x_{j_2}

    FM論文中給出了化簡後的公式:
    i = 1 n j = i + 1 n v i , v j x i x j ( 1 ) = 1 2 i = 1 n j = 1 n v i , v j x i x j 1 2 i = 1 n v i , v i x i x i &ThickSpace;&ThickSpace; ( 2 ) = 1 2 ( i = 1 n j = 1 n f = 1 k v i , f v j , f x i x j i = 1 n f = 1 k v i , f v i , f x i x i ) &ThinSpace; ( 3 ) = 1 2 f = 1 k ( i = 1 n v i , f x i ) ( j = 1 n v j , f x j ) i = 1 n v i , f 2 x i 2 &ThickSpace;&ThickSpace;&ThinSpace; ( 4 ) = 1 2 f = 1 k ( i = 1 n v i , f x i ) 2 i = 1 n v i , f 2 x i 2 &ThickSpace;&ThickSpace; \sum_{i=1}^{n} \sum_{j=i+1}^{n} {\langle \mathbf{v}_i, \mathbf{v}_j \rangle} x_i x_j \qquad\qquad\qquad\qquad\qquad\qquad(1)\\ = \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} {\langle \mathbf{v}_i, \mathbf{v}_j \rangle} x_i x_j - \frac{1}{2} \sum_{i=1}^{n} {\langle \mathbf{v}_i, \mathbf{v}_i \rangle} x_i x_i \qquad\qquad\;\;(2)\\ = \frac{1}{2} \left(\sum_{i=1}^{n} \sum_{j=1}^{n} \sum_{f=1}^{k} v_{i,f} v_{j,f} x_i x_j - \sum_{i=1}^{n} \sum_{f=1}^{k} v_{i,f} v_{i,f} x_i x_i \right) \qquad\,(3) \\ = \frac{1}{2} \sum_{f=1}^{k} {\left \lgroup \left(\sum_{i=1}^{n} v_{i,f} x_i \right) \cdot \left(\sum_{j=1}^{n} v_{j,f} x_j \right) - \sum_{i=1}^{n} v_{i,f}^2 x_i^2 \right \rgroup} \quad\;\;\,(4) \\ = \frac{1}{2} \sum_{f=1}^{k} {\left \lgroup \left(\sum_{i=1}^{n} v_{i,f} x_i \right)^2 - \sum_{i=1}^{n} v_{i,f}^2 x_i^2\right \rgroup} \qquad\qquad\qquad\;\;

    相關推薦

    DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 論文閱讀總結

    Abstract Learning sophisticated feature interactions behind user behaviors is critical in maximizing CTR for recommender systems. Despite great

    論文筆記-DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

    contain feature 比較 san date res 離散 edi post 針對交叉(高階)特征學習提出的DeepFM是一個end-to-end模型,不需要像wide&deep那樣在wide端人工構造特征。 網絡結構: sparse feature

    DeepFM: A Factorization-Machine based Neural Network for CTR Prediction簡介與程式碼實現

    論文簡介 Abstract 對於一個基於CTR預估的推薦系統,最重要的是學習到使用者點選行為背後隱含的特徵組合。在不同的推薦場景中,低階組合特徵或者高階組合特徵可能都會對最終的CTR產生影響。但是現存的方法總是忽視了高階或低階組合特徵的聯絡,或者要求專門的特徵工程,因此作者建立了

    CVPR2016之A Key Volume Mining Deep Framework for Action Recognition論文閱讀(視訊關鍵幀選取)

    該論文的主要思想是從視訊中選取關鍵的幀卷(frame volume)用來行為識別。 該文章的意圖是通過對視訊中關鍵幀進行選取,減少與視訊表達內容不相關的視訊幀,實現視訊中行為識別準確率的提升。 該文章主要從兩個方面進行闡述:1、如何選取關鍵幀。2、如何檢

    Deep Interest Network for Click-Through Rate Prediction 論文閱讀總結

    文章目錄 摘要 1. 背景 1.1 名詞解釋 1.2 相關工作 2. 系統總覽 2.1 電商CTR資料特點 2.2 特徵處理(User Behavior Features)

    Path Aggregation Network for Instance Segmentation 論文閱讀

    寫在最前面:最近兩個周心情浮躁,偶爾讀了讀,所以僅是翻譯,未提出自己的問題。 這篇文章是例項分割方向文獻,Mask R-CNN的改進。其中參考了很多大佬的現有的理解,可能參考的東西太多,有疏漏。提示:排版對手機不友好。 原文地址:Path Aggregation Network fo

    Wide & Deep Learning for Recommender Systems 論文閱讀總結

    Wide & Deep Learning for Recommender Systems 論文閱讀總結 文章目錄 Wide & Deep Learning for Recommender Systems 論文閱讀總結 Abstract

    《Kalchbrenner N, Grefenstette E, Blunsom P. A convolutional neural network for modelling sentences》

    概率分布 通過 AD 最小 當前 最大化 gradient function thml Kalchbrenner’s Paper Kal的這篇文章引用次數較高,他提出了一種名為DCNN(Dynamic Convolutional Neural Network)的網絡模型,在

    《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its...》論文閱讀之CRNN

    An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition paper: CRNN 翻譯:CRNN

    深度學習論文翻譯解析(二):An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

    論文標題:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition 論文作者: Baoguang Shi, Xiang B

    MSCNN論文解讀-A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection

     多尺度深度卷積神經網路進行快速目標檢測: 兩階段目標檢測器,與faster-rcnn相似,分為an object proposal network and an accurate detection network. 文章主要解決的是目標大小不一致的問題,尤其是對小目標的檢測,通過多

    A Convolutional Neural Network for Modelling Sentences

    引言 Nal Kalchbrenner等人在2014年arXiv上的paper,原文地址:arXiv:1404.2188v1 [cs.CL] 8 Apr 2014。 自然語言處理的基礎問題在於句子的語義表示,其他特定的任務如分類等都是在語義表示的基礎上進行高層次的處理,所以如何對句子

    論文筆記:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application

    1.歷史方法 1)基於字元的DCNN,比如photoOCR.單個字元的檢測與識別。要求單個字元的檢測器效能很強,crop的足夠好。 2)直接對圖片進行分類。9萬個單詞,組合成無數的單詞,無法直接應用 3)RNN,訓練和測試均不需要每個字元的位置。但是需要預處理,從圖片得到特

    Multi-View Gait Recognition Based on A Spatial-Temporal Deep Neural Network論文翻譯和理解

    Multi-View Gait Recognition Based on A Spatial-Temporal Deep Neural Network論文翻譯和理解 翻譯格式:一句英文,一句中文 結合圖來講解 ABSTRACT ABSTRACT This paper p

    ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs(閱讀理解)

    在卷積前進行attention,通過attention矩陣計算出相應句對的attentionfeature map,然後連同原來的featuremap一起輸入到卷積層。主要的原來是將輸入擴充套件成雙通道,新增的新通道就是通過Attention Matrix計算出來的attention feature map

    論文筆記:DRAW: A Recurrent Neural Network For Image Generation

    DRAW: A Recurrent Neural Network For Image Generation 2019-01-14 19:42:50   Paper:http://proceedings.mlr.press/v37/gregor15.pdf  本文將 V

    Deep Alignment Network: A convolutional neural network for robust face alignment

    論文分析 論文提出了一種類似級聯的神經網路結構。這一點上很遺憾,我在一個月之前也想到了這種模式。因為對於實時 Landmark 的跟蹤,其實可以利用上一幀的預測結果來預測下一幀 Landmark 的位置。但現代大部分的 CNN 結構沒辦法辦到。在與朋友的討論中

    Deep Neural Network for Image Classification: Application

    cal pack 分享圖片 his exp params next min super When you finish this, you will have finished the last programming assignment of Week 4, and a

    <Convolutional Neural Network for Paraphrase Identification>

    進行 種類 AR 分析 興趣 其中 向量 ras 2014年 Yin的這篇論文提出了一種叫Bi-CNN-MI的架構,其中Bi-CNN表示兩個使用Siamese框架的CNN模型;MI表示多粒度的交互特征。Bi-CNN-MI包含三個部分: 句子分析模型 (CNN-SM)

    SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation

    逐級迴歸的年齡估計 本文是國立臺灣大學發表的一篇依據人臉圖片進行年齡估計的文章.受DEX論文的啟發,這篇文章也把迴歸問題轉換為多個分類問題.SSR-Net採用了由粗到細多級分類的方式.每個stage僅對其之前的預測做出更精細的判斷.因此,對於神經元個數的需要就大大減少,這樣模型的體積也就下來了.