王曙燕,郭睿涵,孫家澤
(西安郵電大學(xué) 計(jì)算機(jī)學(xué)院,西安 710121)
近年來(lái),隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,在線教育行業(yè)也迎來(lái)了新的發(fā)展潮流,其中擁有大量?jī)?yōu)質(zhì)課程資源的MOOC 學(xué)習(xí)平臺(tái)是在線教育行業(yè)的主要代表。MOOC 平臺(tái)的不斷發(fā)展和積累為高校開(kāi)展線上線下相結(jié)合的混合式教學(xué)提供了便利[1]。截止2021 年10 月底,我國(guó)上線MOOC 數(shù)量超過(guò)4.75 萬(wàn)門,注冊(cè)用戶達(dá)到3.64 億,選課人次達(dá)到7.55 億,中國(guó)慕課數(shù)量和慕課學(xué)習(xí)人數(shù)均為世界第一。但是隨著學(xué)習(xí)資源越來(lái)越豐富,面對(duì)海量的MOOC 學(xué)習(xí)資源,廣大學(xué)習(xí)者面臨著“信息迷航”和“信息過(guò)載”等問(wèn)題[2],同時(shí),MOOC 平臺(tái)也很難針對(duì)學(xué)習(xí)者的特點(diǎn)為學(xué)習(xí)者推薦出其感興趣的學(xué)習(xí)資源。另一方面,MOOC 平臺(tái)也存在著高注冊(cè)率、低通過(guò)率的問(wèn)題,通過(guò)率10%以上的課程占比不到10%。一個(gè)重要原因是MOOC 不能針對(duì)用戶的特點(diǎn)進(jìn)行高質(zhì)量的推薦。在MOOC 平臺(tái)中,用戶的興趣等信息難以獲取,現(xiàn)有的推薦方法不能很好地挖掘用戶學(xué)習(xí)記錄中隱含的用戶興趣等信息,同時(shí),一些優(yōu)質(zhì)的新課程因?yàn)楸稽c(diǎn)擊學(xué)習(xí)的次數(shù)較少而被雪藏,而一些發(fā)布時(shí)間較早的課程由于累計(jì)點(diǎn)擊學(xué)習(xí)次數(shù)較高而被頻繁地推薦。個(gè)性化推薦系統(tǒng)是解決信息過(guò)載問(wèn)題的最有效的方法之一,可以幫助學(xué)習(xí)者在MOOC 平臺(tái)上高效地學(xué)習(xí),避免學(xué)習(xí)迷航。此時(shí),高質(zhì)量的推薦結(jié)果就顯得尤為重要。一方面,準(zhǔn)確的推薦結(jié)果可以節(jié)省學(xué)習(xí)者查找課程的時(shí)間,提高學(xué)習(xí)者的學(xué)習(xí)效率和學(xué)習(xí)興趣,高質(zhì)量的推薦結(jié)果可以提高新課程的推薦頻率,使一些優(yōu)質(zhì)的新課程不會(huì)因?yàn)槠毓忸l次較少而被雪藏,增加授課教師的創(chuàng)作熱情;另一方面,高質(zhì)量的推薦結(jié)果可以提高學(xué)習(xí)者對(duì)MOOC 平臺(tái)的滿意度和信任程度,提高M(jìn)OOC 平臺(tái)的課程通過(guò)率。
目前常用的推薦模型主要分為淺層模型、神經(jīng)模型與基于圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)的模型[3]。最早的推薦模型通過(guò)直接計(jì)算交互的相似度來(lái)捕捉協(xié)同過(guò)濾效應(yīng),隨后文獻(xiàn)[4]提出了基于神經(jīng)網(wǎng)絡(luò)的模型。近年來(lái),基于GNN 的圖嵌入推薦方法[5]憑借其處理結(jié)構(gòu)化數(shù)據(jù)和挖掘結(jié)構(gòu)化信息的優(yōu)點(diǎn),已經(jīng)成為推薦系統(tǒng)中最新的研究方向。
但是目前對(duì)于MOOC 推薦的研究還比較少,MOOC 平臺(tái)的交互數(shù)據(jù)較為稀疏,不同課程被曝光的頻次差異較大,交互數(shù)據(jù)中噪聲數(shù)據(jù)較多,目前已有的MOOC 推薦方法不能有效解決上述問(wèn)題。本文提出一種基于圖對(duì)比學(xué)習(xí)的MOOC 推薦方法,并設(shè)計(jì)一種新的數(shù)據(jù)增強(qiáng)方法。首先對(duì)用戶項(xiàng)目交互的二分圖進(jìn)行數(shù)據(jù)增強(qiáng)得到兩個(gè)子視圖,數(shù)據(jù)增強(qiáng)包括隨機(jī)添加和隨機(jī)刪除兩種方法,然后通過(guò)圖卷積神經(jīng)網(wǎng)絡(luò)對(duì)原始二分圖和兩個(gè)子視圖進(jìn)行節(jié)點(diǎn)表征提取,構(gòu)建推薦監(jiān)督任務(wù)和對(duì)比學(xué)習(xí)輔助任務(wù)進(jìn)行聯(lián)合優(yōu)化,最后獲得推薦結(jié)果。
1.1.1 協(xié)同過(guò)濾推薦方法
協(xié)同過(guò)濾推薦方法源于現(xiàn)實(shí)生活中口碑相傳的過(guò)程,協(xié)同過(guò)濾利用相似用戶之間具有相似興趣偏好的方法來(lái)發(fā)現(xiàn)用戶對(duì)項(xiàng)目的潛在偏好[6]。其核心思想可以分為兩部分:首先是利用用戶的歷史信息計(jì)算用戶之間的相似性;然后利用與目標(biāo)用戶相似性較高的鄰居對(duì)其他產(chǎn)品的評(píng)價(jià)來(lái)預(yù)測(cè)目標(biāo)用戶對(duì)特定產(chǎn)品的喜好程度,系統(tǒng)根據(jù)這一喜好程度來(lái)對(duì)目標(biāo)用戶進(jìn)行推薦。由于協(xié)同過(guò)濾僅需要利用用戶的歷史評(píng)分?jǐn)?shù)據(jù),因此簡(jiǎn)單有效,是目前應(yīng)用最為成功的推薦方法。協(xié)同過(guò)濾推薦系統(tǒng)最大的優(yōu)點(diǎn)是對(duì)推薦對(duì)象沒(méi)有特殊的要求,能處理音樂(lè)、電影等難以進(jìn)行文本結(jié)構(gòu)化表示的對(duì)象[7]。但是,由于用戶對(duì)項(xiàng)目的評(píng)分?jǐn)?shù)據(jù)相對(duì)項(xiàng)目的總數(shù)量非常少,因此常會(huì)遇到數(shù)據(jù)稀疏的問(wèn)題[6]。
1.1.2 基于圖卷積神經(jīng)網(wǎng)絡(luò)的推薦方法
在推薦系統(tǒng)中,大多數(shù)信息都具有圖形結(jié)構(gòu)。用戶與項(xiàng)目之間的交互可以看作是二分圖,利用圖學(xué)習(xí)方法來(lái)獲得用戶和項(xiàng)目的嵌入表示[8]。在圖學(xué)習(xí)方法中,圖形神經(jīng)網(wǎng)絡(luò)目前受到了廣泛的關(guān)注,其中基于圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)的推薦模型憑借其優(yōu)異的效果在推薦系統(tǒng)模型中被廣泛應(yīng)用[9-10]。
圖神經(jīng)網(wǎng)絡(luò)采用嵌入傳播迭代聚合鄰域嵌入。通過(guò)疊加傳播層,每個(gè)節(jié)點(diǎn)可以訪問(wèn)高階鄰居信息,而不像傳統(tǒng)方法那樣只訪問(wèn)一階鄰居信息[11]。該技術(shù)的靈感來(lái)自于圖卷積神經(jīng)網(wǎng)絡(luò),它提供了一種端到端的方式,將多跳鄰居集成到節(jié)點(diǎn)表征學(xué)習(xí)中,并實(shí)現(xiàn)最先進(jìn)的性能推薦。
文獻(xiàn)[10]將協(xié)同信號(hào)嵌入到基于模型的連接圖的嵌入函數(shù)中,提出一種新的推薦方法NGCF,該方法利用用戶-項(xiàng)目集成圖中的高階連接性來(lái)實(shí)現(xiàn)協(xié)同信號(hào)的嵌入表示。
文獻(xiàn)[11]提出一種簡(jiǎn)化的GCN 模型LightGCN,該模型只包含了GCN 鄰域聚合中最基本的部分,例如領(lǐng)域的聚合、多層傳播用于協(xié)同過(guò)濾的聚合,刪除了特征變換和非線性激活的部分。LightGCN 中圖卷積運(yùn)算定義為:
圖1 LightGCN 圖卷積過(guò)程Fig.1 LightGCN graph convolution process
其中:al≥0 表示第l層嵌入構(gòu)成最終嵌入的權(quán)重,它可以作為一個(gè)超參數(shù)進(jìn)行手動(dòng)調(diào)整,也可以作為一個(gè)模型參數(shù)。
LightGCN 通過(guò)在用戶-項(xiàng)目交互圖上線性傳播用戶和項(xiàng)目的嵌入來(lái)學(xué)習(xí)節(jié)點(diǎn)表征,最后將用戶和項(xiàng)目嵌入加權(quán)和作為最后的預(yù)測(cè)得分。模型預(yù)測(cè)結(jié)果被定義為用戶和項(xiàng)目最終表示的內(nèi)積:
同時(shí)該結(jié)果也被作為生成推薦排名的分?jǐn)?shù)。
自監(jiān)督學(xué)習(xí)的思想是設(shè)置一個(gè)輔助任務(wù),從輸入數(shù)據(jù)本身提取額外的信息,利用未標(biāo)記的數(shù)據(jù)空間。與監(jiān)督式學(xué)習(xí)相比,自監(jiān)督學(xué)習(xí)通過(guò)修改輸入數(shù)據(jù)來(lái)利用未標(biāo)記的數(shù)據(jù)空間,挖掘出難以與正樣本區(qū)分的負(fù)樣本,從而在下游任務(wù)中取得顯著的改進(jìn)[12-13]。對(duì)比學(xué)習(xí)是自監(jiān)督學(xué)習(xí)中的一種方法。
在計(jì)算機(jī)視覺(jué)(Computer Vision,CV)、自然語(yǔ)言處理(Natural Language Processing,NLP)領(lǐng)域,對(duì)比學(xué)習(xí)結(jié)合自監(jiān)督學(xué)習(xí)框架,近年來(lái)取得了顯著的成就[14-16],文獻(xiàn)[16]提出了一個(gè)簡(jiǎn)單的視覺(jué)表征對(duì)比學(xué)習(xí)框架SimCLR,研究隨機(jī)圖像增強(qiáng)。對(duì)比學(xué)習(xí)通過(guò)最大化一個(gè)實(shí)例的兩個(gè)擴(kuò)展視圖之間的一致性來(lái)訓(xùn)練編碼器。其核心思想是樣本和與之相似的正樣本之間的距離遠(yuǎn)大于樣本和與之不相似的負(fù)樣本之間的距離。
最新的研究結(jié)果表明,自監(jiān)督學(xué)習(xí)可以有效提升推薦模型的性能,提高推薦模型對(duì)長(zhǎng)尾項(xiàng)目的推薦效果[17],文獻(xiàn)[13]將自監(jiān)督學(xué)習(xí)的方法加入到推薦模型中,提出一種新的推薦方法SGL,以用戶項(xiàng)圖上的自監(jiān)督學(xué)習(xí)來(lái)補(bǔ)充有監(jiān)督的推薦任務(wù)。文獻(xiàn)[18]針對(duì)交互序列提出一種新的數(shù)據(jù)增強(qiáng)方式,將對(duì)比學(xué)習(xí)應(yīng)用于序列推薦中,提高了推薦模型的魯棒性。
在圖學(xué)習(xí)領(lǐng)域,由于圖數(shù)據(jù)也存在缺少標(biāo)簽或難以標(biāo)注的問(wèn)題,自2020 年以來(lái),研究人員著力于將對(duì)比學(xué)習(xí)技術(shù)應(yīng)用于圖表示學(xué)習(xí)任務(wù)上,取得了較好的效果,這一系列算法研究稱為圖對(duì)比學(xué)習(xí)[19]。在一般意義上,圖對(duì)比學(xué)習(xí)是一種針對(duì)圖數(shù)據(jù)的自監(jiān)督學(xué)習(xí)算法。對(duì)給定的大量無(wú)標(biāo)注圖數(shù)據(jù),圖對(duì)比學(xué)習(xí)算法旨在訓(xùn)練出一個(gè)圖神經(jīng)網(wǎng)絡(luò)編碼器。由這個(gè)圖神經(jīng)網(wǎng)絡(luò)編碼得到的圖表示向量,可以很好地保留圖數(shù)據(jù)的特性,并進(jìn)一步在無(wú)監(jiān)督、半監(jiān)督、遷移學(xué)習(xí)以及魯棒性測(cè)試等實(shí)驗(yàn)設(shè)置下進(jìn)行測(cè)試,并應(yīng)用于社交網(wǎng)絡(luò)、蛋白質(zhì)交互網(wǎng)絡(luò)、分子結(jié)構(gòu)、學(xué)術(shù)引用網(wǎng)絡(luò)等多個(gè)場(chǎng)景中[20]。
受到SGL 模型的啟發(fā),本文將對(duì)比學(xué)習(xí)的思想應(yīng)用于MOOC 課程推薦中,設(shè)計(jì)一種基于圖對(duì)比學(xué)習(xí)的MOOC 課程推薦模型。首先對(duì)輸入的用戶項(xiàng)目交互的二分圖進(jìn)行數(shù)據(jù)增強(qiáng),得到兩個(gè)子視圖;然后在原始二分圖和兩個(gè)子視圖上使用最先進(jìn)的LightGCN 模型進(jìn)行節(jié)點(diǎn)表征提取,構(gòu)建推薦監(jiān)督任務(wù)和對(duì)比學(xué)習(xí)輔助任務(wù)進(jìn)行聯(lián)合優(yōu)化;最后得到推薦結(jié)果。算法框架如圖2 所示。
圖2 本文算法框架Fig.2 Framework of the proposed algorithm
將用戶和項(xiàng)目交互的二分圖以矩陣的形式進(jìn)行操作,交互矩陣記為矩陣R∈RM×N,其中M和N分別為用戶的數(shù)量和課程的數(shù)量,如果用戶u學(xué)習(xí)過(guò)課程i,則Rui對(duì)應(yīng)位置的數(shù)值為1,否則為0。得到用戶項(xiàng)圖的鄰接矩陣形式如下:
其中:D是(M+N)×(M+N)的對(duì)角矩陣,對(duì)角線上的數(shù)值Dii表示鄰接矩陣A第i行向量中非零項(xiàng)的數(shù)量。最后得到用于模型預(yù)測(cè)的最終嵌入矩陣形式如下:
推薦系統(tǒng)中用戶項(xiàng)目交互二分圖具有如下的特點(diǎn):1)用戶和項(xiàng)目的特征是離散的;2)與CV 和NLP任務(wù)將每個(gè)數(shù)據(jù)實(shí)例視為孤立的情況不同,交互圖中的用戶和項(xiàng)目本質(zhì)上是相互連接和依賴的。因此,在圖像上進(jìn)行的數(shù)據(jù)增強(qiáng)操作,如隨機(jī)裁剪、旋轉(zhuǎn)、灰度處理等方法是不適用于交互圖的,需要為基于圖的推薦模型重新設(shè)計(jì)數(shù)據(jù)增強(qiáng)的方法。
二分圖是建立在用戶-項(xiàng)目交互信息之上的,因此包含了協(xié)同過(guò)濾信息。第一跳鄰居直接描述用戶和項(xiàng)目節(jié)點(diǎn),即用戶(或項(xiàng)目的互動(dòng)用戶)的歷史交互可以被視為用戶(或項(xiàng)目)的預(yù)先存在的特性。用戶(或項(xiàng)目)的第二跳相鄰節(jié)點(diǎn)表現(xiàn)出相似的用戶行為(或項(xiàng)目的受眾)。此外,從用戶到項(xiàng)目的高階路徑反映了用戶對(duì)項(xiàng)目的潛在興趣。挖掘圖形結(jié)構(gòu)的內(nèi)在模式有助于節(jié)點(diǎn)表征學(xué)習(xí)。本文在圖結(jié)構(gòu)上設(shè)計(jì)了兩種數(shù)據(jù)增強(qiáng)的方法:隨機(jī)添加和隨機(jī)刪除,以創(chuàng)建不同的節(jié)點(diǎn)視圖。數(shù)據(jù)增強(qiáng)的操作可以統(tǒng)一表示如下:
其中:將數(shù)據(jù)增強(qiáng)操作記為S;對(duì)用戶和項(xiàng)目交互的二分圖G進(jìn)行兩次完全獨(dú)立的數(shù)據(jù)增強(qiáng)的操作形成兩個(gè)視圖s1(G)和s2(G);為在第l層得到的節(jié)點(diǎn)的兩個(gè)相關(guān)的節(jié)點(diǎn)表征;H表示鄰域聚合的函數(shù)用以更新節(jié)點(diǎn)表征。
每輪迭代在開(kāi)始時(shí)生成每個(gè)節(jié)點(diǎn)的兩個(gè)不同視圖,對(duì)于兩個(gè)獨(dú)立的操作過(guò)程,隨機(jī)添加的參數(shù)m和隨機(jī)刪除比率p保持不變。
2.2.1 隨機(jī)添加方法
該方法通過(guò)參數(shù)m向交互記錄中添加m個(gè)隨機(jī)生成的交互記錄數(shù)據(jù),具體而言,該方法會(huì)在用戶和項(xiàng)目交互的二分圖中隨機(jī)添加一些邊。兩個(gè)獨(dú)立的操作表示為:
其中:V表示節(jié)點(diǎn)的集合;E 表示邊的集合;E′、E″表示添加的邊的集合。
這種擴(kuò)充有望從不同的擴(kuò)充視圖中識(shí)別對(duì)節(jié)點(diǎn)表征學(xué)習(xí)比較重要的節(jié)點(diǎn)信息,并使節(jié)點(diǎn)表征學(xué)習(xí)對(duì)圖結(jié)構(gòu)變化不太敏感。
2.2.2 隨機(jī)刪除方法
該方法通過(guò)一個(gè)隨機(jī)刪除比率p刪除一些用戶和項(xiàng)目的交互記錄,具體來(lái)講,該方法會(huì)隨機(jī)刪除一些交互二分圖中的一些邊,兩個(gè)獨(dú)立的操作表示為:
其中:M1,M2∈{0,1}||E是基于邊的集合的兩個(gè)掩碼向量,通過(guò)隨機(jī)刪除比率p生成;⊙表示兩個(gè)向量的乘積。
只有鄰域內(nèi)的部分連接參與節(jié)點(diǎn)表征學(xué)習(xí),使得GCN 不會(huì)過(guò)于依賴某一條邊,旨在捕獲節(jié)點(diǎn)局部結(jié)構(gòu)的內(nèi)在信息,并進(jìn)一步賦予節(jié)點(diǎn)表征學(xué)習(xí)對(duì)噪聲數(shù)據(jù)更強(qiáng)的魯棒性。
建立節(jié)點(diǎn)的增強(qiáng)視圖后,將同一個(gè)節(jié)點(diǎn)的視圖視為正對(duì),將同一訓(xùn)練批次不同節(jié)點(diǎn)的視圖視為負(fù)對(duì)。對(duì)正對(duì)的監(jiān)督學(xué)習(xí)促進(jìn)了同一節(jié)點(diǎn)不同視圖之間的一致性,而對(duì)負(fù)對(duì)的監(jiān)督學(xué)習(xí)加強(qiáng)了不同節(jié)點(diǎn)之間的差異。損失函數(shù)形式上采用對(duì)比損失InfoNCE[21],以最大化正對(duì)的一致性,并最小化負(fù)對(duì)的一致性,用戶側(cè)InfoNCE 損失函數(shù)公式為:
其中:s表示計(jì)算用戶向量之間相似度的函數(shù),這里采用余弦函數(shù)計(jì)算向量相似度;τ為溫度超參數(shù),在兩個(gè)視圖s1(G)和s2(G)下進(jìn)行圖卷積操作得到用戶u的節(jié)點(diǎn)表征,記為為同一用戶u在不同視圖下經(jīng)過(guò)圖卷積網(wǎng)絡(luò)學(xué)習(xí)到的節(jié)點(diǎn)表征向量;用戶v(u≠v)在視圖s2(G)下經(jīng)過(guò)圖卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的表示記為為不同用戶節(jié)點(diǎn)經(jīng)過(guò)圖卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的節(jié)點(diǎn)表征向量。項(xiàng)目側(cè)InfoNCE 損失函數(shù)與用戶側(cè)InfoNCE 損失函數(shù)保持一致。LSSL損失函數(shù)公式為:
LSSL優(yōu)化的目標(biāo)是最大化同一節(jié)點(diǎn)表征向量之間的相似性,最小化不同節(jié)點(diǎn)表征向量之間的相似性。
為了利用對(duì)比學(xué)習(xí)任務(wù)改進(jìn)推薦方法,本文采用多任務(wù)訓(xùn)練策略,通過(guò)結(jié)合推薦監(jiān)督任務(wù)和對(duì)比學(xué)習(xí)輔助任務(wù)對(duì)目標(biāo)函數(shù)進(jìn)行聯(lián)合優(yōu)化,聯(lián)合優(yōu)化的目標(biāo)函數(shù)表示為:
其中:Θ表示模型中可訓(xùn)練的參數(shù)表示L2 正則項(xiàng),L2 正則項(xiàng)用以防止過(guò)擬合現(xiàn)象;λ1、λ2為超參數(shù);LBPR表示推薦系統(tǒng)常用的貝葉斯個(gè)性化排名損失[22]。LBPR公式為:
其中:O表示用戶和項(xiàng)目交互的數(shù)據(jù)記錄;u表示用戶;i表示用戶交互過(guò)的項(xiàng)目;j表示用戶未交互過(guò)的項(xiàng)目;表示樣本得分,由式(5)計(jì)算得到表示正樣本得分;表示負(fù)樣本的得分。貝葉斯個(gè)性化排名損失LBPR的目標(biāo)是讓正樣本和負(fù)樣本之間的得分之差盡可能大。
本文在實(shí)驗(yàn)中選用的數(shù)據(jù)集為從中國(guó)最大的MOOC平臺(tái)之一的學(xué)堂在線收集的數(shù)據(jù)集[23],將不同年份開(kāi)設(shè)的相同課程統(tǒng)一為一門課程,選擇2016 年10 月1日—2018年3月31日期間報(bào)名至少3門課程的用戶。數(shù)據(jù)集包括1 302 門課程、82 535 個(gè)用戶和458 454 條交互記錄。該數(shù)據(jù)集數(shù)據(jù)項(xiàng)包括:用戶ID,課程ID,學(xué)生首次注冊(cè)相應(yīng)課程的時(shí)間,課程名稱,課程類別,課程類別ID。
對(duì)于選取的數(shù)據(jù)集,選取交互次數(shù)大于10 的用戶的數(shù)據(jù)集合,經(jīng)過(guò)篩選后的數(shù)據(jù)集信息如表1 所示。
表1 篩選后的數(shù)據(jù)集信息Table 1 Filtered dataset information
本文實(shí)驗(yàn)基于流行的開(kāi)源推薦框架伯樂(lè)[24]實(shí)現(xiàn),在實(shí)驗(yàn)過(guò)程中,訓(xùn)練集、驗(yàn)證集和測(cè)試集的劃分按照比率8∶1∶1 隨機(jī)選取。模型的參數(shù)使用Xavier方法[25]進(jìn)行初始化,優(yōu)化器選用adam,學(xué)習(xí)率大小設(shè)為0.001,batch_size 設(shè)為2 048,圖卷積神經(jīng)網(wǎng)絡(luò)層數(shù)設(shè)定為3 層。
本文實(shí)驗(yàn)針對(duì)前K項(xiàng)推薦(Top-K)場(chǎng)景,采用式(17)~式(20)中描述的召回率(R)和歸一化折損累積增益(Normalize Discount Cumulative Gain,NDCG)作為評(píng)價(jià)指標(biāo)。
其中:Reu表示根據(jù)用戶在訓(xùn)練集上的行為給用戶做出的推薦列表;Tu表示用戶在測(cè)試集上的行為列表;U表示用戶的集合;reln表示處于位置n的推薦課程的相關(guān)性;K表示向用戶推薦預(yù)測(cè)概率最大的前K門課程;|REL|表示相關(guān)度最高的前K個(gè)課程的集合,令K等于5,即向用戶推薦預(yù)測(cè)概率最大的前5 門課程;召回率表示正確預(yù)測(cè)出的正樣本占實(shí)際正樣本的概率;NDCG 用來(lái)評(píng)價(jià)推薦結(jié)果的準(zhǔn)確性,有高關(guān)聯(lián)度的結(jié)果出現(xiàn)在更靠前的位置時(shí),NDCG 指標(biāo)越高,推薦效果越好。
選擇另外4 種方法作為實(shí)驗(yàn)的對(duì)比方法,包括基于矩陣分解模型的推薦算法、基于自編碼器的推薦算法和基于圖卷積神經(jīng)網(wǎng)絡(luò)的推薦算法,具體內(nèi)容如下:
1)DMF[26]。一種基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的矩陣分解模型,通過(guò)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),將用戶和項(xiàng)目投射到潛在空間的低維向量中。
2)GC-MC[9]。一種基于用戶項(xiàng)目交互二分圖的圖自編碼器框架,從鏈路預(yù)測(cè)的角度解決推薦系統(tǒng)中的預(yù)測(cè)問(wèn)題,只考慮一階鄰居,因此只使用了一個(gè)圖卷積層。
3)NGCF[10]。一種基于圖的協(xié)同過(guò)濾方法,基于標(biāo)準(zhǔn)的圖卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),在消息傳遞過(guò)程中將二階交互特征編碼到消息中。
4)LightGCN[11]。一種基于簡(jiǎn)化和增強(qiáng)的圖卷積網(wǎng)絡(luò)的推薦方法,只包含GCN 中最重要的組成部分,例如領(lǐng)域聚合、多層傳播。通過(guò)在用戶項(xiàng)目交互圖上線性傳播用戶和項(xiàng)目的嵌入來(lái)學(xué)習(xí)節(jié)點(diǎn)表征,最后將用戶和項(xiàng)目嵌入的加權(quán)和作為最后的預(yù)測(cè)得分。
3.4.1 MOOC 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
本文方法與其他推薦方法在MOOC 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表2 所示。
表2 MOOC 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果Table 2 Experimental results of MOOC dataset
從表2 可以看出,本文提出的推薦方法在MOOC數(shù)據(jù)集上取得了優(yōu)于其他對(duì)比方法的實(shí)驗(yàn)結(jié)果,證明了本文方法的有效性,相較于性能最優(yōu)異的LightGCN方法,本文方法Recall@5 提升了7.8%,NDCG@5 提升了7.3%。從實(shí)驗(yàn)結(jié)果分析來(lái)看,GC-MC 使用基于信息傳遞方式的GNN 來(lái)挖掘二分圖,將協(xié)同過(guò)濾信號(hào)直接建模到節(jié)點(diǎn)表征中,相較于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型性能有所提升。NGCF 通過(guò)顯式建模用戶和項(xiàng)目之間的高階連接性來(lái)提升節(jié)點(diǎn)表征的質(zhì)量,取得了相較于GC-MC更好的性能。LightGCN 只對(duì)下一層進(jìn)行規(guī)范化的鄰域嵌入,去除了NGCF 中自連接、特征變換、非線性激活等對(duì)于協(xié)同過(guò)濾推薦方法意義不大的操作,取得了優(yōu)于NGCF 的實(shí)驗(yàn)結(jié)果。
3.4.2 超參數(shù)λ1對(duì)算法性能的影響分析
為驗(yàn)證超參數(shù)λ1對(duì)算法性能的影響,將本文方法在不同λ1值下的實(shí)驗(yàn)結(jié)果進(jìn)行比較,實(shí)驗(yàn)結(jié)果如圖3、圖4 所示。
圖3 在MOOC 數(shù)據(jù)集上不同λ1 值的Recall@5 對(duì)比Fig.3 Recall@5 comparison of different λ1values on MOOC dataset
圖4 在MOOC 數(shù)據(jù)集上不同λ1 值的NDCG@5 對(duì)比Fig.4 NDCG@5 comparison of different λ1values on MOOC dataset
超參數(shù)λ1的作用是控制對(duì)比學(xué)習(xí)輔助任務(wù)占聯(lián)合學(xué)習(xí)任務(wù)的比例。由圖3、圖4 實(shí)驗(yàn)結(jié)果可知,當(dāng)λ1=0.1 時(shí),本文方法性能最佳,當(dāng)λ1>0.4時(shí),模型性能急劇下降。合適的λ1值可以平衡推薦監(jiān)督任務(wù)和對(duì)比學(xué)習(xí)輔助任務(wù)之間的關(guān)系,取得理想的性能。
3.4.3 溫度超參數(shù)τ對(duì)算法性能的影響分析
為驗(yàn)證溫度超參數(shù)τ對(duì)算法性能的影響,將本文方法在不同溫度超參數(shù)τ值下的實(shí)驗(yàn)結(jié)果進(jìn)行比較,實(shí)驗(yàn)結(jié)果如圖5、圖6 所示。
圖5 在MOOC 數(shù)據(jù)集上不同τ 值的Recall@5 對(duì)比Fig.5 Recall@5 comparison of different τ values on MOOC dataset
圖6 在MOOC 數(shù)據(jù)集上不同τ 值的NDCG@5 對(duì)比Fig.6 NDCG@5 comparison of different τ values on MOOC dataset
溫度超參數(shù)τ的作用是挖掘困難負(fù)樣本,即對(duì)梯度貢獻(xiàn)較大的負(fù)樣本。在投影空間中,小的溫度超參數(shù)會(huì)使困難負(fù)樣本和正樣本距離更遠(yuǎn),增大相似性得分的差值,使得正樣本和負(fù)樣本的區(qū)分度更加明顯。由圖5、圖6 結(jié)果可以看出,不同τ值對(duì)實(shí)驗(yàn)結(jié)果具有不同的影響。當(dāng)τ=0.5 時(shí),算法性能達(dá)到最優(yōu),當(dāng)τ值過(guò)?。é樱?.3)時(shí),算法性能 會(huì)急劇下降。
3.4.4 數(shù)據(jù)增強(qiáng)方法效果對(duì)比
數(shù)據(jù)增強(qiáng)方法對(duì)比結(jié)果如表3 所示。由表3 結(jié)果可知,隨機(jī)添加的數(shù)據(jù)增強(qiáng)方法稍優(yōu)于隨機(jī)刪除的方法。
表3 數(shù)據(jù)增強(qiáng)方法對(duì)比結(jié)果Table 3 Comparison results of data enhancement methods
一個(gè)可能的原因是使用隨機(jī)刪除數(shù)據(jù)增強(qiáng)方法會(huì)刪除掉一些交互中有用的信息,例如:用戶學(xué)習(xí)了C 語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)課程之后又學(xué)習(xí)了一門C#課程,但是由于C#的課程開(kāi)設(shè)的較少,在隨機(jī)刪除的過(guò)程中刪除掉了這條交互記錄,導(dǎo)致在學(xué)習(xí)節(jié)點(diǎn)表征的過(guò)程中損失了一些有用的信息,而隨機(jī)添加的方法保留了所有的交互信息,可以在不丟失信息的情況下對(duì)圖結(jié)構(gòu)進(jìn)行擴(kuò)充。
3.4.5 模型訓(xùn)練效率對(duì)比
模型訓(xùn)練的過(guò)程如圖7 所示,模型取得最優(yōu)結(jié)果之后便不再記錄數(shù)值波動(dòng)。
圖7 在MOOC 數(shù)據(jù)集上訓(xùn)練效率Fig.7 Training efficiency on MOOC dataset
從圖7 可以看出,本文方法先于LightGCN 收斂,在實(shí)驗(yàn)中,LightGCN 在103 次迭代后取得最優(yōu)結(jié)果,本文方法在87 次迭代后取得最優(yōu)結(jié)果。這得益于對(duì)比學(xué)習(xí)采用的InfoNCE 損失函數(shù)將同一batch 中不同用戶的節(jié)點(diǎn)表征均視為負(fù)樣本,使模型能夠從多個(gè)負(fù)樣本中學(xué)習(xí)節(jié)點(diǎn)表征,而LightGCN 中的BPR 損失僅使用一個(gè)負(fù)樣本,限制了模型的感知領(lǐng)域。另一方面,通過(guò)InfoNCE 損失函數(shù)中溫度超參數(shù)可以挖掘困難負(fù)樣本來(lái)引導(dǎo)節(jié)點(diǎn)表征學(xué)習(xí),加快模型的收斂速度。
3.4.6 長(zhǎng)尾課程推薦效果分析
將MOOC 數(shù)據(jù)集按項(xiàng)目交互次數(shù)進(jìn)行篩選得到交互次數(shù)較少的課程的數(shù)據(jù)集,即長(zhǎng)尾課程數(shù)據(jù)集,同時(shí)為了保證長(zhǎng)尾課程的個(gè)數(shù),選取交互次數(shù)為[5,300]的課程,共212 門課程,這些課程的平均交互次數(shù)為21.8。模型在長(zhǎng)尾課程數(shù)據(jù)集上得到的結(jié)果如圖8 所示。
圖8 長(zhǎng)尾課程推薦實(shí)驗(yàn)結(jié)果Fig.8 Recommended experimental results of long tail course
從圖8 可以看出,在交互數(shù)據(jù)稀疏的情況下,LightGCN 很難獲取到長(zhǎng)尾課程的高質(zhì)量表示,本文提出的方法在交互次數(shù)較少的長(zhǎng)尾課程數(shù)據(jù)集上仍能表現(xiàn)出較強(qiáng)的競(jìng)爭(zhēng)力。這得益于InfoNCE 損失函數(shù)采用余弦相似度對(duì)課程之間的相似性進(jìn)行度量,當(dāng)所有實(shí)例映射到投影空間之后,通過(guò)計(jì)算余弦相似度,使得它們?cè)谕队翱臻g內(nèi)的分布是均勻的,因而在項(xiàng)目embedding包含的信息里,更多的保留了每個(gè)項(xiàng)目的個(gè)性化信息,使點(diǎn)擊次數(shù)較多地?zé)衢T課程和一些點(diǎn)擊次數(shù)較少的新開(kāi)設(shè)的課程之間不會(huì)有較大的差異。
3.4.7 模型對(duì)噪聲數(shù)據(jù)魯棒性分析
將MOOC 數(shù)據(jù)集中按比例加入一定量隨機(jī)生成的交互記錄數(shù)據(jù),得到加入噪聲數(shù)據(jù)的數(shù)據(jù)集。模型在噪聲數(shù)據(jù)集上得到的實(shí)驗(yàn)結(jié)果圖9 所示。
圖9 本文方法和對(duì)比方法在噪聲數(shù)據(jù)集上的結(jié)果Fig.9 Results of this method and comparison method on noise datasets
從圖9 可以看出,在加入較多的噪聲數(shù)據(jù)的條件下,其他模型表現(xiàn)效果不佳,本文提出的方法在加入噪聲數(shù)據(jù)的數(shù)據(jù)集上仍能取得較好的實(shí)驗(yàn)結(jié)果。本文方法通過(guò)比較節(jié)點(diǎn)經(jīng)過(guò)數(shù)據(jù)增強(qiáng)后得到的兩個(gè)子視圖,能夠從用戶和項(xiàng)目交互的二分圖中識(shí)別出節(jié)點(diǎn)的圖結(jié)構(gòu)信息,并且能夠減少節(jié)點(diǎn)表征學(xué)習(xí)對(duì)某些邊的依賴。
個(gè)性化推薦系統(tǒng)已經(jīng)在互聯(lián)網(wǎng)各個(gè)領(lǐng)域得到廣泛使用,但是對(duì)于MOOC 課程推薦方法的研究卻相對(duì)較少,MOOC 平臺(tái)上的交互數(shù)據(jù)存在用戶信息不容易獲取、交互數(shù)據(jù)稀疏、課程曝光頻次不平衡、交互數(shù)據(jù)中存在噪音等問(wèn)題。為此,本文提出一種基于圖對(duì)比學(xué)習(xí)的MOOC 推薦方法,通過(guò)構(gòu)建對(duì)比學(xué)習(xí)輔助任務(wù),提高對(duì)MOOC 課程推薦的效果,在MOOC 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果表明,本文提出的方法能有效提高M(jìn)OOC 課程推薦質(zhì)量,同時(shí)提升了模型訓(xùn)練的效率。但是課程的特征信息中依然存在豐富的關(guān)聯(lián)信息,如課程中包含的知識(shí)點(diǎn)、講授課程的院校教師等信息,如何將課程的特征信息融入推薦系統(tǒng),從而提升推薦效果,將是下一步的研究方向。