1 背景
ONN(Operation-aware Neural Networks for user response)是2018年騰訊廣告算法比賽最優(yōu)的推薦算法。主要任務(wù)是預(yù)測(cè)用戶點(diǎn)擊推薦廣告的概率(click-through rate, CTR)或者進(jìn)行其它期望的行為(conversion rate, CVR)。
2 創(chuàng)新點(diǎn)
2.1 針對(duì)的問題
目前的大多數(shù)的模型對(duì)于一個(gè)feature上的embedding vector進(jìn)行不同的operation都是使用相同的表示。但是對(duì)于不同的操作,一個(gè)feature的最好表示不總是相同的(Juan et al., 2016; Rendle & Schmidt-Thieme, 2010)
2.2 解決思路
在基本的通用的Base model上,將PNN與FFM結(jié)合起來,實(shí)現(xiàn)了在embedding層的每一個(gè)feature對(duì)于不同operation(內(nèi)積或者外積)有不同的表示,之后進(jìn)入MLP,得到更好的預(yù)測(cè)結(jié)果
3. 相關(guān)的模型
3.1 FFM

3.2 Base Model
深度學(xué)習(xí)引入推薦系統(tǒng)之后,深度學(xué)習(xí)的優(yōu)勢(shì)在于可以獲取到特征的高維信息,一般的過程可以概括成以下三步:
- 一個(gè)embedding layer,負(fù)責(zé)將離散的feature映射到更低維的表示形式。
- 對(duì)于一個(gè)樣本的特征表示為
- embedding矩陣表示為
- 兩者作積得到的這一步的輸出概括為:
其中的是中對(duì)應(yīng)
th feature的那一列,
是
th feature的one hot表示。
- 對(duì)于一個(gè)樣本的特征表示為
- 對(duì)于上一步得到的結(jié)果進(jìn)行operation,這一步可以表示為
,
是表示
th operation,這個(gè)operation可以是兩個(gè)向量?jī)?nèi)積或者外積,在多數(shù)的結(jié)構(gòu)中,這個(gè)操作只是一個(gè)copy操作,暨不進(jìn)行任何的操作。這種在embedding向量上進(jìn)行的操作可以看成是一種初期的特種工程。
- 第二步得到的結(jié)果輸入MLP(multi-layer perceptron),最終輸出
,
是sigmoid函數(shù),
是MLP的非線性轉(zhuǎn)換
3.3 PNN

4 ONN結(jié)構(gòu)

可以看到最大的特點(diǎn)在于對(duì)于 th feature的one-hot表示轉(zhuǎn)換為embedding后擁有多個(gè)表示,在進(jìn)行不同的operation時(shí),采取了不同的表示形式。
4.1 Operation-aware embedding
下面說一下對(duì)于 th feature的具體轉(zhuǎn)換過程。

在上圖的左邊部分中, 是feature的轉(zhuǎn)換后的embedding, 代表對(duì)應(yīng) th feature的embedding matrix,這樣得到的 就只會(huì)有一種表示。
而在ONN改進(jìn)后的右邊部分中,設(shè)置了 ,其中的 表示對(duì)于 th feature的 項(xiàng)操作。這里要注意的是同一種操作比如求內(nèi)積, 和 求內(nèi)積與 和 求內(nèi)積是不一樣的操作。
最終的到的 就是一個(gè)矩陣,,在進(jìn)行 項(xiàng)操作時(shí),取出 表示進(jìn)行操作。
為了表示在 th feature上進(jìn)行操作 時(shí)要使用的 表示定義為:
4.2 Incipient feature extraction layer
在上一個(gè)的基礎(chǔ)上,來看一下對(duì)于一個(gè)樣例 的最終輸出形式是什么。
其中第一項(xiàng)是
的所有特征的embedding vector,表示為:
公式中的是指對(duì)
th feature進(jìn)行copy操作
第二項(xiàng)是表示feature interactions,具體的說是兩個(gè)feature embedding vector的內(nèi)積。只求兩個(gè)向量間的內(nèi)積是再多的就過于復(fù)雜,求內(nèi)積是在之前的實(shí)驗(yàn)中證明了內(nèi)積效果比外積要好(Qu et al., 2016)。公式為:
是指在
th feature和
th feature之間求內(nèi)積,
4.3 MLP
兩個(gè)hidden layer,最后一個(gè)sigmoid輸出
兩個(gè)hidden layer的輸出表示為:
loss函數(shù)是交叉熵
5 與其它模型(PNN, FFM)的關(guān)系
- 回顧一下PNN模型的結(jié)構(gòu),和ONN的主要區(qū)別在于embedding layer,ONN實(shí)現(xiàn)了operation aware,即一個(gè)feature有了多種embedding vector,這樣對(duì)于不同操作可以選擇不同的feature表示。這樣在訓(xùn)練時(shí)就得到了更好的特征表示。
- 和FFM模型最大的區(qū)別在于ONN加入了MLP,加入了深層網(wǎng)絡(luò)后,深度網(wǎng)絡(luò)能夠更好的挖掘特征深層次的依賴,能夠?qū)W習(xí)到復(fù)雜的特征依賴關(guān)系
6 實(shí)驗(yàn)
6.1 數(shù)據(jù)集
- Criteo: 包含45million條用戶點(diǎn)擊廣告的記錄,使用了最后5million作為測(cè)試集(8:1),數(shù)據(jù)集中包括13個(gè)連續(xù)特征和26個(gè)分類特征。通過
將連續(xù)量離散化
- 騰訊廣告數(shù)據(jù)集: 包含了14天內(nèi)app推薦廣告的記錄,用戶信息,廣告信息以及安裝的app的記錄。論文使用了39個(gè)分類特征,去掉了最后2天噪聲過大的數(shù)據(jù),使用前11天數(shù)據(jù)作為訓(xùn)練,第12天的數(shù)據(jù)作為數(shù)據(jù)。最終22million訓(xùn)練集,2million測(cè)試集(11:1)
6.2 對(duì)比的方面
分別從AUC,cross entropy,pearson‘s R以及root mean squared error在線下,線上以及采用不同的operation來進(jìn)行試驗(yàn)
6.2.1 Offline-training performance comparison

從上面這兩張表格可以看出來的有:
- PNN這些加入了深度網(wǎng)絡(luò)的模型效果要優(yōu)于FM, FFM,說明了深層的模型效果是要優(yōu)于淺層的網(wǎng)絡(luò)
- FFM優(yōu)于FM,ONN優(yōu)于PNN,說明采用了operation aware embedding是優(yōu)于一般的embedding層的
- PNN,DeepFM,ONN優(yōu)于了DNN,說明了進(jìn)行求積的操作是有效的。
6.2.2 Online-training performance comparison

在線上的測(cè)試中,每一個(gè)測(cè)試樣例只能夠被訓(xùn)練一次,對(duì)于FM, PNN這些只有一種表示形式的模型來說,一次epoch就學(xué)到比較好的表示是比較難的。ONN依舊取得了最好的效果。

從上面的收斂趨勢(shì)可以看到FFM,ONN這樣使用了aware的模型,logloss收斂速度是由于其它模型的。
6.2.3 Analysis of different operations
默認(rèn)情況下ONN是使用內(nèi)積作為operation,論文中就inner-product, outer-product, sub-network, inner+outer-product四種operation進(jìn)行了比較。

可以看到inner+outer-product獲得了最好的結(jié)果,但是優(yōu)勢(shì)并不明顯,考慮到時(shí)間和空間復(fù)雜性,它并不是一個(gè)很好的選擇。所以依舊是使用了inner product。
但需要注意的是,sub-network取得的效果也是非常有競(jìng)爭(zhēng)性的。而且它在Criteo數(shù)據(jù)集上的AUC指標(biāo)上取得了很好的效果,這個(gè)可以考慮為下一步的研究方向。
7 總結(jié)
- 線上測(cè)試的結(jié)果表明ONN比較適合于線上的環(huán)境。
- operation aware這種想法可以考慮應(yīng)用在其它地方