居程程,祝 義,3+
1.江蘇師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221116
2.江蘇省教育信息化工程技術(shù)研究中心,江蘇 徐州 221116
3.高安全系統(tǒng)的軟件開(kāi)發(fā)與驗(yàn)證技術(shù)工業(yè)和信息化部重點(diǎn)實(shí)驗(yàn)室(南京航空航天大學(xué)),南京 211106
近年來(lái),伴隨著現(xiàn)代信息技術(shù)的迅猛發(fā)展,以人工智能為代表的新興技術(shù)在教育領(lǐng)域得到了廣泛應(yīng)用,引發(fā)了學(xué)習(xí)理念和方式的深刻變革。在這種大背景下,MOOCs(massive online open courses)超越了時(shí)空的限制,得到了蓬勃發(fā)展,為學(xué)習(xí)者“隨時(shí)隨地”學(xué)習(xí)提供了更多的可能性[1-2]。
然而,隨著課程資源共享平臺(tái)的不斷增加,網(wǎng)絡(luò)共享資源的數(shù)量逐年穩(wěn)步增長(zhǎng),在線課程的整體完成率卻通常低于7%[3-5]。其中導(dǎo)致輟學(xué)率居高不下的主要原因是在線學(xué)習(xí)平臺(tái)忽視了“以學(xué)習(xí)者為中心”的現(xiàn)代教學(xué)理念,不能根據(jù)用戶的個(gè)性化需求準(zhǔn)確提供學(xué)習(xí)資源[6]。為此,相關(guān)研究大多集中在了解輟學(xué)或拖延行為[1,7-10],或推薦用戶可能感興趣的課程和學(xué)習(xí)路徑等內(nèi)容[11-16]。
但課程涵蓋了一系列視頻,其中每個(gè)視頻都與一些知識(shí)概念相關(guān)聯(lián),課程或視頻推薦忽略了用戶對(duì)特定知識(shí)概念的興趣。不同教師的課程在微觀上可能會(huì)有很大差異,可能會(huì)從不同的角度教授這些知識(shí)概念,用戶可能會(huì)對(duì)不同教師的各種視頻片段或?qū)W習(xí)材料產(chǎn)生不同的興趣。因此,從更細(xì)粒度的角度了解用戶的學(xué)習(xí)需求并預(yù)測(cè)用戶可能感興趣的知識(shí)概念對(duì)課程資源推薦任務(wù)來(lái)說(shuō)非常重要[17-19]。
目前較為流行的有基于協(xié)同過(guò)濾的推薦方法,根據(jù)用戶的相似度或者課程內(nèi)容的相似度進(jìn)行資源推薦[11-13,20-22]。其優(yōu)勢(shì)在于不需要太多特定領(lǐng)域知識(shí),易于實(shí)現(xiàn),但無(wú)法解決數(shù)據(jù)稀疏問(wèn)題,過(guò)度偏向推薦熱門(mén)資源。另一種較為流行的是基于矩陣分解的方法[13,23-26],在協(xié)同過(guò)濾的基礎(chǔ)上加入了隱向量,一定程度上增強(qiáng)了模型處理稀疏矩陣的能力,但不易添加用戶、課程資源之間的上下文關(guān)系信息。
為能夠利用更多有效信息,相關(guān)研究引入了異構(gòu)圖。在課程資源推薦任務(wù)中,用戶、課程資源等實(shí)體及其關(guān)系被建模為異構(gòu)圖,上下文信息得到有效利用,課程資源推薦效果得到顯著提升[17-19]。然而,基于圖卷積算法需要在訓(xùn)練期間對(duì)全圖拉普拉斯算子進(jìn)行操作,即假設(shè)預(yù)測(cè)與訓(xùn)練節(jié)點(diǎn)(用戶和知識(shí)概念類(lèi)型實(shí)體)在一個(gè)圖中,要求在訓(xùn)練過(guò)程中圖上所有節(jié)點(diǎn)都已被考慮進(jìn)去[27]。需要大量的計(jì)算成本和內(nèi)存,將其應(yīng)用到大圖是不可行的。此外,由于它們?cè)谝粋€(gè)固定的圖上直接生成最終的節(jié)點(diǎn)嵌入,圖的結(jié)構(gòu)稍微有所變化,就需要重新訓(xùn)練[28]。
基于上述問(wèn)題,本文提出了一個(gè)端到端模型Mooc-Sage(massive online open course sampler and aggregate),用于MOOCs 課程資源推薦中的知識(shí)概念推薦。通過(guò)構(gòu)建異構(gòu)圖引入實(shí)體間豐富的上下文關(guān)系信息,緩解數(shù)據(jù)稀疏問(wèn)題。為充分挖掘不同類(lèi)型實(shí)體間豐富的語(yǔ)義關(guān)系,將異構(gòu)圖分解為用戶/知識(shí)概念相關(guān)的多個(gè)基于元路徑的子圖,每個(gè)子圖關(guān)聯(lián)特定的語(yǔ)義和結(jié)構(gòu)信息。采用隨機(jī)游走算法在子圖上采樣富有影響力的局部鄰域,并在局部鄰域上進(jìn)行圖卷積平滑各節(jié)點(diǎn)表示,實(shí)現(xiàn)高可擴(kuò)展性。不同的子圖對(duì)用戶/知識(shí)概念來(lái)說(shuō)可能有不同的重要性,使用注意力機(jī)制自適應(yīng)地融合不同子圖下用戶/知識(shí)概念的圖嵌入表示[29]。最后,通過(guò)擴(kuò)展矩陣分解優(yōu)化模型參數(shù),獲得推薦列表[30]。在公開(kāi)的MoocCube 數(shù)據(jù)集[31]上進(jìn)行了綜合實(shí)驗(yàn),用以評(píng)估MoocSage 的性能。與目前最先進(jìn)的基線方法相比,MoocSage 的有效性得到了全面的證明,可以高效地為用戶推薦感興趣的課程資源。
本文的主要貢獻(xiàn)可概括如下:
(1)提出了一種端到端的基于圖采樣聚合的歸納式推薦算法,有效利用豐富異構(gòu)上下文信息輔助知識(shí)概念推薦的同時(shí)大幅減少現(xiàn)有方法過(guò)多的計(jì)算資源需求。
(2)構(gòu)建了一個(gè)與推薦任務(wù)相關(guān)的異構(gòu)信息網(wǎng)絡(luò),可有效捕獲MOOCs 平臺(tái)中不同類(lèi)型實(shí)體之間的復(fù)雜交互信息。
(3)擴(kuò)展了基于隨機(jī)游走的采樣方法,在多個(gè)元路徑的引導(dǎo)下以注意力的方式傳播用戶的偏好并發(fā)現(xiàn)用戶的潛在興趣。
(4)使用公開(kāi)的MoocCube 數(shù)據(jù)集進(jìn)行大量實(shí)驗(yàn),全面評(píng)估了所提出模型的性能,與一系列強(qiáng)基線相比,綜合證明了所提出模型的有效性。
從直觀上看,矩陣分解就是將評(píng)分矩陣近似分解為兩個(gè)低維矩陣的乘積,分別表示用戶與物品的隱語(yǔ)義,其假設(shè)實(shí)際的交互數(shù)據(jù)是在一系列隱變量的影響下產(chǎn)生的。文獻(xiàn)[13]提出將非負(fù)矩陣分解應(yīng)用于主題建模來(lái)尋找用戶之間的相似性以進(jìn)行基于內(nèi)容的過(guò)濾,向用戶推薦感興趣的課程資源。文獻(xiàn)[23]考慮到成績(jī)?nèi)菀资艿綄W(xué)術(shù)特征的影響,將學(xué)生和課程按照特征劃分為多個(gè)組,結(jié)合基于鄰域的用戶協(xié)同過(guò)濾、矩陣分解和基于流行度的排名方法設(shè)計(jì)成績(jī)預(yù)測(cè)和Top-k課程資源推薦模型,幫助學(xué)生選擇合適的課程。文獻(xiàn)[25]提出了一種新的基于概率的鄰域方法,作為標(biāo)準(zhǔn)的K 近鄰方法的進(jìn)一步改進(jìn),緩解了協(xié)同過(guò)濾推薦系統(tǒng)的一些最常見(jiàn)的問(wèn)題,分析研究用戶對(duì)在線課程的滿意度與學(xué)生保留率的關(guān)系。文獻(xiàn)[26]基于矩陣分解模型,結(jié)合協(xié)作過(guò)濾算法,利用外部資源的信息(用戶、課程特征)預(yù)測(cè)用戶對(duì)課程的偏好,并根據(jù)偏好程度進(jìn)行評(píng)分預(yù)測(cè)。文獻(xiàn)[24]針對(duì)學(xué)生難以在日益擁擠的課程論壇中尋找有用主題這一挑戰(zhàn),基于自適應(yīng)特征的矩陣分解框架,提出線程推薦用以解決線程過(guò)載問(wèn)題,向?qū)W生推薦他們可能感興趣的主題。這些方法在一定程度上能夠增強(qiáng)模型處理稀疏矩陣的能力,但不易添加用戶、課程資源和上下文關(guān)系信息。
異構(gòu)圖多用于表征推薦任務(wù)中復(fù)雜、異構(gòu)的數(shù)據(jù),使得豐富的上下文信息得到有效利用,進(jìn)一步緩解數(shù)據(jù)稀疏問(wèn)題。文獻(xiàn)[30]提出了一種基于異構(gòu)圖嵌入的推薦方法(heterogeneous network embedding based recommendation approach,HERec)。HERec 在元路徑的基礎(chǔ)上使用隨機(jī)游走策略生成節(jié)點(diǎn)序列,將所生成的節(jié)點(diǎn)序列作為語(yǔ)料輸入到Skip-gram[32]模型進(jìn)行用戶和項(xiàng)目的嵌入表示??紤]到不同元路徑下的嵌入表示存在不同的語(yǔ)義信息,HERec 將不同元路徑的嵌入表示進(jìn)行加權(quán)融合,將融合后的實(shí)體的嵌入表示饋送到擴(kuò)展矩陣做預(yù)測(cè)評(píng)分任務(wù)。HERec 整合異構(gòu)信息網(wǎng)絡(luò)(heterogeneous information network,HIN)中的各種嵌入信息,增強(qiáng)推薦性能,但受限于Skip-gram模型,僅能聚合有限的鄰域信息。文獻(xiàn)[17]提出一種基于圖卷積注意力異構(gòu)圖深度知識(shí)概念推薦模型(attentional heterogeneous graph convolutional deep knowledge recommender,Ackrec),用于MOOCs中的知識(shí)概念推薦,Ackrec 將推薦問(wèn)題視為評(píng)分預(yù)測(cè)任務(wù),其中用戶對(duì)知識(shí)概念的評(píng)分為用戶和概念之間的交互次數(shù)。Ackrec 通過(guò)圖卷積網(wǎng)絡(luò)學(xué)習(xí)實(shí)體的表示,在元路徑的指導(dǎo)下傳播用戶偏好,使用擴(kuò)展矩陣分解進(jìn)行課程資源評(píng)分推薦。Moocir(Mooc interest recommender)[19]在Ackrec 的基礎(chǔ)上進(jìn)行了改進(jìn),提出并研究了不同的注意力機(jī)制與目標(biāo)函數(shù),將評(píng)分預(yù)測(cè)改為點(diǎn)擊預(yù)測(cè),提升了推薦效果。Ackrec與Moocir 在一定程度上緩解了數(shù)據(jù)稀疏問(wèn)題,實(shí)體內(nèi)容信息與實(shí)體間的上下文信息得到了有效利用,但受限于圖卷積算法,需要極高的計(jì)算成本,將其應(yīng)用于大圖是不可行的。
針對(duì)傳統(tǒng)的圖卷積算法無(wú)法擴(kuò)展到大規(guī)模推薦這一問(wèn)題,PinSage(pinterest sample and aggregate)[33]使用單個(gè)節(jié)點(diǎn)多次短隨機(jī)游走的方法進(jìn)行節(jié)點(diǎn)采樣,根據(jù)L1-范數(shù)選取目標(biāo)節(jié)點(diǎn)的重要鄰居節(jié)點(diǎn),動(dòng)態(tài)構(gòu)建計(jì)算圖進(jìn)行局部的圖卷積,實(shí)現(xiàn)Pinterests 上大規(guī)模item2item 推薦,具有高度可擴(kuò)展性,能夠適配數(shù)十億節(jié)點(diǎn)和數(shù)百億邊的網(wǎng)絡(luò)。PinnerSage(pinner sample and aggregate)[34]利用從PinSage 中得到的物品表示,將用戶較長(zhǎng)時(shí)間內(nèi)交互過(guò)的物品表示聚成若干類(lèi),檢索每一類(lèi)表示的最近鄰表示,融合作為用戶的表示,實(shí)現(xiàn)Pinterests 上大規(guī)模user2item 推薦。Pinterest 包含豐富的圖像和文本信息,各實(shí)體間關(guān)系隱式地包含在實(shí)體的內(nèi)容特征中,僅使用user-item的交互信息就能得到很好的推薦效果。但其他傳統(tǒng)推薦數(shù)據(jù)集,通常只有各實(shí)體名稱(chēng)信息、類(lèi)別信息,僅考慮user-item 的交互容易受到數(shù)據(jù)稀疏性問(wèn)題的影響,無(wú)法進(jìn)行有效推薦。
針對(duì)以上問(wèn)題,本研究通過(guò)構(gòu)建異構(gòu)圖引入用戶、課程資源之間的上下文關(guān)系信息,將異構(gòu)圖分解為多個(gè)子圖,擴(kuò)展隨機(jī)游走算法并結(jié)合圖采樣聚合方法捕獲豐富的異構(gòu)鄰域信息,以注意力的方式適應(yīng)性融合不同子圖下的嵌入表示,緩解數(shù)據(jù)稀疏問(wèn)題的同時(shí)具有較強(qiáng)的可擴(kuò)展性。
本文基于這樣一種假設(shè):興趣偏好相同的用戶或存在相連關(guān)系的知識(shí)概念彼此間有著相似的表示,在嵌入空間的位置更為鄰近。理論上,各實(shí)體根據(jù)自身特征(用戶信息/知識(shí)概念信息)進(jìn)行嵌入表示后,結(jié)合實(shí)體間上下文關(guān)系信息進(jìn)行平滑處理,可使得存在相連關(guān)系的實(shí)體存在相似表示。具體如圖1所示。
圖1 問(wèn)題陳述Fig.1 Problem statement
擬解決的問(wèn)題:給定各用戶在MOOCs 上的歷史交互記錄及MOOCs 中各實(shí)體間的關(guān)系信息,計(jì)算用戶對(duì)各知識(shí)概念的偏好分?jǐn)?shù),為用戶推薦可能感興趣的知識(shí)概念,保持高推薦性能的同時(shí)降低計(jì)算資源需求。具體來(lái)說(shuō),根據(jù)用戶(User,u)的歷史交互記錄(例如,u302750:“地址解析”“數(shù)據(jù)傳輸”)及所涉及到的相關(guān)實(shí)體間的上下文關(guān)系信息(例如,網(wǎng)絡(luò)技術(shù)與應(yīng)用),訓(xùn)練預(yù)測(cè)函數(shù)f用于為u進(jìn)行Top-k知識(shí)概念推薦(例如,“Ip 地址”“單播”),f:u→{ki|ki∈K}。
本研究提出的知識(shí)概念推薦模型MoocSage 的架構(gòu)如圖2所示。由以下子模塊組成:
圖2 MoocSage模型架構(gòu)Fig.2 MoocSage model architecture
(1)構(gòu)建異構(gòu)圖:提取實(shí)體特征,通過(guò)實(shí)體及各實(shí)體間關(guān)系構(gòu)建異構(gòu)圖,根據(jù)所構(gòu)建的異構(gòu)圖選擇有效元路徑用以描述實(shí)體之間的上下文關(guān)系,基于元路徑將異構(gòu)圖分解為多個(gè)子圖。
(2)逐層游走聚合特征:在各子圖中操作局部圖卷積進(jìn)行多層鄰域信息聚合,平滑鄰接節(jié)點(diǎn)表示。
(3)組合子圖特征:每個(gè)子圖關(guān)聯(lián)特定的語(yǔ)義和結(jié)構(gòu)信息,基于不同子圖可得出目標(biāo)實(shí)體的各種表示。不同的子圖對(duì)用戶/知識(shí)概念類(lèi)型實(shí)體來(lái)說(shuō)可能有不同的重要性,使用注意力機(jī)制自適應(yīng)地融合來(lái)自不同子圖的實(shí)體表示。
(4)預(yù)測(cè)評(píng)分:在生成用戶/知識(shí)概念類(lèi)型實(shí)體的低維表示后,通過(guò)擴(kuò)展矩陣分解優(yōu)化模型參數(shù),獲得推薦列表。
本節(jié)將詳細(xì)介紹如何提取實(shí)體內(nèi)容特征、選擇上下文信息,如何學(xué)習(xí)知識(shí)概念和用戶類(lèi)型實(shí)體表示,以及如何基于學(xué)習(xí)到的實(shí)體表示進(jìn)行知識(shí)概念推薦。
3.1.1 實(shí)體內(nèi)容特征
在課程資源推薦任務(wù)中,用戶類(lèi)型實(shí)體屬性存在一定的缺失。針對(duì)這個(gè)問(wèn)題,本研究使用Metapath2vec[35]模型進(jìn)行各實(shí)體的預(yù)訓(xùn)練嵌入,最大化不同實(shí)體表示的差距,將對(duì)比學(xué)習(xí)結(jié)果作為實(shí)體的內(nèi)容特征,如圖3所示。
圖3 預(yù)訓(xùn)練實(shí)體內(nèi)容特征Fig.3 Pre-training entity content features
3.1.2 實(shí)體間上下文關(guān)系
除了實(shí)體自身內(nèi)容特征外,實(shí)體間還存在著豐富的異構(gòu)信息,為了有效利用這些不同實(shí)體類(lèi)型間的上下文信息,緩解數(shù)據(jù)稀疏問(wèn)題,在用戶學(xué)習(xí)活動(dòng)中考慮以下關(guān)系:
Mu-c:用戶-學(xué)習(xí)-課程(course,c)鄰接表,用于描述用戶和課程類(lèi)型實(shí)體之間的關(guān)系,鄰接表中每個(gè)交互對(duì)[ui,ck]表示用戶i學(xué)習(xí)過(guò)課程k。
Mu-v:用戶-觀看-視頻(video,v)鄰接表,用于描述用戶和視頻類(lèi)型實(shí)體之間的關(guān)系,鄰接表中每個(gè)交互對(duì)[ui,vk]表示用戶i觀看過(guò)視頻k。
Mc-kc:課程-包含-知識(shí)概念(knowledge concept,kc)鄰接表,用于描述課程與知識(shí)概念類(lèi)型實(shí)體之間的關(guān)系,鄰接表中每個(gè)交互對(duì)[ci,kck]表示課程i包含知識(shí)概念k。
此外,為了使上下文關(guān)系更為緊密,縮減隨機(jī)游走采樣時(shí)間,在原有關(guān)系的基礎(chǔ)上,添加了多跳上下文關(guān)系,例如用戶與知識(shí)概念類(lèi)型實(shí)體間的多跳關(guān)系由用戶與視頻類(lèi)型實(shí)體之間、視頻與知識(shí)概念類(lèi)型實(shí)體之間的關(guān)系組合而成。
Mu-kc:用戶-學(xué)習(xí)-知識(shí)概念鄰接表,用于描述用戶和知識(shí)概念類(lèi)型實(shí)體之間的關(guān)系,鄰接表中每個(gè)交互對(duì)[ui,kck]表示用戶i在學(xué)習(xí)過(guò)程中點(diǎn)擊了知識(shí)概念k這一活動(dòng)。
Mu-t:用戶-學(xué)習(xí)-課程-教師(teacher,t)鄰接表,用于描述用戶和教師類(lèi)型實(shí)體之間的關(guān)系,鄰接表中每個(gè)交互對(duì)[ui,tk]表示用戶i學(xué)習(xí)過(guò)k老師教授的課程。
基于以上關(guān)系構(gòu)建MOOCs 網(wǎng)絡(luò)模式[36],如圖4所示。
圖4 MOOCs網(wǎng)絡(luò)模式Fig.4 MOOCs network model
3.1.3 元路徑選擇
定義1(異構(gòu)信息網(wǎng)絡(luò))異構(gòu)信息網(wǎng)絡(luò)也被稱(chēng)為異構(gòu)圖,是一種特殊的圖[30]。如G=(V,E),其中V和E分別表示節(jié)點(diǎn)與邊的集合。此外,異構(gòu)信息網(wǎng)絡(luò)存在節(jié)點(diǎn)類(lèi)型映射函數(shù)φ:V→A與鏈接類(lèi)型映射函數(shù)φ:E→R,A和R表示異構(gòu)圖中節(jié)點(diǎn)與鏈接類(lèi)型集合,且|A|+|R| >2。示例見(jiàn)圖5。
圖5 MOOCs異構(gòu)信息網(wǎng)絡(luò)Fig.5 Example of MOOCs heterogeneous information network
定義2(元路徑)元路徑(meta-path,mp)代表異構(gòu)圖中各節(jié)點(diǎn)間的復(fù)合關(guān)系[37],定義為(簡(jiǎn)寫(xiě)為A1A2…Al)形式的對(duì)象序列,表示節(jié)點(diǎn)類(lèi)型A1與節(jié)點(diǎn)類(lèi)型Al之間的關(guān)系組合。在本研究中,A1與Al代表同一類(lèi)型。基于元路徑構(gòu)建子圖,即從異構(gòu)圖分離出包含特定語(yǔ)義的子圖,其上所有實(shí)體類(lèi)型、實(shí)體間關(guān)系與元路徑描述一致。如圖6給出的示例。
圖6 基于元路徑的子圖Fig.6 Subgraph based on meta-paths
具體來(lái)說(shuō),描述不同用戶觀看同一視頻關(guān)系的元路徑可以定義為,在該路徑的指導(dǎo)下從包含多個(gè)類(lèi)型節(jié)點(diǎn)的異構(gòu)圖5 中分割出擁有特定語(yǔ)義的子圖。比如u1與u2在該子圖上存在鏈接關(guān)系,可以表示為,子圖的語(yǔ)義表述為u1與u2觀看過(guò)同一個(gè)視頻v6,代表u1與u2在圖結(jié)構(gòu)上存在著相似性。原異構(gòu)圖中包含用戶、課程、知識(shí)概念等多種類(lèi)型實(shí)體,而分離出的子圖僅包含用戶類(lèi)型實(shí)體,圖上實(shí)體間連接關(guān)系為觀看過(guò)同一視頻。
基于元路徑構(gòu)建子圖旨在通過(guò)構(gòu)建子圖減少運(yùn)算規(guī)模,降低圖卷積所需計(jì)算資源。此外,將原有異構(gòu)圖分解為多個(gè)包含特定語(yǔ)義的同構(gòu)圖,能得到更有意義的實(shí)體嵌入[38]。
圖7 子圖采樣聚合Fig.7 Subgraph sampling aggregation
本研究在PinSage 的基礎(chǔ)上進(jìn)行了改進(jìn),采用元路徑的指導(dǎo)的方式對(duì)各目標(biāo)節(jié)點(diǎn)進(jìn)行多次短隨機(jī)游走,根據(jù)L1-范數(shù)選取目標(biāo)節(jié)點(diǎn)的重要鄰居,構(gòu)建相關(guān)子圖。具體流程如算法1所示。
算法1SubgraphSample
使用局部卷積模塊為子圖中節(jié)點(diǎn)生成嵌入方式進(jìn)行目標(biāo)節(jié)點(diǎn)的鄰域信息聚合。節(jié)點(diǎn)表示取決于節(jié)點(diǎn)的輸入特征與該節(jié)點(diǎn)周?chē)膱D結(jié)構(gòu)信息,使用圖卷積平滑各節(jié)點(diǎn)表示,緩解數(shù)據(jù)稀疏問(wèn)題。具體流程如算法2所示。
算法2SubgraphAgg
圖神經(jīng)網(wǎng)絡(luò)最初是為圖分類(lèi)任務(wù)而設(shè)計(jì)的,特征轉(zhuǎn)換、非線性激活等神經(jīng)網(wǎng)絡(luò)操作可能對(duì)推薦任務(wù)貢獻(xiàn)較小[39]?;诖?,本研究在PinSage 提出的局部卷積算法的基礎(chǔ)上進(jìn)行了改進(jìn),去除了非線性激活函數(shù),但考慮到輸入節(jié)點(diǎn)包含豐富的內(nèi)容特征,保留了矩陣特征變化,用于特征提取。
對(duì)每個(gè)目標(biāo)節(jié)點(diǎn)v,首先使用聚合函數(shù)AGGREGATE聚合鄰域節(jié)點(diǎn)信息,具體來(lái)說(shuō),聚合函數(shù)AGGREGATE根據(jù)相鄰節(jié)點(diǎn)權(quán)重α進(jìn)行鄰域特征集合的加權(quán)求和,結(jié)果表示為節(jié)點(diǎn)v的鄰域表示hN(v)。其次將hN(v)與目標(biāo)節(jié)點(diǎn)v的特征hv進(jìn)行拼接,并通過(guò)矩陣變化進(jìn)行特征提取,最后進(jìn)行歸一化操作,即生成包含了節(jié)點(diǎn)v自身以及節(jié)點(diǎn)v局部圖鄰域的嵌入表示zv。
每應(yīng)用一次鄰域卷積聚合操作(算法2),會(huì)得到新的節(jié)點(diǎn)表示,堆疊多個(gè)卷積,可獲得關(guān)于目標(biāo)節(jié)點(diǎn)v的多階局部鄰域信息。如卷積層數(shù)k=2 時(shí)每個(gè)節(jié)點(diǎn)可以最多根據(jù)其2 階鄰接點(diǎn)的內(nèi)容信息學(xué)習(xí)更新自身的嵌入表示。子圖局部卷積過(guò)程見(jiàn)圖7。
不同子圖生成不同的節(jié)點(diǎn)表示,使用注意力機(jī)制自適應(yīng)地融合來(lái)自不同子圖的實(shí)體表示。聚合子圖過(guò)程可見(jiàn)圖7。不同的子圖對(duì)于每個(gè)用戶/知識(shí)概念可能具有不同的權(quán)重,在聚合來(lái)自不同元路徑的用戶/知識(shí)概念表示時(shí),對(duì)每個(gè)用戶/知識(shí)概念區(qū)分不同元路徑的重要性進(jìn)行加權(quán)合并是非常有必要的。在本研究中,將使用如下的注意力計(jì)算機(jī)制計(jì)算用戶/知識(shí)概念對(duì)不同子圖的注意力得分:
在使用注意力機(jī)制學(xué)習(xí)到知識(shí)概念與用戶的最終表示Zkc與Zu后,使用擴(kuò)展矩陣分解的方法計(jì)算偏好分?jǐn)?shù)為用戶進(jìn)行知識(shí)概念推薦。預(yù)測(cè)評(píng)分過(guò)程可見(jiàn)圖7。
用戶u關(guān)于知識(shí)概念kc的偏好分?jǐn)?shù)可以通過(guò)如下的擴(kuò)展矩陣分解框架計(jì)算:
本研究使用BPR(Bayesian personalized ranking)進(jìn)行模型的優(yōu)化,基于假設(shè):相比較于用戶未與之交互的知識(shí)概念列表中的隨機(jī)知識(shí)概念,用戶已經(jīng)學(xué)習(xí)過(guò)的知識(shí)概念應(yīng)該得到更高的分?jǐn)?shù)。BPR 的損失函數(shù)表述如下:
其中,(u,i,j)為一個(gè)三元組,包括用戶u、正樣本i(已交互知識(shí)概念)和負(fù)樣本j(隨機(jī)選取的知識(shí)概念)。通過(guò)計(jì)算用戶在正樣本和負(fù)樣本之間的偏好差異,σ表示sigmoid 函數(shù),λ是L2 范數(shù)的正則化參數(shù),Θ表示要學(xué)習(xí)的參數(shù)集。
算法3mini-batch訓(xùn)練方法
本研究使用來(lái)自XuetangX平臺(tái)提供的MoocCube數(shù)據(jù)集[31]進(jìn)行實(shí)驗(yàn)。在這項(xiàng)工作中,使用文獻(xiàn)[19]所提供清洗后的MoocCube 小規(guī)模數(shù)據(jù)集(Mooc-Cube_small,MoocCube_s)進(jìn)行推薦性能對(duì)比實(shí)驗(yàn)。其次使用MoocCube 大規(guī)模數(shù)據(jù)集(MoocCube_big,MoocCube_b)進(jìn)行補(bǔ)充實(shí)驗(yàn),進(jìn)一步體現(xiàn)模型的泛化性能及其在資源利用率方面的優(yōu)勢(shì)。其中2017-01-01 到2019-10-31 的用戶活動(dòng)用于訓(xùn)練,2019-11-01 到2019-12-31 的用戶活動(dòng)用于測(cè)試。MoocCube_s 數(shù)據(jù)集總計(jì)2 005 個(gè)用戶、210 037 個(gè)知識(shí)概念、600 門(mén)課程、22 403 個(gè)視頻、138 位教師以及這些不同類(lèi)型實(shí)體之間的關(guān)系。用戶和知識(shí)概念之間總共有930 553次交互,858 072次交互作為訓(xùn)練集,剩余72 481次作為測(cè)試集。MoocCube_b 數(shù)據(jù)集總計(jì)17 877 個(gè)用戶、24 289 個(gè)知識(shí)概念、649 門(mén)課程、29 379 個(gè)視頻、1 599位教師以及這些不同類(lèi)型實(shí)體之間的關(guān)系。用戶和知識(shí)概念之間總共有7 625 850 次交互,5 944 187 次交互作為訓(xùn)練集,剩余1 681 663 次作為測(cè)試集。數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)如表1所示。
表1 MoocCube數(shù)據(jù)集統(tǒng)計(jì)Table 1 Statistics of MoocCube dataset
本研究使用如下常用的推薦系統(tǒng)評(píng)估指標(biāo)評(píng)估模型性能。命中率(hit rate,HR),一個(gè)基于召回的指標(biāo),用于反映推薦序列中是否包含了用戶真正點(diǎn)擊的知識(shí)概念,強(qiáng)調(diào)預(yù)測(cè)的準(zhǔn)確性。歸一化折損累計(jì)增益(normalized discounted cumulative gain,NDCG),一個(gè)用來(lái)衡量排序質(zhì)量的指標(biāo),用于反映排序列表與用戶真實(shí)交互列表的差距。平均倒數(shù)排名(mean reciprocal rank,MRR),用于反映用戶真正點(diǎn)擊的知識(shí)概念是否在推薦列表更靠前的位置。ROC 曲線下面積(area under curve,AUC),用于反映模型的相對(duì)排序能力,即評(píng)估正樣本是否排在負(fù)樣本之前。具體來(lái)說(shuō),為測(cè)試集中每一組用戶-知識(shí)概念交互隨機(jī)抽樣分配99 個(gè)負(fù)實(shí)例,使用各個(gè)模型輸出各組100個(gè)實(shí)例的預(yù)測(cè)分?jǐn)?shù)(1個(gè)正例外加99個(gè)反例),根據(jù)預(yù)測(cè)分?jǐn)?shù)大小倒序生成推薦列表表示推薦列表中排名第i位的知識(shí)概念,k設(shè)置為10、20。
N是用于測(cè)試的集合總數(shù),Tu表示正樣本,即用戶真實(shí)點(diǎn)擊的知識(shí)概念,I(x)是一個(gè)指示函數(shù),如果Tu出現(xiàn)在推薦列表中I(x)=1,否則I(x)=0。
式中,Z為idcg(idea discounted cumulative gain)。
式中,ranki是指正樣本即已交互知識(shí)概念在推薦列表中的排名位置。
式中,m、n分別為正負(fù)樣本數(shù)。
首先,研究鄰居節(jié)點(diǎn)數(shù)量的設(shè)置。實(shí)驗(yàn)結(jié)果如圖8 所示。本研究設(shè)置了不同鄰居節(jié)點(diǎn)數(shù)量(50、100、150、200)進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)當(dāng)鄰居節(jié)點(diǎn)數(shù)量為100可獲得最佳性能。
圖8 不同鄰居節(jié)點(diǎn)數(shù)量下的性能表現(xiàn)Fig.8 Performance of different number of neighbor nodes
其次,研究采樣聚合層數(shù)如何影響模型的性能。如圖9 所示,所提出模型的性能隨著層數(shù)(即1、2、3、4)的不同而變化。實(shí)驗(yàn)表明,采樣聚合層的最佳數(shù)量約為3。
圖9 不同卷積層數(shù)下的性能表現(xiàn)Fig.9 Performance of different number of convolutional layers
再次,研究節(jié)點(diǎn)采樣次數(shù)如何影響模型的性能。如圖10 所示,所提出模型的性能隨節(jié)點(diǎn)采樣次數(shù)(500、1 000、1 500、2 000)的不同而變化。實(shí)驗(yàn)表明,采樣次數(shù)1 000即可取得較好效果。
圖10 不同采樣次數(shù)下的性能表現(xiàn)Fig.10 Performance of different number of walks
最后,研究dropout 如何影響模型的性能。如圖11 所示,所提出模型的性能隨dropout 大?。?.1~0.9)的不同而變化。實(shí)驗(yàn)表明,dropout大小為0.5 時(shí)取得最佳效果。
圖11 不同dropout大小下的性能表現(xiàn)Fig.11 Performance of different dropout
為更好地理解和研究MoocSage 中各模塊的貢獻(xiàn),比較MoocSage 變體,以驗(yàn)證所提出模型的主要組成部分的有效性。MoocSage 使用自適應(yīng)矩估計(jì)(adaptive moment estimation,Adam)優(yōu)化器。
MoocSage-a:MoocSage 的變體,移除attention層,以拼接的方式融合各節(jié)點(diǎn)在不同子圖下的表示。
MoocSage-b:MoocSage 的變體,使用Moocir 提出的注意力機(jī)制,即在計(jì)算注意力得分時(shí)考慮用戶、知識(shí)概念的潛在特征。
MoocSage-c:MoocSage的變體,在局部卷積模塊中保留非線性激活函數(shù)。
MoocSage-d:MoocSage 的變體,使用隨機(jī)梯度下降(stochastic gradient descent,SGD)優(yōu)化器。
MoocSage-e:MoocSage的變體,采用手工處理方法解決用戶屬性缺失問(wèn)題[17-19],將知識(shí)概念的名稱(chēng)作為語(yǔ)料,使用Word2vector[32]進(jìn)行知識(shí)概念類(lèi)型節(jié)點(diǎn)的表示學(xué)習(xí),用戶向量為用戶所點(diǎn)擊的知識(shí)概念向量的平均值。
MoocSage-f:MoocSage的變體,去除矩陣特征變化操作,使用拼接的方式融合目標(biāo)節(jié)點(diǎn)自身與鄰域信息。
由異構(gòu)信息網(wǎng)絡(luò)引出的潛在元路徑可能是無(wú)限的,但并不是每條元路徑都與特定任務(wù)相關(guān)。因此,本研究使用文獻(xiàn)[40]中所提方法進(jìn)行元路徑的選擇,將路徑選擇問(wèn)題表述為:給定一組預(yù)定義的候選元路徑集MP={mp1,mp2,…,mpl},選擇一個(gè)路徑子集MPselected?MP,使得任務(wù)的泛化性能最大化。通過(guò)分析異構(gòu)信息網(wǎng)絡(luò)各實(shí)體間關(guān)系,本文選擇元路徑{UKU,UCU,UCTCU,UVU}來(lái)表征用戶對(duì)之間的相關(guān)性,選擇{KUK,KCK}表征知識(shí)概念對(duì)之間的相關(guān)性。具體來(lái)說(shuō),給定預(yù)定義的候選元路徑集MP={mp1,mp2,…,mpl},研究用戶相關(guān)元路徑及其組合的性能。如表2所示,各元路徑表現(xiàn)出不同的推薦性能。其中單條元路徑表現(xiàn)最佳的是元路徑{UCU},其次是 元路徑{UVU}、{UKU},最后是 元路徑{UCTCU}。多條元路徑組合方面,路徑子集{UKU,UCU,UCTCU,UVU} 綜合表現(xiàn)最佳。故本文選擇路徑子集{UKU,UCU,UCTCU,UVU}進(jìn)行相關(guān)實(shí)驗(yàn)。
表2 MoocSage在不同元路徑集上性能對(duì)比Table 2 Performance comparison of MoocSage on different meta-path sets
本研究與以下基線進(jìn)行比較,用以評(píng)估MoocSage的性能。
Node2vec[41]:綜合考慮深度優(yōu)先搜索鄰域和廣度優(yōu)先搜索鄰域的圖嵌入方法。采用有偏的隨機(jī)游走采樣頂點(diǎn)的近鄰序列,優(yōu)化的目標(biāo)是給定每個(gè)頂點(diǎn)條件下,最大化其近鄰頂點(diǎn)出現(xiàn)的概率。Node2vec最初是為嵌入同構(gòu)圖而設(shè)計(jì)的,本研究忽略節(jié)點(diǎn)與邊的異構(gòu)性,在整個(gè)異構(gòu)圖上運(yùn)行隨機(jī)游走采樣語(yǔ)料,用于訓(xùn)練各節(jié)點(diǎn)嵌入。
Metapath2vec[35]:基于元路徑的表示學(xué)習(xí)方法,與Node2vec不同的是它利用基于元路徑的隨機(jī)游走來(lái)構(gòu)建節(jié)點(diǎn)的異構(gòu)鄰域,以此進(jìn)行節(jié)點(diǎn)嵌入的學(xué)習(xí)。
Bpr[42]:矩陣分解方法,以貝葉斯方式優(yōu)化推薦任務(wù)的成對(duì)排名損失。
Ackrec[17]:基于圖卷積的協(xié)同過(guò)濾算法。將MOOCs數(shù)據(jù)建模為異構(gòu)圖,使用元路徑進(jìn)行用戶(知識(shí)概念)的向量表示。
Moocir[19]:基于圖卷積的協(xié)同過(guò)濾算法。在Ackrec的基礎(chǔ)上提出并研究了不同的注意力機(jī)制與目標(biāo)函數(shù),構(gòu)建隱式反饋模型。
PinSage[33]:基于圖采樣聚合的協(xié)同過(guò)濾算法,結(jié)合了隨機(jī)游走與圖采樣聚合生成節(jié)點(diǎn)的嵌入表示向量。同時(shí)考慮了圖結(jié)構(gòu)和節(jié)點(diǎn)的特征信息。
Ngcf(neural graph collaborative filtering)[43]:基于圖卷積的協(xié)同過(guò)濾算法,顯式建模user-item 間高階連接性,旨在將user-item 的交互信息集成到Embedding中,完成二部圖上的高階連通性表達(dá)建模。
Lightgcn(light graph convolution network)[39]:基于圖卷積的推薦算法,在Ngcf 的基礎(chǔ)上移出非線性特征變換,保證預(yù)測(cè)精準(zhǔn)度的同時(shí)加快了運(yùn)行速度。
UltraGCN(ultra graph convolution network)[44]:基于圖神經(jīng)網(wǎng)絡(luò)的推薦系統(tǒng)核心在于通過(guò)消息傳播機(jī)制收集信息,Lightgcn 這類(lèi)多層卷積堆疊的方式可能會(huì)引入噪聲、有歧義的關(guān)系,易引發(fā)過(guò)度平滑效應(yīng)。UltraGCN 在Lightgcn 的基礎(chǔ)上進(jìn)一步簡(jiǎn)化,跳過(guò)了無(wú)限的消息傳播層進(jìn)而進(jìn)行更高效的推薦。相比顯式的消息傳播,UltraGCN 通過(guò)設(shè)定收斂方式構(gòu)建損失函數(shù),從而避免了多層卷積堆疊帶來(lái)的問(wèn)題。
Node2vec_mf(Node2vec_Matrix Factorization)、Metapath2vec_mf(Metapath2vec_Matrix Factorization):Node2vec、Metapath2vec 的變體。Node2vec、Metapath2vec等模型最初是為了節(jié)點(diǎn)分類(lèi)任務(wù)設(shè)計(jì),為充分發(fā)揮其性能以更公平地進(jìn)行比較,參考文獻(xiàn)[30]中的方法,將Node2vec、Metapath2vec 學(xué)習(xí)到的節(jié)點(diǎn)嵌入表示集成到擴(kuò)展矩陣分解模型中進(jìn)行聯(lián)合優(yōu)化,并引入可學(xué)習(xí)嵌入作為各實(shí)體的潛在表示。
Node2vec、Metapath2vec、PinSage、Ngcf 使用深度圖庫(kù)(deep graph library,DGL)[45]中的實(shí)現(xiàn),Node-2vec、Metapath2vec各節(jié)點(diǎn)游走次數(shù)設(shè)置為500,游走長(zhǎng)度設(shè)置為100。Bpr、Moocir、Lightgcn、Ackrec 參照文獻(xiàn)[17,19,39]所提供代碼實(shí)現(xiàn),Node2vec_mf、Metapath2vec_mf 參考[30,33,41]等文獻(xiàn)所提供代碼實(shí)現(xiàn)。
4.7.1 模型變體實(shí)驗(yàn)分析
表3 總結(jié)了MoocSage相關(guān)變體在不同指標(biāo)下的性能。可得出以下結(jié)論:
表3 MoocSage與變體模型的性能對(duì)比(MoocCube_s數(shù)據(jù)集)Table 3 Performance comparison of MoocSage and variant models(MoocCube_s dataset)
(1)注意力機(jī)制可有效融合各實(shí)體在不同子圖下的表示。
(2)計(jì)算注意力得分時(shí),額外考慮用戶、知識(shí)概念的潛在特征,一定程度上提升模型在HR 指標(biāo)上的性能表現(xiàn),但模型復(fù)雜度隨之提升,性價(jià)比較低。
(3)非線性激活函數(shù)降低了模型的有效性,嚴(yán)重影響推薦性能。
(4)相較于Adam 優(yōu)化器,SGD 優(yōu)化器收斂速度慢,效果一般。
(5)相較于使用手工處理方法進(jìn)行相關(guān)節(jié)點(diǎn)的表示,基于Metapath2vec這類(lèi)的預(yù)訓(xùn)練方法能更好地區(qū)分各節(jié)點(diǎn)的表示,從而大幅提升下游推薦任務(wù)的性能。
(6)矩陣特征變化有助于推薦性能的提升,主要原因在于輸入特征較為復(fù)雜,加入矩陣特征變化可進(jìn)行有效的特征提取。
4.7.2 模型推薦性能對(duì)比分析
從表4、表5 可以觀察到,所提MoocSage 在MoocCube_s、MoocCube_b數(shù)據(jù)集上的表現(xiàn)均明顯優(yōu)于對(duì)比方法。此外,由于MoocCube_b數(shù)據(jù)量過(guò)大,現(xiàn)有計(jì)算資源遠(yuǎn)遠(yuǎn)不能滿足Bpr、Ackrec、Moocir、Ngcf、Lightgcn 等模型的內(nèi)存需求,也無(wú)法在有價(jià)值的時(shí)間內(nèi)得到AUC指標(biāo)。結(jié)合實(shí)驗(yàn)結(jié)果分析各模型推薦性能,可得到如下結(jié)論:
表4 MoocSage與基線模型的性能對(duì)比(MoocCube_s數(shù)據(jù)集)Table 4 Performance comparison of MoocSage and baseline models(MoocCube_s dataset)
表5 MoocSage與基線模型的性能對(duì)比(MoocCube_b數(shù)據(jù)集)Table 5 Performance comparison of MoocSage and baseline models(MoocCube_b dataset)
(1)Bpr的表現(xiàn)顯著優(yōu)于Node2vec與Metapath2vec,但遠(yuǎn)弱于Node2vec_mf、Metapath2vec_mf。這表明,圖表示學(xué)習(xí)可挖掘出有效的用戶與知識(shí)概念間的豐富的上下文信息,結(jié)合擴(kuò)展矩陣分解能進(jìn)一步提升下游推薦任務(wù)的性能。相比較Bpr,Node2vec_mf、Metapath2vec_mf的提升來(lái)自于用戶與知識(shí)概念之間的上下文關(guān)系的有效利用。
(2)PinSage應(yīng)用局部圖卷積算法,具有較強(qiáng)的可擴(kuò)展性,但僅考慮用戶-知識(shí)概念間交互,容易受到數(shù)據(jù)稀疏問(wèn)題的影響,推薦性能不如其他基于異構(gòu)圖的模型。
(3)Moocir 相較Ackrec,顯著提高預(yù)測(cè)和推薦性能,隱式反饋方法在點(diǎn)擊預(yù)測(cè)任務(wù)上的表現(xiàn)更好。
(4)Ngcf 借助高階連通性將用戶和項(xiàng)目進(jìn)行關(guān)聯(lián),能夠有效提取協(xié)作信號(hào),相較于其他對(duì)比方法,在AUC 指標(biāo)上表現(xiàn)最好,擁有較強(qiáng)的正負(fù)樣本區(qū)分能力。
(5)Lightgcn在NDCG、MRR指標(biāo)上優(yōu)于Ngcf,表明去除非線性變換能在一定程度上提升排序質(zhì)量。
4.7.3 模型捕獲交互信息的能力對(duì)比分析
根據(jù)所能捕獲實(shí)體間交互信息的復(fù)雜程度,將各模型分為兩大類(lèi),結(jié)合實(shí)驗(yàn)結(jié)果對(duì)各模型捕獲交互信息的能力進(jìn)行對(duì)比分析。
(1)具有捕獲user-item交互信息能力的模型
①Bpr 利用內(nèi)積捕獲user-item 一階交互信息,但易受到數(shù)據(jù)稀疏問(wèn)題的影響。
②Ngcf 通過(guò)多層堆疊捕獲user-item 多階交互信息,可有效緩解數(shù)據(jù)稀疏問(wèn)題。但受限于計(jì)算資源,較難進(jìn)行高階交互信息的捕獲。
③Lightgcn 在Ngcf 的基礎(chǔ)上進(jìn)行改進(jìn),簡(jiǎn)化模型,去除無(wú)關(guān)結(jié)構(gòu),進(jìn)一步提升捕獲user-item 多階交互信息的能力。但受限于全圖卷積算法,高階交互信息捕獲成本仍不能得到有效降低。
④UltraGCN 根據(jù)節(jié)點(diǎn)的度計(jì)算系數(shù),采樣鄰域節(jié)點(diǎn),減少可訓(xùn)練參數(shù)的同時(shí)將卷積層數(shù)壓縮為一層。高階交互信息捕獲成本得到有效降低。但受限于采樣方法和較多的超參數(shù),訓(xùn)練較為困難,最終結(jié)果一般。
⑤PinSage 基于隨機(jī)游走采樣方法捕獲user-item多階交互信息,具有高可擴(kuò)展性。在有限計(jì)算資源下,仍能通過(guò)調(diào)整隨機(jī)游走策略捕獲高階交互信息。但對(duì)實(shí)體信息特征要求較高,在傳統(tǒng)推薦任務(wù)中效果表現(xiàn)一般。
(2)具有捕獲user-item 及其以外的其他類(lèi)型實(shí)體間的交互信息能力的模型
①Node2vec 通過(guò)忽略各實(shí)體類(lèi)型、實(shí)體間關(guān)系捕獲user-item 交互信息及其以外其他交互信息,實(shí)體嵌入混亂,推薦效果一般。
②Metapath2vec 在元路徑的指導(dǎo)下進(jìn)行隨機(jī)游走采樣,構(gòu)建具有特定語(yǔ)義信息的訓(xùn)練語(yǔ)料,有效捕獲user-item 及其以外的其他類(lèi)型實(shí)體間的交互信息,此外還可通過(guò)調(diào)整滑動(dòng)窗口捕獲多階交互信息。但Metapath2vec 并未根據(jù)實(shí)體間關(guān)系區(qū)分交互信息類(lèi)型,推薦效果一般。
③Ackrec、Moocir在元路徑的指導(dǎo)下基于全圖卷積算法進(jìn)行相關(guān)實(shí)體間信息交互,通過(guò)層數(shù)堆疊的方式捕獲各實(shí)體間高階交互信息。但受限于全圖卷積算法,捕獲高階交互信息成本較高。
本文提出的MoocSage 在元路徑的指導(dǎo)下進(jìn)行隨機(jī)游走采樣,可有效捕獲user-item 及其以外的其他類(lèi)型實(shí)體間的高階交互信息。
4.7.4 模型資源利用率對(duì)比分析
圖12 總結(jié)了各模型在MoocCube_s 數(shù)據(jù)集上的內(nèi)存消耗對(duì)比。將各模型分為4類(lèi),結(jié)合實(shí)驗(yàn)結(jié)果對(duì)模型資源利用率進(jìn)行對(duì)比分析。
圖12 MoocSage與對(duì)比模型在MoocCube數(shù)據(jù)集上的內(nèi)存使用比較Fig.12 Comparison of memory usage between MoocSage and other models on MoocCube datasets
(1)基于矩陣分解的推薦模型
矩陣分解模型的主要思想是將user-item 交互矩陣分解為user和item特征矩陣,小數(shù)據(jù)集計(jì)算所需內(nèi)存約為2.4 GB。但因涉及矩陣運(yùn)算,隨著user-item交互矩陣的增加,所需計(jì)算資源呈倍數(shù)級(jí)上升,無(wú)法完成大規(guī)模推薦任務(wù)。算法復(fù)雜度為O(mnd2),其中m、n分別代表user、item數(shù),d為user、item特征維度。
(2)基于表示學(xué)習(xí)的推薦模型
基于表示學(xué)習(xí)的推薦方法一般分為兩步:①構(gòu)建語(yǔ)料;②使用skipgram 模型進(jìn)行相關(guān)實(shí)體嵌入,最大化相鄰實(shí)體出現(xiàn)概率。基于表示學(xué)習(xí)的推薦方法所需計(jì)算資源與語(yǔ)料、batch-size 相關(guān)。對(duì)于Mooc-Cube_s 數(shù)據(jù)集,Node2vec 效果到達(dá)最佳計(jì)算所需內(nèi)存約為4.91 GB,Metapath2vec 根據(jù)實(shí)體間不同上下文關(guān)系構(gòu)建語(yǔ)料,權(quán)重矩陣規(guī)模較Node2vec 有所擴(kuò)大,效果到達(dá)最佳計(jì)算所需內(nèi)存約為13.78 GB。對(duì)于MoocCube_b 數(shù)據(jù)集,調(diào)整至現(xiàn)有計(jì)算資源極限,Node2vec與Meta-path2vec推薦效果仍較差。算法復(fù)雜度為O(kv),k為中心詞的個(gè)數(shù),v代表批處理大小。
(3)混合推薦模型
將由Node2vec、Metapath2vec 學(xué)習(xí)到的節(jié)點(diǎn)嵌入集成到擴(kuò)展矩陣分解模型中進(jìn)行聯(lián)合優(yōu)化。Node-2vec_mf計(jì)算所需內(nèi)存約為9.89 GB,因Metapath2vec學(xué)習(xí)到的節(jié)點(diǎn)嵌入更為復(fù)雜,Metapath2vec_mf 計(jì)算所需內(nèi)存約為14.58 GB。因涉及矩陣運(yùn)算,無(wú)法完成大規(guī)模推薦任務(wù)。算法復(fù)雜度與基于矩陣分解的推薦模型相同。
(4)基于圖神經(jīng)網(wǎng)絡(luò)的推薦模型
①基于全圖卷積的推薦模型,需要在訓(xùn)練期間對(duì)全圖拉普拉斯算子進(jìn)行操作,如Ngcf、Lightgcn、Ackrec、Moocir,所需計(jì)算資源隨數(shù)據(jù)量、層數(shù)的增加曾指數(shù)級(jí)上升,無(wú)法完成大規(guī)模推薦任務(wù)。算法復(fù)雜度為,其中k代表卷積層數(shù),Si為i層卷積操作涉及到的節(jié)點(diǎn)個(gè)數(shù),約為1+N+N2+…+Nk。
②基于局部卷積的推薦模型,通過(guò)構(gòu)建子圖的方式進(jìn)行局部卷積操作,具有高可擴(kuò)展性,所需計(jì)算資源與圖大小、batch-size 相關(guān),可有效完成大規(guī)模推薦任務(wù)。UltraGCN、PinSage 僅考慮user-item 交互,計(jì)算所需內(nèi)存分別為1.5 GB、1.7 GB。算法復(fù)雜度,其中b為batch-size。由于采樣M個(gè)節(jié)點(diǎn)而不是全部節(jié)點(diǎn),故k層需要采樣的節(jié)點(diǎn)個(gè)數(shù)就變?yōu)?+M+M2+…+Mk,其中Mk?Nk。
本文所提MoocSage 通過(guò)構(gòu)建異構(gòu)圖引入用戶、課程資源之間的上下文關(guān)系信息,在保持高性能的同時(shí)有著極高的存儲(chǔ)效率,算法復(fù)雜度與Pinsage 相同,兩個(gè)數(shù)據(jù)集任務(wù)計(jì)算所需內(nèi)存分別為2.3 GB、3.1 GB。特別是與Moocir 相比,MoocCube_s 數(shù)據(jù)集任務(wù)內(nèi)存需求降低了近1 000%,性能提升近10%。相比Lightgcn,性能提升2%,內(nèi)存需求降低了近500%。
針對(duì)傳統(tǒng)推薦方法無(wú)法有效擴(kuò)展到大規(guī)模課程資源推薦這一問(wèn)題,本文在PinSage 的基礎(chǔ)上進(jìn)行了擴(kuò)展,提出了一種可在異構(gòu)圖上進(jìn)行user2item 推薦的端到端的神經(jīng)網(wǎng)絡(luò)模型MoocSage。為了驗(yàn)證該方法的有效性,分析了多個(gè)模型變體,研究了模型的參數(shù),并與現(xiàn)有研究進(jìn)行了比較。從結(jié)果中可以得出結(jié)論,MoocSage 在保證高性能的同時(shí)大幅提升內(nèi)存使用效率,可有效完成課程資源推薦任務(wù),且具有高可擴(kuò)展性。
隨機(jī)游走方法采樣出的樣本并不是均勻分布,節(jié)點(diǎn)被選中的概率和節(jié)點(diǎn)的度成正比關(guān)系,下一跳的選擇更傾向于高度節(jié)點(diǎn),容易導(dǎo)致對(duì)高度節(jié)點(diǎn)偏差。接下來(lái)將嘗試尋找更加高效且準(zhǔn)確的加權(quán)手段來(lái)修正這一問(wèn)題。