當前位置:
首頁 > 知識 > 雙十一瘋狂剁手,你知道阿里是如何跟蹤用戶興趣演化的嗎?

雙十一瘋狂剁手,你知道阿里是如何跟蹤用戶興趣演化的嗎?

機器之心發布

作者:Guorui Zhou、Na Mou、Ying Fan、Qi Pi、Weijie Bian、Chang Zhou、Xiaoqiang Zhu、Kun Gai

雙十一,昨晚你是不是在瘋狂剁手?在阿里這篇 AAAI 2019 論文中,研究人員提出了深度興趣進化網路(DIEN)跟蹤用戶興趣演化,帶來了可觀的商業價值。

論文地址:https://arxiv.org/pdf/1809.03672.pdf

在展示廣告領域,CPC (cost per click) 是最常見的計費方式之一。這種計費方式下廣告主會為每一次點擊付費,同時系統需要預估每次展現廣告的點擊率來決定展示哪一個廣告。點擊率預估模型的性能不僅會影響平台的收入同時也會關係到用戶的體驗,因此點擊率預估是非常核心的一項任務。展示廣告場景下,點擊率預估模型的目標是預估給定廣告、場景、用戶的情況下該用戶會點擊該廣告的概率,即

進年來隨著深度學習的發展,點擊率預估模型也逐漸從傳統的 LR、FM、MLR[1] 等模型遷移到深度模型如 Wide&Deep[2]、DeepFM[3] 等。Wide&Deep、DeepFM 等模型都可以看做是一種 Embedding&MLP 的範式,先通過 embedding 將輸入的特徵 ID 等高維的 one-hot 向量投影到一個低維稠密的 embedding 空間最後 concat 成一個向量表達,再通過幾層多層感知機來根據輸入的向量表達預測點擊率。這些模型更多是面向了通用的問題採用了普適的設計。但是在電商場景下,會更多的關注用戶個性化需求同時也有更多的數據能更好的去理解用戶,類似 Wide&Deep、DeepFM 的模型就會顯得缺乏對應用場景的理解。

之前我們的工作深度興趣網路 DIN[4] (Deep Interest Net) 提出在電商場景下,用戶同時會存在多種多樣的興趣,同時用戶在面對一個具體商品的時候只有部分和此商品相關的興趣會影響用戶的行為(點擊 or 不點擊等等)。DIN 提出了一個興趣激活的模塊,用於根據被預測的商品 candidate C 激活其相關的歷史行為從而表達用戶和此商品 C 相關的部分興趣。相比以往的模型需要用一個固定的向量表達用戶所有的興趣,DIN 用一個根據不同被預測商品變化的向量來表達用戶相關的興趣,這樣的設計降低了模型表達用戶興趣的難度。

然而 DIN 也有其不足。首先,DIN 的設計中直接將一個具體的用戶行為(如點擊一個具體的商品)當做了用戶的興趣。用戶的興趣其實是一個更為抽象的概念,而某個歷史的行為只是抽象的興趣一個具體的體現。比如用戶購買了某款連衣裙,其背後可能是因為觸發了用戶對顏色、品牌、風格、當季相關的隱藏興趣,而用戶的興趣並不僅僅局限於這一款具體的商品。因此我們設計了一個興趣提取模塊用於從用戶具體的行為中抽取出每一個行為背後用戶隱藏的興趣。

其次 DIN 缺乏對用戶興趣演化的構建。在淘寶這樣綜合性的電商網站場景,用戶的歷史行為是很豐富多樣的,隱藏在這背後的用戶興趣也是多元的。假設可以用一個興趣空間來表達所有的興趣,某個用戶的一段歷史行為序列是, 其中表達假設的興趣空間內兩種不同的興趣,

,

, 可以認為是在不同興趣上的行為採樣點。由於用戶可能具有很多不同的興趣,因此用戶的歷史行為可以被看做是很多個興趣的很多採樣點混合在一起的綜合序列。DIN 中提出用單純序列建模如 RNNs(GRU, RNN, LSTM)來建模這樣一個綜合序列是不太合理的,不同於語音或者文本信號有非常強的序列信息,電商場景下用戶的行為序列信號中會有非常頻繁且隨機的跳轉雜訊。比如中的到的跳轉可能是非常隨機的(比如左圖,某用戶正在選窗帘突然想購買個減肥飲品;又或者右圖,選擇旅遊產品的時間跨度會很長,在此期間可能能會買些別的商品)。然而我們又明確的知道有信息隱含在這些序列當中,比如用戶某方面興趣的演化。舉個例子,用戶的穿衣風格可能是在逐漸變化的,這個變化的過程會在用戶的歷史行為中體現出來,如果能去掉歷史行為中其他的雜訊,就能提取出用戶的穿衣興趣演化過程。同時 ctr 預估任務中,模型只需要關注用戶是否會點擊給定的某個商品,換句話說,對於某一個具體的候選商品 candidate C,只需要建模和它相關的興趣演化過程。形式化地,假設

, 就只需要關心

這個子序列的演化。

因此,興趣演化模型由兩個核心工作組成:一是興趣提取模塊用於建模隱藏在用戶具體歷史行為後的抽象用戶興趣;二是建模廣告相關的用戶興趣的演化過程和趨勢的興趣演化模塊。

興趣演化模型

模型結構

由下往上,其中廣告特徵、場景特徵以及用戶的一般畫像特徵都和大多數的做法一樣,即取完 Embedding 後直接 concat 在一起,然後送入全連接層中。用戶的歷史行為則在通過 Embedding 層後需要先經過興趣提取層獲取每個行為背後的興趣表達,然後通過給定的廣告與每個興趣態做 attention 操作來獲得每個興趣態與該廣告的相關程度,最後所有時刻的和通過興趣演化層得到用戶最終的廣告相關的興趣表達, 這個興趣表達和其他特徵的 Embedding 會 concat 在一起送入全連接層中。

興趣提取模塊

興趣提取模塊由一層 GRU 構成,其輸入是用戶歷史行為序列

,每次行為是一個 time step。DEIN 設計希望第一層 GRU 的每一個 time step 分別表達這個時刻用戶的興趣。因此在每個 time step 引入了輔助 loss 來幫助刻畫每個興趣隱狀態,即要求

,

, 其中是對應的 Embedding,是為時刻隨機採樣的未發生的行為所對應的 Embedding,可以是一個簡單的全連接網路抑或是一個內積運算。

興趣提取模塊使用 GRU 的隱狀態來表達用戶隱藏在行為背後的興趣,並且使用輔助 loss 來約束這個隱狀態的學習(即通過給定每個隱狀態以及一個行為能夠準確的預測出用戶是否會發生這次行為):從興趣提取的角度來講負採樣輔助 loss 能夠約束 GRU 的每個隱狀態更好的表達用戶此刻的興趣。如果不加入這個 loss,所有的監督信號都源於最後的點擊樣本。點擊率預估大多數情況下都會採用某個具體場景的樣本,而希望通過某個具體場景樣本的反饋信號能提取到用戶每一個行為狀態背後的興趣是不現實的,輔助 loss 的設計用一種優雅的方式引入了用戶的全網行為反饋信息,同時不會引入多場景之間的點擊 bias 以及造成多場景耦合;從優化的角度來講負採樣輔助 loss 可以在 gru 的長序列建模中減少梯度反向傳播的難度;最後負採樣輔助 loss 能提供更多語義信息來幫助 Embedding 層的學習,能夠學習到更好的 Embedding 表達。

興趣演化模塊

由於用戶的興趣具有多樣性,用戶的歷史行為序列是多種興趣的採樣混合在一起的綜合序列,這個序列會存在很多跳變的點(如背景所介紹),因此很難用一個序列建模的方式把這個綜合序列的趨勢學習好。好在 ctr 任務中需要關注的是給定一個廣告用戶會不會點擊它,因此可以從給定廣告出發,只將和廣告相關的那些興趣態連成一個子序列進行建模,這樣就能建模和廣告相關的興趣的演化趨勢了。

首先這裡用廣告與興趣提取模塊產生的興趣態表達序列

進行 attention 操作,得到每個興趣態與廣告的相關程度:

其中代表廣告的 Embedding,是參數矩陣。由於 attention 的方式得到的是一個 soft 的相關權重序列,與廣告相關度高的興趣態其 attention score 較大,反之較小。為了能夠達到「只將和廣告相關的那些興趣態連成一個子序列進行建模」這樣的效果,我們需要設計一種序列建模方式,它能利用 attention score 的大小來決定序列建模過程中 hidden state 被更新的力度,即我們希望與廣告更相關的那些興趣態能夠更大力度的更新演化序列的 hidden state,與廣告不相關的興趣態能夠較小力度甚至不更新演化序列的 hidden state。我們使用一種改進的 gru 結構來實現這個目的。標準的 gru 更新公式是:

從上述公式可以看到,更新門如果等於 0 向量那麼就能保持不更新,即等同於;反之,隱藏層狀態就會受當前時刻的輸入影響而得到更新。因此直觀地,這裡我們可以使用 attention score來作用於, 讓的 scale 受限於興趣態與廣告的相關度,即:

以此來達到「與廣告越相關的行為更新隱狀態向量越多」的目的。

實驗

我們在 amazon 公開數據集(電子類和書籍類)和阿里媽媽精準展示廣告的生產數據上均進行了詳細的實驗,驗證了興趣演化模型的有效性。用到的數據規模如下:

下面我們分別詳細的介紹各數據集的實驗細節。

公開數據集

我們使用了 amazon 公開數據集中的兩個類目的數據做實驗,電子類別和書籍類別。訓練集和測試集按照 user 進行隨機劃分(即測試集的 user 不會出現在訓練集中),將 user 寫過的 review 按照時間進行排序,使用前次 review 來預測第次 review 是否會發生。

我們對比了現在主流的一些深度學習方法,發現使用我們提出的興趣演化模型這個數據集上能夠取得非常明顯的優勢。其中 BaseModel 是三層(200,80,2)全連接網路,其他模型都是在此基礎上進行改進,全連接部分和 EmbEdding 維度(18)都是完全一致的,

和使用的 gru 隱單元數和 attention 單元數均為 36,因此模型的參數量是相等的。所有的模型均使用 adam 優化方法進行訓練,初始學習率為 0.001。為了分析我們的提升來自於哪些改進點我們還對模型進行了詳細的分拆實驗。

可以看到興趣提取模塊和興趣演化模塊兩大貢獻點在這份數據上均有顯著的提升,尤其是興趣提取模塊的負採樣輔助 loss 能夠帶來大幅的提升。

生產數據集

生產數據集我們使用 49 天的廣告展示和點擊樣本作為訓練集,接下來的一天作為測試集。使用用戶前 14 天的歷史行為序列作為序列建模的輸入。

生產數據集上,用戶的歷史行為非常的豐富,興趣點也比公開數據集呈現更多的多樣性,因此更具有挑戰性。可以看到在不使用輔助 loss 的情況下興趣演化模型能夠在 DIN 的基礎上提升 7 個千分點(DIN vs BaseModel + GRU + AUGRU),增加輔助 loss 後能再額外提升 5 個千分點。實驗結果證明,在用戶行為豐富多樣的場景,本文提出的興趣演化模型能夠通過提取和捕捉到用戶的興趣而大幅的提升 ctr 預測的準確性。

生產化

要想將興趣演化模型實際部署到任務是艱巨的,在淘寶我們每秒鐘面對的在線請求量都是相當大的,特別是雙十一這種流量高峰更是會達到一個天文數字,同時我們的在線響應時間也有非常嚴苛的限制需要再幾毫秒內做出響應。為了將興趣演化模型 DIEN 全量部署上線,我們主要使用了以下的優化手段:首先在工程實現上,我們對模型中的計算進行充分的合併以減少 gpu 對 kernel 的調用次數;將可以並行的計算盡量的並行起來(比如 gru 的三個門可以拼在一起一次算完);不同用戶的請求可以 batch 在一起充分的利用 gpu;使用 blaze 對計算進行加速等;其次在模型本身上我們也進行了一系列的工作來減小模型的 inference 壓力,我們採用了之前在 AAAI2018 中提出的 Rocket Launching[5] 的方法讓一個小模型在訓練過程中跟隨大模型學習,最終用更小的參數量擬合到和大模型差不多的效果;使用半精度壓縮模型的 Embedding 參數,大大縮小模型的大小,減小在線服務的內存壓力,等等。通過這些努力,我們將模型的 inference 延時從 38.2ms 壓縮到 5ms,qps 達到 800+,達到上線要求。

我們進行了為期一個月的在線 A/B test 對比,相比於其他模型取得了顯著的線上效果:其中 DIEN 模型在全連接的 BaseModel 上取得了 20.7% 的 CTR 提升,取得了 17.1% 的 eCPM 的提升,這在工業界尤其是淘寶精準展示廣告這樣巨大的業務場景,是非常令人興奮的成果,帶來了客觀的商業價值。目前該模型已經支持線上全流量,服務於精準廣告的在線 CTR 預估任務。

[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 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.

本文為機器之心發布,轉載請聯繫本公眾號獲得授權。

------------------------------------------------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

神經符號系統:讓機器善解人意
機器學習應用行業浮躁、產品差?身為工程師的你是否已經喪失興趣

TAG:機器之心 |