
本文是2022年的第一篇文章,給大家?guī)?lái)CIKM2021上中稿的一篇文章,提出了Deep Cross Attentional Product Network(以下簡(jiǎn)稱DCAP),在顯式建模高階特征交互的基礎(chǔ)上,引入自注意力機(jī)制來(lái)刻畫不同交叉特征對(duì)于預(yù)測(cè)的重要性,一起來(lái)看一下。
1、背景
論文關(guān)注的如何通過(guò)特征建模,對(duì)用戶的交互行為進(jìn)行預(yù)測(cè),如用戶是否會(huì)點(diǎn)擊某個(gè)廣告,是否會(huì)對(duì)推薦內(nèi)容產(chǎn)生興趣等等,如下圖所示:

從上圖也可以看到,用戶的特征往往是多域的離散特征,如國(guó)家、性別等。同時(shí),對(duì)于交叉特征的建模在預(yù)測(cè)任務(wù)中是十分重要的。由于人工設(shè)計(jì)交叉特征費(fèi)時(shí)費(fèi)力,同時(shí)對(duì)于業(yè)務(wù)敏感度也有較高的要求,因此業(yè)界的研究大都關(guān)注如何進(jìn)行自動(dòng)化的交叉特征建模,從使用FM來(lái)建模二階的交叉特征,到使用FM和DNN相結(jié)合的方法如DeepFM、NFM進(jìn)一步建模二階和更高階的交叉特征。但上述的方法存在兩方面的問(wèn)題:
1)DNN對(duì)于交叉特征的建模是隱式的,可解釋性差
2)得到的交叉特征,對(duì)于所有的樣本都使用相同的權(quán)重,但對(duì)于不同的樣本來(lái)說(shuō),不同的特征的重要程度是不相同的,需要加以區(qū)分
上述兩方面的問(wèn)題,其實(shí)有一些工作已經(jīng)進(jìn)行了優(yōu)化,如針對(duì)隱式建模的問(wèn)題,有DCN、XDeepFM等相關(guān)工作提出;針對(duì)特征權(quán)重問(wèn)題,如AFM,以及引入門控機(jī)制如GateNet等工作。而本文則是提出了Deep Cross Attentional Product Network,下一章節(jié)對(duì)DCAP進(jìn)行介紹。
2、DCAP介紹
論文提出的DCAP整體結(jié)構(gòu)如下圖所示:

整體的模型結(jié)構(gòu)還是比較容易理解,本文主要對(duì)DCAP的核心結(jié)構(gòu)即上圖右側(cè)的部分進(jìn)行介紹。
輸入的特征,經(jīng)過(guò)Embedding層,得到最初的輸入,計(jì)作X(維度為n*d),經(jīng)過(guò)每一層子網(wǎng)絡(luò),都會(huì)得到相應(yīng)階數(shù)的交叉特征的輸出。接下來(lái),順著上圖右側(cè),介紹如何從第l階特征交互X(l)(維度為n*d)得到第l+1層特征交互X(l+1)(維度為n*d)。過(guò)程計(jì)算如下:

首先X(l)經(jīng)過(guò)多頭自注意力網(wǎng)絡(luò),得到Z(l+1)(維度為n*d),經(jīng)過(guò)自注意力機(jī)制,就實(shí)現(xiàn)了對(duì)不同交叉特征重要性的區(qū)分。關(guān)于自注意力機(jī)制的內(nèi)容,網(wǎng)上的內(nèi)容很多,本文就不再進(jìn)行贅述。
接下來(lái),通過(guò)內(nèi)積或外積的方式得到vector-vise的乘積向量P(l+1)(維度為n(n-1)/2*d),P(l+1)可以看作是第l+1階的交叉特征。內(nèi)積和外積的計(jì)算方式如下:

而P(l+1)的維度為n(n-1)/2*d,為什么是n(n-1)/2呢,這里主要是在計(jì)算交叉特征時(shí),對(duì)下標(biāo)進(jìn)行了一定的限制,另一方面,是對(duì)第l+1層的自注意力機(jī)制部分的輸出與原始輸入X進(jìn)行的內(nèi)積或外積計(jì)算,這里使用了DCN的思路顯式建模特征交叉:


隨后,對(duì)P(l+1)在最后一維上進(jìn)行sum pooling操作,得到該層的輸出Y(l+1)(維度為n(n-1)/2),作為后續(xù)的MLP層的輸入:

最后,無(wú)論是P(l+1),還是Y(l+1),都不能用于下一層的輸入,因此需要進(jìn)一步進(jìn)行轉(zhuǎn)換,將n(n-1)/2 *d維,轉(zhuǎn)換成n*d維,論文采用的是1D average pooling的方式,將 P(l+1)轉(zhuǎn)換為X(l+1)(從這里可以看出,論文給出的模型結(jié)構(gòu)圖是存在一定問(wèn)題的,個(gè)人感覺應(yīng)該將Y替換為P)。1D average pooling的計(jì)算方式如下:

上述就是DCAP核心結(jié)構(gòu)的介紹,在得到每一層的輸出Y(l+1)之后,與展平后的X進(jìn)行拼接,經(jīng)過(guò)MLP后的到預(yù)估值:

3、實(shí)驗(yàn)結(jié)果
最后來(lái)簡(jiǎn)單看一下論文的實(shí)驗(yàn)結(jié)果:

好了,論文就介紹到這里,論文本身在模型結(jié)構(gòu)的創(chuàng)新點(diǎn)并不多,更像是一些現(xiàn)有網(wǎng)絡(luò)的融合,如DCN、PNN等,感興趣的小伙伴可以看下原文~~