樊海瑋,張銳馳,安毅生,秦佳杰
(長安大學 信息工程學院,西安 710064)
在線教育蓬勃發展,數字化學習資源呈現出資源海量的特征。學習者在有了諸多選擇的同時,也不可避免地面對嚴重的知識過載和學習迷航問題。為解決此問題,需要依靠個性化學習和適應性推薦為學習者導航。
適應性推薦是個性化學習過程中的核心任務,經典的推薦算法依據群體的歷史行為信息與相似性關系發掘學習者的潛在興趣偏好[1]。此類算法僅將學習者與資源的交互信息作為輸入,數據的稀疏性使推薦存在一定的缺陷。綜上,傳統推薦算法存在以下缺陷:1)交互數據的稀疏性會影響推薦性能并且存在冷啟動問題;2)在推薦過程中無法針對學習者不同的學習目標作出適應性推薦。
為了解決上述問題,研究者通過引入不同的輔助信息來提高推薦性能。知識圖譜包含了實體間豐富的語義關聯關系并具有信息多樣且適用性強的特點,可以為推薦系統提供豐富的輔助信息[2]。其特有的結構信息可以刻畫學習者與學習資源在知識層面上的聯系,在推薦過程中不僅能考慮到學習者的興趣偏好,也可以將資源間的關聯作為推薦依據。故將知識圖譜引入推薦算法,旨在:1)知識圖譜中包含了項目之間的語義相關性,可用于發現項目之間的隱含關系,提高推薦的準確率;2)利用連接圖譜實體的不同的關系類型可以合理擴展用戶興趣偏好以及特征,增加推薦結果的多樣性;3)知識圖譜連接了用戶的交互項目與被推薦項目,這使推薦算法具有可解釋性。本文基于知識圖譜,利用學習者特征在知識圖譜上的傳播以及學習資源在知識圖譜中的鄰居信息,提出一種融合知識圖譜鄰居雙端的學習資源推薦算法KNDP(Knowledge Neighbor Double Polymerization),并在公開數據集MOOPer 上通過對比實驗分析,驗證了該算法的有效性。
推薦算法的目標是從海量數據中提取用戶所感興趣的信息,是解決“信息過載”問題的有效工具之一[3]。王根生等[4]將用戶的學習行為轉化成用戶對資源的評分并改進用戶的相似度計算來解決推薦系統中潛在的數據稀疏和冷啟動問題;Zhuhadar等[5]利用學習材料構建基于領域本體的E-learning 資源知識庫,將基于內容和基于規則的方法相結合,為用戶提供混合推薦;趙繼春等[6]構建了一種基于領域本體與學習者屬性信息的特征模型,以學習特征模型為基礎設計一種融合相似度的協同過濾推薦方法;聶黎生[7]提出了基于行為分析的學習資源推薦算法,挖掘學習者行為數據并將其格式化融入協同過濾推薦中。在上述文獻中,為了克服傳統推薦算法所存在的缺陷,研究者引入了不同類型的輔助信息以提高推薦性能。然而,這些輔助信息僅包含用戶或項目的孤立特征。事實上,無論是用戶與項目間,還是項目與項目間均存在豐富的關聯。為推薦算法引入知識圖譜可以通過實體間豐富的關系獲得用戶與項目之間的細粒度關系,從而提升推薦的性能。
基于知識圖譜的推薦主要分為兩類:基于嵌入方法和基于路徑方法的推薦[8]。基于嵌入方法將知識圖譜中的節點與邊映射為低緯度的稠密向量,以豐富用戶與物品的表示信息。例如,吳璽煜等[9]使用知識圖譜表示學習方法,將語義數據嵌入到低維空間,并將物品語義信息融入協同過濾推薦;陳平華等[10]使用知識圖譜表示學習把項目實體嵌入低維向量空間,向矩陣分解模型中加入實體信息,計算實體之間的語義相似性,來提升推薦性能。上述基于嵌入方法的推薦方式首先需要利用表示學習將知識圖譜中的節點和邊轉化為向量,其中經典的表示學習方法有TransE(Translating Embeddings)[11]與TransR(Translation in the corresponding Relation space)[12]等。此類嵌入方法側重于建立嚴格的語義相關性,故更適用于連接預測或知識補全等圖內應用而不是推薦算法。
基于路徑方法的推薦的主要思想是挖掘基于圖譜用戶、項目之間多種連接關系,例如,Hu等[13]通過卷積神經網絡針對不同的元路徑采樣得到路徑的嵌入表示后構造基于元路徑的用戶偏好特征,最后結合神經矩陣分解(Neural Matrix Factorization,NeuMF)模型[14]構建推薦系統;Sun等[15]采用元圖的方式替代元路徑對知識圖譜進行特征提取,相較于元路徑更能描述復雜的特征信息。然而此類算法需要先從數據中抽取和構建大量的元路徑(元圖),當圖譜或者推薦場景發生變化時需要對其重新構造,并且元路徑或元圖主要依靠手工抽取,在實際場景中難以實現最優。
上述方法通過引入知識圖譜提升推薦算法的性能,卻未充分利用知識圖譜的信息。RippleNet[16]在給定與用戶交互過的項目后,通過將此項目的向量同用戶周圍的n跳項目進行交互計算最終得到用戶的嵌入表示。知識圖譜卷積網絡(Knowledge Graph Convolutional Network,KGCN)[17]能夠更好地捕捉項目的鄰域信息,針對特定用戶與圖譜中的特定關系給出鄰居節點與該節點聚合的權重,用加權結果表示鄰居節點,完成項目向量的計算。這兩種模型均提供了端到端的推薦方法,使用戶(項目)以及知識圖譜實體與關系的嵌入表示成為可學習向量。但上述兩種模型僅從用戶或項目一端出發,沒有同時考慮兩端的信息,而且RippleNet 在傳播用戶偏好時其傳播方向是隨機的,故并不能充分表示學習者特征。
綜上所述,本文提出的KNDP,以學習者為用戶端,以學習資源為項目端,將學習者的特征在知識圖譜上有選擇性地傳播并控制每一跳傳播的權重,以獲得學習者的嵌入表示;在聚合學習資源的一階或高階鄰居節點時,通過用戶端的學習者嵌入表示來為其分配聚合權重,來擴充其嵌入表示;最后通過得到的學習者和學習資源嵌入表示計算兩者的交互概率。
在為學習者推薦學習資源時,學習者和學習資源的集合分別設置為S={s1,s2,…,sn}和L={l1,l2,…,lm},兩者的交互矩陣定義為M=(msl),其中s∈S,l∈L。當學習者s與學習資源l之間存在交互行為且實踐結果通過時msl=1,否則msl=0;如沒有發生過交互msl=-1。知識圖譜由三元組{(h,r,t)|h∈E,r∈R,t∈E}構成,其中(h,r,t)表示從頭實體h通過關系r連接到尾實體t,E和R分別表示知識圖譜中的實體集合與關系集合。對于學習者s∈S,選取在交互矩陣中msl=1 的所有資源集合Ls作為種子集。另外K表示從集合Ls出發到達學習目標(例如msl=0 的資源)的中間實體集合。給定交互矩陣M和知識圖譜G計算=F(s,l,M,G,Θ),其中是學習者與學習資源之間交互概率,Θ表示預測函數F的參數。
KNDP 模型在學習者角度,利用知識圖譜G中實體間的關系找到msl=1 的節點與msl=0 的節點之間的實體集合K,聚合該集合中的實體及其鄰居信息,其特征便通過知識圖譜傳播到了目標節點,據此得到學習者的表示。在學習資源角度,在鄰居實體集合N(l)中以固定大小采樣作為此節點的接受域,并以一定的權重與l聚合得到學習資源的嵌入表示,最終通過全連接層得到兩者的交互概率。本文模型的總體框架如圖1 所示。
從用戶端出發,在計算學習者嵌入表示的過程中,通過在知識圖譜上將學習者已有的知識特征向目標節點傳播,并在此過程中更新學習者向量以提高用戶端表示信息的質量,過程如圖2 所示。
2.2.1 計算實體的融合權重
給定交互矩陣與知識圖譜G,對于學習者s,獲得交互矩陣中msl=1 的學習資源lb與msl=0 的學習資源lg。每一個lb都可以被表示為向量形式lb∈Rd,其中d表示向量的維度。在為其初始化時,可以采用獨熱編碼[18]或詞袋模型[19]。在知識圖譜G中得到以學習資源lb為起點,以學習資源lg為終點構成的學習資源集合Ks={lb,lb+1,…,lg-1,lg}。將l∈Ks的q階鄰居節點定義為:
其中:q=1,2,…,n。對于實體l找到其在知識圖譜G上與其一階鄰居所形成的三元組集合Ul:
給定l∈Rd與Ul計算(hi,ri,ti)∈Ul這個三元組實體嵌入過程中的融合權重pi:
其中:hi∈Rd,Ri∈Rd×d,l∈Rd分別是頭實體hi、關系ri和學習資源l的嵌入表示。融合權重pi可理解為頭實體hi與學習資源l在關系空間ri下的相似度。
2.2.2 傳播向量的計算
為豐富集合Ks中各個實體的嵌入表示,將實體lj∈Ks的一階鄰居與lj融合。首先利用式(3)計算實體融合的權重pi,之后將Uli中的尾實體乘以相應的融合權重并求和得到ojs:
將lj∈Ks的向量表示lj替換為。
以lj為例,在融合其一階鄰居節點時,lj+1也是其鄰居節點之一,所以在融合lj+1的一階鄰居信息時,將式(3)中的l替換為可將學習者的知識特征從lj傳播到lj+1。依次計算l∈Ks中的每一個實體得到os。
經過上述計算,得到集合Os=對于,隨著i的不斷增大,距離學習者已掌握的知識實體越來越遠,其中包含的噪聲信息越多。故采用文獻[20]中提出的累加方式如式(5)所示,得到最終的學習者嵌入表示s:
其中:γ為控制Ks中實體每一步傳播輸出的權重,此操作可區分傳播結果的重要性。
從項目端出發,利用KGCN[17]將鄰居節點信息聚合到當前實體節點,使之捕獲到局部的近似結構及特征,擴充學習資源的特征表示,基本框架如圖3 所示。
給定一個資源實體l∈L與知識圖譜G,將在G中與l直接相連的實體表示為N(l)。對于每個學習者,由于其知識體系與偏好不同,故在聚合鄰居實體過程中,需考慮到學習者s∈S在不同關系r∈R下聚合的權重:
其中:s∈Rd,r∈Rd,g為降維操作。通過N(l)中實體的加權和表示學習資源l的拓撲結構信息:
其中:e為實體e∈N(l)的嵌入表示;為標準化后的學習者—關系權重;rl,e表示實體l與e之間的關系,其公式如下:
考慮到N(l)集合中的實體規模問題,選擇隨機采樣固定數量的鄰居來降低計算的復雜度。
其中:Q表示采樣的數量。聚合其采樣后一階鄰居拓撲信息與自身信息l得到嵌入表示:
如圖3 所示,此時已將H=1 的實體信息聚合到了中間實體。若要進行二階鄰居聚合,先將該實體二階鄰居信息聚合到一階鄰居,再將融合后的一階鄰居信息與該實體融合即可。KGCN[17]聚合實體的權重計算方式如式(6)、(8)所示。本文將2.2 節計算得到的學習者嵌入s代入式(6)。此外,本文中表征實體間關系的矩陣r∈Rd×d,而KGCN的r∈Rd。因此,需要對進行降維操作,即將其維度從d映射為1。根據式(6)~(10),將實體的鄰居節點從高階鄰居向低階鄰居不斷聚合,計算得到學習資源的嵌入表示ls。
由2.2 節與2.3 節得到最終的學習者嵌入表示s與學習資源嵌入表示ls,將其輸入全連接層來預測交互概率。將s和ls融合后作為全連接層的輸入向量x0:
x0通過第一層的輸出值表示為:
其中:W1表示為輸入層與第一個隱含層之間的權重;b1表示偏置矩陣;f(·)表示激活函數。輸出層的計算公式為:
最后根據y?為學習者作出推薦并據此對候選項目排序生成待推薦資源列表。
本文實驗在64 位Windows10 系統上的PyCharm 中開展,基于TensorFlow 1.8 框架和Python 3.6實現,GPU 為GTX1080Ti,使用Anaconda 4.9.2。
實驗采用MOOPer(http://openkg.cn/dataset/mooper)數據集。該數據集分為兩部分:交互數據與知識圖譜。其中交互數據有3種,分別為學習者行為、學習者反饋和系統反饋。學習者行為展示了與學習資源之間的交互過程,學習者反饋則反映了他們的學習狀況和學習滿意度,系統反饋數據描述了學習者在實踐練習過程中的結果反饋。知識圖譜由課程、實踐、關卡、知識點的屬性信息及其之間的相互關系建模形成,整體結構如圖4 所示。數據集經過預處理后的統計信息如表1 所示。
表1 數據集統計信息Tab.1 Dataset statistics
為了驗證算法的有效性,將KNDP 與以下對比對象進行比較。對比對象的參數設置與原文獻中的設置相同。
1)改進型深度神經網絡學習資源推薦算法(UDN-CBR)[21]:將學習者信息和學習資源信息作為輸入,通過全連接層得到其特征向量;同時引入Word2vec 獲得學習資源的文本特征與學習資源的特征向量進行融合;最后通過多層感知器(Multi-Layer Perceptron,MLP)網絡預測評分。
2)RippleNet[16]:將與用戶發生過交互的項目作為種子集,在知識圖譜上通過實體與實體之間的關系傳播用戶的偏好并最終得到用戶的嵌入表示,最后計算用戶與項目的交互概率。
3)KGCN[17]:利用知識圖譜中實體的鄰域信息,將其鄰居節點的信息通過圖卷積的方式聚合到該節點中,以豐富項目的表示。
4)基于知識圖譜卷積網絡的雙端(Double End Knowledge Graph Convolutional Network,DEKGCN)推薦算法[22]:在用戶端和項目端分別利用圖卷積將鄰居信息聚合到該節點中,得到用戶和項目的嵌入表示,最后計算兩者的交互概率。
本文實驗以7∶2∶1 的比例將交互數據劃分為訓練集、驗證集與測試集對模型進行訓練。將式(6)中的函數g設置為內積函數。將全連接層數設置為4,非最后一層的激活函數為線性整流函數(Rectified Linear Unit,ReLU),最后一層的為tanh,學習率為0.001。對于知識圖譜G,將實體嵌入維度設為32,式(9)中的采樣大小Q設置為4,鄰居跳數在聚合學習者信息時設置為1,在聚合學習資源信息時設置為2。
在交互率預測中,使用訓練好的模型對測試集中的每個交互行為進行預測,使用曲線下面積AUC(Area Under Curve)和準確率ACC(Accuracy)指標評估模型性能。針對Top-K推薦任務,為測試集中的學習者推薦前K個學習資源,使用Precision@K和Recall@K指標評估模型性能。AUC 是受試者工作特征曲線(Receiver Operating Characteristic,ROC)下的面積,ACC的計算公式如下:
其中:TP(True Positive)為真陽數、TN(True Negative)為真陰數、FP(False Positive)為假陽數、FN(False Negative)為假陰數。
交互概率預測中AUC與ACC的對比結果如表2 所示,Top-K任務中Precision@K和Recall@K的對比結果如圖5~6所示。
表2 交互概率預測中AUC和ACC的對比結果Tab.2 Comparison results of AUC and ACC in interaction probability prediction
由表2 可知,KNDP在ACC和AUC評估指標上均取得最好的性能,相較于其余基線模型的AUC提高了1.12~6.49 個百分點;ACC提高了1.31~4.99 個百分點。從圖5~6 中可以看出,在K=5時,DEKGCN 的Precision@K和Recall@K是表現次好的,與DEKGCN 相比,KDNP 在Precision@K和Recall@K上分別提升了6.49%和13.07%。
通過對比分析實驗數據可知,3 種基線模型RippleNet、KGCN 和DEKGCN在AUC、ACC、Precision@K以及Recall@K指標上均優于UDN-CBR 模型,說明在引入知識圖譜之后,知識圖譜中的實體與關系信息有利于提升推薦性能。其中,RippleNet 從用戶端出發,利用學習資源的周圍實體傳播學習者的偏好信息以計算學習者的向量表示,其不足在于沒有利用知識圖譜提升項目端的信息質量。與RippeNet 類似,KGCN 著眼于項目端,融合學習資源鄰居節點得到其嵌入表示,未利用知識圖譜的信息豐富學習者嵌入表示。DEKGCN的優勢在于同時考慮到了用戶端和項目端,但是在聚合用戶端的信息時,選擇通過構建用戶屬性圖來聚合用戶的人口統計學信息[22]。這使用戶端缺失了知識特征信息,故導致學習者嵌入表示的語義豐富度有所不足。本文提出的KNDP在用戶端和項目端均充分利用了知識圖譜的異構信息并將學習者已交互的項目與學習目標之間的實體與其鄰居信息也融合進學習者的向量嵌入表示中,因而產生性能上的明顯提升。
本文提出融合知識圖譜鄰居雙端(KNDP)推薦算法,從學習者和學習資源出發,通過引入知識圖譜對鄰居雙端的聚合計算,獲得學習者與在線資源的嵌入表示,表達學習者的個性化知識獲取需求,繼而送入MLP 網絡模型中做全連接,以交互概率作為隱含學習資源的發現概率,創建在線學習推薦資源。KNDP 推薦算法解決了協同過濾算法存在的數據稀疏以及推薦結果各向同性的問題。實驗結果驗證了模型在推薦性能提升方面的有效性。由于學習是一個具有時間屬性的序列過程,下一步工作將考慮學習活動中對于不同學習資源的交互次序,從而更為精細地表示學習者向量,更準確地捕獲學習需求而服務,提高學習資源推薦的靶向性。