劉曉黎,王軼彤
(復旦大學 軟件學院,上海 200433)
基于會話的推薦系統(tǒng)旨在根據(jù)匿名用戶在短時間內(nèi)的歷史交互序列來預測下一個可能的點擊或消費項目,由于它在許多實際生產(chǎn)環(huán)境中的在線服務(wù)(如電子商務(wù)、音樂、新聞)中被廣泛使用,受到人們越來越多的關(guān)注[1-2]。目前的方法主要是通過對序列模式和項目之間的復雜關(guān)系進行建模。其中早期的工作主要集中在馬爾可夫鏈或循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)上。由于用戶的偏好并不像自然語言那樣嚴格有序,這些方法不足以捕捉會話中項目之間的復雜關(guān)系。最近,圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)引起了研究人員的廣泛關(guān)注,并在許多任務(wù)中取得了巨大進展,如基于會話的推薦,將會話轉(zhuǎn)換為多種有向圖,并在項目之間進行消息傳遞,以捕捉它們之間的復雜關(guān)聯(lián)關(guān)系。
在基于會話的推薦系統(tǒng)中,由于會話數(shù)據(jù)來自用戶與項目的互動,其中一小部分熱門商品獲得了大部分互動,大量項目的交互數(shù)據(jù)比較稀疏。然而,多數(shù)研究忽略了這一長尾分布現(xiàn)象,導致現(xiàn)有的模型偏向推薦熱門的項目,在長尾項目上的推薦性能表現(xiàn)不佳。最近,自監(jiān)督學習(Self-Supervised Learning,SSL)被學術(shù)界廣泛研究,研究人員使用增強的訓練數(shù)據(jù)構(gòu)建監(jiān)督學習任務(wù)來提高模型的性能,一些研究[3-4]希望通過自監(jiān)督學習改進推薦中的順序模式建模。
基于會話的推薦的另一個關(guān)鍵挑戰(zhàn)是通過捕捉項目之間的復雜關(guān)系來捕捉用戶意圖。目前,大多數(shù)工作集中于關(guān)注用戶的最后一次交互,并在相鄰項目之間建立連接[5]。在基于GNN 的方法中,一些研究[6-8]試圖在不相鄰的項目之間建立連接,例如考慮更大的粒度、構(gòu)建快捷圖等。雖然這些工作注意到非相鄰項目之間的相關(guān)性,但沒有研究用戶意圖的遠距離項目的聯(lián)合影響。具體來說,用戶做出的決定可能會受到前k個相鄰項目的共同影響,即在同一會話中,一個項目與其前k個相鄰項目之間存在密切關(guān)聯(lián)。
本文構(gòu)建一個多任務(wù)學習模型,同時兼顧推薦任務(wù)學習和長尾項目嵌入學習。其中會話推薦任務(wù)基于原始數(shù)據(jù)分布進行統(tǒng)一采樣,旨在學習會話推薦模式,輔助自監(jiān)督學習任務(wù)基于所構(gòu)建的反采樣器進行采樣,并對會話數(shù)據(jù)進行數(shù)據(jù)增強,以緩解數(shù)據(jù)稀疏性,增強對尾部數(shù)據(jù)進行建模。此外,設(shè)計多密度會話圖來對用戶意圖進行建模,隨著鄰域變大及圖的密度增加,用戶意圖可能直接受到更遠的項目的影響,因此通過引入虛擬節(jié)點來表示用戶的當前意圖,使用統(tǒng)一的圖神經(jīng)網(wǎng)絡(luò)以更可解釋的方式學習會話的嵌入。
傳統(tǒng)的基于會話的推薦方法通?;隈R爾可夫鏈,注重對相鄰項目的轉(zhuǎn)換模式進行建模。例如:文獻[9]提出分解個性化馬爾可夫鏈(Factorizing Personalized Markov Chain,F(xiàn)PMC)來捕捉相鄰點擊之間的順序行為;文獻[10]將播放列表建模為馬爾可夫鏈,并提出邏輯馬爾可夫嵌入來學習歌曲的嵌入以進行播放列表預測。然而,大多數(shù)基于馬爾可夫鏈的模型由于只考慮會話的最近點擊,無法捕捉復雜的高階順序模式。
近年來,基于神經(jīng)網(wǎng)絡(luò)的模型在許多研究領(lǐng)域取得了長足的進步。作為序列數(shù)據(jù)建模的自然解決方案,RNN 被應用于基于會話的推薦。例如:文獻[11]提出的NARM 方法使用門控循環(huán)單元(Gated Recurrent Unit,GRU)對當前會話進行建模,并運用注意力機制來捕捉用戶的主要意圖;由于當前會話中包含的信息是有限的,因此文獻[12]提出的CSRM 方法將協(xié)作鄰域信息納入基于會話的推薦中。然而,基于會話的推薦問題不僅僅是一個序列建模任務(wù),其對序列信號進行建模的基于RNN 的方法限制了模型的預測精度。
由于圖神經(jīng)網(wǎng)絡(luò)在復雜關(guān)系建模方面的強大學習能力,它們在基于會話的推薦方面取得了巨大成功。文獻[13]提出一種SR-GNN 方法,基于項目的轉(zhuǎn)換關(guān)系將會話構(gòu)建為有向圖,并使用門控圖神經(jīng)網(wǎng)絡(luò)對會話進行建模。文獻[7]提出一種Lessr 方法,使用一個基于GRU 的邊順序保持聚合層和一個快捷圖來解決基于GNN 方法中的有損編碼問題和遠距離依賴問題。文獻[8]提出一種GCE-GNN 方法,融合所有會話中的項目轉(zhuǎn)換關(guān)系并由此構(gòu)建全局圖,從而探索跨會話信息。文獻[6]提出的MSGIFSR 方法將連續(xù)的多個項目視為一個節(jié)點,并捕獲不同粒度意圖單元之間的交互。然而,這些基于GNN 的方法并沒有明確地對影響用戶意圖的鄰域大小進行建模,因此本文提出了一種多密度會話圖,以細粒度的方式對遠距離依賴進行建模。
長尾分布現(xiàn)象在現(xiàn)實世界中的各個領(lǐng)域廣泛存在,例如圖像分類、自然語言處理和推薦系統(tǒng)。一般來說,處理長尾分布問題的常用策略是重新采樣以平衡數(shù)據(jù)集,或者細化損失函數(shù),例如為類/項目添加不同的權(quán)重/正則化。在推薦系統(tǒng)中,由于用戶反饋的稀疏性以及大量新物品的快速增加,造成項目的長尾分布現(xiàn)象非常明顯,因此學術(shù)界進行了廣泛的研究[14-17]。例如,文獻[15]提出對尾部項目進行聚類,對于尾部項目,根據(jù)聚類中的評分進行推薦。文獻[16]對頭部項目和尾部項目之間的語義聯(lián)系進行研究,通過元學習和課程學習進行知識遷移。然而,這些模型都不是為會話推薦這種具有序列模式數(shù)據(jù)的任務(wù)而設(shè)計的,加上缺少額外信息和用戶畫像,因此這些傳統(tǒng)的長尾推薦方法不適用于基于會話的推薦。在基于會話的推薦系統(tǒng)中,文獻[17]提出的TailNet 方法使用一種基于偏好機制對預測的分數(shù)進行調(diào)整,但其對尾部項目的性能改進損害了頭部項目的性能。
自監(jiān)督學習的基本思想是通過各種數(shù)據(jù)增強來增強訓練數(shù)據(jù),并構(gòu)建監(jiān)督任務(wù)來預測或重構(gòu)原始示例作為輔助任務(wù)。自監(jiān)督學習已廣泛應用于計算機視覺和自然語言處理領(lǐng)域。例如:文獻[18]提出對圖像進行隨機旋轉(zhuǎn),并訓練一個模型來預測每個增強的圖像如何進行旋轉(zhuǎn);文獻[19]提出的BERT模型引入掩碼語言任務(wù),以幫助改進語言模型的預訓練。在圖嵌入學習領(lǐng)域,自監(jiān)督學習最近也受到了相當大的關(guān)注。例如:文獻[20]提出的DGI 方法最大化局部塊和全局圖之間的互信息;文獻[21]提出InfoGraph 方法通過不同尺度的子結(jié)構(gòu)(如節(jié)點、邊、三角形)之間嵌入的一致性來對圖數(shù)據(jù)進行編碼。在會話推薦領(lǐng)域,文獻[3-4]提出融合多個會話的數(shù)據(jù),并分別構(gòu)建為超圖和線圖,使用自監(jiān)督學習增強會話建模。與上述工作不同,本文提出的自監(jiān)督學習任務(wù)框架注重改進長尾項目的嵌入。
本文提出的SMDG 模型架構(gòu)如圖1 所示,其核心模塊是一個基于多密度會話圖的會話編碼模塊,以及基于此模塊所構(gòu)建的會話推薦任務(wù)和輔助自監(jiān)督學習任務(wù)。
圖1 SMDG 模型框架Fig.1 Framework of the SMDG model
在基于會話的推薦中,I={i1,i2,…,i|I|}用于表示所有會話中涉及的項目的集合。匿名用戶的會話被定義為一個有序序列S=[vz1,vz2,…,vzn],其中,vzi?I(1 ≤i≤n),n是會話S的長度,不同會話的長度有可能不同。此外,會話S中的項目可能存在重復,即?vzi=vzj,1 ≤i 多密度會話編碼(MDSE)主要有多密度圖構(gòu)建以及圖嵌入學習兩個模塊組成。 2.2.1 多密度圖構(gòu)建 對于會話S=[vz1,vz2,…,vzn],本文構(gòu)建一個多密度會話圖來表示項目之間的復雜關(guān)系以及項目與當前意圖的聯(lián)系。 定義1(k-Neighbor 集) 對于會 話S=[vz1,vz2,…,vzn]中的一個項目vzi,其k-Neighbor 集表示為它在S中距離小于等于k的項目集合,其定義如下: 具體來說,會話S=[vz1,vz2,…,vzn]表示為一個多重異構(gòu)圖節(jié)點由兩部分組成:第1 部分Vs={x1,x2,…,xm}表示會話S中所有不同的項目,稱為項目節(jié)點,請注意m≤n,因為會話中可能有重復的項目;第2 部分vt是新引入的虛擬目標節(jié)點,用它來表示用戶當前的意圖。為了表征用戶的當前意圖,傳統(tǒng)方法通常通過將最后一個項目作為查詢向量來聚合項目嵌入。通過引入虛擬目標節(jié)點,本文能夠通過統(tǒng)一的圖神經(jīng)網(wǎng)絡(luò)以更可解釋的方式達到這一目的。 特別地,對于給定的k,可以通過提取多密度會話圖的部分邊獲得子圖,稱為k-DSG,k表示項目之間直接關(guān)聯(lián)的緊密程度。圖2所示為會話[v1,v2,v3,v2,v4,v5]構(gòu)建的2-DSG 示例。從圖2 可以看出:2-DSG 捕獲項目之間的直接轉(zhuǎn)換關(guān)系,并且它非常稀疏,因為節(jié)點僅在會話中相鄰時才連接,這意味用戶意圖主要受相鄰項目的直接影響。隨著k的增加,遠距離項目之間建立直接連接,圖變得更加密集,從而能夠捕獲項目之間的遠距離依賴關(guān)系[15]。從另一個角度來看,意味用戶意圖直接受到更遠的項目的影響。 圖2 會話 [v1,v2,v3,v2,v4,v5]的2-DSG 示例Fig.2 Example of 2-DSG for session [v1,v2,v3,v2,v4,v5] 2.2.2 圖嵌入學習 通過一個類似GAT 的圖神經(jīng)網(wǎng)絡(luò),交替?zhèn)鞑ゾ酆线吅晚椖窟吷系男畔韺W習多密度會話圖上的節(jié)點嵌入。 1)嵌入初始化 初始化圖中節(jié)點和邊的嵌入: 其中:xi?Rd是項目節(jié)點i的d維嵌入,它直接取自項目嵌入I?RN×d。對于虛擬目標節(jié)點vt,使用一個特殊嵌入x t?Rd來表示,代表用戶沒有進行任何消費時的一般初始意圖,pi?Rd表示第i條聚合邊的嵌入。 2)項目邊信息傳播 對于Ei,k,本文應用雙向多頭注意力機制在兩個方向上傳播信息。給定一個節(jié)點xi及其in-鄰居集Nk,in,通過具有殘差連接的聚合機制更新節(jié)點的嵌入: 其中:p?Rd、q?R2d、Wk,1,Wk,2?Rd×d是可訓 練的參數(shù);||表示連接操作,本文選擇LeakyReLU 作為激活函數(shù)σ。 類似地,可以通過基于其out-鄰居集Nk,out聚合節(jié)點的嵌入來獲得h←i,l+1。這兩個方向?qū)嶋H上是對項目之間的前向和后向關(guān)系進行建模。最后,將它們相加來 更新節(jié) 點的嵌 入此 外,本文利用最大池化的多頭注意力機制來穩(wěn)定學習過程。具體來說,節(jié)點嵌入hi,l+1的第j維被定義如下: 3)聚合邊信息傳播 對于Ea,通過聚合項目節(jié)點的嵌入來更新虛擬目標節(jié)點vt的嵌入。參考文獻[4,8],本文認為每個項目節(jié)點對當前意圖的影響取決于它本身及其在會話中的位置??紤]到Gk是一個多重圖(同一個項目可能位于多個不同的位置),通過以下方式定義每條邊的權(quán)重: 其中:ei表示與虛擬目標節(jié)點連接的第i條邊;hei表示源項目節(jié)點的表示;Wk,4?R2d×d是可訓練參數(shù)。在獲得每條邊的權(quán)重后,通過線性聚合更新虛擬目標節(jié)點的嵌入: 4)交替更新策略 當前的方法通常使用讀出函數(shù),通過最終聚合項目表示來獲得用戶意圖。本文認為這個過程不應該只執(zhí)行一次,因此在聚合邊和項目邊上交替執(zhí)行多層信息傳播。第1 次聚合意味假設(shè)用戶認為每個項目是獨立的。隨著交替更新的進行,每個項目聚合越來越多的關(guān)于其高階鄰居的信息,此時執(zhí)行聚合意味假設(shè)用戶認為這些項目彼此密切相關(guān)。 基于上述假設(shè),本文融合在每一層獲得的嵌入,以保留更豐富的用戶意圖信息: 其中:hlast為會話中最后一項的節(jié)點嵌入,表示用戶最近的行為;hk,g和hk,l分別表示會話的全局嵌入和局部嵌入。 使用自監(jiān)督學習任務(wù)輔助主要的會話推薦任務(wù),聯(lián)合優(yōu)化會話推薦任務(wù)和輔助自監(jiān)督學習任務(wù)。 2.3.1 會話推薦任務(wù) 通過融合式(11)得到兩種嵌入,最終的會話嵌入(即用戶偏好嵌入)如下: 其中:Wk,5?Rd×2d是一個可訓練參數(shù),將連接向量從 R2d轉(zhuǎn)換為Rd。本文對會話嵌入s和每個候選項目嵌入xi應用L2 歸一化來緩解會話推薦中的長尾分布現(xiàn)象所導致的流行度偏差問題[13]。之后,通過計算嵌入xi和會話嵌入s的內(nèi)積預測項目vi的得分: 受到文獻[22]的啟發(fā),本文考慮對用戶的重復行為和探索行為進行建模。具體來說,將項目集I劃分成兩個子集IS和I-IS。其中,IS表示當前會話S中出現(xiàn)的所有項目,I-IS表示其他剩余項目。對兩個子集中項目的分數(shù)分別進行歸一化: 此外,還訓練了一個判別器,計算用戶選擇這兩種行為的概率: 其中:W6?R2×d、W7?Rd×d、b7?Rd是可訓練的參數(shù),本文選擇ReLU 作為激活函數(shù)σ。最后使用學習到的概率來對預測得分重新加權(quán),根據(jù)該得分進行推薦: 注意到本文使用k-DSG 來建模用戶意圖,為了得到最終的推薦結(jié)果,對上述得分進行求和池化: 最后,采用通過標簽平滑[23]增強的交叉熵作為會話推薦任務(wù)損失函數(shù): 2.3.2 基于反采樣器的輔助自監(jiān)督學習任務(wù) 本文使用一個自監(jiān)督學習任務(wù)來輔助原本的會話推薦任務(wù),特別是增強對長尾項目的建模。首先定義一種反采樣器P: 其中:M表示數(shù)據(jù)集中會話的總數(shù)量;Pi表示采樣第i個會話概率,它與該會話中目標項目在數(shù)據(jù)集中出現(xiàn)的頻率ni成反比。根據(jù)反采樣器P重復多次有放回的抽樣,進而得到一個小批量的訓練數(shù)據(jù)。 然后對采樣得到的會話數(shù)據(jù)進行數(shù)據(jù)增強,從而創(chuàng)建自監(jiān)督信號。本文采取一種常用的序列數(shù)據(jù)增強方式,即對于會話S,隨機地刪除其中一個項目,得到S′。由于這兩個會話非常接近,將它們視作正樣本對。對于一個批次中的N個樣本,通過數(shù)據(jù)增強得到2N個樣本,每個樣本有一個正樣本,剩余的2(N-1)個作為負樣本。使用式(11)中的hk,g作為會話嵌入并使用向量點積衡量兩個嵌入之間的相似性。對于一個正例對(i,j),其對比損失函數(shù)定義如下: 設(shè)在2N個樣本中,第k+N個樣本通過第k個樣本增強生成,則最終的自監(jiān)督損失定義如下: 二是調(diào)解組織方面的問題。雖然,從機構(gòu)建制和人員配置方面看,我國各級調(diào)解組織機構(gòu)設(shè)置是很健全的,人員配置是比較充足的。但是,從專業(yè)素質(zhì)和調(diào)解能力來看,還存在許多問題?!耙徽臼健彼痉ù_認機制的運行,要求人民調(diào)解員完全按照訴訟程序的標準開展調(diào)解活動,按照訴訟案件的標準制作調(diào)解筆錄、收集各類資料和證據(jù),按照法律規(guī)定的標準起草調(diào)解協(xié)議,對于法律專業(yè)素養(yǎng)不足的人民調(diào)解員來說,還是有很大難度的。這就需要主管部門在人員配備、素質(zhì)培養(yǎng)等方面花大力氣。 2.3.3 聯(lián)合訓練 聯(lián)合兩個任務(wù)進行訓練,總的損失函數(shù)定義如下: 其中:β是一個平衡系數(shù),用于控制輔助自監(jiān)督任務(wù)的訓練速度,使用反向傳播算法來訓練所提出的模型。 為證明本文方法的有效性,在4 個真實的公開基準數(shù)據(jù)集上進行實驗: 1)Diginetica 來自CIKM Cup 2016,數(shù)據(jù)來自電子商務(wù)搜索引擎日志。遵循文獻[6-8],本文使用最后一周的會話(最新數(shù)據(jù))作為測試數(shù)據(jù)。 2)Tmall 來自IJCAI-15 比賽,其中包含匿名用戶在天貓購物平臺上的購物日志。遵循文獻[8],本文認為用戶在同一天的事件屬于一個會話,最后一天的事件被用作測試數(shù)據(jù)。 3)Gowalla 是一個廣泛用于興趣點推薦的簽到數(shù)據(jù)集。遵循文獻[6-7],本文保留了前30 000 個最受歡迎的位置,通過將超過1 天的時間間隔作為分割點,將用戶的簽到記錄劃分為不相交的會話。使用最后20%的會話作為測試集。 4)Last.FM 是推薦任務(wù)中廣泛使用的數(shù)據(jù)集,它收集用戶的音樂收聽歷史。遵循文獻[6-7],本文保留了前40 000 名最受歡迎的藝術(shù)家,并將劃分間隔設(shè)置為8 h。與Gowalla 類似,最后20%的會話被用作測試集。 表1 數(shù)據(jù)集統(tǒng)計信息 Table 1 Dataset statistics 本文將提出的方法與以下代表性基線方法進行對比: Item-KNN[24]:通過計算會話中向量的余弦距離計算項目的相似度來進行推薦。 FPMC[9]:將馬爾可夫鏈和矩陣分解相結(jié)合用于會話推薦任務(wù)。 NARM[11]:使用門控循環(huán)單元(GRU)建模序列,并通過注意力機制來捕捉用戶的主要目的。 CSRM[12]:利用記憶網(wǎng)絡(luò)來提取當前會話和鄰域會話之間的協(xié)作信息。 Lessr[7]:引入了兩種會話圖來解決信息損失和長期依賴問題。 GCE-GNN[8]:通過對會話中的項目轉(zhuǎn)換進行建模來構(gòu)建全局圖,從而學習全局項目嵌入。 S2-DHCN[3]:構(gòu)造兩種類型的超圖來學習會話間和會話內(nèi)信息。 COTREC[4]:將自監(jiān)督學習與協(xié)同訓練相結(jié)合,以增強基于會話的推薦。 MSGIFSR[6]:學習多粒度用戶意圖單元以提取不同意圖粒度的會話信息。 TailNet[17]:根據(jù)點 擊頻率 將項目 分為流 行和長尾項目,并提出偏好機制對推薦進行軟調(diào)整。 Focal Loss(FL)[25]:通過動態(tài)縮放損失函數(shù)來緩解長尾問題。 Logit Adjustment(LG)[26]:通過調(diào)整模型預測的分數(shù)來增強模型對長尾數(shù)據(jù)的判別能力。 Over Sampling(OS)[27]:從尾部項中重復采樣以重新平衡訓練數(shù)據(jù)分布中的頭部項和尾部項。 本文運用會話推薦中廣泛使用的指標命中率HR@K和平均倒數(shù)排名MRR@K來評估所有模型的性能: 1)HR@K。表示測試用例中目標項目在預測排名列表中位于top-k位置的比例: 其中:N代表測試數(shù)據(jù)的總數(shù);nhit代表目標項目在排名列表中位于top-k位置的數(shù)量。 2)MRR@K。目標項目的排名倒數(shù)的平均值,它進一步反映了推薦的質(zhì)量: 其中:Stest表示測試集中的所有目標項目;Rank(ilabel)表示該目標項目的預測排名,如果Rank(ilabel)大于K,該倒數(shù)將被置為0。 為了進一步衡量模型在長尾分布數(shù)據(jù)集上的性能,參考macro-F1 指標,本文提出一個新的指標宏命中率macro-HR(以下簡稱mHR): 其中:HHRt@K表示將it作為目標項目的所有會話所計算得到的HR@K??梢钥吹?,這一指標將所有項目同等看待,提高了長尾項目在結(jié)果上的權(quán)重。 為了實驗的公平性,本文在所有實驗中將嵌入的維度固定為256,批次大小固定為512。從訓練集中隨機拆分10%的樣本作為驗證集,并選擇在驗證集上實現(xiàn)最佳性能的超參數(shù)。其中最大密度K在{2,3,4,5,6}中搜索,最佳標簽平滑參數(shù)?在{0.2,0.4,0.6,0.8}中搜索。遵循文獻[11,14,16],采用 Adam[28]優(yōu)化器,初始學 習率為0.001,每 隔3 個 epoch 衰減0.1。本文根據(jù)命中率(HR)、宏命中率(mHR)和平均倒數(shù)排名(MRR)指標評估所有模型的性能。 數(shù)據(jù)集的總體實驗結(jié)果如表2 所示,其中,粗體數(shù)字表示最優(yōu)值,帶下劃線數(shù)字表示次優(yōu)值。 表2 整體性能對比 Table 2 Comparison of overall performance % 從表2 可以看出: 1)與僅對項目相似性或項目轉(zhuǎn)換進行建模的傳統(tǒng)方法(例如Item-KNN 和FPMC)相比,基于神經(jīng)網(wǎng)絡(luò)方法的性能有了很大進步,這證明了深度學習技術(shù)的有效性以及為會話建模復雜順序模式的價值。 2)在基于神經(jīng)網(wǎng)絡(luò)的方法中,基于GNN 的方法比基于RNN 的方法表現(xiàn)更好,這證明了圖在建模項目之間的復雜關(guān)系方面的優(yōu)越性。作為一種基于GNN 的方法,MSGIFSR 的表現(xiàn)次佳,但比其他基線方法好得多,因為它通過利用多粒度意圖并考慮重復消費來捕獲用戶偏好。 3)傳統(tǒng)的考慮長尾分布現(xiàn)象的方法(如LG、FL、OS)以及將項目集區(qū)分為流行和長尾項目的方法TailNet 的性能表現(xiàn)不佳。其中過采樣(OS)這種方式由于會使數(shù)據(jù)分布發(fā)生變化,從而導致了次優(yōu)性能,這與過去的發(fā)現(xiàn)一致[29]。其余方法對預測得分或者損失進行加權(quán),表現(xiàn)不佳的原因可能是對尾部項目性能的改進過度,損害了頭部項目的性能,并且都沒有充分考慮會話數(shù)據(jù)的順序模式特性。 4)本文所提出的方法SMDG 在4 個數(shù)據(jù)集上都取得了不錯的提升。特別是在Tmall 數(shù)據(jù)集上,分別在HR@20、mHR@20 和MRR@20 上實現(xiàn) 了5.88%、12.86%和9.71%的改進。當然,在部分情況下命中率的提升會導致平均倒數(shù)排名的下降,這是因為關(guān)注長尾項目對整體預測目標(特別是頭部項目)的排名有所影響。SMDG 對基線的改進主要來自2 個方面:(1)構(gòu)建了一個多密度圖,以基于具有不同密度的鄰域圖來捕捉用戶意圖,同時建模項目之間的長期依賴關(guān)系;(2)使用自監(jiān)督學習任務(wù)輔助主要的會話推薦任務(wù),在不改變會話任務(wù)原始數(shù)據(jù)分布的同時,不僅緩解了數(shù)據(jù)稀疏性,而且還加強了對長尾項目的建模。 為了探究本文方法所提出的每個組件的有效性,本節(jié)進行消融研究以評估4 個變體的性能: 1)US:對于輔助自監(jiān)督學習任務(wù),不采用反采樣器,對會話數(shù)據(jù)進行均勻采樣。 2)-SSL:去掉輔助自監(jiān)督學習任務(wù)。 3)-MD:不使用多密度圖,即設(shè)置最大密度K=1。 4)-LS:損失函數(shù)不使用label smoothing 增強。 消融實驗結(jié)果如表3 所示。從表3 可以看出,原始方法在4 個數(shù)據(jù)集上的性能均優(yōu)于所有變體,這說明本文提出的各個組件對性能提升都起到了積極作用。對比SMDG 和US 可以看出,反采樣器相比于均勻采樣,提升效果更加顯著,說明反采樣器能夠更好地對長尾項目進行建模。對比US 和-SSL 可以看出,US 在Last.FM 數(shù)據(jù)集上會造成性能的損失。對比SMDG 和-SSL 可以看出,-SSL 的實驗性能下降很多,特別是在Tmall 數(shù)據(jù)集上,這說明本文提出的輔助自監(jiān)督學習確實能夠有效緩解數(shù)據(jù)稀疏性問題,并且進一步增強長尾項目的建模。對比SMDG 和-MD 可以看出,由于-MD 無法對用戶的遠距離注意力建模,極大地損害了模型性能。此外,對比SMDG和-LS 可以發(fā)現(xiàn),標簽平滑正則化對模型非常有用。本文認為主要原因是它通過軟目標緩解了傳統(tǒng)交叉熵損失過于嚴格的問題。由于用戶反饋存在一定的模糊性,通過使用軟目標平滑原始硬目標,可以體現(xiàn)用戶對大量未觀察到的項目的偏好,從而為基于會話的推薦帶來收益。 表3 消融實驗結(jié)果 Table 3 Results of ablation experiment % 為了進一步探究模型在熱門項目和長尾項目上的效果,本文對訓練集中項目的出現(xiàn)頻率進行統(tǒng)計,并依據(jù)帕累托法則[30]作為分割標準,將項目劃分為頭項目(熱門項目)和尾項目(長尾項目)。本文模型在頭尾項目上的指標為HR@20、mHR@20 和MRR@20。 頭尾項目HR@20 和mHR@20 性能對比如表4和表5 所示。對比SMDG 和-SLL,可以看到自監(jiān)督輔助任務(wù)在4 個數(shù)據(jù)集的2 個指標上都給長尾項目帶來巨大提升。對于熱門項目,自監(jiān)督輔助任務(wù)給Diginetica 和Gowalla 造成了比較微弱的損害,但在Tmall 和Last.FM 數(shù)據(jù)集上依然是正向的效果。對比SMDG 和US 可以看到,在熱門項目上絕大部分情況都是正向收益,而在長尾項目上則全都是正向的效果。這說明了本文提出的輔助自監(jiān)督學習任務(wù)以及反采樣器的有效性和魯棒性。 表4 頭尾項目HR@20 性能對比 Table 4 Performance comparison of HR@20 for head and tail items % 表5 頭尾項目mHR@20 性能對比 Table 5 Performance comparison of mHR@20 for head and tail items % 如表6 所示,對于MRR@20,輔助自監(jiān)督學習任務(wù)對熱門項目的影響是比較負面的,但對長尾項目的影響稍顯正向,甚至在Diginetica 和Tmall 上有顯著提升。這說明對長尾項目的關(guān)注影響了其余項目(特別是熱門項目)在推薦結(jié)果中的排序位次。但考慮到實際的推薦應用分為召回和排序兩個階段,本文所提出的方法更加適用于召回階段,主要關(guān)注召回率,即命中率,因此可以接受一些排序性能的損失。即便如此,從表2 中可以看出,SMDG 在MRR@20 指標上的性能依然超過了絕大部分的基線方法,這再次說明了該方法的魯棒性。 表6 頭尾項目MRR@20 性能對比 Table 6 Performance comparison of MRR@20 for head and tail items % 為了進一步驗證多密度對性能的影響,本文測試了將最大密度K設(shè)置為不同數(shù)值時的結(jié)果,結(jié)果如圖3 所示。從Diginetica 數(shù)據(jù)集可以看出,隨著K的增加,HR@20 和mHR@20 在開始時迅速增長,當K=3 時,性能幾乎達到最佳。在其他3 個數(shù)據(jù)集上也可以看到類似的現(xiàn)象。這表明高密度圖確實捕捉到了更多關(guān)于會話的信息,例如遠距離的依賴關(guān)系。同時,也說明多密度會話圖能夠更加精確完整地捕捉用戶的意圖。當K足夠大時,由于沒有更多有用的信息被引入,模型的性能也會停止增長,甚至略微有些下降,這是因為這4 個數(shù)據(jù)集會話的平均長度不是很長,當K被設(shè)置得過大時會給模型引入較多噪聲。一般來說,建議將K設(shè)置為3~4,在大多數(shù)情況下可以達到最佳性能。 圖3 多密度參數(shù)K 的影響Fig.3 The influence of the multi-density parameter K 針對現(xiàn)有的會話推薦方法在長尾分布現(xiàn)象中的局限性,本文提出一種基于自監(jiān)督學習的方法,加強對長尾項目嵌入的學習,并緩解數(shù)據(jù)的稀疏性。此外,構(gòu)建多密度圖以更加精確地捕捉用戶的當前意圖,并且采用帶有標簽平滑正則化的交叉熵作為目標函數(shù)來防止過擬合。在4 個真實數(shù)據(jù)集上的實驗結(jié)果表明,該方法能有效地增強會話推薦的性能,在幾乎不損害甚至提升熱門項目性能的前提下,使得長尾項目的性能得到了巨大的提升。本文主要利用了會話的序列信息進行建模,沒有考慮會話中項目所蘊含的豐富語義信息,未來將嘗試結(jié)合項目的語義信息,以進一步探究會話推薦問題中的長尾現(xiàn)象,從更多角度構(gòu)建自監(jiān)督學習任務(wù)。2.2 多密度會話編碼
2.3 多任務(wù)訓練
3 實驗
3.1 數(shù)據(jù)集
3.2 基線方法
3.3 評估指標
3.4 實驗設(shè)置
3.5 整體性能
3.6 消融實驗
3.7 頭尾項目性能對比
3.8 密度參數(shù)K 對性能的影響
4 結(jié)束語