推薦系統(tǒng)遇上深度學(xué)習(xí)(一一六)-[騰訊]用于多目標(biāo)用戶建模的MVKE模型

今天給大家介紹一篇騰訊在用戶標(biāo)簽建模上的不錯(cuò)的嘗試,提出了新穎的Mixture of Virtual-Kernel Experts (MVKE)模型,一起來看一下。

1、背景

與大多數(shù)工業(yè)界的在線廣告和推薦系統(tǒng)架構(gòu)一樣,騰訊的廣告系統(tǒng)同樣是如下圖所示的漏斗結(jié)構(gòu):

第一步稱作定向(targeting)基于用戶的畫像從眾多的廣告中抓取候選廣告,后續(xù)的打分和排序步驟則是挑選最適合用戶的廣告進(jìn)行展示。在這幾步的工作中,用戶建模(User profiling)是一項(xiàng)很重要的工作,而用戶標(biāo)簽建模(tagging)則是其中的核心部分,其重要性主要體現(xiàn)在兩方面:首先,許多廣告主希望他們的廣告能夠觸達(dá)一些有特定標(biāo)簽的用戶,并會(huì)為自己的廣告綁定相應(yīng)的標(biāo)簽,如Nike希望能夠觸達(dá)體育愛好者,BMW則希望觸達(dá)汽車愛好者;另一方面,用戶標(biāo)簽是特征工程中很關(guān)鍵的一部分。而本論文則重點(diǎn)研究如何有效的進(jìn)行標(biāo)簽建模。

然而,在騰訊的廣告系統(tǒng)中,用戶標(biāo)簽建模主要面臨以下幾方面的挑戰(zhàn):

1)騰訊的QQ、微信等平臺(tái)服務(wù)于上億的用戶,對(duì)如此巨量的用戶進(jìn)行標(biāo)簽建模是十分具有挑戰(zhàn)性的;
2)用戶的偏好是多方面并且是主題相關(guān)的。 例如,一位用戶可能不僅喜歡體育相關(guān)的廣告,還喜歡汽車相關(guān)的廣告。 因此,如何準(zhǔn)確有效地表示用戶對(duì)各種主題的多重偏好十分具有挑戰(zhàn)性;
3)用戶對(duì)同一標(biāo)簽下的行為也是多樣的,并且至少包括點(diǎn)擊和轉(zhuǎn)化兩種,在挖掘用戶偏好時(shí),需要進(jìn)一步考慮用戶對(duì)于同一標(biāo)簽在不同行為上的偏好差異。

對(duì)于問題1,業(yè)界廣泛使用雙塔模型,兩個(gè)塔分別輸出用戶和標(biāo)簽對(duì)應(yīng)的embedding,并通過內(nèi)積的方式計(jì)算其匹配程度。然而雙塔模型兩個(gè)塔是相對(duì)獨(dú)立的,用戶特征和標(biāo)簽特征沒有充分的交互,其效果是有損的。同時(shí),對(duì)于問題2,雙塔模型也很難有效表征用戶在多主題上的多樣興趣。對(duì)于問題3,多任務(wù)學(xué)習(xí)如MMoE、ESMM是常用的模型,但這些模型如果沒有專門的考慮和結(jié)構(gòu)設(shè)計(jì),也不足以解決用戶多主題相關(guān)的偏好問題。總結(jié)來說,在對(duì)用戶進(jìn)行高效標(biāo)簽建模的前提下,需要滿足兩個(gè)正交的目標(biāo),即多主題興趣建模和多行為興趣建模(這也是標(biāo)題中多目標(biāo)的含義),如下圖所示:

為了解決如上幾方面的問題,論文提出了一個(gè)新穎的多任務(wù)學(xué)習(xí)模型,稱作Mixture of Virtual-Kernel Experts(MVKE),下面一起來學(xué)習(xí)一下。

2、MVKE模型介紹

這一節(jié)主要對(duì)MVKE進(jìn)行介紹,MVKE本質(zhì)上仍然屬于雙塔結(jié)構(gòu),因此本章首先會(huì)介紹基本的雙塔模型,隨后介紹在單任務(wù)情況下的MVKE模型,最后介紹多任務(wù)情況下的MVKE模型。

2.1 基本模型

基本的雙塔模型如下圖所示:

兩個(gè)塔分別建模用戶和標(biāo)簽的embedding,并使用內(nèi)積的形式計(jì)算二者的相似度,兩個(gè)塔的輸出以及最終的loss計(jì)算如下:

基本的雙塔模型雖然應(yīng)用廣泛,但存在以下幾點(diǎn)不足:首先,用戶和標(biāo)簽的embedding使用單獨(dú)的塔進(jìn)行提取,二者不存在信息交互;其次,用戶塔難以同時(shí)建模用戶的多主題興趣;最后,如果想要同時(shí)建模用戶的點(diǎn)擊興趣和轉(zhuǎn)化興趣,則需要構(gòu)造兩個(gè)單獨(dú)的模型。針對(duì)上述的不足,接下來看一下MVKE是如何解決的。

2.2 單任務(wù)MVKE模型

這里,首先介紹單任務(wù)下的MVKE模型,其結(jié)構(gòu)如下所示:

盡管看上去仍然像一個(gè)雙塔結(jié)構(gòu)的模型,但通過兩個(gè)主要的結(jié)構(gòu)來使雙塔之間產(chǎn)生聯(lián)系:分別是Virtual-Kernel Experts (VKE)和Virtual- Kernel Gate (VKG)。一個(gè)VKE使用virtual kernal來建模用戶某一方面的興趣,VKG則使用注意力機(jī)制來聚合多個(gè)VKE的輸出得到特定標(biāo)簽下的用戶表示。接下來,分別對(duì)VKE和VKG進(jìn)行介紹。

Virtual-Kernel Experts (VKE)

MVKE模型中通常包含多個(gè)VKE,并共享特征輸入層,不同的VKE之間主要的區(qū)別點(diǎn)在于Virtual Kernel不同。對(duì)第k個(gè)VKE來說,其Virtual Kernel記作WVKk。Virtual Kernel是一個(gè)可學(xué)習(xí)的向量,同時(shí)作為注意力機(jī)制中的“Query”,而注意力機(jī)制中的“Key”和“Value”則是用戶的特征embedding。VKE首先通過注意力機(jī)制對(duì)用戶特征進(jìn)行非線性變換,對(duì)不同的特征進(jìn)行加權(quán):

在得到加權(quán)向量后,可以通過一些復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)如DeepFM等進(jìn)行進(jìn)一步的變換,得到每個(gè)VKE的輸出:

Virtual- Kernel Gate (VKG)

VKG則是通過注意力機(jī)制,來得到特定標(biāo)簽下的用戶表示。在VKG的注意力機(jī)制中,標(biāo)簽的embedding作為“Query”,所有VKE的輸出作為“Value”,所有的virtual kernel作為“Key”,其輸出如下:

VKG的輸出即用戶的向量表示,通過內(nèi)積計(jì)算可以計(jì)算其與標(biāo)簽的相似度,并通過交叉熵?fù)p失指導(dǎo)模型學(xué)習(xí)。

回看整個(gè)MVKE模型,virtual kernel起到了連接用戶塔和標(biāo)簽塔的作用。VKEs關(guān)注于建模用戶的隱式興趣表示,并通過VKG得到不同標(biāo)簽下的用戶向量表示。

2.3 多任務(wù)MVKE模型

介紹完了單任務(wù)下的MVKE模型,接下來再看下多任務(wù)下的MVKE模型。以CTR和CVR任務(wù)為例,其結(jié)構(gòu)如下圖所示:

可以看到,相較于單任務(wù)的MVKE模型,多任務(wù)MVKE模型:
1)可以設(shè)定更多的VKE,不同的VKE用于不同的任務(wù)(也可以有不同任務(wù)之間共享的VKE);
2)每一個(gè)任務(wù)都有其對(duì)應(yīng)的VKG;
3)在標(biāo)簽塔也有對(duì)應(yīng)的多個(gè)Expert,分別計(jì)算每個(gè)任務(wù)下標(biāo)簽的向量表示。

最終模型的損失即每個(gè)任務(wù)損失的求和:

同時(shí),論文中給出了兩條關(guān)于多任務(wù)MVKE模型的建議:

1)同時(shí)設(shè)定每個(gè)任務(wù)獨(dú)有的VKE和共享的VKE。獨(dú)有的VKE可以保證每個(gè)任務(wù)訓(xùn)練的差異性,共享的VKE則可以考慮任務(wù)之間的互補(bǔ)性。
2)對(duì)于有序列依賴關(guān)系的任務(wù)(如曝光-點(diǎn)擊-轉(zhuǎn)化)來說,越靠后的任務(wù)可以包含更多服務(wù)于上游任務(wù)的VKE,用于獲取更多的上游任務(wù)的有用信息。如共有5個(gè)VKE,前三個(gè)用于ctr任務(wù),而2到5用于cvr任務(wù)。

2.4 復(fù)雜度分析

相較于最基本的雙塔模型,MVKE在模型復(fù)雜度上有很大的提升,那么在線上的時(shí)間和空間復(fù)雜度如何呢?這里,假設(shè)有U個(gè)用戶和T個(gè)標(biāo)簽。

首先看最基本的雙塔模型,用戶和標(biāo)簽的組合共有U*T種,那么計(jì)算每個(gè)用戶最相似的標(biāo)簽時(shí)間復(fù)雜度為O(U*T),不過通過一些先進(jìn)的向量化檢索方案如FAISS,其復(fù)雜度可以降低為O(U+T),由于用戶的數(shù)量遠(yuǎn)遠(yuǎn)大于標(biāo)簽的數(shù)量,時(shí)間復(fù)雜度可以進(jìn)一步近似為O(U),空間復(fù)雜度也近似為O(U)。

再來看MVKE模型,首先來看下哪些是可以提前計(jì)算好的,對(duì)于用戶塔來說,每個(gè)VKE的輸出可以提前保存,對(duì)于標(biāo)簽塔來說,標(biāo)簽embedding和標(biāo)簽于virtual kernel的相似度權(quán)重可以提前保存,這樣在預(yù)測時(shí),只需要使用權(quán)重對(duì)VKE的輸出作加權(quán)即可得到用戶embedding,后續(xù)的過程則與最基本的雙塔模型相同,因此時(shí)間復(fù)雜度為O(U),空間復(fù)雜度為O(k*U),k為VKE的數(shù)量。

2.5 總結(jié)分析

最后來對(duì)MVKE模型做一下總結(jié):

1)首先,相較于基本的雙塔模型,使用virtual kernel建立了兩個(gè)塔之間的聯(lián)系,同時(shí)可以提取用戶多主題和多行為的興趣。
2)其次,MMoE 中的不同Expert只是在結(jié)構(gòu)上分離,其區(qū)分能力沒有明確定義。 而在MVKE中,不同的VKE由于virtual kernel的不同,使專家網(wǎng)絡(luò)可以更加差異化,并專注于對(duì)用戶偏好的一個(gè)特定方面進(jìn)行建模。
3)最后,MVKE模型在時(shí)間復(fù)雜度上與雙塔模型接近,保持了很高的預(yù)測效率。

3、實(shí)驗(yàn)結(jié)果

最后簡單看下離線和在線的實(shí)驗(yàn)結(jié)果,無論是離線還是在線的實(shí)驗(yàn),MVKE都實(shí)現(xiàn)了不同程度的效果的提升:

好了,本文就介紹到這里,思路還是非常不錯(cuò)的,建議閱讀下原文喲~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容