




摘要:基于會話的推薦旨在從當前會話和以往的匿名會話中預測用戶的下一個行為。在基于會話的推薦系統中,捕獲項目之間的長期依賴關系是一個至關重要的挑戰。本文提出了一種基于Transformer架構的會話推薦方法。具體來說,通過Transformer的編碼器部分捕獲會話中所有項目之間的全局依賴關系,而不考慮它們之間的距離。本文的模型將嵌入層中得到的嵌入向量傳輸至注意力機制進行聚合,最終通過預測頭預測當前會話的下一推薦項目。筆者在開放的基準數據集上進行了實驗,實驗結果表明,本文提出的方法展現了良好的效果。
關鍵詞:會話推薦;注意力機制;推薦系統
中圖分類號:TP18 文獻標識碼:A
文章編號:1009-3044(2024)23-0001-04
開放科學(資源服務)標識碼(OSID)
0 引言
面對人們生活中的海量信息,如何從海量數據中獲取有效信息成為一個迫切需要解決的問題。推薦系統可以為不同的用戶提供個性化的推薦,使得每個用戶都可以從推薦系統篩選的有限的、多樣的信息中獲得他們想要的信息。
傳統的推薦系統通常利用豐富的用戶信息來模擬用戶偏好并推薦用戶可能感興趣的項目。換句話說,每個用戶必須有足夠的交互記錄,并且用戶身份必須在每個交互事件中可見。然而,在許多在線系統中,例如電子商務網站和大多數新聞媒體網站,推薦系統只能依靠當前會話信息來提供準確的推薦,因為新用戶的身份以及未登錄的用戶是未知的,這使得歷史信息在這些場景中不可用。為此,基于會話的推薦系統對如何為新用戶提供準確的推薦做了大量的研究。
早期基于會話的推薦工作主要集中在發現項目間的關系,如轉移關系和共現關系。典型方法如ItemKNN[1]和馬爾可夫鏈[2]依靠會話中的最后一個元素來產生建議。然而,僅僅依賴會話的最后一個元素并不能在整個會話中反映用戶的興趣。由于深度學習在各個研究領域取得巨大進展,越來越多的深度學習模型用在了會話推薦中,它們習慣將會話中的一系列點擊建模為一個序列,并利用神經網絡來建模整個動作序列。例如,GRU4Rec[3]將遞歸神經網絡應用于基于會話的推薦,并將該問題視為時間序列預測。又如SR-GNN[4]將會話建模為圖形,以捕捉復雜的項目交互。然而,眾所周知,由于梯度消失和爆炸問題,RNN呈現出很難訓練的缺點[5]。像LSTM和GRU這樣的各種變體緩解了上述問題,但仍然難以捕捉長期依賴性。
隨著Transformer[6]在近幾年的爆火,其在推薦任務中實現了較為可觀的性能和效率。與基于RNN的方法不同,Transformer允許模型訪問歷史的任何部分,而不管距離遠近,這使得它可能更適合于捕捉具有長期依賴性的會話模式。本文選擇了Transformer模型的編碼器部分作為模型的框架,實現了一種較為高效的自注意力網絡會話推薦方式。本文的主要貢獻如下:
1) 實現了一種基于Transformer架構的會話推薦方法,該模型能夠捕獲并保留所有項目之間的完全依賴關系,而不管它們的距離如何。
2) 在生成基于會話的推薦過程中,上述方法能夠較好地提取出項與項之間的共現關系,對后續研究有引導作用。
3) 本文這種相對簡單的方法在公開數據集上取得了不錯的效果,具有一定的實際應用意義。
1 相關研究
會話推薦作為一種重要的個性化推薦技術,旨在根據用戶在會話中的隱式反饋為用戶進行相應的推薦預測,以增強用戶體驗和滿足其個性化需求。以往的推薦系統主要關注單個項目或商品的推薦,而會話推薦則更關注推薦一系列相關項目或話題,從而可以更好地滿足用戶在會話過程中的連續性需求。
傳統的基于會話推薦方法,使用較為廣泛的有矩陣分解方法[7] (Matrix Factorization)和馬爾可夫鏈的方法[8] (Markov Chains)。這兩種方法的核心思想是利用用戶的歷史行為數據來預測可能引起其興趣的交互項目。因此,為了實現這一目標,首先需要獲取用戶的歷史行為數據,并以此為基礎進行分析和預測。這在一定程度上,使得預測較為依賴用戶-物品矩陣中的用戶評分,若缺失對應評分或者無法有效建模序列中的上下文信息等問題,都將不能有效完成推薦任務,因此在實際會話推薦中的效果欠佳。
最近,神經網絡和基于注意力的模型在基于會話的推薦系統中很受歡迎。GRU4Rec[3]首創并利用了會話并行訓練的小批量技術,這是GRU首次被用于處理基于會話的推薦系統。此外,文獻[9]的研究通過融合帶注意力機制的編碼器來對用戶的歷史行為順序進行分析,并抓住用戶在當前會話中的關鍵意圖。STAMP[10]通過應用網絡和關注網絡捕捉用戶的一般和當前興趣。SR-GNN[4]將會話建模為圖形結構,以捕捉復雜的項目交互,同時通過注意力機制將用戶的全局偏好和當前興趣結合起來,這些方法都為會話推薦帶來了新的啟示。自從Transformer[6]在自然語言處理領域表現出優異的性能以來,自注意機制被廣泛用于對序列數據建模,并在推薦系統中取得了顯著的效果,文獻[11-13]等工作實現了基于Transformer架構的會話推薦方法,但大多過于復雜,顯得較為臃腫。我們在參考上述結構的基礎上,通過一種簡單的方式實現了會話推薦。
2 模型
2.1 問題描述
基于會話的推薦系統基于當前用戶會話數據進行預測,因此僅需考慮當前會話中的項目。定義一個項目集合[V],其包含所有會話中出現的不同項目,記作[V={v1,v2,...,vv}]。匿名會話系列則可以表示為一個列表[S],記作[S=s1,s2,...,sn],這里的[si]屬于集合V,代表用戶在會話[S]中點擊的項目。針對基于會話的推薦系統,其目標是預測出序列S的下一點擊項[sn+1]。筆者設計并訓練了一個模型,這個模型以分類器的形式出現,它的任務是為集合[V]中的每個可能選項打分。輸出分數向量用[Y]表示,記作[Y={y1,y2,...,yn}],這里的第[i]項即為與項目[vi]相對應的得分。模型將會根據這些預測分數,挑選得分最高的k個項目作為推薦候選。
2.2 模型總覽
對于會話推薦任務,充分挖掘項目之間的依賴關系是進行推薦的關鍵所在。本文提出基于Transformer的會話推薦模型,該模型架構分為三個部分:(1)數據輸入和嵌入層;(2)Transformer架構,包括注意力塊、多頭注意力、前饋網絡等部分;(3)偏好概率輸出。模型架構如圖1所示。
模型流程可概述為:將交互集[S={v1,v2,…,vm}]映射到嵌入向量空間為[X={x1,x2,…,xm}],通過Transfomer層后輸出為當前會話對于所有物品的偏好概率分布[Y={y1,y2,…,yv}],其中得分最高的Top-K個物品即被選擇為推薦項目。以下為各個部分的處理細節。
嵌入層:在數據處理過程中,通過對原始會話進行拆分的方式,增加相似會話提升對共現特征的學習效率。在嵌入層的過程中,設置了一個項目矩陣[M∈RI×d],通過嵌入層將交互集中的交互項轉化為指定維度[d]的向量,即[vi∈Rd]。
[EmbS=MT×S] (1)
自注意力塊:模型通過自注意力塊來計算項目之間的關聯程度。注意力機制可以定義為一種映射方式,它將一個查詢向量與一系列鍵值對關聯,產生一個輸出向量。該輸出是值向量的加權組合,權重則是根據查詢與各個鍵之間的兼容性函數計算得出的。在模型中,[X]為項目嵌入集,輸出的Attention可以反映出會話的共現依賴和意圖。
注意力計算如下:
[Attention=softmaxXWQXWKTdXWV] (2)
式中:投影矩陣[wQ,wK,wv∈Rd×d],[d]為潛在維度,[d]為比例因子,在潛在維度[d]過高情況下,可以避免內積值過大。
多頭自注意力:此機制使模型能同時捕獲不同位置以及不同子空間表征的信息。這種方法的有效性已由先前研究所驗證。在模型中,筆者并行使用了[h]個具有不同參數的獨立注意力模型,允許不同的注意力頭關注不同位置的信息,并將所有注意力模型的輸出連接起來以生成最終值,這有助于捕捉到不同層次的共現信息。
[O=Concathead1,head2,…,headh] (3)
[headi(Attention)=sofimaxXWQiXWKiTdXWVi] (4)
式中:投影矩陣[WQi,WKi,WVi∈Rd×d],[headi]為單次注意力機制的輸出結果。
前饋網絡和殘差連接:上述多頭注意力的實現主要基于不同空間的線性投影。為了在模型中引入非線性能力和維度相互作用,自注意力機制的輸出會被輸入到前饋網絡中。該網絡采用點狀前饋架構,并選擇ReLU作為激活函數,進而實現非線性并允許不同隱藏維度之間的交互。同時,本文還使用了殘差連接來充分利用低層信息,這在以往的工作中被證實是有效的[14]。
[F=ReLUOW1+b1W2+b2+O] (5)
式中[:W1],[W2∈Rd×d]是參數矩陣,[b1],[b2∈Rd]是偏置向量。
預測頭(Prediction Head) :預測頭本質是一個線性層,該映射操作由一個權重矩陣和一個可選的偏置項組成。在獲得會話[S]中交互項目經過上述多頭自注意力機制的最終輸出[F]后,預測頭將該高維度的特征表示映射到與項目集[V]種類相同的維度,并最終經過[softmax]函數輸出概率。預測頭用于生成每個項目的概率分布,將模型的表示與項目類別之間建立聯系,從而實現對輸出序列的建模和生成。
[Y=softmax(WpF+bp)] (6)
式中:[Wp,bp]為預測頭的參數矩陣和偏置向量。此外,筆者在嵌入層和預測頭共享權值來減輕過度擬合并減小模型大小。
3 實驗
3.1 數據集及基線
為了驗證模型的有效性,本文在公開的數據集Yoochoose和Diginetica上進行實驗。Yoochoose數據集來自數據挖掘競賽RecSys2015,由電子商務用戶會話中的點擊和購買事件組成。由于Yoochoose數據集較為龐大,筆者使用了Yoochoose1/64作為訓練序列。此外,筆者還使用了來自2016年CIKM杯競賽的Diginetica交易數據集。兩個數據集的統計數據如表1所示。
為了驗證本文提出的基于Transformer的會話推薦模型的性能,在實驗中使用以下基線模型進行對比,并在上述兩個數據集上評估本文模型與基線模型的效果:
1) POP。最基本的會話推薦方法,依據訓練數據集中出現頻率最高的條目來進行推薦。
2) S-POP。該會話推薦算法會選出當前會話中最頻繁出現的互動項目作為推薦項。
3) Item-KNN。基于之前會話中用戶點擊的商品的相似度推薦產品,這里的相似度是通過計算商品間會話向量的余弦相似度得出的。
4) FPMC。這種方法采用序列預測技術基于馬爾可夫鏈原理,通過結合矩陣分解與馬爾可夫鏈理論,構建一個推薦系統模型,專門推薦接下來可能感興趣的物品。
5) GRU4REC[3]。在會話推薦中采用RNN對用戶序列建模,利用并行小批處理訓練過程將會話拼接,使用基于排序的損失函數學習模型。
6) STAMP[10]。該模型整合了用戶的長遠興趣和即時興趣,形成了對會話的全面表征。
7) SR-GNN[4]。為了獲得會話的特征表征,該模型應用圖神經網絡(GNN) 對會話內的項目序列構建成會話圖結構,并利用注意力機制來提煉會話信息。
3.2 評價指標和損失函數
筆者采用準確率(Precision) 和平均倒置排名(Mean Reciprocal Rank, MRR) 作為評價指標,以便準確地比較基準模型的性能。
P@K:精準度指標在會話推薦系統中被廣泛采用,用于衡量系統的預測正確性。精準度表示在排名前k的位置中有正確推薦項的測試案例所占的比例。在本文的實驗中,筆者主要使用P@20的指標,具體定義如下:
[P@K=nhitN] (7)
式中:N為會話推薦任務中參與測試的項目總數,[nhit]表示在推薦的前[k]個排名項目中有會話需要項目的數量。
MRR@K:平均倒置排名用于衡量推薦系統在預測中的整體性能,特別關注正確推薦項目在序列中的位置。MRR指的是所有測試會話中,第一個被正確推薦項的倒數排名的平均值。當排名超過[k]時,倒數排名會被設置為0。在本文的部分實驗中,筆者采用了MRR@20,具體定義如下:
[MRR@K=1Nv∈V1Rankvtarget] (8)
式中:[Rankv]為交互項目[vtarget]在總項目集[V]中的排名。
在訓練過程中,筆者使用的損失函數為Top1loss。該損失函數在預測結果中僅選擇置信度最高的檢測結果作為正樣本,而將其他檢測結果視為負樣本。已有的研究工作和筆者的實驗均證明了這一損失函數的有效性。Top1loss定義如下:
[Ltop1=1Nsj=1Nsσrs,j-rs,i+σr2s,j] (9)
其中,[Ns]表示樣本集中的樣本數量,[rs,j-rs,i]表示預測得分之間的差值,[σ(·)]表示sigmoid函數。
3.3 實驗結果
為進一步展示本文所提出基于Transfomer的推薦算法的性能,筆者最終確定了以下超參數:交互項目維度[d:256]、訓練批處理大小[batchsize:64]、模型層數[n:2]、多頭注意力頭數[head:4]。在訓練過程中,筆者使用小批量Adam優化器對這些參數進行優化。此外,由于數據集較為龐大迭代次數較多,筆者將訓練的初始學習率[lr]設置為[10-4],并在經過若干輪迭代后,將學習率降至[5-4]和[10-5]。筆者對模型進行了與其他推薦算法或模型的性能比較,如表2所示。
從表1可以看出,本文提出的基于Transformer的會話推薦模型TransREC除了P@20指標外,其他指標均處于領先地位。這為本文所提出的推薦算法的有效性提供了有力的驗證,初步證明了基于Transformer架構的推薦方法在會話推薦中的可行性。筆者進一步分析了隨著輪次迭代,模型損失的變化情況,如圖2所示。
筆者使用了30輪的訓練數據作為分析對象。從圖2中可以清晰地看出,隨著訓練輪數的增加,損失逐漸減小,驗證損失也呈現出相似的趨勢。在訓練輪數達到15輪左右時,損失的下降空間逐漸變小,達到了一個亞飽和狀態。筆者預計,隨著后續訓練輪數的逐步增加,損失的下降空間將進一步減少,最終可能會呈現出訓練損失不斷下降而驗證損失逐漸上升的過擬合狀態。
同時,筆者也分析了訓練輪數對評價指標P和MRR的影響。從圖3可以看出,對于兩個不同的數據集而言,P和MRR兩個指標同樣在15輪左右達到最高值。對于Yoochoose64數據集而言,其指標在15輪以后保持了一個相對穩定的狀態;而Diginetica數據集在達到最大值后,則呈現出性能逐步緩慢下降的情況。整體而言,筆者的模型在不同數據集上均取得了良好的訓練效果且變化趨勢相近。
4 結論
在本文中,筆者提出了一種基于Transformer架構的會話推薦方法。該模型通過注意力機制,在相對簡單的架構下實現了項目與項目之間共現關系的捕獲,完成了對會話中項目特征的學習和聚合,從而實現會話的下一項推薦。
在實驗過程中,筆者將上述架構的模型與其他基線模型在Yoochoose64和Diginetica兩個數據集上進行了性能對比,證明了其在會話推薦領域的可行性及性能的優異性。此外,筆者還通過分析訓練輪數對模型損失函數及評價指標變化的影響,驗證了本文方法的準確性。后續的研究可以進一步挖掘該方法在推薦任務上的潛力。
參考文獻:
[1] LINDEN G,SMITH B,YORK J.Amazon.com recommendations:item-to-item collaborative filtering[J].IEEE Internet Computing,2003,7(1):76-80.
[2] GARCIN F,DIMITRAKAKIS C,FALTINGS B.Personalized news recommendation with context trees[C]//Proceedings of the 7th ACM conference on Recommender systems.China.ACM,2013:105-112.
[3] HIDASI B,KARATZOGLOU A,BALTRUNAS L,et al.Session-based recommendations with recurrent neural networks[EB/OL].2015:1511.06939.https://arxiv.org/abs/1511.06939v4
[4] WU S,TANG Y Y,ZHU Y Q,et al.Session-based recommendation with graph neural networks[J].Proceedings of the AAAI Conference on Artificial Intelligence,2019,33(1):346-353.
[5] PASCANU R, MIKOLOV T, BENGIO Y. On the difficulty of training recurrent neural networks[C]//International conference on machine learning.PMLR, 2013: 1310-1318..
[6]VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[J]. Advances in Neural Information Processing Systems, 2017(30): 5998-6008.
[7] KOREN Y,BELL R,VOLINSKY C.Matrix factorization techniques for recommender systems[J].Computer,2009,42(8):30-37.
[8] GU W R,DONG S B,ZENG Z Z.Increasing recommended effectiveness with Markov chains and purchase intervals[J].Neural Computing and Applications,2014,25(5):1153-1162.
(下轉第13頁)
(上接第4頁)
[9] LI J,REN P J,CHEN Z M,et al.Neural attentive session-based recommendation[C]//Proceedings of the 2017 ACM on Conference on Information and Knowledge Management.Singapore Singapore.ACM,2017:1419-1428.
[10] LIU Q,ZENG Y F,MOKHOSI R,et al.STAMP:short-term attention/memory priority model for session-based recommendation[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining.London United Kingdom.ACM,2018:1831-1839.
[11] LUO A, ZHAO P, LIU Y, et al..Collaborative co-attention network for session-based recommendation[C].//Proceedings of the 29th International Joint Conference on Artificial Intelligence (IJCAI), 2020: 2591-2597.
[12] SUN S M,TANG Y H,DAI Z M,et al.Self-attention network for session-based recommendation with streaming data input[J].IEEE Access,2019,7:110499-110509.
[13] FANG J.Session-based recommendation with self-attention networks[EB/OL].2021:2102.01922.https://arxiv.org/abs/2102.01922v1
[14] HE K M,ZHANG X Y,REN S Q,et al.Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).June 27-30,2016,Las Vegas,NV,USA.IEEE,2016:770-778.
【通聯編輯:唐一東】