<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          從FM推演各深度學(xué)習(xí)CTR預(yù)估模型(上) | 推薦系統(tǒng)

          共 3898字,需瀏覽 8分鐘

           ·

          2021-04-14 20:28

          文 | 七月在線
          編 | 小七


          解析:

          點(diǎn)擊率(click-through rate, CTR)是互聯(lián)網(wǎng)公司進(jìn)行流量分配的核心依據(jù)之一。比如互聯(lián)網(wǎng)廣告平臺,為了精細(xì)化權(quán)衡和保障用戶、廣告、平臺三方的利益,準(zhǔn)確的CTR預(yù)估是不可或缺的。CTR預(yù)估技術(shù)從傳統(tǒng)的邏輯回歸,到近兩年大火的深度學(xué)習(xí),新的算法層出不窮:DeepFM, NFM, DIN, AFM, DCN……

          然而,相關(guān)的綜述文章不少,但碎片羅列的居多,模型之間內(nèi)在的聯(lián)系和演化思路如何揭示?怎樣才能迅速get到新模型的創(chuàng)新點(diǎn)和適用場景,快速提高新論文速度,節(jié)約理解、復(fù)現(xiàn)模型的成本?這些都是亟待解決的問題。

          我們認(rèn)為,從FM及其與神經(jīng)網(wǎng)絡(luò)的結(jié)合出發(fā),能夠迅速貫穿很多深度學(xué)習(xí)CTR預(yù)估網(wǎng)絡(luò)的思路,從而更好地理解和應(yīng)用模型。

          本文的思路與方法
          我們試圖從原理上進(jìn)行推導(dǎo)、理解各個深度CTR預(yù)估模型之間的相互關(guān)系,知其然也知其所以然。(以下的分析與拆解角度,是一種我們嘗試的理解視角,并不是唯一的理解方式)

          推演的核心思路:“通過設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行組合特征的挖掘”。

          具體來說有兩條:
          其一是從FM開始推演其在深度學(xué)習(xí)上的各種推廣(對應(yīng)下圖的紅線),另一條是從embedding+MLP自身的演進(jìn)特點(diǎn)結(jié)合CTR預(yù)估本身的業(yè)務(wù)場景進(jìn)行推演(對應(yīng)下圖黑線部分)。
          為了便于理解,我們簡化了數(shù)據(jù)案例——只考慮離散特征數(shù)據(jù)的建模,以分析不同神經(jīng)網(wǎng)絡(luò)在處理相同業(yè)務(wù)問題時的不同思路。

          同時,我們將各典型論文不同風(fēng)格的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖統(tǒng)一按照計(jì)算圖來繪制,以便于對比不同模型。

          二、FM:降維版本的特征二階組合
          CTR預(yù)估本質(zhì)是一個二分類問題,以移動端展示廣告推薦為例,依據(jù)日志中的用戶側(cè)的信息(比如年齡,性別,國籍,手機(jī)上安裝的app列表)、廣告?zhèn)鹊男畔ⅲ◤V告id,廣告類別,廣告標(biāo)題等)、上下文側(cè)信息(渠道id等),去建模預(yù)測用戶是否會點(diǎn)擊該廣告。
          FM出現(xiàn)之前的傳統(tǒng)的處理方法是人工特征工程加上線性模型(如邏輯回歸Logistic Regression)。為了提高模型效果,關(guān)鍵技術(shù)是找到到用戶點(diǎn)擊行為背后隱含的特征組合。如男性、大學(xué)生用戶往往會點(diǎn)擊游戲類廣告,因此“男性且是大學(xué)生且是游戲類”的特征組合就是一個關(guān)鍵特征。但這本質(zhì)仍是線性模型,其假設(shè)函數(shù)表示成內(nèi)積形式一般為:


          其中為特征向量,為權(quán)重向量,σ()為sigmoid函數(shù)。

          但是人工進(jìn)行特征組合通常會存在諸多困難,如特征爆炸、特征難以被識別、組合特征難以設(shè)計(jì)等。

          為了讓模型自動地考慮特征之間的二階組合信息,線性模型推廣為二階多項(xiàng)式(2d?Polynomial 2d-Polynomial2d?Polynomial)模型:


          其實(shí)就是對特征兩兩相乘(組合)構(gòu)成新特征(離散化之后其實(shí)就是“且”操作),并對每個新特征分配獨(dú)立的權(quán)重,通過機(jī)器學(xué)習(xí)來自動得到這些權(quán)重。將其寫成矩陣形式為:


          其中為二階特征組合的權(quán)重矩陣,是對稱矩陣。而這個矩陣參數(shù)非常多,為。為了降低該矩陣的維度,可以將其因子分解(Factorization FactorizationFactorization)為兩個低維(比如n?k n*kn?k)矩陣的相乘。則此時W WW矩陣的參數(shù)就大幅降低,為O(nk)。公式如下:


          這就是Rendle RendleRendle等在2010年提出因子分解機(jī)(Factorization Machines,F(xiàn)M)的名字的由來。FM的矩陣形式公式如下:


          將其寫成內(nèi)積的形式:


          利用
          ,可以將上式進(jìn)一步改寫成求和式的形式:


          其中向量是矩陣W WW的第i ii列。為了去除重復(fù)項(xiàng)與特征平方項(xiàng),上式可以進(jìn)一步改寫成更為常見的FM公式:


          對比二階多項(xiàng)式模型,F(xiàn)M模型中特征兩兩相乘(組合)的權(quán)重是相互不獨(dú)立的,它是一種參數(shù)較少但表達(dá)力強(qiáng)的模型。

          在給出FM的TensorFlow代碼實(shí)現(xiàn)之前,值得一提的是FM通過內(nèi)積進(jìn)行無重復(fù)項(xiàng)與特征平方項(xiàng)的特征組合過程使用了一個小trick,就是:


          三、用神經(jīng)網(wǎng)絡(luò)的視角看FM:嵌入后再進(jìn)行內(nèi)積
          我們觀察FM公式的矩陣內(nèi)積形式:


          發(fā)現(xiàn)部分就是將離散系數(shù)特征通過矩陣乘法降維成一個低維稠密向量。這個過程對神經(jīng)網(wǎng)絡(luò)來說就叫做嵌入(embedding)。所以用神經(jīng)網(wǎng)絡(luò)視角來看:

          a) FM首先是對離散特征進(jìn)行嵌入。
          b) 之后通過對嵌入后的稠密向量進(jìn)行內(nèi)積來進(jìn)行二階特征組合。
          c) 最后再與線性模型的結(jié)果求和進(jìn)而得到預(yù)估點(diǎn)擊率。


          其示意圖如下。為了表述清晰,我們繪制的是神經(jīng)網(wǎng)絡(luò)計(jì)算圖而不是網(wǎng)絡(luò)結(jié)構(gòu)圖——在網(wǎng)絡(luò)結(jié)構(gòu)圖中增加了權(quán)重W位置。



          四、FM的實(shí)際應(yīng)用:考慮領(lǐng)域信息
          廣告點(diǎn)擊率預(yù)估模型中的特征以分領(lǐng)域的離散特征為主,如:廣告類別、用戶職業(yè)、手機(jī)APP列表等。由于連續(xù)特征比較好處理,為了簡化起見,本文只考慮同時存在不同領(lǐng)域的離散特征的情形。處理離散特征的常見方法是通過獨(dú)熱(one-hot)編碼轉(zhuǎn)換為一系列二值特征向量。然后將這些高維稀疏特征通過嵌入(embedding)轉(zhuǎn)換為低維連續(xù)特征。前面已經(jīng)說明FM中間的一個核心步驟就是嵌入,但這個嵌入過程沒有考慮領(lǐng)域信息。這使得同領(lǐng)域內(nèi)的特征也被當(dāng)做不同領(lǐng)域特征進(jìn)行兩兩組合了。

          其實(shí)可以將特征具有領(lǐng)域關(guān)系的特點(diǎn)作為先驗(yàn)知識加入到神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)中去:同領(lǐng)域的特征嵌入后直接求和作為一個整體嵌入向量,進(jìn)而與其他領(lǐng)域的整體嵌入向量進(jìn)行兩兩組合。而這個先嵌入后求和的過程,就是一個單領(lǐng)域的小離散特征向量乘以矩陣的過程。此時FM的過程變?yōu)椋簩Σ煌I(lǐng)域的離散特征分別進(jìn)行嵌入,之后再進(jìn)行二階特征的向量內(nèi)積。其計(jì)算圖圖如下所示:


          這樣考慮其實(shí)是給FM增加了一個正則:考慮了領(lǐng)域內(nèi)的信息的相似性。而且還有一個附加的好處,這些嵌入后的同領(lǐng)域特征可以拼接起來作為更深的神經(jīng)網(wǎng)絡(luò)的輸入,達(dá)到降維的目的。接下來我們將反復(fù)看到這種處理方式。
          此處需要注意,這與“基于領(lǐng)域的因子分解機(jī)”(Field-aware Factorization Machines,F(xiàn)FM)有區(qū)別。FFM也是FM的另一種變體,也考慮了領(lǐng)域信息。但其不同點(diǎn)是同一個特征與不同領(lǐng)域進(jìn)行特征組合時,其對應(yīng)的嵌入向量是不同的。本文不考慮FFM的作用機(jī)制。

          經(jīng)過這些改進(jìn)的FM終究還是淺層網(wǎng)絡(luò),它的表現(xiàn)力仍然有限。為了增加模型的表現(xiàn)力(model capacity),一個自然的想法就是將該淺層網(wǎng)絡(luò)不斷“深化”。

          五、embedding+MLP:深度學(xué)習(xí)CTR預(yù)估的通用框架
          embedding+MLP是對于分領(lǐng)域離散特征進(jìn)行深度學(xué)習(xí)CTR預(yù)估的通用框架。深度學(xué)習(xí)在特征組合挖掘(特征學(xué)習(xí))方面具有很大的優(yōu)勢。比如以CNN為代表的深度網(wǎng)絡(luò)主要用于圖像、語音等稠密特征上的學(xué)習(xí),以W2V、RNN為代表的深度網(wǎng)絡(luò)主要用于文本的同質(zhì)化、序列化高維稀疏特征的學(xué)習(xí)。CTR預(yù)估的主要場景是對離散且有具體領(lǐng)域的特征進(jìn)行學(xué)習(xí),所以其深度網(wǎng)絡(luò)結(jié)構(gòu)也不同于CNN與RNN。

          具體來說, embedding+MLP的過程如下:
          ①對不同領(lǐng)域的one-hot特征進(jìn)行嵌入(embedding),使其降維成低維度稠密特征。
          ②然后將這些特征向量拼接(concatenate)成一個隱含層。
          ③之后再不斷堆疊全連接層,也就是多層感知機(jī)(Multilayer Perceptron, MLP,有時也叫作前饋神經(jīng)網(wǎng)絡(luò))。
          ④最終輸出預(yù)測的點(diǎn)擊率。

          其示意圖如下:


          embedding+MLP的缺點(diǎn)是只學(xué)習(xí)高階特征組合,對于低階或者手動的特征組合不夠兼容,而且參數(shù)較多,學(xué)習(xí)較困難。

          六、FNN:FM與MLP的串聯(lián)結(jié)合
          Weinan Zhang等在2016年提出的因子分解機(jī)神經(jīng)網(wǎng)絡(luò)(Factorisation Machine supported Neural Network,F(xiàn)NN)將考FM與MLP進(jìn)行了結(jié)合。它有著十分顯著的特點(diǎn):

          采用FM預(yù)訓(xùn)練得到的隱含層及其權(quán)重作為神經(jīng)網(wǎng)絡(luò)的第一層的初始值,之后再不斷堆疊全連接層,最終輸出預(yù)測的點(diǎn)擊率。
          可以將FNN理解成一種特殊的embedding+MLP,其要求第一層嵌入后的各領(lǐng)域特征維度一致,并且嵌入權(quán)重的初始化是FM預(yù)訓(xùn)練好的。

          這不是一個端到端的訓(xùn)練過程,有貪心訓(xùn)練的思路。而且如果不考慮預(yù)訓(xùn)練過程,模型網(wǎng)絡(luò)結(jié)構(gòu)也沒有考慮低階特征組合。
          其計(jì)算圖如下所示:


          通過觀察FFN的計(jì)算圖可以看出其與embedding+MLP確實(shí)非常像。**不過此處省略了FNN的FM部分的線性模塊。**這種省略為了更好地進(jìn)行兩個模型的對比。接下來的計(jì)算圖我們都會省略線性模塊。

          此處附上FNN的代碼實(shí)現(xiàn):


          七、DeepFM: FM與MLP的并聯(lián)結(jié)合
          針對FNN需要預(yù)訓(xùn)練的問題,Huifeng Guo等提出了深度因子分解機(jī)模型(Deep Factorisation Machine, DeepFM, 2017)。該模型的特點(diǎn)是:
          i) 不需要預(yù)訓(xùn)練。
          ii)將考慮領(lǐng)域信息的FM部分與MLP部分并聯(lián)起來(借用初中電路的術(shù)語),其實(shí)就是對兩個模型進(jìn)行聯(lián)合訓(xùn)練。
          iii)考慮領(lǐng)域信息的FM部分的嵌入向量拼接起來作為MLP部分的輸入特征,也就是是兩個模型共享嵌入后的特征。

          其計(jì)算圖如下所示:


          通過觀察DeepFM的計(jì)算圖可以看出紅色虛線以上部分其實(shí)就是FM部分,虛線以下就是MLP部分。
          本文素材來源于七月在線面試題,關(guān)注公號,獲取更多面試資料。

          本期特訓(xùn)課程


          瀏覽 72
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩美女A片 | 欧美a v在线 | 在线观看亚洲视频网站 | 免费a级猛片在线观看,女人毛片a级大学 | 日逼一级片|