王森章, 劉 毅, 張家強(qiáng), 尹成語
1 中南大學(xué)計算機(jī)學(xué)院 長沙 中國 410083
2 南京航空航天大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 南京 中國 211106
在電子商務(wù)平臺中如何更好的向用戶提供個性化服務(wù), 很大程度上取決于對用戶意圖[1]的準(zhǔn)確理解。例如, 預(yù)測一名用戶想要在亞馬遜平臺上購買什么商品, 有助于提高商品推薦任務(wù)和銷售預(yù)測任務(wù)的準(zhǔn)確性。一名用戶在電子商務(wù)平臺中的行為可以看作是由一系列按時間順序排列的會話組成。每次會話都是在給定的時間內(nèi)發(fā)生的一組用戶行為, 會話內(nèi)容是用戶交互過的商品[2]。其中, 用戶和商品之間的交互可以是用戶對商品的一次點擊, 瀏覽或購買。來自一個用戶的兩個連續(xù)會話之間通常具有一定的時間間隔。它們可能發(fā)生在同一天中, 也可能間隔幾天、幾周或幾個月。一個會話通常反映了一名用戶的一個特定意圖, 比如聽某種風(fēng)格的音樂或者找某件合適的商品[3]。在電商領(lǐng)域, 一名用戶在一個會話中通常有一個明確的購物需求。如圖1 所示是用戶1 在亞馬遜平臺上的瀏覽歷史, 該瀏覽歷史是由一系列會話組成的, 從會話 session1到會話sessioni+1。在第一個會話中, 用戶1 與一組不同類型的耳機(jī)產(chǎn)生交互, 該用戶隱含的目的或行為意圖是購買其中的某個耳機(jī)。然后經(jīng)過了一段時間后, 用戶1 想要購買一雙鞋子, 于是又建立了一個新的會話, 在新會話中用戶和一組鞋子產(chǎn)生交互。從歷史會話中捕捉用戶的偏好以及預(yù)測用戶未來的意圖,是服務(wù)提供商用來改善用戶體驗的一種行之有效的方法。
圖1 用戶1 在亞馬遜平臺中瀏覽歷史示例Figure 1 A toy example of a user 1’s browsing history containing three sessions on Amazon
雖然在基于會話的推薦任務(wù)和序列預(yù)測任務(wù)等方面已經(jīng)有了大量的相關(guān)工作, 但由于以下局限性,導(dǎo)致現(xiàn)有方法在此研究問題上的性能表現(xiàn)仍然不盡如人意。首先, 受到BERT 模型(Bidirectional Encoder Representation from Transformers)[4]在文本理解領(lǐng)域中相關(guān)研究的啟發(fā), 一些模型將自注意力模型直接應(yīng)用于用戶會話中的用戶意圖預(yù)測任務(wù)[5-6]。但這些模型只考慮了會話序列的順序信息, 而忽略了一個會話中用戶行為之間的時間間隔信息, 即一名用戶在較短的時間間隔內(nèi)的行為比在較長時間間隔內(nèi)的行為具有更強(qiáng)的相關(guān)性。其次, 用戶的意圖具有復(fù)雜性, 這是因為用戶在一個會話中可能有多種意圖[2],而之前的一些相關(guān)工作提出的方法無法有效地捕獲用戶的多種意圖。例如, 當(dāng)一名用戶正在瀏覽運動品類的商品時, 該用戶可能同時具有購買一個足球的意圖和購買一件運動衫的意圖。第三, 包含用戶行為的會話數(shù)據(jù)與其他類型的序列數(shù)據(jù)(如文本和時間序列等)之間存在的一個顯著區(qū)別是, 用戶行為的會話數(shù)據(jù)通常不僅在同一個會話中具有短期依賴關(guān)系,并且在不同的會話之間具有長期依賴關(guān)系[7-8]。現(xiàn)有的一些相關(guān)工作也很難同時捕獲這種長期和短期依賴關(guān)系。
為了有效解決上述問題, 本文提出了一個名為THSNet 的時間感知分層自注意力網(wǎng)絡(luò)模型, 以更精準(zhǔn)的預(yù)測電商平臺中在線用戶的購物意圖。具體說來, THSNet 模型首先建立了一個會話級別的時間感知LSTM 層, 并通過該層學(xué)習(xí)每個會話的特征表示。受文獻(xiàn)[9]的啟發(fā), 我們將時間間隔信息輸入標(biāo)準(zhǔn)的LSTM 單元, 用來處理每個會話中不規(guī)律的時間間隔。接下來, 為了捕捉用戶的多種意圖, 我們專門設(shè)計了一個多意圖自注意力模塊, 該模塊利用一個多頭自注意力機(jī)制來捕捉用戶的多種意圖。此外, 我們還設(shè)計了一個掩碼矩陣用以確保時間流動的單向性,這意味著當(dāng)前的用戶行為只能受到其之前行為的影響, 而不會受到未來未發(fā)生的行為影響。最后, 我們設(shè)計了一個分層自注意力機(jī)制, 以同時捕獲用戶在線行為的短期和長期依賴關(guān)系, 其中包含在為會話內(nèi)部的用戶行為建模的會話內(nèi)自注意力機(jī)制, 以及為多個會話之間的序列依賴關(guān)系建模的會話間自注意力機(jī)制。為了使會話表示學(xué)習(xí)具有更好的魯棒性和雙向性, 我們還把訓(xùn)練完型填空模型作為一項輔助任務(wù)。具體來說, 我們隨機(jī)地遮蓋了部分會話的特征表示, 然后通過對它們的左右上下文信息進(jìn)行聯(lián)合調(diào)節(jié), 實現(xiàn)對被遮蓋部分的預(yù)測。通過對被遮蓋的會話特征表示進(jìn)行預(yù)測與在多任務(wù)學(xué)習(xí)框架下對用戶意圖的預(yù)測相結(jié)合, 可以進(jìn)一步提升用戶意圖預(yù)測的性能。
我們的主要貢獻(xiàn)總結(jié)如下:
· 據(jù)我們所知, 目前還沒有針對用戶在電商平臺上的商品購買意圖進(jìn)行量化預(yù)測的工作, 本論文首次研究了基于用戶在線會話的用戶對商品購買意圖的量化預(yù)測問題。我們提出了一個時間感知分層自注意力模型用來預(yù)測電商平臺中的用戶購買意圖。
· 為了捕獲在一次會話中某位用戶的多種購物意圖, 我們設(shè)計了一個多意圖自注意力模塊。并且, 為了同時捕獲短期和長期依賴, 我們也提出了會話內(nèi)和會話間兩種層次的分層自注意力機(jī)制。
· 為了提升預(yù)測模型的魯棒性和準(zhǔn)確率, 我們提出了一個多任務(wù)學(xué)習(xí)框架, 將基于掩碼的會話表示學(xué)習(xí)和用戶購買意圖量化預(yù)測進(jìn)行聯(lián)合學(xué)習(xí)。
· 在兩個真實數(shù)據(jù)集上的廣泛實驗也證明了, 與五種基線模型相比, 我們的方法是有效的。此外, 我們還進(jìn)行了相應(yīng)的消融實驗, 用來分析我們模型中的關(guān)鍵組成部分以及每個部分對應(yīng)的貢獻(xiàn)。
本論文的組織結(jié)構(gòu)如下: 第2 章會對相關(guān)工作進(jìn)行介紹; 第3 章給出所研究問題對正式定義; 第4章詳細(xì)介紹時間感知分層自注意力機(jī)制模型; 第5章介紹實驗及結(jié)果分析; 第6 章對整篇論文進(jìn)行總結(jié)并對未來工作進(jìn)行展望。
由于互聯(lián)網(wǎng)的不斷發(fā)展, 網(wǎng)絡(luò)中的信息呈現(xiàn)出爆炸式的增長, 大量的商品、音樂、視頻等資源和信息可以提供給用戶選擇, 信息過載的問題非常嚴(yán)重,推薦系統(tǒng)是解決這一問題的有效方式。協(xié)同過濾算法(Collaborative Filtering, CF)是非常經(jīng)典的一種推薦算法, 其主要思想是在大量用戶的行為數(shù)據(jù)中獲取集體智慧并用于推薦, 大體可以分為基于用戶的協(xié)同過濾[10], 基于物品的協(xié)同過濾[11]和基于模型的協(xié)同過濾[12]。2003 年, Linden 等人[13]提出了商品到商品的協(xié)同過濾算法, 即把一名用戶所購買和評分的商品匹配到相似的商品, 并將所有相似的商品組合, 最后放入推薦列表中, 因為與電商平臺中在線的顧客數(shù)量和產(chǎn)品目錄中的商品數(shù)量無關(guān), 所以能夠產(chǎn)生高質(zhì)量的實時推薦。2017 年, He 等人[14]提出了基于神經(jīng)網(wǎng)絡(luò)的協(xié)同過濾模型NCF(Neural collaborative filtering), 將矩陣分解模型中的內(nèi)積操作替換為神經(jīng)網(wǎng)絡(luò), 提升了特征的交叉能力。此類算法已經(jīng)在京東、亞馬遜等國內(nèi)外主流的電商平臺中得到了廣泛部署。
隨著人們研究的不斷深入, 基于圖的推薦算法也開始嶄露頭角[15]。在電商推薦系統(tǒng)中, 可以將用戶視為一個集合, 商品視為另一個集合, 用戶會對商品產(chǎn)生交互行為, 這種交互行為剛好可以用二分圖進(jìn)行表示[16]。于是給用戶的推薦任務(wù)就可以轉(zhuǎn)化成為度量用戶頂點與沒有連線的商品頂點之間的相關(guān)性, 相關(guān)性越高的商品在推薦列表中的位置就越靠前。2012 年, Chen 等人[17]在傳統(tǒng)的用戶-項目二部圖的基礎(chǔ)上, 把用戶的查詢行為也納入考慮范圍, 建立了“用戶-查詢-項目”三部圖, 由于從用戶頂點到項目頂點可隨機(jī)游走的線路數(shù)量增加, 因此在緩解數(shù)據(jù)的稀疏性問題上取得了良好的效果。傳統(tǒng)的協(xié)同過濾推薦算法是對用戶和項目之間的交互進(jìn)行建模,一般會帶來系統(tǒng)冷啟動的問題, 所以Wang 等人[18]于2019 年提出了KGCN 模型, 將知識圖譜引入推薦系統(tǒng), 并在知識圖譜中利用GCN 技術(shù)挖掘更豐富的輔助信息用于推薦, 有效地解決了冷啟動的問題。
序列模型是一種被設(shè)計用來處理輸入數(shù)據(jù)具有順序依賴性的模型。例如, 用來預(yù)測下一個單詞或字母[19]。又或者從之前觀看過的視頻列表信息中預(yù)測下一個視頻[20]。在序列模型中, CNNs 和RNNs 是兩種重要的主流結(jié)構(gòu)。因為RNN 的隱藏層可以從神經(jīng)網(wǎng)絡(luò)上一時刻的狀態(tài)進(jìn)行學(xué)習(xí), 所以成為序列模型建模的默認(rèn)選擇。由于有些數(shù)據(jù)序列太長, 在訓(xùn)練中會出現(xiàn)梯度消失的問題, 因此 Hochreiter 和Schmidhuber 在1997 年提出了長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)[21], Cho 等人[22]在2014 年提出了門控循環(huán)單元(GRU), 這兩種流行的變種RNN 比較好地解決了在RNN 訓(xùn)練中遇到的梯度消失問題。另外, CNN 也被LeCun、Oord 等人用于對長期歷史上的序列數(shù)據(jù)進(jìn)行建模[23-24], Javidani 等人[25]于2018 年將三維視頻數(shù)據(jù)作為輸入, 然后分解成為空間上的二維數(shù)據(jù)和時間上的一維數(shù)據(jù), 并使用1D-CNN 沿著時間維度學(xué)習(xí)時間特征, 最后達(dá)到視頻分類的目的。Bai 等人[26]于2018 年提出了時間卷積網(wǎng)絡(luò)(TCN), 并且表明了卷積結(jié)構(gòu)和殘差連接在建模序列任務(wù)上優(yōu)于循環(huán)神經(jīng)網(wǎng)絡(luò), 例如機(jī)器翻譯任務(wù)。與LSTM 相比, 盡管TCN 在并行性和內(nèi)存開銷方面具有優(yōu)勢, 但TCN沒有利用時間間隔信息, 并不適合用于解決我們所研究的問題。因此我們的工作利用時間感知LSTM來處理不規(guī)律的時間間隔信息, 這對于我們的預(yù)測任務(wù)來說無疑是大有裨益的。
序列感知推薦系統(tǒng)的目的是根據(jù)用戶的序列歷史信息來推薦與之相關(guān)的項目。不同于經(jīng)典的推薦任務(wù), 序列推薦任務(wù)更注重時間和上下文信息, 而在許多協(xié)同過濾(CF)方法[27]中卻很少考慮到這些信息的利用。序列推薦系統(tǒng)的早期工作利用了馬爾可夫鏈和馬爾可夫決策過程。例如, Steffen 等人[28]通過矩陣分解的方式來模擬用戶的興趣偏好, 并結(jié)合馬爾可夫鏈根據(jù)用戶的近期行為來預(yù)測下一個時間點的用戶行為; Guy 等人[29]認(rèn)為將推薦問題視為序列優(yōu)化問題更加合適, 而且由于馬爾可夫決策過程能夠考慮到每次推薦帶來的長期影響, 因此馬爾可夫決策過程能為推薦系統(tǒng)提供一個較好的模型。然后,許多基于RNN 的方法由于能夠有效地對序列性質(zhì)進(jìn)行建模, 因而引起了越來越多的關(guān)注, 在文獻(xiàn)[30]中,作者采用LSTM 構(gòu)建了一個自回歸模型, 用于捕捉用戶和項目的動態(tài)性; 在文獻(xiàn)[31]中, 作者利用GRU來建模用戶歷史的時間序列, 在推薦模型中考慮了時序關(guān)系。最近, 隨著一些基于自注意力的方法在NLP 領(lǐng)域取得成功, 這些方法也被應(yīng)用在了序列推薦任務(wù)中, 而且同樣也取得了良好的效果。例如SASrec[5]采用自注意力機(jī)制對用戶的歷史行為信息建模, 提取其中更有價值的信息, 最后將這些信息分別與所有物品的特征做內(nèi)積, 按照相關(guān)性大小排序后進(jìn)行推薦; BERT4Rec[6]則將 NLP 領(lǐng)域中的BERT 模型用于推薦系統(tǒng), 將用戶的歷史序列視為詞序列, 利用BERT 模型的雙向注意力對用戶行為序列進(jìn)行建模。此外, 文獻(xiàn)[32]模型中提出了一種多視角學(xué)習(xí)機(jī)制, 分別為靜態(tài)特征、動態(tài)特征以及靜態(tài)動態(tài)交叉特征構(gòu)建三個視圖, 在每個視圖中采取自注意力的方法提取重要信息, 通過靜態(tài)特征與動態(tài)特征之間的特征交互, 保留了更多的信息, 有利于提高預(yù)測的準(zhǔn)確性。與一般的會話推薦任務(wù)不同, 我們的工作主要是定量地預(yù)測用戶在會話中對特定商品購買意圖的強(qiáng)烈程度。
如圖2 所示, 我們提出的THSNet 模型包含了以下四個層級。圖的底部呈現(xiàn)的是模型的輸入層, 輸入的數(shù)據(jù)是用戶的會話序列。第二層是內(nèi)注意力層, 目的是通過時間感知LSTM 單元來學(xué)習(xí)商品在每次會話中的特征表示, 并利用多意圖自注意力模塊來捕獲每次會話中的短期依賴關(guān)系。接下來我們提出了一個個性化的注意力網(wǎng)絡(luò), 用來確保會話的特征表示是個性化的。這么做的目的是由于在很多情況下,盡管不同的用戶可能擁有相似度較高的會話, 但此時他們會話對應(yīng)的特征表示卻不盡相同。例如, 兩個用戶A 和B 可能有相似的歷史交互行為, 但是由于A 和B 在個人喜好、年齡層次等方面的不同, 使得兩人對未來的交互商品產(chǎn)生不同的選擇。第三層采用了一個多頭自注意力機(jī)制, 目的是為了捕獲會話序列之間的長期依賴關(guān)系。最后, THSNet 模型通過結(jié)合完型填空任務(wù)(也稱為“掩碼語言模型[4]”)和用戶的意圖預(yù)測任務(wù)進(jìn)行訓(xùn)練, 其中, 完型填空任務(wù)是指隨機(jī)遮蓋部分輸入的會話表示, 然后預(yù)測這些被遮蓋的會話表示。完形填空任務(wù)有利于模型學(xué)習(xí)到具有良好魯棒性和雙向性的會話特征表示, 為進(jìn)一步提高用戶意圖預(yù)測的準(zhǔn)確性提供幫助。
圖2 THSNet 模型結(jié)構(gòu), 紅色方框內(nèi)是模型創(chuàng)新的部分Figure 2 The model architecture of THSNet, the contribution of the model is highlighted in red rectangle
4.1.1 會話級時間感知LSTM
因為LSTM 可以有效地捕獲序列數(shù)據(jù)的順序信息, 所以LSTM 已經(jīng)被廣泛應(yīng)用于各類序列建模問題中。但是LSTM 沒有考慮輸入序列之間的時間間隔信息, 而這些時間間隔信息對于建模用戶的序列行為又非常重要。例如, 如圖3 所示, 如果兩名用戶有相同的歷史交互序列信息, 其中的一名用戶是在1個小時內(nèi)完成了這些交互, 而另外一名用戶只在10分鐘內(nèi)就完成了這些交互。在這種情況下, 由于以下原因, 他們的行為意圖可能截然不同。首先, 短時間內(nèi)的兩個動作往往比較長時間間隔的兩個動作具有更強(qiáng)的相關(guān)性。其次, 行為的頻率可能反映了用戶的偏好強(qiáng)度, 即較高的交互頻率可能意味著用戶對所交互的商品有更濃厚的興趣。因此, 當(dāng)對用戶行為進(jìn)行建模的時候, 交互動作之間的時間間隔信息不容忽視。
圖3 具有時間間隔信息的一次會話Figure 3 A session with time intervals
用戶與商品間交互的時間間隔信息有助于捕獲序列數(shù)據(jù)的時間特征。受Zhu 等人[9]的啟發(fā), 我們提出了一個會話級時間感知LSTM 模型來捕獲每個會話中不規(guī)律的時間間隔信息。具體來說, 我們引入時間間隔變量 tkΔ 并重新設(shè)計了遺忘門。會話級時間感知LSTM 的公式如下:
其中, i, f, o 分別表示t 時刻網(wǎng)絡(luò)的輸入門, 遺忘門和輸出門。c 是細(xì)胞激活向量。x 和h 分別表示輸入特征向量和隱藏層輸出。W 是權(quán)重參數(shù), b 是對應(yīng)的偏置,tΔ 是xt1-和tx 之間的時間間隔。在介紹完該模型如何學(xué)習(xí)會話表示后, 我們接下來介紹如何將隱藏層輸出th 傳遞到多意圖自注意力模塊。
4.1.2 多意圖自注意力模塊
在推薦任務(wù)中, 多頭自注意力模型[33]已經(jīng)初露鋒芒, 有著不凡的表現(xiàn)[6]。自注意力模型將輸入序列本身作為查詢、鍵和值向量, 具有學(xué)習(xí)輸入序列本身的結(jié)構(gòu)和特點。自注意力模型的輸出可以通過給輸入序列的每個向量分配不同的權(quán)重分?jǐn)?shù), 自然地將各種向量匯聚成一個整體的表示。由于這一特點,我們利用自注意力結(jié)構(gòu)來捕獲每個會話中的短期依賴。此外, 多頭機(jī)制同樣也適用于用戶意圖建模,因為在一個會話中, 用戶可能有多方面的意圖。因此, 普通的注意力網(wǎng)絡(luò)可能不足以捕獲用戶多方面的意圖。
然而, 傳統(tǒng)的多頭自注意力模型不能直接地應(yīng)用于我們的用戶意圖預(yù)測問題中。這是因為在一個句子中一個單詞可以受它前后單詞影響, 而在用戶意圖預(yù)測任務(wù)中, 項目之間的相互作用是單向的,也就是說, 相互交互的項目只受之前交互過的項目的影響。為了解決這一問題, 我們設(shè)計了一個適合于本研究問題的多意圖自注意力模塊, 在該模塊中增加了一個精心設(shè)計的方向掩碼矩陣M, 以保護(hù)序列中的時間信息, 確保時間信息只能單向流動。
當(dāng)i < j時 Mij= 0表示用戶對商品j 的購買意圖只會受到之前交互過的商品 i 的影響, 否則Mij=-∞表示用戶對商品j 的購買意圖不會受到商品i 的影響。
多意圖自注意力模塊的細(xì)節(jié)給出如下:
其中, X = [ h1, … , hn]是會話級時間感知LSTM 的隱藏層輸出, Qi, Ki, Vi? Rn×dk分別是查詢、鍵和值向量。每個 headi? Rn×dk代表一個單獨的頭注意力,WO?Rhdk×d表示輸出線性轉(zhuǎn)換的權(quán)重矩陣, h 表示頭的數(shù)量, dk是縮放因子, 且dk=d。這樣, 最后的輸出 Z ? Rn×d就能捕獲每個用戶會話中的會話級信息。
4.1.3 個性化注意力網(wǎng)絡(luò)
對于不同的用戶, 即使他們的交互項目是相似的, 由于用戶個體的偏好, 他們可能也有不同的會話意圖。因此, 我們把用戶身份信息的特征表示也納入多意圖自注意力模塊中, 以建模個性化的會話表示。該模型的數(shù)學(xué)表示形式如下所示。
其中,ue 是用戶的特征表示,uts 是個性化注意力網(wǎng)絡(luò)最終的輸出, 代表了會話中用戶u 的短期行為。
如圖2 左上部分所示, 為了捕獲不同會話之間的長期依賴關(guān)系, 我們在會話內(nèi)注意力結(jié)構(gòu)之后使用了多頭自注意力機(jī)制[33]。與從單詞序列中理解句子的含義非常類似, 我們從會話序列中預(yù)測用戶的意圖。會話間注意力層將來自于個性化注意力網(wǎng)絡(luò)的不同會話表示作為輸入, 然后把該結(jié)構(gòu)的輸出傳遞到多任務(wù)層中。為了學(xué)習(xí)到具有雙向性的會話表示, 我們隨機(jī)遮蓋了輸入會話的部分信息, 然后在接下來的訓(xùn)練任務(wù)中預(yù)測這些被遮蓋的會話特征表示。如圖4 所示。
圖4 掩碼語言模型示例Figure 4 An example of masked Language Model
通過隨機(jī)掩蓋部分會話的特征表示, 可以獲得魯棒性更強(qiáng)的會話表示。另外, 通過上下文會話特征表示來預(yù)測被遮蓋的特征表示也有助于學(xué)到一個具有雙向性的向量。具體如下:
多任務(wù)學(xué)習(xí)已成功應(yīng)用于機(jī)器學(xué)習(xí)的各種應(yīng)用場景, 包括自然語言處理[1-2]、語音識別[3]、計算機(jī)視覺[4]和推薦系統(tǒng)[5]。通過學(xué)習(xí)相關(guān)任務(wù)之間共享特征表示, 多任務(wù)學(xué)習(xí)可以使模型捕獲更多有用的特征表示, 豐富單任務(wù)學(xué)習(xí)的特征表示形式、從而提升特征學(xué)習(xí)的魯棒性, 提高學(xué)習(xí)模型在多個學(xué)習(xí)任務(wù)之間的泛化性能。同時, 受到工作[6]的啟發(fā), 多任務(wù)學(xué)習(xí)在電子商務(wù)場景中有利于更好地學(xué)習(xí)用戶的通用特征, 以及導(dǎo)致不同購買行為的特有特征, 因此可以更有效預(yù)測用戶行為。因此, 本論文也采用多任務(wù)學(xué)習(xí)的方法提升用戶購買意圖預(yù)測的準(zhǔn)確率。在此次工作中, 我們提出了使用多任務(wù)學(xué)習(xí)框架來同時預(yù)測被遮蓋的會話特征表示和用戶意圖。這樣,THSNet模型不僅能學(xué)到一個魯棒性更強(qiáng)的表示以及提高模型的泛化能力, 而且可以進(jìn)一步提升用戶購買意圖預(yù)測的準(zhǔn)確性。如圖2 的右上區(qū)域所示, 第一項任務(wù)是預(yù)測在會話間注意力層中被遮蓋的會話特征表示的原始會話特征表示, 第二項任務(wù)是預(yù)測在下一個會話中的用戶購買意圖。
我們首先把會話間注意力層的輸出進(jìn)行扁平化處理, 即把多維的輸入數(shù)據(jù)轉(zhuǎn)化為一維數(shù)據(jù), 然后送入兩個分支。在每個分支中, MLP 的作用是學(xué)習(xí)并獲得最終的輸出。遮蓋的會話特征表示預(yù)測任務(wù)和用戶意圖預(yù)測任務(wù)的整體損失函數(shù)定義如下所示:
整個THSNet 算法的流程如下所示:
THSNet 算法輸入: 用戶集合U , 商品集合V , 對于每個用戶u ?U , 都有會話序列 1 2 S s s s u u u u N= … , 其中[ , , , ]u u u s s s u s i i i V m =[ , , , | ]… … , 用戶信息特征編碼為 ue輸出: 用戶u 在下一次會話中 1 1 m m k k m ?uN s + 中對每件商品購買意圖的強(qiáng)度 p ( x)1: for 用戶u 的會話序列的一個會話 u is do 2: 此 會 話 u s 中 商 品 集 合 為m u u u s s s u… … , 用戶與商品間交互的時間間隔信息為 1 | |s i i i V m =[ , , , | ]1 m m k k m ?=…3: 根據(jù)章節(jié)4.1.1 可得:T_LSTM_OUT=T_LSTM( u, )Δ Δ Δ[ , , ]t t ts ui s Δ 4: 根據(jù)章節(jié)4.1.2 可得此會話中的的會話級信息: = (T_LSTM_OUT)m t Z Multihead 5: 根據(jù)章節(jié)4.1.3 可得融合用戶信息后的會話表示: = _ ( , )u u φ t ATT NET Z e u u 6: return 會話特征表示: 1 2 u u u N Φ φ φ…φ 7: 隨機(jī)遮蓋后的會話特征表示為 = ( )= [ , , , ]~,被遮蓋的表示為 mφ 8: 根據(jù)章節(jié)4.2 可得捕獲了不同會話間依賴關(guān)系的表示: ( )Φ Φ mask~9: 根據(jù)章節(jié)4.3 可得多任務(wù)預(yù)測結(jié)果, 其中遮蓋的會話表示預(yù)測結(jié)果為 1 Ψ Multihead Φ=φ* = , 下一次會話中 1 m MLP Ψ( )uN s + 中對每件商品購買意圖的強(qiáng)度p x MLP Ψ( ) ( )=10: 最終的全局訓(xùn)練誤差為: =2 L global-N N *1 || ( )||Σ x y D y p x N ?( , )- -2 1 || ||| | m Σ ~~φ φ φ Φ *?Φ -m m 2
我們使用 LastFM 數(shù)據(jù)集和JingDong 數(shù)據(jù)集作為我們實驗評估的數(shù)據(jù)。這兩個數(shù)據(jù)集的統(tǒng)計情況見表1.
表1 數(shù)據(jù)集的統(tǒng)計情況Table 1 Statistics of the two datasets
· LastFM 數(shù)據(jù)集: 這是一個基于用戶的聽歌序列進(jìn)行音樂推薦的公共數(shù)據(jù)集(http://snap.stanford.edu/jodie/lastfm.csv), 其中包含了1 個月內(nèi)有哪些用戶聽了哪些歌曲的信息。我們挑選了1000 名用戶和1000 首最常聽的歌曲, 并獲得了1293103 次交互的歷史數(shù)據(jù)。在這個數(shù)據(jù)集中, 交互沒有特征。
· JingDong 數(shù)據(jù)集: 本數(shù)據(jù)來自于中國最大電商平臺之一的京東網(wǎng), 其中包含了京東網(wǎng)的用戶在線行為記錄數(shù)據(jù)。用戶每條在線行為記錄數(shù)據(jù)包含了用戶ID、商品ID、交互時間、交互行為(點擊、購買、加購、收藏等)、商品屬性信息等。我們采集了從2020 年3 月到2020 年4 月, 10692 名用戶和303150 個商品之間的交互數(shù)據(jù), 并對這些數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、異常點去除等預(yù)處理, 最終得到1198735次交互數(shù)據(jù)。然后我們根據(jù)用戶ID, 將同一個用戶的所有商品交互行為記錄信息進(jìn)行合并整合。這兩個數(shù)據(jù)集都包含了用戶與項目之間交互的時間戳或具體日期。在數(shù)據(jù)處理中, 我們減去序列中最小的時間戳, 讓所有用戶的時間戳從零開始。之后,我們對交互記錄按用戶進(jìn)行分組, 每個用戶的所有交互記錄分為一組, 并根據(jù)時間戳對每組的交互記錄數(shù)據(jù)進(jìn)行排序, 為每個用戶建立交互序列。為了確保數(shù)據(jù)集的質(zhì)量, 我們過濾掉冷啟動用戶以及少于20 次交互的商品。然后把數(shù)據(jù)集分別劃分為訓(xùn)練集、驗證集和測試集。前18 天的數(shù)據(jù)用于訓(xùn)練, 第19 到23 天共5 天的數(shù)據(jù)用于驗證, 剩下的7 天數(shù)據(jù)用于測試。
我們實驗中用于對比的算法包括:
· LSTM[21]是RNN 模型體系中的一種重要方法。這里我們簡單的記錄了商品的序列, 并且刪除了時間信息。
· Time-LSTM[9]是一種新的LSTM 變種, 它為LSTM 配備了時間門用來給時間間隔信息建模。
· LatentCross[34]是一個基于RNN 的推薦系統(tǒng)框架, 它通過對上下文特征進(jìn)行編碼, 將上下文數(shù)據(jù)信息引入RNN 中。
· Jodie[35]是一個耦合的循環(huán)神經(jīng)網(wǎng)絡(luò)模型, 用來學(xué)習(xí)用戶和商品的動態(tài)特征表示。
· LightGCN[36]是一種最新的基于協(xié)同過濾的推薦方法。它簡化了GCN 的設(shè)計, 使其更加簡潔和適合于推薦。
為了說明我們提出的會話級時間感知LSTM、多意圖自注意力模型以及多任務(wù)學(xué)習(xí)的有效性, 我們進(jìn)一步做了將THSNet 模型和下面三種模型變體進(jìn)行比較的消融實驗。
· THSNet-1 刪除了會話級時間感知LSTM 模塊,并用一個傳統(tǒng)的LSTM 代替。只將用戶-商品的歷史交互序列輸入到LSTM 模型中, 而忽略了兩個交互動作之間的時間間隔信息。
· THSNet-2 刪除了多意圖自注意力模塊中的掩碼矩陣M。我們用傳統(tǒng)的多頭注意力機(jī)制取而代之, 直接用該機(jī)制預(yù)測會話的特征表示。
· THSNet-3 刪除了多任務(wù)學(xué)習(xí)模塊。不采用隨機(jī)遮蓋會話表示的形式進(jìn)行預(yù)訓(xùn)練, 直接進(jìn)行用戶意圖的預(yù)測輸出。
我們用Pytorch 實現(xiàn)了THSNet 模型并且在驗證集上對超參進(jìn)行了微調(diào)。批處理的大小為128, 學(xué)習(xí)率是0.001, 模型使用Adam Optimizer 進(jìn)行訓(xùn)練, 所有數(shù)據(jù)集的權(quán)重衰減系數(shù)為0.01。我們考慮了隱藏層維度d 的變換范圍是{16, 32, 64, 128}, 以及heads的數(shù)量h 變化范圍是{2, 4, 8, 16}。所有的實驗都是在一張RTX-3090 的顯卡上完成的。
表2 展示了我們的模型和對比模型的實驗結(jié)果。我們觀察到, THSNet 模型在這兩個數(shù)據(jù)集上的性能明顯優(yōu)于所有的對比模型。在對比模型中,Light-GCN 是基于協(xié)同過濾的方法, 它無法捕獲用戶歷史行為在時間維度上面的時間信息, 因此這個方法不適合對時間信息有依賴關(guān)系的用戶購買意圖預(yù)測任務(wù), 并且它的性能也是所有方法中最差的。盡管LSTM 沒有考慮兩次連續(xù)的用戶與商品交互的時間間隔信息, 但卻利用了商品的序列順序信息, 因此, LSTM 比LightGCN 表現(xiàn)得更好。Time-LSTM 作為LSTM 的一種變體, 考慮了時間信息而不是順序信息, 在LastFM 數(shù)據(jù)集上比LSTM 提高了16.9%,在JingDong 數(shù)據(jù)集上比LSTM 提高了12.2%。因為LatentCross 將上下文信息引入到了RNN 中, 所以比LSTM 和Time-LSTM 表現(xiàn)更好。Jodie 模型把用戶-商品之間交互的動態(tài)和順序依賴關(guān)系納入考慮之中,因此比其余對比模型表現(xiàn)更好。然而, 與Jodie 相比,THSNet 模型在兩個數(shù)據(jù)集上將性能分別提高了4.6%和6.8%。這主要是因為它捕捉到了用戶-商品交互的時間間隔信息, 并且在一個會話中建模了多方面的用戶意圖。
表2 實驗結(jié)果, “*”表示在p=0.01 時THSNet 相較于對比方法的性能提升是顯著的。Table 2 Experiment results. “*” indicates the improvement of the THSNet over the baseline is significant at the level of 0.01.
在表2 中, 同樣也表現(xiàn)了THSNet 模型在這兩個數(shù)據(jù)集上優(yōu)于所有的變體, 這意味著我們提出的會話級時間感知LSTM 和多意圖自注意力機(jī)制對于性能的提高有很大幫助。THSNet-1 的結(jié)果表明, 去除兩個交互動作之間的時間間隔信息可能會導(dǎo)致THSNet 的性能急劇下降。沒有時間間隔信息, 模型只考慮了序列的順序信息, 這對為順序用戶行為建模來說并不適合。雖然與THSNet-1 相比, THSNet-2的提升很小, 但是THSNet-2 的結(jié)果仍然說明, 在會話中考慮時間的單向性有利于用戶意圖預(yù)測。
為了更直觀地展現(xiàn)預(yù)測性能, 我們在圖5 中給了兩個案例研究, 其中綠色方框代表了一個女孩的兩次歷史會話, 她在兩個會話中分別與一些不同類型的卷棒和衣服進(jìn)行了互動。接下來, 給出一個包含不同類型的鞋子的新會話(紅色方框), 我們的模型預(yù)測出了她對每件商品的購買意圖, 如紅色方框所示。我們可以很清楚地看出, 這個女孩最喜歡第四雙鞋子, 而購買第二雙鞋子的意圖強(qiáng)度是最弱的。第三雙鞋是最接近第四雙的, 因為它們都是高跟鞋。這可能就是為什么這個女孩對購買第三雙鞋子有這么高的購買意圖的原因。相似地, 圖5 中的另一個案例是一位男士近三次的會話。其中可以發(fā)現(xiàn), 在前兩次會話中, 他分別對足球和足球鞋進(jìn)行了相關(guān)點擊, 可以說明此用戶對足球類商品興趣較大。在第三次的會話中, 我們的模型預(yù)測出此人在T 袖類別下每件商品的購買意圖,可以發(fā)現(xiàn)其對偏運動偏足球風(fēng)的商品更為喜愛。
圖5 基于用戶瀏覽歷史的意圖預(yù)測案例Figure 5 Case studies of user intent prediction based on a user’s browsing history
另外, 我們對參數(shù)的敏感度進(jìn)行了分析。圖6展現(xiàn)了在兩個數(shù)據(jù)集上, Recall@10 在特征表示向量維度不同和注意力機(jī)制heads 數(shù)量不同情況下的表現(xiàn)。
我們接下來研究了參數(shù)heads 的數(shù)量h 對于THSNet 模型的影響, 其中h 從2 到16 進(jìn)行變化, 同時保持特征表示的維度d 不變。結(jié)果如圖6(b)所示。我們可以觀察到當(dāng)h=8 時, THSNet 模型達(dá)到最佳性能。當(dāng)h=2 時, THSNet 模型的性能最差。h=2 的情況與其他情況之間的巨大差距體現(xiàn)了多頭在建模用戶多方面意圖時的有效性。我們還研究了參數(shù)λ 的影響。研究結(jié)果見圖7。結(jié)果表明, 模型的性能隨參數(shù)λ 值的變化而波動, 并沒有出現(xiàn)顯著的規(guī)律, 而對于給定的數(shù)據(jù)集, λ =0.6是一個合適的數(shù)值。
圖6 THSNet 分別在兩個數(shù)據(jù)集上的Recall@10Figure 6 The Recall@10 of THSNet over the two datasets
圖7 不同λ 對實驗結(jié)果的影響Figure 7 Result with different λ
在本文中, 我們提出了一個時間感知分層自注意力模型THSNet, 用來量化預(yù)測電商平臺中在線用戶的購物意圖。THSNet 模型克服了現(xiàn)有工作的局限性, 即忽略了交互動作之間的時間間隔信息和難以捕獲用戶的多方面意圖。在兩個真實的數(shù)據(jù)集上, 與多個最近提出的對比模型相比, 我們提出的方法有了較為明顯的性能提升。