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