推薦系統(tǒng)遇上深度學(xué)習(xí)(八十七)-[阿里]基于搜索的用戶終身行為序列建模

本文介紹的論文是《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》
論文下載地址是:https://arxiv.org/abs/2006.05639

阿里對于用戶行為序列建模的研究源源不斷,本文咱們先來簡單總結(jié)一下用戶行為序列建模的常見方式,然后再來詳解一下最近提出的基于搜索的用戶終身行為序列建模方法。

1、用戶行為序列建?;仡?/h1>

1.1 Pooling方式

Pooling方式最簡單的就是對用戶行為序列中的每個item做embedding后,進(jìn)行max/mean-pooling,代表的論文是youtube的《Deep Neural Networks for YouTube Recommendations》,將用戶觀看過的視頻序列取到embedding后,做了一個mean pooling作為用戶歷史興趣的表達(dá)。

mean-pooling的方式將用戶點擊過的各個item當(dāng)做同等重要。但實際上,用戶點過的item對任務(wù)的貢獻(xiàn)度是不同的,user歷史上點過的和target item同一類目的item明顯會起到更加重要的作用。在DIN中,將attention思想引入到行為序列建模中。將target item和行為序列中的item做一個attention,得到一個weight,然后進(jìn)行加權(quán)求和來表征用戶的興趣。

1.2 RNN/Transformer方式

pooling方式?jīng)]有考慮用戶行為序列發(fā)生的先后順序。將行為序列順序引入到模型中,可以使用RNN及其變種LSTM/GRU。如DIEN中使用GRU對用戶的興趣進(jìn)行抽取和使用AUGRU來表示用戶興趣的演化過程。

但RNN方式的一大缺點是對用戶行為序列進(jìn)行串行計算,耗時相對來說還是較高一些,可以考慮將RNN替換為Transformer的方式,來實現(xiàn)行為序列的并行計算,如阿里的BST。使用Transormer時需要結(jié)合行為的先后順序信息,如在BST中,將當(dāng)前時間戳和用戶行為發(fā)生時間戳的差值離散化后的embedding加入到輸入信息中。

更進(jìn)一步,通過觀察用戶行為,發(fā)現(xiàn)用戶在每個會話中的行為是相近的,而在不同會話之間差別是很大的,考慮這種跟Session相結(jié)合的用戶行為序列,又有了DSIN。

1.3 多興趣抽取

前面介紹的大多數(shù)算法僅僅將用戶的興趣表示成單個的Embedding,但用戶的興趣是多種多樣的,使用單一的用戶興趣embedding容易造成頭部效應(yīng)。因此在MIND中,通過膠囊網(wǎng)絡(luò)來生成多個表征用戶興趣的Embedding,來提升召回階段的效果。

1.4 長用戶行為建模

上述模型大都是直接輸入用戶行為序列中的item id列表,線上耗時限制導(dǎo)致長度不能太長,如DIEN模型,當(dāng)QPS(每秒請求量)為500時,用戶行為序列長度為1000時,DIEN的延遲達(dá)到了200ms,這顯然是不能接受的。因此上述模型更多的是去刻畫用戶的短期興趣,基于用戶的短期行為進(jìn)行建模讓用戶很容易被近期熱點和大多數(shù)所代表,同時也無法建模用戶長期以來堅持的興趣,如品質(zhì)、風(fēng)格方面長期才能反映的喜好。

那么如何引入更長的用戶行為序列,來進(jìn)一步刻畫用戶的長期興趣呢?SDM提供了一種思路,其主要的思想是:將用戶的行為分為兩種,第一個是近期的行為,另一個是之前較長的行為,這部分行為會按照店鋪、品牌、品類進(jìn)行聚類,來刻畫用戶對品質(zhì)、風(fēng)格方面長期才能反映的喜好。比如用戶只買阿迪的鞋子或者只買帆布鞋等等。

另一種思路時考慮預(yù)先對行為序列做一些信息壓縮。MIMN利用興趣 memory 來建模用戶的原始行為,將用戶原始行為進(jìn)行歸納和抽象為用戶抽象的興趣表達(dá)。同時設(shè)計了了UIC模塊來存儲固定大小的用戶抽象的興趣表達(dá) memory,解決了線上耗時的問題。

但MIMN將大量用戶行為壓縮成為固定大小的興趣 memory 的過程中,存在信息損失。當(dāng)用戶行為膨脹到數(shù)萬數(shù)十萬時,有限的興趣 memory 向量維度難以完整記錄用戶原始的行為信息。

那么有沒有一種方案是直接列用用戶原始的行為,而且能夠解決上萬長度的用戶序列的耗時問題呢?一種解決方案便是本文將要介紹的Search-based User Interest Model。

2、基于搜索的用戶終身行為建模

2.1 整體介紹

首先回顧一下DIN的核心思路,DIN本質(zhì)就是從用戶行為序列中尋找跟target item相近的用戶行為,來建模用戶相關(guān)的興趣?;诖?,能否預(yù)先從用戶歷史行為中找到跟target item相近的物品,來減少行為序列的長度,再使用DIN或DIEN等模型來建模用戶的興趣?

阿里提出的Search-based User Interest Model(SIM)通過兩階段的方式,來對用戶終身行為序列進(jìn)行建模。其整體框架如下:

在第一個階段,通過General Search Unit,從用戶行為序列找到K個與目標(biāo)物品最為相關(guān)的序列結(jié)合,K要遠(yuǎn)遠(yuǎn)小于用戶總的行為序列長度;在第二個階段,使用前一階段得到的較短的行為序列,通過Exact Search Unit來精準(zhǔn)建模用戶的興趣,可以采用類似DIN或者DIEN等復(fù)雜的模型。接下來,主要對這兩個Unit進(jìn)行介紹。

2.2 General Search Unit

對于給定的目標(biāo)item,只有一部分的與該item關(guān)系緊密的用戶行為是有價值的,這部分的用戶行為對于用戶最終的決策起到了更為重要的作用。因此,通過General Search Unit去找到這部分的行為序列。搜索的方式包括兩種,hard-search和soft-search,其表示如下:

對于hard-search來說,直接根據(jù)品類去搜索,其中Ca代表目標(biāo)item的品類,Ci代表用戶行為序列中第i個item的品類。為了更高效的搜索,對于用戶行為的存儲采取了用戶行為樹的方式,如下圖所示:

用戶行為采用Key-Key-Value的樹結(jié)構(gòu)進(jìn)行存儲,第一層的Key代表用戶id,第二層的Key代表品類Id,第三層的Value則是該品類下的用戶行為。

對于soft-search來說,利用目標(biāo)item和行為序列中item的embedding,通過內(nèi)積的方式計算二者的相似度,線上應(yīng)用的時候,采用局部敏感HASH的方式進(jìn)行高效的搜索。item的embedding通過如下的網(wǎng)絡(luò)訓(xùn)練得到:

那么阿里實際應(yīng)用的是哪種方式呢?通過統(tǒng)計發(fā)現(xiàn),通過soft-search得到結(jié)果和hard-search非常接近,品類相同的item擁有更高的相似度,盡管soft-search的效果略好于hard-search,但是綜合考慮性能和計算耗時,最終還是選擇了hard-search的方式。

同時值得一提的是,用戶行為序列的長度會被截斷到200,來保證線上的耗時滿足要求。

2.3 Exact Search Unit

在第一個stage,我們得到了長度較短的用戶子行為序列,那么在第二個階段,通過Exact Search Unit并結(jié)合子行為序列和目標(biāo)item,來精確建模用戶的興趣。

論文中的ESU采用的是Multi-head attention的結(jié)構(gòu),同時為每一個用戶行為引入了時間狀態(tài)屬性。對于每一個歷史行為,計算該行為發(fā)生時間距當(dāng)前時間的時間差,離散化之后轉(zhuǎn)換為對應(yīng)的embedding,作為輸入。時間離散化的方式?jīng)]有指明,一種可以參考的方式是通過2的冪次進(jìn)行離散化。

最終的Loss是兩個階段的loss的和,每個階段的Loss都是logloss:

如果采用hard-soft的方式的話,GSU階段其實是無參數(shù)的,該部分loss的權(quán)重為0。

3、實驗結(jié)果

最后來看一下SIM的實驗效果,首先看一下在淘寶數(shù)據(jù)集和阿里工業(yè)數(shù)據(jù)集(展示廣告數(shù)據(jù)集)的表現(xiàn):

具體的實驗結(jié)果咱們看看就好,不過這里有一點還是比較有意思,首先我們定義一下d_category:這里指的是與用戶點擊的item 品類相同的行為最近發(fā)生日期離當(dāng)前的天數(shù)。假設(shè)當(dāng)前用戶點擊了一雙球鞋,上一次點擊球鞋是15天前,那么對該用戶來說,球鞋這個品類的d_category=15。

如果把14天以內(nèi)定義為短期,14天以上定義為長期,下圖代表了不同d_category下,SIM和DIEN推薦且被用戶點擊的item的分布,以及SIM相對于DIEN的點擊數(shù)量的提升:

圖中40-60這個部分,指模型推薦且被用戶點擊的item,其相同類目的行為最早發(fā)生在過去的40-60天內(nèi),可以看到雖然SIM和DIEN的推薦并點擊的結(jié)果主要集中在近期部分,但是在長期部分SIM的推薦且被點擊的數(shù)量顯著高于DIEN。這從側(cè)面說明SIM相對更好的建模了長期興趣。

參考文獻(xiàn)

1、https://zhuanlan.zhihu.com/p/148416488
2、https://mp.weixin.qq.com/s/0ljCqWC-TEzTeKvd0OcmBg

好了,本文的介紹就到這里了,感興趣的同學(xué)可以閱讀原文加深理解喲~~

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

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