
今天給大家介紹的是我們團(tuán)隊(duì)今年發(fā)表在WWW2022上的論文CrossDQN,提出了一種基于強(qiáng)化學(xué)習(xí)的信息流廣告分配方法。這也是我個(gè)人在入職美團(tuán)之后工作的主要方向。接下來(lái)我將對(duì)論文內(nèi)容進(jìn)行詳細(xì)的介紹。
1、信息流廣告分配背景
電商場(chǎng)景下的信息流通常包含兩部分的內(nèi)容,一類被稱為自然結(jié)果,另一類是廣告結(jié)果。二者以混合列表的形式展現(xiàn)給用戶。如下圖是工業(yè)界常見(jiàn)的混排系統(tǒng)的架構(gòu),廣告和自然結(jié)果首先在各自的系統(tǒng)內(nèi)進(jìn)行排序,最后通過(guò)Blending Server決定廣告的插入位置并展現(xiàn)給用戶(在本文研究的混排方法中,Blending Server不會(huì)改變廣告和自然結(jié)果內(nèi)部的相對(duì)順序,只決策廣告插入的位置):

基于展現(xiàn)給用戶的混排列表,平臺(tái)可以通過(guò)兩個(gè)途徑獲取收入,一方面,當(dāng)用戶下單(無(wú)論自然結(jié)果還是廣告結(jié)果)時(shí),可以從中獲取傭金;另一方面,當(dāng)用戶點(diǎn)擊廣告時(shí),平臺(tái)可以收取廣告主的費(fèi)用(一般為CPC計(jì)費(fèi))。由于廣告的質(zhì)量往往差于自然結(jié)果,過(guò)多的廣告展示可能對(duì)用戶體驗(yàn)有損,但過(guò)少的展示廣告,則有可能對(duì)平臺(tái)的收入有損,因此通常將廣告的曝光占比控制在一定的范圍之內(nèi)。而本文研究的問(wèn)題就是,在一定的曝光約束情況下,如何合理的進(jìn)行廣告位分配,能夠使平臺(tái)收入最大化,同時(shí)能夠盡可能減少用戶體驗(yàn)的損失。
當(dāng)前的廣告位分配方法主要可以分為兩大類,固定位插入方法和動(dòng)態(tài)位置插入方法。固定位的插入方法顯然是一種次優(yōu)的結(jié)果,不僅沒(méi)有考慮用戶個(gè)性化的信息,同時(shí)也容易被用戶所跳過(guò)(用戶容易感知廣告的插入位置,每次瀏覽的時(shí)候進(jìn)行跳過(guò))。因此,近年來(lái)研究的重點(diǎn),主要集中在動(dòng)態(tài)位置插入的方法,如領(lǐng)英提出的基于RankScore的排序方法,以及字節(jié)提出的基于強(qiáng)化學(xué)習(xí)的方法Dear。
當(dāng)前的動(dòng)態(tài)位置插入方法,主要存在以下幾方面的缺陷:
1)忽略了排序過(guò)程中相鄰展示商家的相互影響,如領(lǐng)英的方法基于單位置決策,沒(méi)有考慮已決策商家對(duì)于下文的影響。
2)在個(gè)性化和廣告曝光占比之間缺少有效的平衡,如字節(jié)的Dear時(shí)四個(gè)位置插入一個(gè)廣告或不插入,盡管可以控制廣告曝光在1/4之下,但決策空間相對(duì)較小。
為了解決上述的問(wèn)題,我們提出了一種基于強(qiáng)化學(xué)習(xí)的廣告位置分配方法,稱為Cross Deep Q Network (Cross DQN) 。接下來(lái),對(duì)其框架進(jìn)行詳細(xì)介紹。
2、問(wèn)題定義
首先來(lái)看一下美團(tuán)外賣場(chǎng)景下廣告分配的問(wèn)題定義。在我們場(chǎng)景下,用戶的一次訪問(wèn)定義為一個(gè)回合,我們順序決策每屏K個(gè)位置的廣告插入結(jié)果,由于存在廣告曝光占比的約束,因此可以通過(guò)如下的CMDP過(guò)程進(jìn)行定義:
狀態(tài)空間S:狀態(tài)包含了當(dāng)前屏候選的廣告結(jié)果和自然結(jié)果信息,用戶信息和上下文信息
動(dòng)作空間A:動(dòng)作表示為在當(dāng)前屏哪個(gè)位置插入廣告,假設(shè)每屏決策5個(gè)位置,那么動(dòng)作01001代表在本屏的第二個(gè)和第五個(gè)位置進(jìn)行廣告插入
即時(shí)獎(jiǎng)勵(lì)r:即時(shí)獎(jiǎng)勵(lì)包含了三部分,廣告收入、傭金收入和用戶體驗(yàn)評(píng)分,定義如下:

狀態(tài)轉(zhuǎn)移概率P:用戶的行為影響狀態(tài)轉(zhuǎn)移,當(dāng)在st采取了動(dòng)作at之后,若用戶下拉,則st轉(zhuǎn)移到st+1,否則回合結(jié)束
折扣因子:折扣因子用于平衡短期收益和長(zhǎng)期收益
約束條件C:約束條件主要為曝光占比約束,即一定時(shí)間范圍內(nèi)(一小時(shí),一天等)的廣告曝光占比PAE(percentage of ads exposed,簡(jiǎn)稱PAE),需要保持在一定范圍之內(nèi),來(lái)平衡收入和用戶體驗(yàn)。PAE和約束條件的定義如下:


基于如上的問(wèn)題定義,接下來(lái),就來(lái)介紹CrossDQN的內(nèi)容。
3、CrossDQN介紹
3.1 整體介紹
傳統(tǒng)的DQN結(jié)構(gòu),如Dueling-DQN,以狀態(tài)s作為輸入,如下圖左邊的部分。這樣的結(jié)構(gòu)無(wú)法建模state和action的交叉信息,在我們場(chǎng)景下即無(wú)法建模相鄰展示item的相互影響。那么,為了建模這種item的相互影響關(guān)系,我們提出了state和action的交叉(cross)思想,其主要思路是將候選的廣告和自然隊(duì)列基于候選的action進(jìn)行拼接,得到action對(duì)應(yīng)的商家的排列結(jié)果。舉例來(lái)說(shuō),以每屏決策5個(gè)位置為例,假設(shè)候選廣告隊(duì)列為A1,A2,A3,A4,A5(只需要5個(gè)即可,因?yàn)樽疃嗖迦胛鍌€(gè)廣告,自然結(jié)果同理),候選自然結(jié)果隊(duì)列為N1,N2,N3,N4,N5,若action為01001,則交叉后的商家排列順序?yàn)镹1,A1,N2,N3,A2,若action為00100,則交叉后的商家排列順序?yàn)镹1,N2,A1,N3,N4。
上述的交叉模塊呢,我們稱為State and Action Crossing Unit (SACU),除SACU外,我們還設(shè)計(jì)了Multi-Channel Attention Unit (MCAU),用于對(duì)展示商家的相互影響以及用戶的不同特征偏好進(jìn)行建模。模型的抽象結(jié)構(gòu)如下圖的右側(cè)所示。

下圖為CrossDQN的完整結(jié)構(gòu):

可以看到,整體的模型可以分為兩大部分,分別是Item Representation Module (IRM)和Sequential Decision Module (SDM),IRM采用參數(shù)共享的方式,得到每個(gè)商家的壓縮后的向量表示,SDM通過(guò)SACU、MCAU以及我們?cè)O(shè)計(jì)的batch粒度的曝光約束損失,完成個(gè)性化的廣告位置決策。接下來(lái),我們對(duì)每個(gè)模塊進(jìn)行詳細(xì)介紹。
3.2 Item Representation Module

IRM通過(guò)參數(shù)共享的方式,得到state中每個(gè)候選商家的embedding表示,對(duì)每個(gè)商家來(lái)說(shuō),輸入包括用戶特征,上下文特征,用戶歷史行為序列和候選商家特征,建模方式同DIN(公式可能符號(hào)定義比較復(fù)雜,從模型圖看建模過(guò)程還是比較清晰的):



3.3 Sequential Decision Module

SDM為決策模塊,基于計(jì)算的所有候選action的Q值,決策以何種廣告位置展示給用戶。主要包含SACU和MCAU兩個(gè)模塊,這也是本文的主要?jiǎng)?chuàng)新點(diǎn)所在。
3.3.1 SACU
SACU的基本思想在上文中已經(jīng)介紹過(guò)了,具體的計(jì)算過(guò)程可以從如下的圖中比較清晰的得到:

這里簡(jiǎn)單介紹一下:
1)根據(jù)action得到廣告和自然結(jié)果的偏置矩陣:若action為01001,代表廣告的插入位置為2和5,那么1-action則代表自然結(jié)果的插入位置,即1-action=10110,那么基于這兩個(gè)action,可以得到偏置矩陣,如圖上的Mad和Moi
2)生成候選廣告和自然結(jié)果的embedding矩陣,其實(shí)就是將IRM得到的結(jié)果進(jìn)行reshape
3)交叉相乘并相加得到最終的結(jié)果,計(jì)作Mcross:

3.3.2 MCAU
MCAU用于建模相鄰展示商家的相互影響,而基于SACU得到的結(jié)果使相互影響建模更加簡(jiǎn)便。
在實(shí)際點(diǎn)擊或下單時(shí),用戶可能關(guān)注商家的某一方面或某幾方面,如配送費(fèi)、折扣、配送時(shí)間等等。若每個(gè)商家經(jīng)過(guò)IRM得到的embedding表示長(zhǎng)度為Ne,那么每一維度可以看做是信息的一種聚合方式,用戶可能對(duì)不同的維度或維度組合有著不同的偏好。因此,我們通過(guò)多個(gè)通道,每個(gè)通道建模單一維度或維度組合的信息,這正是Multi-Channel的含義所在。
具體的,使用多組Mask,對(duì)SACU得到的交叉矩陣進(jìn)行mask,再使用self-attention進(jìn)行相互影響建模:

MCAU模塊的輸出為各通道輸出的拼接:

3.3.3 Q-Value
經(jīng)過(guò)了SACU和MCAU,接下來(lái)就是Q-value的計(jì)算,我們采用Dueling-DQN的結(jié)構(gòu),因此Q-value包括狀態(tài)價(jià)值V和優(yōu)勢(shì)函數(shù)A:


3.4 Auxiliary Loss for Batch-level Constraint
接下來(lái),我們要關(guān)注的問(wèn)題是,如何保證廣告曝光占比在一定的范圍之內(nèi)?由于強(qiáng)化學(xué)習(xí)訓(xùn)練的不穩(wěn)定性,得到的不同模型在部署到線上時(shí),對(duì)應(yīng)的廣告曝光占比可能差別非常大,總不能一個(gè)一個(gè)嘗試。因此我們嘗試將曝光占比損失融入到模型訓(xùn)練中。
一種簡(jiǎn)單的思路就是我們約束每個(gè)回合的曝光占比,那么所有回合的曝光占比也可以在我們要求的范圍之內(nèi),但這種思路對(duì)于個(gè)性化的損失是非常大的。因此,這里我們提出了一種Batch粒度的損失函數(shù),使用一個(gè)Batch的樣本對(duì)應(yīng)的廣告曝光近似一段時(shí)間內(nèi)所有請(qǐng)求的廣告曝光占比。損失可以寫作:

上面的式子有兩個(gè)問(wèn)題值得討論:
1)PAE是如何計(jì)算的,一種簡(jiǎn)單的方式是不考慮位置因素,那么01001和11000的曝光占比均為0.4,這種方式處理比較簡(jiǎn)單,但并不合理,理論上越靠前的位置具有更高的曝光概率,那么另一種方式就是給每一個(gè)位置賦予一定的權(quán)重,這樣不同屏不同的廣告位置分配,得到的曝光占比均是不同的。
2)上式中argmax是不可導(dǎo)的,如何將其變?yōu)榭蓪?dǎo)的形式融入進(jìn)模型訓(xùn)練?我們使用soft-argmax對(duì)argmax進(jìn)行替換:

可以看到,本質(zhì)是softmax,通過(guò)beta系數(shù)控制softmax的結(jié)果,如果beta越大,那么softmax的結(jié)果越接近于argmax,同時(shí)是一種可導(dǎo)的方式。
那么我們最終的損失包含兩部分,一是基于貝爾曼方程的DQN損失,二是曝光約束損失:

3.5 模型拆解和部署
到這里,模型部分的介紹就到這里了,那么你可能會(huì)有疑問(wèn),為什么我們的整體模型需要拆解為IRM和SDM兩部分,IRM又為什么通過(guò)參數(shù)共享的方式進(jìn)行計(jì)算。
這里主要是線上性能的考慮,廣告位決策模塊在精排之后,耗時(shí)有嚴(yán)格的限制,同時(shí)需要完成多次的順序決策,因此我們把整個(gè)模型拆解為IRM和SDM兩部分,并分開(kāi)部署。IRM可以與精排并行計(jì)算,而SDM使用盡可能小的模型結(jié)構(gòu),完成多次決策,整個(gè)的線上部署架構(gòu)如下圖所示:

4、實(shí)驗(yàn)結(jié)果
最后簡(jiǎn)單看一下模型試驗(yàn)結(jié)果吧:

效果還是比較不錯(cuò)的,同時(shí)整個(gè)的CrossDQN已經(jīng)全量部署在美團(tuán)外賣平臺(tái),取得了明顯的收益提升。
好了,論文就介紹到這里,由于是自己團(tuán)隊(duì)的工作,也是介紹的盡可能詳細(xì),感興趣的同學(xué)可以加我微信sxw2251,一起探討交流~~