姓名:劉暢 學(xué)號(hào):15020199045
轉(zhuǎn)自:https://zhuanlan.zhihu.com/p/49269912
【嵌牛導(dǎo)讀】:在阿里這篇 AAAI 2019 論文中,研究人員提出了深度興趣進(jìn)化網(wǎng)絡(luò)(DIEN)跟蹤用戶興趣演化刁赖,帶來(lái)了可觀的商業(yè)價(jià)值搁痛。
【嵌牛鼻子】:興趣演化,阿里巴巴宇弛,人工智能
【嵌牛提問】:雙十一鸡典,昨晚你是不是在瘋狂剁手?
【嵌牛正文】:
論文地址:https://arxiv.org/pdf/1809.03672.pdf
在展示廣告領(lǐng)域枪芒,CPC (cost per click) 是最常見的計(jì)費(fèi)方式之一彻况。這種計(jì)費(fèi)方式下廣告主會(huì)為每一次點(diǎn)擊付費(fèi),同時(shí)系統(tǒng)需要預(yù)估每次展現(xiàn)廣告的點(diǎn)擊率來(lái)決定展示哪一個(gè)廣告舅踪。點(diǎn)擊率預(yù)估模型的性能不僅會(huì)影響平臺(tái)的收入同時(shí)也會(huì)關(guān)系到用戶的體驗(yàn)纽甘,因此點(diǎn)擊率預(yù)估是非常核心的一項(xiàng)任務(wù)。展示廣告場(chǎng)景下抽碌,點(diǎn)擊率預(yù)估模型的目標(biāo)是預(yù)估給定廣告贷腕、場(chǎng)景、用戶的情況下該用戶會(huì)點(diǎn)擊該廣告的概率,即
泽裳。
進(jìn)年來(lái)隨著深度學(xué)習(xí)的發(fā)展瞒斩,點(diǎn)擊率預(yù)估模型也逐漸從傳統(tǒng)的 LR、FM涮总、MLR[1] 等模型遷移到深度模型如 Wide&Deep[2]胸囱、DeepFM[3] 等。Wide&Deep瀑梗、DeepFM 等模型都可以看做是一種 Embedding&MLP 的范式烹笔,先通過(guò) embedding 將輸入的特征 ID 等高維的 one-hot 向量投影到一個(gè)低維稠密的 embedding 空間最后 concat 成一個(gè)向量表達(dá),再通過(guò)幾層多層感知機(jī)來(lái)根據(jù)輸入的向量表達(dá)預(yù)測(cè)點(diǎn)擊率抛丽。這些模型更多是面向了通用的問題采用了普適的設(shè)計(jì)谤职。但是在電商場(chǎng)景下,會(huì)更多的關(guān)注用戶個(gè)性化需求同時(shí)也有更多的數(shù)據(jù)能更好的去理解用戶亿鲜,類似 Wide&Deep允蜈、DeepFM 的模型就會(huì)顯得缺乏對(duì)應(yīng)用場(chǎng)景的理解。
之前我們的工作深度興趣網(wǎng)絡(luò) DIN[4] (Deep Interest Net) 提出在電商場(chǎng)景下蒿柳,用戶同時(shí)會(huì)存在多種多樣的興趣饶套,同時(shí)用戶在面對(duì)一個(gè)具體商品的時(shí)候只有部分和此商品相關(guān)的興趣會(huì)影響用戶的行為(點(diǎn)擊 or 不點(diǎn)擊等等)。DIN 提出了一個(gè)興趣激活的模塊垒探,用于根據(jù)被預(yù)測(cè)的商品 candidate C 激活其相關(guān)的歷史行為從而表達(dá)用戶和此商品 C 相關(guān)的部分興趣妓蛮。相比以往的模型需要用一個(gè)固定的向量表達(dá)用戶所有的興趣,DIN 用一個(gè)根據(jù)不同被預(yù)測(cè)商品變化的向量來(lái)表達(dá)用戶相關(guān)的興趣圾叼,這樣的設(shè)計(jì)降低了模型表達(dá)用戶興趣的難度蛤克。
然而 DIN 也有其不足。首先夷蚊,DIN 的設(shè)計(jì)中直接將一個(gè)具體的用戶行為(如點(diǎn)擊一個(gè)具體的商品)當(dāng)做了用戶的興趣咖耘。用戶的興趣其實(shí)是一個(gè)更為抽象的概念,而某個(gè)歷史的行為只是抽象的興趣一個(gè)具體的體現(xiàn)撬码。比如用戶購(gòu)買了某款連衣裙,其背后可能是因?yàn)橛|發(fā)了用戶對(duì)顏色版保、品牌呜笑、風(fēng)格、當(dāng)季相關(guān)的隱藏興趣彻犁,而用戶的興趣并不僅僅局限于這一款具體的商品叫胁。因此我們?cè)O(shè)計(jì)了一個(gè)興趣提取模塊用于從用戶具體的行為中抽取出每一個(gè)行為背后用戶隱藏的興趣。
其次 DIN 缺乏對(duì)用戶興趣演化的構(gòu)建汞幢。在淘寶這樣綜合性的電商網(wǎng)站場(chǎng)景驼鹅,用戶的歷史行為是很豐富多樣的,隱藏在這背后的用戶興趣也是多元的。假設(shè)可以用一個(gè)興趣空間
來(lái)表達(dá)所有的興趣输钩,某個(gè)用戶的一段歷史行為序列是
, 其中
表達(dá)假設(shè)的興趣空間內(nèi)兩種不同的興趣,
,
, 可以認(rèn)為是在不同興趣上的行為采樣點(diǎn)豺型。由于用戶可能具有很多不同的興趣,因此用戶的歷史行為可以被看做是很多個(gè)興趣的很多采樣點(diǎn)混合在一起的綜合序列买乃。DIN 中提出用單純序列建模如 RNNs(GRU, RNN, LSTM)來(lái)建模這樣一個(gè)綜合序列是不太合理的姻氨,不同于語(yǔ)音或者文本信號(hào)有非常強(qiáng)的序列信息,電商場(chǎng)景下用戶的行為序列信號(hào)中會(huì)有非常頻繁且隨機(jī)的跳轉(zhuǎn)噪聲剪验。比如
中的
到
的跳轉(zhuǎn)可能是非常隨機(jī)的(比如左圖肴焊,某用戶正在選窗簾突然想購(gòu)買個(gè)減肥飲品;又或者右圖功戚,選擇旅游產(chǎn)品的時(shí)間跨度會(huì)很長(zhǎng)娶眷,在此期間可能能會(huì)買些別的商品)。然而我們又明確的知道有信息隱含在這些序列當(dāng)中啸臀,比如用戶某方面興趣的演化届宠。舉個(gè)例子,用戶的穿衣風(fēng)格可能是在逐漸變化的壳咕,這個(gè)變化的過(guò)程會(huì)在用戶的歷史行為中體現(xiàn)出來(lái)席揽,如果能去掉歷史行為中其他的噪聲,就能提取出用戶的穿衣興趣演化過(guò)程谓厘。同時(shí) ctr 預(yù)估任務(wù)中幌羞,模型只需要關(guān)注用戶是否會(huì)點(diǎn)擊給定的某個(gè)商品,換句話說(shuō)竟稳,對(duì)于某一個(gè)具體的候選商品 candidate C属桦,只需要建模和它相關(guān)的興趣演化過(guò)程。形式化地他爸,假設(shè)
, 就只需要關(guān)心
這個(gè)子序列的演化聂宾。
因此,興趣演化模型由兩個(gè)核心工作組成:一是興趣提取模塊用于建模隱藏在用戶具體歷史行為后的抽象用戶興趣诊笤;二是建模廣告相關(guān)的用戶興趣的演化過(guò)程和趨勢(shì)的興趣演化模塊系谐。
興趣演化模型
模型結(jié)構(gòu)
由下往上,其中廣告特征讨跟、場(chǎng)景特征以及用戶的一般畫像特征都和大多數(shù)的做法一樣纪他,即取完 Embedding 后直接 concat 在一起,然后送入全連接層中晾匠。用戶的歷史行為則在通過(guò) Embedding 層后需要先經(jīng)過(guò)興趣提取層獲取每個(gè)行為背后的興趣表達(dá)
茶袒,然后通過(guò)給定的廣告
與每個(gè)興趣態(tài)
做 attention 操作來(lái)獲得每個(gè)興趣態(tài)與該廣告
的相關(guān)程度
,最后所有時(shí)刻的
和
通過(guò)興趣演化層得到用戶最終的廣告相關(guān)的興趣表達(dá)
, 這個(gè)興趣表達(dá)和其他特征的 Embedding 會(huì) concat 在一起送入全連接層中凉馆。
興趣提取模塊
興趣提取模塊由一層 GRU 構(gòu)成薪寓,其輸入是用戶歷史行為序列
亡资,每次行為是一個(gè) time step。DEIN 設(shè)計(jì)希望第一層 GRU 的每一個(gè) time step 分別表達(dá)這個(gè)時(shí)刻用戶的興趣向叉。因此在每個(gè) time step 引入了輔助 loss 來(lái)幫助刻畫每個(gè)興趣隱狀態(tài)
锥腻,即要求
,
, 其中
是
對(duì)應(yīng)的 Embedding,
是為
時(shí)刻隨機(jī)采樣的未發(fā)生的行為所對(duì)應(yīng)的 Embedding植康,
可以是一個(gè)簡(jiǎn)單的全連接網(wǎng)絡(luò)抑或是一個(gè)內(nèi)積運(yùn)算旷太。
興趣提取模塊使用 GRU 的隱狀態(tài)來(lái)表達(dá)用戶隱藏在行為背后的興趣,并且使用輔助 loss 來(lái)約束這個(gè)隱狀態(tài)的學(xué)習(xí)(即通過(guò)給定每個(gè)隱狀態(tài)以及一個(gè)行為能夠準(zhǔn)確的預(yù)測(cè)出用戶是否會(huì)發(fā)生這次行為):從興趣提取的角度來(lái)講負(fù)采樣輔助 loss 能夠約束 GRU 的每個(gè)隱狀態(tài)更好的表達(dá)用戶此刻的興趣销睁。如果不加入這個(gè) loss供璧,所有的監(jiān)督信號(hào)都源于最后的點(diǎn)擊樣本。點(diǎn)擊率預(yù)估大多數(shù)情況下都會(huì)采用某個(gè)具體場(chǎng)景的樣本冻记,而希望通過(guò)某個(gè)具體場(chǎng)景樣本的反饋信號(hào)能提取到用戶每一個(gè)行為狀態(tài)背后的興趣是不現(xiàn)實(shí)的睡毒,輔助 loss 的設(shè)計(jì)用一種優(yōu)雅的方式引入了用戶的全網(wǎng)行為反饋信息,同時(shí)不會(huì)引入多場(chǎng)景之間的點(diǎn)擊 bias 以及造成多場(chǎng)景耦合冗栗;從優(yōu)化的角度來(lái)講負(fù)采樣輔助 loss 可以在 gru 的長(zhǎng)序列建模中減少梯度反向傳播的難度演顾;最后負(fù)采樣輔助 loss 能提供更多語(yǔ)義信息來(lái)幫助 Embedding 層的學(xué)習(xí),能夠?qū)W習(xí)到更好的 Embedding 表達(dá)隅居。
興趣演化模塊
由于用戶的興趣具有多樣性钠至,用戶的歷史行為序列是多種興趣的采樣混合在一起的綜合序列,這個(gè)序列會(huì)存在很多跳變的點(diǎn)(如背景所介紹)胎源,因此很難用一個(gè)序列建模的方式把這個(gè)綜合序列的趨勢(shì)學(xué)習(xí)好棉钧。好在 ctr 任務(wù)中需要關(guān)注的是給定一個(gè)廣告用戶會(huì)不會(huì)點(diǎn)擊它,因此可以從給定廣告出發(fā)涕蚤,只將和廣告相關(guān)的那些興趣態(tài)連成一個(gè)子序列進(jìn)行建模宪卿,這樣就能建模和廣告相關(guān)的興趣的演化趨勢(shì)了。
首先這里用廣告
與興趣提取模塊產(chǎn)生的興趣態(tài)表達(dá)序列
進(jìn)行 attention 操作万栅,得到每個(gè)興趣態(tài)與廣告
的相關(guān)程度
:
其中
代表廣告
的 Embedding佑钾,
是參數(shù)矩陣。由于 attention 的方式得到的是一個(gè) soft 的相關(guān)權(quán)重序列烦粒,與廣告相關(guān)度高的興趣態(tài)其 attention score 較大休溶,反之較小。為了能夠達(dá)到「只將和廣告相關(guān)的那些興趣態(tài)連成一個(gè)子序列進(jìn)行建娜潘」這樣的效果兽掰,我們需要設(shè)計(jì)一種序列建模方式,它能利用 attention score 的大小來(lái)決定序列建模過(guò)程中 hidden state 被更新的力度义黎,即我們希望與廣告更相關(guān)的那些興趣態(tài)能夠更大力度的更新演化序列的 hidden state,與廣告不相關(guān)的興趣態(tài)能夠較小力度甚至不更新演化序列的 hidden state豁跑。我們使用一種改進(jìn)的 gru 結(jié)構(gòu)來(lái)實(shí)現(xiàn)這個(gè)目的廉涕。標(biāo)準(zhǔn)的 gru 更新公式是:
從上述公式可以看到泻云,更新門
如果等于 0 向量那么
就能保持不更新,即等同于
狐蜕;反之宠纯,隱藏層狀態(tài)就會(huì)受當(dāng)前時(shí)刻的輸入影響而得到更新。因此直觀地层释,這里我們可以使用 attention score
來(lái)作用于
, 讓
的 scale 受限于興趣態(tài)與廣告的相關(guān)度婆瓜,即:
以此來(lái)達(dá)到「與廣告越相關(guān)的行為更新隱狀態(tài)向量越多」的目的。
實(shí)驗(yàn)
我們?cè)?amazon 公開數(shù)據(jù)集(電子類和書籍類)和阿里媽媽精準(zhǔn)展示廣告的生產(chǎn)數(shù)據(jù)上均進(jìn)行了詳細(xì)的實(shí)驗(yàn)贡羔,驗(yàn)證了興趣演化模型的有效性廉白。用到的數(shù)據(jù)規(guī)模如下:
下面我們分別詳細(xì)的介紹各數(shù)據(jù)集的實(shí)驗(yàn)細(xì)節(jié)。
公開數(shù)據(jù)集
我們使用了 amazon 公開數(shù)據(jù)集中的兩個(gè)類目的數(shù)據(jù)做實(shí)驗(yàn)乖寒,電子類別和書籍類別猴蹂。訓(xùn)練集和測(cè)試集按照 user 進(jìn)行隨機(jī)劃分(即測(cè)試集的 user 不會(huì)出現(xiàn)在訓(xùn)練集中),將 user 寫過(guò)的 review 按照時(shí)間進(jìn)行排序楣嘁,使用前
次 review 來(lái)預(yù)測(cè)第
次 review 是否會(huì)發(fā)生磅轻。
我們對(duì)比了現(xiàn)在主流的一些深度學(xué)習(xí)方法,發(fā)現(xiàn)使用我們提出的興趣演化模型這個(gè)數(shù)據(jù)集上能夠取得非常明顯的優(yōu)勢(shì)逐虚。其中 BaseModel 是三層(200抗悍,80祟绊,2)全連接網(wǎng)絡(luò),其他模型都是在此基礎(chǔ)上進(jìn)行改進(jìn),全連接部分和 EmbEdding 維度(18)都是完全一致的菩佑,
和
使用的 gru 隱單元數(shù)和 attention 單元數(shù)均為 36,因此模型的參數(shù)量是相等的谒所。所有的模型均使用 adam 優(yōu)化方法進(jìn)行訓(xùn)練徙菠,初始學(xué)習(xí)率為 0.001。為了分析我們的提升來(lái)自于哪些改進(jìn)點(diǎn)我們還對(duì)模型進(jìn)行了詳細(xì)的分拆實(shí)驗(yàn)凝果。
可以看到興趣提取模塊和興趣演化模塊兩大貢獻(xiàn)點(diǎn)在這份數(shù)據(jù)上均有顯著的提升祝迂,尤其是興趣提取模塊的負(fù)采樣輔助 loss 能夠帶來(lái)大幅的提升。
生產(chǎn)數(shù)據(jù)集
生產(chǎn)數(shù)據(jù)集我們使用 49 天的廣告展示和點(diǎn)擊樣本作為訓(xùn)練集器净,接下來(lái)的一天作為測(cè)試集型雳。使用用戶前 14 天的歷史行為序列作為序列建模的輸入。
生產(chǎn)數(shù)據(jù)集上山害,用戶的歷史行為非常的豐富纠俭,興趣點(diǎn)也比公開數(shù)據(jù)集呈現(xiàn)更多的多樣性,因此更具有挑戰(zhàn)性浪慌≡┚#可以看到在不使用輔助 loss 的情況下興趣演化模型能夠在 DIN 的基礎(chǔ)上提升 7 個(gè)千分點(diǎn)(DIN vs BaseModel + GRU + AUGRU),增加輔助 loss 后能再額外提升 5 個(gè)千分點(diǎn)权纤。實(shí)驗(yàn)結(jié)果證明钓简,在用戶行為豐富多樣的場(chǎng)景乌妒,本文提出的興趣演化模型能夠通過(guò)提取和捕捉到用戶的興趣而大幅的提升 ctr 預(yù)測(cè)的準(zhǔn)確性。
生產(chǎn)化
要想將興趣演化模型實(shí)際部署到任務(wù)是艱巨的外邓,在淘寶我們每秒鐘面對(duì)的在線請(qǐng)求量都是相當(dāng)大的撤蚊,特別是雙十一這種流量高峰更是會(huì)達(dá)到一個(gè)天文數(shù)字,同時(shí)我們的在線響應(yīng)時(shí)間也有非常嚴(yán)苛的限制需要再幾毫秒內(nèi)做出響應(yīng)损话。為了將興趣演化模型 DIEN 全量部署上線侦啸,我們主要使用了以下的優(yōu)化手段:首先在工程實(shí)現(xiàn)上,我們對(duì)模型中的計(jì)算進(jìn)行充分的合并以減少 gpu 對(duì) kernel 的調(diào)用次數(shù)丧枪;將可以并行的計(jì)算盡量的并行起來(lái)(比如 gru 的三個(gè)門可以拼在一起一次算完)光涂;不同用戶的請(qǐng)求可以 batch 在一起充分的利用 gpu;使用 blaze 對(duì)計(jì)算進(jìn)行加速等豪诲;其次在模型本身上我們也進(jìn)行了一系列的工作來(lái)減小模型的 inference 壓力顶捷,我們采用了之前在 AAAI2018 中提出的 Rocket Launching[5] 的方法讓一個(gè)小模型在訓(xùn)練過(guò)程中跟隨大模型學(xué)習(xí),最終用更小的參數(shù)量擬合到和大模型差不多的效果屎篱;使用半精度壓縮模型的 Embedding 參數(shù)服赎,大大縮小模型的大小,減小在線服務(wù)的內(nèi)存壓力交播,等等重虑。通過(guò)這些努力,我們將模型的 inference 延時(shí)從 38.2ms 壓縮到 5ms秦士,qps 達(dá)到 800+缺厉,達(dá)到上線要求。
我們進(jìn)行了為期一個(gè)月的在線 A/B test 對(duì)比隧土,相比于其他模型取得了顯著的線上效果:其中 DIEN 模型在全連接的 BaseModel 上取得了 20.7% 的 CTR 提升提针,取得了 17.1% 的 eCPM 的提升,這在工業(yè)界尤其是淘寶精準(zhǔn)展示廣告這樣巨大的業(yè)務(wù)場(chǎng)景曹傀,是非常令人興奮的成果辐脖,帶來(lái)了可觀的商業(yè)價(jià)值。目前該模型已經(jīng)支持線上全流量皆愉,服務(wù)于精準(zhǔn)廣告的在線 CTR 預(yù)估任務(wù)嗜价。
[1] Kun Gai, Xiaoqiang Zhu, et al. 2017. Learning Piece-wise Linear Models fromLarge Scale Data for Ad Click Prediction. arXiv preprint arXiv:1704.05194 (2017).
[2] Cheng, H.-T.; Koc, L.; Harmsen, J.; Shaked, T.; Chandra, T.;Aradhye, H.; Anderson, G.; Corrado, G.; Chai, W.; Ispir, M.;et al. 2016. Wide & deep learning for recommender?http://systems.In?Proceedings of the 1st Workshop on Deep Learning forRecommender Systems, 7–10. ACM.
[3] Guo, H.; Tang, R.; Ye, Y.; Li, Z.; and He, X. 2017. Deepfm:a factorization-machine based neural network for ctr predic-tion. In Proceedings of the 26th International Joint Confer-ence on Artificial Intelligence, 2782–2788.
[4] Zhou, G.; Zhu, X.; Song, C.; Fan, Y.; Zhu, H.; Ma, X.; Yan,Y.; Jin, J.; Li, H.; and Gai, K. 2018c. Deep interest net-work for click-through rate prediction. In Proceedings ofthe 24th ACM SIGKDD International Conference on Knowl-edge Discovery & Data Mining, 1059–1068. ACM.
[5] Zhou, G.; Fan, Y.; Cui, R.; Bian, W.; Zhu, X.; and Gai, K.2018b. Rocket launching: A universal and efficient frame-work for training well-performing light net. In Proceedingsof the 32nd AAAI Conference on Artificial Intelligence.