目錄
1. 前言
2. PNN模型結構
3. PNN模型原理
3.1 介紹PNN模型 Product Layer 的線性部分
3.2 介紹PNN模型 Product Layer 的非線性交叉部分
3.2.1 Inner Product(內積) 交叉形式,IPNN
3.2.2 Outer Product(外積) 交叉形式,OPNN
1. 前言
說在前面,點擊預估模型在廣告、搜索、推薦領域應用比較廣泛。從傳統的協同過濾、機器學習等方法逐漸過渡到深度學習領域,模型的複雜度在不斷地提高,當然效果也在不斷地提升。雖然目前發表論文時,總會將源代碼放到網上,但是作爲算法工程師要儘量的理解算法原理,並達到復現論文的能力。靜下心閱讀論文、拿出紙和筆推導公式,一定能掌握論文原理的整個脈絡。一起加油學習吧,奧利給!
本文主要介紹一下 Product-based Neural Networks for User Response Prediction (PNN) 點擊預估模型,PNN 結構網絡相對傳統結構的 Embedding+MLP(Multi-layer Perceptron) 點擊預估模型,在 Embedding 層後增加了 Product Layer(特徵乘積層),以捕捉基於 Field 的二階特徵相關性。並定義了Inner Product,Outer Product等多種Product的操作捕捉不同的交叉信息,增強了模型表徵不同數據模式的能力 。
MLP有對特徵進行高階交叉的作用,但是MLP的特徵交叉的能力是比較弱的,這也是爲什麼很多深度學習點擊預估模型加入 Product Layer 的原因。
補充一個小問題:爲什麼MLP有對特徵進行高階交叉的作用?
答:因爲激活函數的存在,爲MLP提供了非線性擬合能力。特徵加權求和的結果,通過sigmoid、tanh等激活函數之後,與其他神經元的輸出進行進一步的混合,再通過下一層神經元的激活函數增加非線性。經過層層神經網絡處理後,使MLP具備了特徵交叉的能力,甚至在N層之後,就具備了擬合任意函數的能力。
2. PNN 模型結構
PNN 網絡結構圖如圖 1 所示。接下來介紹一下PNN模型的網絡結構。
圖1 PNN網絡結構圖
輸入層:多個類別 Field 變量,輸入變量個數爲 ;
Embedding Layer:對 Field 類別做Embedding映射,Embedding維度長度相同,均爲 維;
Product Layer:分爲 部分(線性部分,保留低階特徵); 部分(又分爲Inner Product(內積)、Outer Product(外積) 兩種形式,提供非線性/交叉信息);
Hidden Layer 1:將Product Layer的結果輸入到第一層隱層,
Hidden Layer 2:將Hidden Layer 1的結果輸入到第二層隱層,
輸出層:將Hidden Layer 1的結果經過Sigmoid層輸出預估值,
3. PNN 模型原理
PNN模型的創新點在於 Product Layer,此處主要介紹該部分的原理部分。Product Layer 可以分成兩個部分,一部分是線性部分 ,一部分是非線性部分 。具體形式如下:
3.1 介紹PNN模型 Product Layer 的線性部分
的表達式如下所示:
其中:
(1)
可以認爲 就是Embedding層的複製品;
(2)
的長度爲 ,表示第一個隱層的輸出節點個數,每個元素 是一個標量,每個元素中的權重矩陣 是不同的。計算時 是共享的,爲輸入Embedding 矩陣。
線性部分的權重矩陣參數情況: 。
3.2 介紹PNN模型 Product Layer 的非線性交叉部分
的表達式如下所示:
其中:
3.2.1 Inner Product(內積) 交叉形式,IPNN
此時定義:
其中:
優化前時間複雜度分析:
此時得到一個
文章對這一結構進行了優化,可以看到
第
優化後時間複雜度分析:
得到
3.2.2 Outer Product(外積) 交叉形式,OPNN
當 Product Layer 使用外積時,
爲了進行計算優化,作者引入疊加的概念(sum pooling)。將
此時:
所以,優化後的
優化後時間複雜度分析:
那麼OPNN的時間複雜度由
好了,本文主要內容 Product Layer 介紹到此結束。
參考:
Product-based Neural Networks for User Response Prediction (https://arxiv.org/pdf/1611.00144.pdf)
歡迎加入我們,一起交流學習!