乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      綜述:機(jī)器學(xué)習(xí)在CTR中的應(yīng)用

       LZS2851 2019-01-23

      背景:設(shè)計(jì)個(gè)性化信息檢索時(shí),用戶行為預(yù)測(cè)扮演著重要的作用。用戶行為預(yù)測(cè)的目標(biāo)是估計(jì)用戶點(diǎn)擊、購(gòu)買等行為的概率,而該概率代表了用戶對(duì)該item的興趣程度,用戶之前的行為同時(shí)也影響著我們隨后的排序。如何根據(jù)用戶的query選擇正確的ads并對(duì)其進(jìn)行合理的排序,不僅極大的影響著用戶點(diǎn)擊、瀏覽等行為,而且對(duì)于搜索廣告的收益也起到重要的作用。
      IR任務(wù)中,數(shù)據(jù)大部分為multi-field類型,例如:[weekday=Tuesday, Gender=Male, City=London],我們可以通過one-hot對(duì)其進(jìn)行編碼,映射為高維稀疏特征。例如,我們可以將上述特征進(jìn)行one-hot編碼,然后concatenate得到
      [\underbrace {[0,1,0,0,0,0,0]}_{{\rm{Weekday = Tuesday}}}\underbrace {[0,1]}_{{\rm{Gender = Male}}}\underbrace {[0,0,1,0,...,0,0]}_{{\rm{City = London}}}]

      LR

      {\mathop{\rm f}\nolimits} \left( {\bf{x}} \right) = {\bf{wx}} + b
      ,其中\bf{x}為特征,\bf{w}為特征權(quán)重,b為偏差。

      Degree-2 Polynomial (Poly2)

      簡(jiǎn)介: LR模型具有計(jì)算高效、可解釋性強(qiáng)等優(yōu)點(diǎn),但是需要人工抽取交叉特征。而交叉特征對(duì)于模型性能起到重要的作用,相比LR線性模型,Poly2設(shè)計(jì)了特征自動(dòng)交叉,從而自動(dòng)計(jì)算交叉特征提升模型性能。
      {\mathop{\rm y}\nolimits} \left( {\bf{x}} \right) = {w_0} + \sum\limits_{i = 1}^m {{x_i}{w_i} + \sum\limits_{i = 1}^m {\sum\limits_{j = i + 1}^m {{x_i}{x_j}{w_{h\left( {i,j} \right)}}} } }
      h\left( {i,j} \right)是將ij編碼為一個(gè)自然數(shù)的函數(shù)。

      FM

      簡(jiǎn)介: Poly2模型雖然能夠自動(dòng)抽取交叉特征,但是當(dāng)特征維度較高并且稀疏時(shí),權(quán)重\bf{w}難以收斂。針對(duì)該問題作者提出了FM算法,其中正定矩陣\bf{w},可以通過特征向量空間\bf{v}漸進(jìn)表示。
      {\mathop{\rm y}\nolimits} \left( {\bf{x}} \right): = {w_0} + \sum\limits_{i = 1}^n {{x_i}{w_i} + \sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n { < {{\bf{v}}_i},{{\bf{v}}_j} > {x_i}{x_j}} } }
      \begin{array}{l} \sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n { < {{\bf{v}}_i},{{\bf{v}}_j} > {x_i}{x_j}} } \\ = \frac{1}{2}\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n { < {{\bf{v}}_i},{{\bf{v}}_j} > {x_i}{x_j}} } - \frac{1}{2}\sum\limits_{i = 1}^n { < {{\bf{v}}_i},{{\bf{v}}_i} > {x_i}{x_i}} \\ = \frac{1}{2}\left( {\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {\sum\limits_{f = 1}^k {{v_{i,f}}{v_{j,f}}} {x_i}{x_j}} } - \sum\limits_{i = 1}^n {\sum\limits_{f = 1}^k {{v_{i,f}}{v_{i,f}}{x_i}{x_i}} } } \right)\\ = \frac{1}{2}\sum\limits_{f = 1}^k {\left( {\left( {\sum\limits_{i = 1}^n {{v_{i,f}}} {x_i}} \right)\left( {\sum\limits_{j = 1}^n {{v_{j,f}}} {x_j}} \right) - \sum\limits_{i = 1}^n {v_{i,f}^2x_i^2} } \right)} \\ = \frac{1}{2}\sum\limits_{f = 1}^k {\left( {{{\left( {\sum\limits_{i = 1}^n {{v_{i,f}}} {x_i}} \right)}^2} - \sum\limits_{i = 1}^n {v_{i,f}^2x_i^2} } \right)} \end{array}
      \sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n { < {{\bf{v}}_i},{{\bf{v}}_j} > {x_i}{x_j}} }是一個(gè)無對(duì)角線的上三角矩陣,直接可以計(jì)算整個(gè)矩陣然后減去對(duì)角線。

      FFM


      簡(jiǎn)介: FM算法將所有特征歸結(jié)到一個(gè)field,而FFM算法則按照field對(duì)不同特征進(jìn)行區(qū)分,主要體現(xiàn)在交叉項(xiàng)中。在FM算法中user這個(gè)特征對(duì)應(yīng)的latent vector不論是對(duì)price、genre還是movie都是相同的,而FFM算法中則對(duì)特征進(jìn)行歸類,latent vector會(huì)區(qū)分交叉filed,模型參數(shù)個(gè)數(shù)n(n-1)/2??梢钥闯鰜鞦M算法時(shí)FFM算法的一個(gè)特例,但是隨著FFM算法對(duì)latent vector的細(xì)化,F(xiàn)M算法中交叉簡(jiǎn)化將不再適用.
      y\left( x \right) = {w_0} + \sum\limits_{i = 1}^n {{x_i}{w_i}} + \sum\limits_{{j_1} = 1}^n {\sum\limits_{{j_2} = {j_1} + 1}^n {\left( {{{\bf{w}}_{{j_1},{f_2}}} \cdot {{\bf{w}}_{{j_2},{f_1}}}} \right)} } {x_{{j_1}}}{x_{{j_2}}}

      其中,{f_1},{f_2}分別表示{j_1}{j_2}對(duì)應(yīng)的field,{\bf{w}}_{{j_1},{f_2}}代表{j_1}{f_2}交叉的權(quán)重。

      FwFMs


      簡(jiǎn)介: FFM算法按照field對(duì)latent vector進(jìn)行區(qū)分,從而提升模型的效果。但是FFM算法沒有區(qū)分不同特征交叉的重要性,本文針對(duì)不同特征交叉賦予不同的權(quán)重,從而達(dá)到更精細(xì)的計(jì)算交叉特征的目的。
      網(wǎng)絡(luò)結(jié)構(gòu)
      {\mathop{\rm y}\nolimits} \left( {\bf{x}} \right): = {w_0} + \sum\limits_{i = 1}^n {{x_i}{w_i} + \sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n { < {{\bf{v}}_i},{{\bf{v}}_j} > {x_i}{x_j}} } } {r_{{\mathop{\rm F}\nolimits} (i),{\mathop{\rm F}\nolimits} (j)}}

      其中,{r_{{\mathop{\rm F}\nolimits} (i),{\mathop{\rm F}\nolimits} (j)}}表示field {\mathop{\rm F}\nolimits} (i),{\mathop{\rm F}\nolimits} (j)交叉特征的重要性。

      AFM


      簡(jiǎn)介: AFM算法與FwFM算法類似,目標(biāo)都是希望通過對(duì)不同交叉特征采用不同權(quán)重,從而減少引入噪聲提升模型性能。

      AFM的embedding層后,先讓f個(gè)field的特征做了element-wise product后,得到f*(f-1)/2個(gè)交叉項(xiàng),然后AFM引入了一個(gè)Attention Net,認(rèn)為這些交叉特征項(xiàng)每個(gè)對(duì)結(jié)果的貢獻(xiàn)是不同的。例如x_ix_j的權(quán)重重要度,用a_{ij}來表示。從這個(gè)角度來看,其實(shí)AFM其實(shí)就是個(gè)加權(quán)累加的過程。
      1: Attention-based Pooling Layer
      {{a
      {a_{ij}} = \frac{{\exp \left( {{{a
      2:AFM模型結(jié)構(gòu)
      y\left( x \right) = {w_0} + \sum\limits_{i = 1}^n {{x_i}{w_i}} + {{\bf{p}}^{\rm{T}}}\sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n {{a_{ij}}\left( {{{\bf{v}}_i} \odot {{\bf{v}}_j}} \right)} } {x_i}{x_j}

      其中,\bf{h},\bf{w}\bf{p},\bf為模型參數(shù)。

      FNN


      簡(jiǎn)介: LR、FM被廣泛的應(yīng)用在工業(yè)場(chǎng)景中,但是這些模型對(duì)于抽取高階特征顯得無能為力。深度模型可以學(xué)習(xí)高階復(fù)雜的交叉特征,對(duì)于提升模型性能有著重要的作用。由于CTR中大部分特征是離散、高維且稀疏的,需要embedding后才能用nn學(xué)習(xí)。

      FNN模型將embedding層用FM初始化,即每個(gè)特征對(duì)應(yīng)一個(gè)偏置項(xiàng)w_i和一個(gè)k維向量v_i。然后參數(shù)向量再隨著訓(xùn)練不斷學(xué)習(xí)調(diào)整。假設(shè)每個(gè)field的類別特征都只有一個(gè)1值,其余為0值,即可進(jìn)行one-hot編碼,然后做embedding,Dense Layer里每個(gè)Field對(duì)應(yīng)的參數(shù)就是該Field那個(gè)不為0的變量對(duì)應(yīng)的FM里的偏置項(xiàng)w_i和k維隱向量v_i。簡(jiǎn)單說模型第一層到第二層之間其實(shí)是普通的全連接層,而為0的輸入變量對(duì)Dense Layer里的隱單元值不做貢獻(xiàn)。
      FNN模型結(jié)構(gòu)
      {z_i} = {\bf{W}}_0^i \cdot x[star{t_i}:en{d_i}] = \left( {{w_i},v_i^1,v_i^2,...,v_i^K} \right)
      {{\bf{l}}_1} = \tanh \left( {{{\bf{W}}_1}{\bf{z}} + {{\bf}_1}} \right)
      {{\bf{l}}_2} = \tanh \left( {{{\bf{W}}_2}{{\bf{l}}_1} + {{\bf}_2}} \right)
      \hat y = {\mathop{\rm sigmoid}\nolimits} \left( {{{\bf{W}}_3}{{\bf{l}}_2} + {{\bf}_3}} \right)
      損失函數(shù)(最小交叉熵)為:
      L\left( {y,\hat y} \right) = - y\log \hat y - \left( {1 - y} \right)\log \left( {1 - \hat y} \right)

      CCPM


      簡(jiǎn)介: 模型結(jié)構(gòu)整體結(jié)構(gòu)相對(duì)比較簡(jiǎn)單,首先將特征映射到embedding稠密向量,然后經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)抽取高維特征,最后通過pooling層抽取主要的高維信息。

      PNN


      簡(jiǎn)介: FNN算法實(shí)際上是對(duì)特征embedding之后進(jìn)行concatenate,再接FC,雖然使用了激活函數(shù)增加了非線性,實(shí)際上是對(duì)特征進(jìn)行了加權(quán)組合(add 操作)。PNN算法與FNN算法的區(qū)別在于PNN算法中間多了一層Product Layer層。其中z為embedding層的線性部分,p為embedding層的特征交叉部分,其他與FNN算法結(jié)構(gòu)相同。
      網(wǎng)絡(luò)結(jié)構(gòu)
      {{\bf{l}}_z} = \left( {{\bf{l}}_z^1,{\bf{l}}_z^2,...,{\bf{l}}_z^n,...,{\bf{l}}_z^{{D_1}}} \right),\;\;\;\;{\bf{l}}_z^n = {\bf{W}}_z^n \odot {\bf{z}}

      {{\bf{l}}_p} = \left( {{\bf{l}}_p^1,{\bf{l}}_p^2,...,{\bf{l}}_p^n,...,{\bf{l}}_p^{{D_1}}} \right),\;\;\;{\bf{l}}_p^n = {\bf{W}}_p^n \odot {\bf{p}}

      {{\bf{l}}_1} = {\mathop{\rm relu}\nolimits} \left( {{{\bf{l}}_z} + {{\bf{l}}_p} + {{\bf}_1}} \right)

      {{\bf{l}}_2} = {\mathop{\rm relu}\nolimits} \left( {{{\bf{W}}_2}{{\bf{l}}_1} + {{\bf}_2}} \right)

      \hat y = \sigma \left( {{{\bf{W}}_3}{{\bf{l}}_2} + {b_3}} \right)

      Product layer分為兩部分,其中z代表線性信號(hào)向量,而p代表二次信號(hào)向量。
      1: Inner Product-based Neural Network
      {\mathop{\rm g}\nolimits} \left( {{{\bf{f}}_i},{{\bf{f}}_j}} \right) = < {{\bf{f}}_i},{{\bf{f}}_j} >

      ,即用內(nèi)積來表示特征的交叉,類似于“且”的關(guān)系,{{\bf{f}}_i}為embedding向量。
      2: Outer Product-based Neural Network
      {\mathop{\rm g}\nolimits} \left( {{{\bf{f}}_i},{{\bf{f}}_j}} \right) = {{\bf{f}}_i}{\bf{f}}_j^{\rm{T}},即用矩陣乘法來表示特征的交叉,類似于“和”的關(guān)系

      Wide & Deep


      簡(jiǎn)介: 線性模型具有計(jì)算高效、可解釋性強(qiáng)等優(yōu)點(diǎn),但是模型的泛化性差。深度學(xué)習(xí)模型對(duì)于長(zhǎng)尾特征具有更高的泛化性,并且不需要大量的特征工程。然而當(dāng)交叉特征稀疏時(shí),深度學(xué)習(xí)模型容易出現(xiàn)over-generalize。本文提出同時(shí)對(duì)線性模型和深度模型聯(lián)合訓(xùn)練,從而結(jié)合線性模型記憶性強(qiáng)、深度模型泛化性強(qiáng)的優(yōu)點(diǎn)。
      網(wǎng)絡(luò)結(jié)構(gòu)
      1: The Wide Component
      y = {{\bf{w}}^{\rm{T}}}{\bf{x}} + b

      wide部分長(zhǎng)處在于學(xué)習(xí)樣本中的高頻部分,優(yōu)點(diǎn)是模型的記憶性好,對(duì)于樣本中出現(xiàn)過的高頻低階特征能夠用少量參數(shù)學(xué)習(xí);缺點(diǎn)是模型的泛化能力差,例如對(duì)于沒有見過的ID類特征,模型學(xué)習(xí)能力較差
      2: The Deep Component
      {{\bf{a}}^{\left( {l + 1} \right)}} = {\mathop{\rm f}\nolimits} \left( {{{\bf{W}}^l}{{\bf{a}}^l} + {{\bf}^l}} \right)

      其中,l代表第l層,{\mathop{\rm f}\nolimits}為激活函數(shù)。
      deep部分長(zhǎng)處在于學(xué)習(xí)樣本中的長(zhǎng)尾部分,優(yōu)點(diǎn)是泛化能力強(qiáng),對(duì)于少量出現(xiàn)過的樣本甚至沒有出現(xiàn)過的樣本都能做出預(yù)測(cè)(非零的embedding向量);缺點(diǎn)是模型對(duì)于低階特征的學(xué)習(xí)需要用較多參才能等同wide部分效果,而且泛化能力強(qiáng)某種程度上也可能導(dǎo)致過擬合出現(xiàn)badcase
      3: Joint Training of Wide & Deep Model
      {\bf{P}}\left( {{\rm{Y}} = 1|{\bf{x}}} \right) = \sigma \left( {{\bf{w}}_{wide}^{\rm{T}}\left[ {{\bf{x}},\Phi \left( {\bf{x}} \right)} \right] + {\bf{w}}_{deep}^T{{\bf{a}}^{{l_f}}} + b} \right)
      其中,{\bf{w}}_{wide}為wide部分的權(quán)重,{\bf{w}}_{deep}為deep部分的權(quán)重,其中{\Phi}\left( {\bf{x}} \right)是指交叉特征。

      DeepFM


      簡(jiǎn)介: FM算法仍然屬于wide&deep架構(gòu),不過在wide部分做了改進(jìn),采用FM替換linear layer,從而通過FM算法對(duì)交叉特征的計(jì)算能力提升模型的整體性能。其中inner product和deep network共享embedding feature,因此模型能同時(shí)從原始特征中學(xué)習(xí)低階、高階特征,并且不需要專業(yè)特征。
      網(wǎng)絡(luò)結(jié)構(gòu)
      1:FM component
      {{\mathop{\rm y}\nolimits}_{{\rm{FM}}}} = < w,x > + \sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n { < {{\bf{v}}_i},{{\bf{v}}_j} > {x_i} \cdot {x_j}} }

      2:Deep component
      {a^{l + 1}} = \sigma \left( {{{\bf{W}}^l}{{\bf{a}}^l} + {{\bf}^l}} \right)

      3:combination output layer
      \hat y = {\mathop{\rm sigmoid}\nolimits} \left( {{{\mathop{\rm y}\nolimits} _{{\rm{FM}}}} + {{\mathop{\rm y}\nolimits} _{{\rm{DNN}}}}} \right)

      NFM


      簡(jiǎn)介: FNN、wide&deep、DeepFM等算法在deep network部分都是對(duì)embedding之后的特征進(jìn)行concatenate,未能充分進(jìn)行特征交叉計(jì)算。本文NFM算法則是對(duì)embedding直接采用element-wise后sum起來做特征交叉,然后通過MLP直接將特征壓縮,最后concatenate linear部分和deep部分的特征。
      網(wǎng)絡(luò)結(jié)構(gòu)
      1: Bi-Interaction Layer
      {{\mathop{\rm f}\nolimits}_{BI}}\left( {{{\bf{v}}_x}} \right) = \sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n {{x_i}{{\bf{v}}_i} \odot {x_j}} } {{\bf{v}}_j}

      {{\mathop{\rm f}\nolimits}_{BI}}\left( {{{\bf{v}}_x}} \right) = \frac{1}{2}\left[ {{{\left( {\sum\limits_{i = 1}^n {{x_i}{{\bf{v}}_i}} } \right)}^2} - \sum\limits_{i = 1}^n {{{\left( {{x_i}{{\bf{v}}_i}} \right)}^2}} } \right]

      其中,\odot代表element-wise product,因此{{\mathop{\rm f}\nolimits}_{BI}}的維度等于\bf{v}的維度。
      2:Hidden Layers
      \begin{array}{l} {{\bf{z}}_1} = {\sigma_1}\left( {{{\bf{W}}_1}{{\mathop{\rm f}\nolimits}_{BI}}\left( {{{\bf{v}}_x}} \right) + {{\bf}_1}} \right)\\ {{\bf{z}}_2} = {\sigma_2}\left( {{{\bf{W}}_2}{{\bf{z}}_1} + {{\bf}_2}} \right)\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;......\\ {{\bf{z}}_L} = {\sigma_L}\left( {{{\bf{W}}_L}{{\bf{z}}_2} + {{\bf}_L}} \right) \end{array}
      3:Prediction Layer
      {\mathop{\rm f}\nolimits} \left( {\bf{x}} \right) = {{\bf{h}}^{\rm{T}}}{{\bf{z}}_L}
      \begin{array}{l} {{\hat y}_{NFM}}\left( {\bf{x}} \right) = {w_0} + \sum\limits_{i = 1}^m {{x_i}{w_i} + {{\bf{h}}^{\rm{T}}}{\sigma_L}\left( {{{\bf{W}}_L}\left( {...{\sigma_1}\left( {{{\bf{W}}_1}{{\mathop{\rm f}\nolimits}_{BI}}\left( {{{\bf{v}}_x}} \right) + {{\bf}_1}} \right)...} \right) + {{\bf}_L}} \right)} \end{array}

      NFM算法可退化為FM算法,將向量\bf{h}置為全1的向量,即有:
      \begin{array}{l} {{\hat y}_{NFM - 0}}\left( {\bf{x}} \right) = {w_0} + \sum\limits_{i = 1}^m {{x_i}{w_i} + {{\bf{h}}^{\rm{T}}}\sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n {{x_i}{{\bf{v}}_i} \odot {x_j}} } {{\bf{v}}_j}} \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\; = {w_0} + \sum\limits_{i = 1}^m {{x_i}{w_i} + \sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n {\sum\limits_{f = 1}^k {{h_f}{v_{if}}{v_{jf}} \cdot {x_i}{x_j}} } } } \end{array}

      DCN


      簡(jiǎn)介: 目前FM、FFM、DeepFM和PNN算法都只計(jì)算了2階交叉,對(duì)于更高維度的交叉特征只能通過deep部分去學(xué)習(xí)。因此作者提出了Deep&cross network,可以任意組合特征,而且不增加網(wǎng)絡(luò)參數(shù)。
      網(wǎng)絡(luò)結(jié)構(gòu)
      1:embedding and stacking layer
      將稀疏特征用embedding進(jìn)行表示,比如:country=USA,以一個(gè)稠密向量表示USA這個(gè)特征,然后將所有的特征concatenate為一個(gè)向量用于表示輸入。這里將dense特征和embedding特征一起concatenate,然后做為模型的輸入。
      {{\bf{x}}_0} = \left[ {{\bf{x}}_{embed,1}^T,...,{\bf{x}}_{embed,k}^T,{\bf{x}}_{dense}^T} \right]

      2: cross layer
      借鑒于residual network的思想 ,在每一層網(wǎng)絡(luò)對(duì)特征進(jìn)行交叉
      {{\bf{x}}_{l + 1}} = {{\bf{x}}_0}{\bf{x}}_l^T{{\bf{w}}_l} + {{\bf}_l} + {{\bf{x}}_l} = {\mathop{\rm f}\nolimits} \left( {{{\bf{x}}_l},{{\bf{w}}_l},{{\bf}_l}} \right) + {{\bf{x}}_l}

      3: deep layer
      {{\bf{h}}_{l + 1}} = {\mathop{\rm f}\nolimits} \left( {{{\bf{w}}_l}{{\bf{h}}_l} + {{\bf}_l}} \right)

      ,其中{\mathop{\rm f}\nolimits}(.)為relu激活函數(shù)。
      4:combination output layer
      將經(jīng)過cross layer的輸出x和經(jīng)過deep layer的輸出h進(jìn)行concat得到最終的特征向量。
      p = \sigma \left( {\left[ {{\bf{x}}_{{L_1}}^T,{\bf{h}}_{{L_2}}^T} \right]{{\bf{W}}_{{\rm{logits}}}}} \right)

      xDeepFM


      簡(jiǎn)介: DCN模型做特征交叉時(shí)采用的是特征內(nèi)積,我們知道inner product得到的是一個(gè)標(biāo)量。
      {{\bf{x}}_k} = {{\bf{x}}_0}{\bf{x}}_{k - 1}^{\mathop{\rm T}\nolimits} {{\bf{w}}_k} + {{\bf}_k} + {{\bf{x}}_{k - 1}}

      去掉偏執(zhí)項(xiàng){{\bf}_k}后有
      \begin{array}{l} {{\bf{x}}_{i + 1}} = {{\bf{x}}_0}{\bf{x}}_i^{\mathop{\rm T}\nolimits} {{\bf{w}}_{i + 1}} + {{\bf{x}}_i}\\ \;\;\;\;\; = {{\bf{x}}_0}\left( {{{\left( {{\alpha ^i}{{\bf{x}}_0}} \right)}^T}{{\bf{w}}_{i + 1}}} \right) + {\alpha ^i}{{\bf{x}}_0}\\ \;\;\;\;\; = {\alpha ^{i + 1}}{{\bf{x}}_0} \end{array}

      \alpha是一個(gè)標(biāo)量,因此多層之后{{\bf{x}}_{i + 1}}仍是{{\bf{x}}_0}與標(biāo)量的乘積,并且特征交叉只是bit-wise級(jí)。
      本文通過vector-wise級(jí)進(jìn)行交叉計(jì)算,并且不會(huì)帶來過高的計(jì)算復(fù)雜度。從圖中可以看出,整個(gè)模型由三部分組成,分別是線性層、CIN(Compressed Interaction Network)和DNN,整體結(jié)構(gòu)仍然屬于wide&deep架構(gòu)。
      根據(jù)前一層隱層的狀態(tài){\bf{X}}^{(k-1)}和原特征矩陣{\bf{X}}^0,計(jì)算出一個(gè)中間結(jié)果{\bf{Z}}^{(k)},它是一個(gè)三維的張量。


      {\bf{X}}_{h,*}^k = \sum\limits_{i = 1}^{{{\rm{H}}_{k - 1}}} {\sum\limits_{j = 1}^m {{\bf{W}}_{ij}^{k,h}} } \left( {{\bf{X}}_{i,*}^{k - 1} \circ {\bf{X}}_{j,*}^0} \right)

      其中,m代表field個(gè)數(shù),{{\rm{H}}_{k - 1}}代表第k-1層的特征向量個(gè)數(shù),{\bf{W}}類似于CNN中的filter,而矩陣外積之后的矩陣就是需要卷積的image,{\bf{X}}_{h,*}^k就是一個(gè)feature map。
      {\mathop{\rm p}\nolimits}_i^k = \sum\limits_{j = 1}^{\rm{D}} {{\bf{X}}_{i,j}^k}
      其中,i \in \left[ {1,{{\rm{H}}_k}} \right]。這樣,我們就得到一個(gè)pooling vector:{{\mathop{\rm p}\nolimits} ^k} = \left[ {{\mathop{\rm p}\nolimits} _1^k,{\mathop{\rm p}\nolimits} _2^k,...,{\mathop{\rm p}\nolimits} _{{H_K}}^k} \right]。hidden layers的所有polling vectors在連接到output units之前會(huì)被concatenated:{{\mathop{\rm \bf{p}}\nolimits} ^ + } = \left[ {{{\mathop{\rm \bf{p}}\nolimits} ^1},{{\mathop{\rm \bf{p}}\nolimits} ^2},...,{{\mathop{\rm \bf{p}}\nolimits} ^T}} \right],\rm{T}表示網(wǎng)絡(luò)的深度。

      \hat y = \sigma \left( {{\bf{w}}_{{\rm{linear}}}^T{\bf{a}} + {\bf{w}}_{dnn}^T{\bf{x}}_{dnn}^k + {\bf{w}}_{cin}^T{{\bf{p}}^ + } + b} \right)

      總結(jié): 從LR到xDeepFM算法,模型的優(yōu)化主要在于從wide和deep兩方面去獲得更多更合理的交叉特征。wide部分的優(yōu)化從ploy2、FM、FFM、AFM算法的二階交叉到DCN、xDeepFM的高階交叉;deep部分的優(yōu)化從FNN對(duì)embedding進(jìn)行concatenate,到PNN對(duì)embedding進(jìn)行inner product、outer product,再到NFM對(duì)embeding進(jìn)行bi_interaction。為了獲得更好的效果,目前主流的深度學(xué)習(xí)算法大都采用wide&deep框架,同時(shí)結(jié)合wide部分和deep部分的優(yōu)點(diǎn)。
      模型復(fù)雜度

      modelNumber of Parameters
      LRm
      Poly2m + H
      FMsm + m * K
      FFMsm + m * (n-1) * K
      FwFMsm + m * K + n * (n-1)/2
      AFMm + m * K + K * H1 + H1 * 2 + K
      FNN1 + n + n * k + (1 + f + f * k) * H1 + H1 * H2 + H2 * 1
      IPNN1 + n + n * k + (1 + f + f * k) * H1 + H1 * H2 + H2 * 1
      OPNN1 + n + n * k + (1 + f + f * k) * H1 + H1 * H2 + H2 * 1
      Wide&deep1 + n + n * k + f * k * H1 + H1 * H2 + H2
      deepFM1 + n + n * k + f * k * H1 + H1 * H2 + H2 * 1
      NFM1 + n + n * k + k * H1 + H1 * H2 + H2 * 1
      DCN1 + n + 2 * d * Lc + d * (m + 1) + m * (m + 1) * (Ld - 1) + 1 + d + m
      xDeepFM1 + n + k * H1 * f + H1 * H2 + H2 * 1 + H2 * (1 + H1 * f)

      模型效果

      DUPN


      簡(jiǎn)介: 前面列舉的算法都是針對(duì)單點(diǎn)數(shù)據(jù),而用戶的行為序列一定程度上代表了用戶當(dāng)前的興趣,但是行為序列中不是每一次行為都是同等重要的。每一次行為對(duì)每一個(gè)用戶的重要程度都是不同的,因此本文通過user對(duì)行為序列做attention計(jì)算得到一個(gè)user embedding,為了獲得更加通用的user embedding,作者將該user embedding應(yīng)用到多個(gè)任務(wù)做multi-task建模。
      輸入item節(jié)點(diǎn)特征包含:

      {\bf{h}} = \sum\limits_{t = 1}^N {{a_t}{{\bf{h}}_t}}

      {a_t} = \frac{{\exp \left( {{\mathop{\rm attention}\nolimits} \left( {{{\bf{h}}_t},q,u,\omega } \right)} \right)}}{{\sum\nolimits_{t = 1}^T {\exp \left( {{\mathop{\rm attention}\nolimits} \left( {{{\bf{h}}_t},q,u,\omega } \right)} \right)} }}

      attention是一個(gè)兩層的全連接層。

      RIB


      簡(jiǎn)介: RIB模型和DUPN網(wǎng)絡(luò)結(jié)構(gòu)類似于,不同之處在于attention計(jì)算。另外本文輸入特征中加入商品頁停留時(shí)間特征、用戶行為(點(diǎn)擊、瀏覽、購(gòu)買、加入購(gòu)物車)和哪個(gè)模塊進(jìn)入商品頁,具體特征如下:

      VarAttributeDescription
      p_iProduct IDSKU(Stock Keeping Unit)
      c_iCategory IDProduct category
      a_1Home2ProductEnter p_i from homepage
      a_2ShopList2ProductEnter p_i from category page
      a_3Sale2ProductEnter p_i from sale page
      a_4Cart2ProductEnter p_i from carted page
      a_5SearchList2ProductEnter p_i from searched results
      a_6Detail_commentsIn p_i comment module
      a_7Detail_specificationIn p_i specification module
      a_8Detail_bottomAt the bottom
      a_9CartAdd p_i to cart
      a_10OrderOrder p_i
      t_1Dwell time0 \sim9 seconds
      t_2Dwell time10\sim24 seconds
      t_3Dwell time25\sim60 seconds
      t_4Dwell time61\sim120 seconds
      t_5Dwell time>120 seconds

      其中attention計(jì)算為:
      {{\bf{M}}_t} = \tanh \left( {{{\bf{w}}_m}{{\bf{h}}_t} + {b_m}} \right)
      {\bf{at}}{{\bf{t}}_t} = {\mathop{\rm softmax}\nolimits} \left( {{{\bf{w}}_a}{{\bf{M}}_t} + {b_a}} \right)
      {\bf{output}} = \sum\limits_{t = 1}^T {{\bf{at}}{{\bf{t}}_t}{{\bf{h}}_t}}

      DIN


      簡(jiǎn)介: 與DUPN、RIB算法不同,本文并未采用GRU網(wǎng)絡(luò)對(duì)用戶歷史行為序列進(jìn)行建模,而是直接通過attention對(duì)行為序列進(jìn)行加權(quán)。DIN模型通過當(dāng)前item對(duì)用戶歷史行為數(shù)據(jù)進(jìn)行加權(quán)求和計(jì)算用戶表征向量,這里通過dice激活函數(shù)計(jì)算歷史行為的權(quán)重。與候選廣告商品相關(guān)的行為賦予更高的權(quán)重,對(duì)用戶興趣的表示起主要作用。
      1:用戶歷史行為向量
      {{\bf{v}}_{\rm{U}}}\left( {\bf{A}} \right) = {\mathop{\rm f}\nolimits} \left( {{{\bf{v}}_A},{{\bf{e}}_1},{{\bf{e}}_2},...,{{\bf{e}}_H}} \right) = \sum\limits_{j - 1}^H {{\mathop{\rm a}\nolimits} \left( {{{\bf{e}}_j},{{\bf{v}}_A}} \right)} {{\bf{e}}_j} = \sum\limits_{j = 1}^{\rm{H}} {{{\bf{w}}_j}{{\bf{e}}_j}}

      其中,\bf{e}代表用戶行為向量,\bf{v}代表廣告embedding向量。
      2:activation function
      RELU激活函數(shù)從0點(diǎn)進(jìn)行分割,大于0原樣輸出,小于0輸出為0,這樣將會(huì)導(dǎo)致模型更新緩慢,因此它的改進(jìn)版PRELU,又叫LeakyRELU的出現(xiàn),它修正了小于0輸出為0的問題,即使小于0也能更新網(wǎng)絡(luò)參數(shù),加快模型收斂。但是它仍然是在0點(diǎn)進(jìn)行分割,數(shù)據(jù)分割應(yīng)該是隨著數(shù)據(jù)而自適應(yīng)的變化,因此作者提出了PRELU的改進(jìn)版Dice。


      3:自適應(yīng)歸一化
      不歸一化時(shí),SGD只需要更新mini-batch中非零稀疏特征。但是加入l2歸一化之后,每個(gè)mini-batch需要計(jì)算所有參數(shù),這將會(huì)導(dǎo)致計(jì)算負(fù)擔(dān)加重。在CTR任務(wù)中,特征較為稀疏并且維度較高,大部分特征只出現(xiàn)幾次,而小部分特征出現(xiàn)很多次,即長(zhǎng)尾分布,這將會(huì)導(dǎo)致模型過擬合。一個(gè)較為直接的方式,對(duì)出現(xiàn)次數(shù)較少的特征進(jìn)行截?cái)?,但是這樣將會(huì)導(dǎo)致信息的丟失,因此作者提出了一種根據(jù)特征頻次自適應(yīng)的更新方式。
      1:出現(xiàn)頻次較高的特征給予較小的正則化強(qiáng)度
      2:出現(xiàn)頻次較高的特征給予較高的正則化強(qiáng)度
      {{\bf{w}}_j} \leftarrow {{\bf{w}}_j} - \eta \left[ {\frac{1}{{\left| {{{\rm B}_m}} \right|}}\sum\limits_{\left( {x,y} \right) \in {{\rm B}_m}} {\frac{{\partial L\left( {p\left( x \right),y} \right)}}{{\partial {{\bf{w}}_j}}} + \lambda \frac{{{\alpha _{mj}}}}{{{n_j}}}{{\bf{w}}_j}} } \right]

      DIEN


      簡(jiǎn)介: din算法對(duì)用戶歷史行為通過當(dāng)前item計(jì)算attention,獲得最終的user embedding,整個(gè)算法計(jì)算簡(jiǎn)單,易于理解。但是模型忽略了用戶行為之間的關(guān)聯(lián)關(guān)系,因此本文用一個(gè)GRU網(wǎng)絡(luò)(興趣提取模塊)來計(jì)算用戶興趣的關(guān)聯(lián)關(guān)系。DUPN算法也是通過一個(gè)GRU網(wǎng)絡(luò)計(jì)算用戶歷史行為,然后通過一個(gè)additional attention進(jìn)行加權(quán)求和獲得最終的user embedding,本文思路與DUPN類似,整體結(jié)構(gòu)仍然是通過GRU計(jì)算用戶歷史行為,然后通過一個(gè)attention對(duì)不同行為item進(jìn)行加權(quán)求和,得到最終的user embedding,不同之處在于本文通過另一個(gè)GRU對(duì)時(shí)序數(shù)據(jù)更新進(jìn)行控制。
      Auxiliary loss
      {L_{aux}} = - \frac{1}{N}\left( {\sum\limits_{i = 1}^N {\sum\limits_t {\log \sigma \left( {{{\bf{h}}_t},{\bf{e}}_b^i\left[ {t + 1} \right]} \right)} } } \right) + \log \left( {1 - \sigma \left( {{{\bf{h}}_t},{\bf{\hat e}}_b^i\left[ {t + 1} \right]} \right)} \right)

      為了充分利用用戶歷史不同的時(shí)刻行為,作者在每個(gè)時(shí)刻加入auxiliary loss用于表征用戶的興趣(用戶點(diǎn)擊item為正、隨機(jī)采樣候選集為負(fù))。
      Attention
      {a_t} = \frac{{\exp \left( {{{\bf{h}}_t}{\bf{W}}{{\bf{e}}_a}} \right)}}{{\sum\nolimits_{j = 1}^T {\exp \left( {{{\bf{h}}_j}{\bf{W}}{{\bf{e}}_a}} \right)} }}

      ,其中通過候選item和gru輸出計(jì)算attention權(quán)重。
      Interest Evolving Layer
      GRU with attentional input (AIGRU)
      {{{\bf{i

      Attention based GRU(AGRU)
      {{{\bf{h

      GRU with attentional update gate (AUGRU)
      {{{\bf{\tilde u

      {{{\bf{h

      我們常用attention與GRU輸出進(jìn)行加權(quán)求和得到最終的特征表示,但是本文通過另一個(gè)GRU網(wǎng)絡(luò)對(duì)第一個(gè)GRU網(wǎng)絡(luò)的輸出進(jìn)行建模,通過attention計(jì)算得到當(dāng)前item與歷史行為item的相關(guān)度,然后通過該相關(guān)度得分做節(jié)點(diǎn)更新約束,如果與當(dāng)前相關(guān)性較弱,則u趨近于零,狀態(tài)不更新,最后取最終的狀態(tài)輸出作為最終的特征輸出(作者嘗試了3種不同類型的Interest Evolving Layer )。

      參考文獻(xiàn)

      [1]Factorization Machines
      [2]Field-aware Factorization Machines for CTR Prediction
      [3]Wide & Deep Learning for Recommender Systems
      [4]Deep Learning over Multi-Field Categorical Data: A Case Study on User Response Prediction
      [5]Product-based Neural Networks for User Response Prediction
      [6]DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
      [7]Neural Factorization Machines for Sparse Predictive Analytics
      [8] Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks
      [9]Deep & Cross Network for Ad Click Predictions
      [10]Deep Interest Network for Click-Through Rate Prediction
      [11]Field-aware Factorization Machines for CTR Prediction
      [12]Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising
      [13] Micro Behaviors: A New Perspective in E-commerce Recommender Systems
      [14] xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多