本文介紹的是IJCAI-19的一篇論文,題目為《CFM: Convolutional Factorization Machines for Context-Aware Recommendation》妹笆,將卷積神經(jīng)網(wǎng)絡(luò)和因子分解機(jī)FM相結(jié)合娜氏,提出了CFM模型,一起來學(xué)習(xí)下窟坐!
論文下載地址:https://www.ijcai.org/Proceedings/2019/0545.pdf
1绵疲、背景
在推薦系統(tǒng)中最岗,提升模型效果的一個(gè)很關(guān)鍵的方面是建模特征之間交互關(guān)系。那么目前存在的方法主要包括兩種:
1)人工進(jìn)行特征交叉懒豹,如邏輯回歸模型驯用,這需要很強(qiáng)的專業(yè)知識(shí)和業(yè)務(wù)理解蝴乔。
2)由模型自動(dòng)進(jìn)行特征交叉,如因子分解機(jī)FM片酝。但是FM模型在進(jìn)行特征交叉時(shí),對特征對應(yīng)的嵌入向量使用的是求內(nèi)積的方法练湿,這隱含了一個(gè)前提审轮,嵌入向量不同維度之間是相互獨(dú)立的(因?yàn)閮?nèi)積是對位相乘),而沒有考慮嵌入向量不同維度之間的關(guān)系篡诽。如特征f1對應(yīng)的嵌入向量是[x1,x2,x3]杈女,特征f2對應(yīng)的嵌入向量是[y1,y2,y3]薄疚,那么FM在做內(nèi)積的時(shí)候,只有x1y1,x2y2躏筏,x3y3趁尼,而x1y2、x1y3等沒有考慮砚殿。
為了解決上述的問題芝囤,本文將FM和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合悯姊,提出了Convolutional Factorization Machine (CFM) ,一起來學(xué)習(xí)一下仆嗦。
2先壕、CFM模型
2.1 整體概述
CFM模型的整體計(jì)算公式如下:
其中我們重點(diǎn)關(guān)注g(x)部分,該部分的模型結(jié)構(gòu)如下圖所示:
可以看到店印,該部分主要有輸入層倒慧、嵌入層纫谅、自注意力機(jī)制池化層、交互層兰珍、卷積層和全連接層询吴。我們分別來介紹一下。
2.2 輸入和嵌入層
輸入層輸入一堆離散特征唠摹,包括一些one-hot特征奉瘤,如用戶ID盗温、性別等,還有multi-hot特征斧蜕,如用戶的歷史交互過的item的ID等砚偶。每個(gè)特征首先通過嵌入層轉(zhuǎn)換成一個(gè)d維的embedding vector蟹演。
2.3 自注意力機(jī)制池化層
首先說明一下,這里的自注意力機(jī)制并非Transformer里的自注意力機(jī)制骡技,通過下面的介紹就可以體會(huì)到。同時(shí)囤萤,這里的池化層僅針對multi-hot特征是趴。
對于multi-hot特征唆途,一個(gè)field可能對應(yīng)多個(gè)不同的嵌入向量,為了計(jì)算的方便没佑,通常的做法就是對一個(gè)field里的嵌入向量進(jìn)行池化温赔,如avg-pooling和max-pooling陶贼。但是這種做法并不是最優(yōu)的,本文提出了一種自注意力機(jī)制池化方法痹屹。首先腹纳,對于field里的每個(gè)嵌入向量vi嘲恍,首先通過全連接層得到一個(gè)attention score:
然后所有的attention score通過softmax 轉(zhuǎn)換為加和為1的權(quán)重:
然后對所有的嵌入向量進(jìn)行一個(gè)加權(quán):
經(jīng)過這樣的計(jì)算佃牛,每一個(gè)field對應(yīng)一個(gè)向量ej俘侠。
2.4 交互層
在背景部分也提到了蔬将,F(xiàn)M中使用對嵌入向量求內(nèi)積的方式來計(jì)算特征的交互霞怀,這種方式隱含了嵌入向量不同維度之間獨(dú)立的假設(shè)。而本文使用外積(outer product)的方法來建模特征的交互廉沮,如field i和field j對應(yīng)的向量分別為ei和ej,外積的計(jì)算如下:
每兩個(gè)field對應(yīng)的向量通過外積運(yùn)算都會(huì)得到一個(gè)d*d的二維矩陣Mi,j,那么所有的Mi,j可以堆疊成一個(gè)三維的矩陣:
假設(shè)共有10個(gè)域曼玩,向量的維度為64窒百,那么C的形狀為64 * 64 * 45
2.5 3D卷積層
接下來,通過3D卷積進(jìn)一步建模特征之間的高階交互關(guān)系样悟,3D卷積的示意圖如下:
3D卷積層的輸出是向量g窟她,再通過一層全連接得到最終的輸出g(x):
2.6 模型訓(xùn)練
接下來講一下幾個(gè)模型訓(xùn)練的細(xì)節(jié)震糖,首先是損失函數(shù)這里采用的是BPR損失:
同時(shí)趴腋,論文中還提到:
1)嵌入向量是通過FM結(jié)合BPR損失預(yù)訓(xùn)練得到的优炬。
2)在訓(xùn)練CFM模型中,對嵌入層雅宾、卷積層和全連接層的參數(shù)增加L2正則
3)除最后的全連接層外葵硕,對其他層加入drop-out
本系列已經(jīng)介紹了很多FM及其變形眉抬,如FFM、DeepFM懈凹、xDeepFM蜀变、FwFM、NFM介评、AFM等库北,本文進(jìn)一步介紹了和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的CFM模型。可以一起對比學(xué)習(xí)呦贤惯!