徐 碩,尹 雋,郭佩瑤,曹伊夢,周 楊,方 霖,錢 萍
(1.江蘇科技大學 經(jīng)濟管理學院;2江蘇科技大學 計算機學院,江蘇 鎮(zhèn)江 212100)
隨著社會信息化深入發(fā)展,教育模式、教育理念等受其影響發(fā)生了明顯轉(zhuǎn)變,促進了互聯(lián)網(wǎng)教育行業(yè)迅速發(fā)展。于此同時,開發(fā)各類學習軟件有力補充了傳統(tǒng)教育模式的不足,為學習者帶來了極大便利。尤其在2019 年末新冠肺炎疫情發(fā)生后,在線學習得到廣泛普及。截至2022年6 月,我國在線教育用戶規(guī)模已達到3.77 億人[1]。試題作為一種重要的學習資源,伴隨著學習者的整個學習過程,隨著網(wǎng)絡學習資源日益增多,學生難以查詢合適的試題。為此,應充分發(fā)揮互聯(lián)網(wǎng)技術優(yōu)勢,向不同學習者推薦符合他們自身學習情況的個性化試題。
協(xié)同過濾是近年來應用最廣泛的推薦算法之一,在亞馬遜和Netflix 等知名網(wǎng)站上均有所應用[2]。基于協(xié)同過濾的推薦主要包括基于用戶的協(xié)同過濾(User-based Collaborative Filtering,User-CF)、基于物品的協(xié)同過濾(Itembased Collaborative Filtering,Item-CF)[3]。以上方法基于用戶和物品的交互數(shù)據(jù),探索其中表現(xiàn)出行為共性的用戶或物品,通過在用戶行為上“相似”的用戶或物品進行推薦。然而,此類方法僅利用用戶行為信息進行推薦,通常會忽略某些重要信息,從而影響推薦精度。
部分研究者引入知識圖譜提高傳統(tǒng)協(xié)同過濾的精度。周倩等[4]首先構建圖書知識圖譜,然后使用其中的信息進行圖書近鄰推薦,并與基于圖書評分的協(xié)同過濾推薦進行結果融合,提高推薦精度。李浩[5]等利用循環(huán)知識圖譜存儲用戶與物品信息,同時尋找最佳推薦路徑結果融合傳統(tǒng)協(xié)同過濾所得的結果,使推薦結果更準確。顧亦然等[6]利用電影關聯(lián)構造電影知識圖譜,首先使用RippleNet 模型進行推薦,然后使用傳統(tǒng)協(xié)同過濾進行推薦,實踐表明兩種結果融合后既提升了推薦精度,又獲得了較好的解釋性。然而,上述研究僅將幾種推薦結果進行簡單疊加,并未充分發(fā)揮知識圖譜改善協(xié)同過濾數(shù)據(jù)來源單一的優(yōu)勢,仍具有提升空間。
為彌補傳統(tǒng)協(xié)同過濾的不足,充分發(fā)揮知識圖譜改善數(shù)據(jù)單一的優(yōu)勢,本文提出一種基于知識圖譜與協(xié)同過濾的個性化試題推薦算法(KGeP-CF)。首先,引入知識圖譜存儲試題對應的知識點信息,利用TransE 模型、余弦相似度提取知識點間的相關性聯(lián)系。然后,將提取的知識點相關性應用于試題相似度計算中,并非將兩種推薦結果簡單疊加,以充分保留知識圖譜信息的完整性。最后,算法還考慮了用戶學習情況,為用戶推薦符合其學習情況的個性化試題,從而提升算法推薦精度,還避免了“千人一面”的推薦結果。
推薦系統(tǒng)概念于1997年被正式提出,目的是幫助用戶尋找與自身需求真正相關的內(nèi)容。隨著教育領域內(nèi)互聯(lián)網(wǎng)服務增長,教育資源數(shù)量大幅增加,信息過載問題愈發(fā)凸顯。
為此,通常引入個性化學習推薦系統(tǒng)。該系統(tǒng)是教育領域的重要研究方向,具有強大而不可替代的推動作用,被廣泛應用于各種智能教育系統(tǒng)中[7]。其中,協(xié)同過濾是目前最常用的推薦算法之一[8],它通過分析用戶以往行為數(shù)據(jù),得出眾多數(shù)據(jù)背后的有用信息,但通常會面臨依賴評分數(shù)據(jù)、數(shù)據(jù)稀疏等問題。一些學者對此開展了研究,柏茂林[9]改進了傳統(tǒng)基于用戶的協(xié)同過濾算法,形成最近鄰居用戶集合,對用戶進行習題推薦。包志強等[10]提出一種改進協(xié)同過濾算法,通過關聯(lián)規(guī)則預測無評分的項目,以緩解初始數(shù)據(jù)的稀疏問題,并與基于物品的協(xié)同過濾算法相結合進行推薦。孔祥仁[11]將聚類算法與推薦算法相結合,形成混合推薦算法,并將該算法應用于駕校練習試題推薦中。
然而,隨著現(xiàn)代信息量急劇增長,傳統(tǒng)協(xié)同過濾算法存在計算量大、計算特征單一的問題,通常只能依據(jù)用戶自身偏好推薦內(nèi)容。結合教育領域特點類比個性化推薦方法,該算法雖然通過用戶間評分的相似度來預測學習者答題偏好并進行推薦,但忽略了課程試題相關的知識點信息及各知識點間豐富的語義關系,這些語義關系可系統(tǒng)、合理地呈現(xiàn)課程知識的前后關聯(lián),進而為用戶推薦更精確的個性化試題,也使推薦結果具有更好的可解釋性。
知識圖譜是由節(jié)點和邊組成的圖網(wǎng)絡結構,蘊含著實體間的關系信息,將知識圖譜引入?yún)f(xié)同過濾算法可解決推薦結果缺乏可解釋性的問題。康雁等[12]在協(xié)同過濾算法中融合知識圖譜表示學習算法,能較好解決協(xié)同過濾推薦算法可解釋性不強、推薦結果不理想的問題。
目前,知識圖譜與推薦系統(tǒng)相結合的方法主要包括基于路徑和表示學習的知識圖譜協(xié)同過濾方法。前者的缺點是需手動設計路徑,而后者能自動獲取知識圖譜中實體的語義嵌入[13]。知識圖譜表示學習包括基于距離的模型和基于語義的匹配模型,目前采用最多的是基于距離模型中的Translating 系列算法,例如TransE 算法[14]、TransH 算法[15]、TransR 算法[16]、TransD 算法[17]等。吳璽煜等[18]利用TransE 模型獲取知識圖譜的語義信息,再將其融入?yún)f(xié)同過濾算法中進行推薦,解決了協(xié)同過濾算法未考慮語義信息的問題,提高了推薦精度。
基于上述研究,本文構建課程知識圖譜存儲知識點信息,并將課程知識圖譜信息引入?yún)f(xié)同過濾算法解決傳統(tǒng)協(xié)同過濾未考慮語義信息的問題,使推薦結果更具合理性和可解釋性。同時,在推薦算法中還考慮了用戶自身學習情況,以增強推薦結果與用戶的匹配,使用戶獲得的推薦結果更精確。
本文所提推薦算法的具體框架如圖1 所示。首先,通過知識抽取等方法構建課程知識圖譜。然后,將知識圖譜中的實體向量化,利用余弦相似度計算知識點相似度。接下來,使用矩陣化的用戶做題數(shù)據(jù)計算試題相似度。再然后,結合兩種相似度獲得綜合試題相似度。最后,考慮用 戶學習情況計算試題可推薦性大小,實現(xiàn)試題推薦。

Fig.1 Recommendation algorithm framework圖1 推薦算法框架
課程知識圖譜屬于領域知識圖譜,本文采取手工構建方法進行本體設計(見圖2),通過知識抽取得到知識點數(shù)據(jù),利用知識融合消除數(shù)據(jù)歧義,最后將得到的數(shù)據(jù)存儲至Neo4j 圖數(shù)據(jù)庫。在課程本體設計階段,課程被分為章節(jié)與知識點,根據(jù)課程知識點存在的關系歸納定義了兄弟關系、同一關系、包含關系、前后繼關系、相關關系和繼承關系。

Fig.2 Design drawing of course ontology圖2 課程本體設計圖
由圖2 可見,知識抽取主要包括實體抽取與關系抽取兩部分。為保證所抽取的實體與關系質(zhì)量,本文采取手工抽取方式首先抽取實體,梳理各章節(jié)知識點,抽取其中的知識點實體,然后按照各章節(jié)內(nèi)部、每個章節(jié)間的順序結合所學知識,抽取知識點關系。由于抽取的知識點實體來源于兩本不同數(shù)據(jù)庫教材,同一知識點實體可能存在差異,因此需要進行知識融合。本文采用實體對齊方法統(tǒng)一知識點實體,以消除數(shù)據(jù)歧義問題。
本文使用經(jīng)典的TransE 模型表示學習圖譜中的知識點實體,得到代表知識點實體的低維向量。TransE 算法的原理為當一個三元組(h,r,t)為真時,則應滿足h+r≈t,空間中的形式如圖3所示。

Fig.3 Spatial form of the TransE principle圖3 TransE原理的空間形式
TransE 算法通過構造初始實體和關系向量,不斷帶入三元組集合進行更新,最終得到訓練好的實體和關系向量。在得到知識點實體向量后,便能計算知識點相似度。在方法選取上,采用了對向量友好的余弦相似度進行計算。

其中,A、B為知識點實體,Ai、Bi為知識點A、B的低維向量表示在維度為i時的分量。
在計算試題相似度前,先處理用戶做題數(shù)據(jù)得到用戶—錯題矩陣M。矩陣M中行代表用戶,列代表試題。當用戶i做對試題j時,mij=0;當用戶i做錯試題j時,mij=1。通過該方式可通過矩陣形式存儲用戶做題情況。

由于用戶做題情況僅為對、錯這種二元變量,使用杰卡德相似度往往能取得較好的相似度計算結果。

其中,N(a) ∩N(b)為既做錯題目a又做錯題目b的用戶數(shù)目,N(a) ∪N(b)為做錯題目a或做錯題目b的用戶數(shù)目。
為得到更高的推薦精度和可解釋度,需對兩種相似度加權取均值,得到綜合試題相似度。本文采用加權幾何平均數(shù)計算兩種相似度的綜合相似度。只有當二者均較大時,其幾何均值才較大,以得到更綜合的相似度結果。

其中,1、m分別為Jab、sim(A,B)的權值。
傳統(tǒng)協(xié)同過濾并未考慮推薦對象的自身情況,會使推薦結果與用戶匹配度不夠。因此,在推薦試題時本文結合了用戶對此類試題的掌握情況,從而增強推薦結果與用戶的匹配性。但用戶對某類試題的掌握程度,通常取決于用戶對試題考查知識點的掌握情況。為此,本文定義識點掌握程度來度量用戶對某知識點的掌握情況。

其中,Graspu j表示用戶u對知識點j的掌握情況,值越大表示掌握程度越差,errori j為用戶u在知識點j上的錯題總個數(shù),Ni j為用戶u所做知識點j的試題總數(shù)。
結合綜合試題相似度與用戶學習情況,便能計算試題可推薦性大小。以用戶u為例,其待推試題i的可推薦性大小的計算公式為:

其中,Similarityi k為試題i與錯題k的綜合相似度,Graspu j為用戶u對試題i對應知識點j的掌握情況,N(u)為用戶u的錯題集合,S(i,K)為試題i最相似的Top-k 試題的錯題集合,ru i=1。
最后,根據(jù)用戶待推試題可推薦性大小的排序結果,取排名前k的試題形成Top-k 試題推薦列表,并將列表試題推送至用戶,完成試題推薦。
目前,國內(nèi)尚未公開統(tǒng)一的答題數(shù)據(jù)集,本文實驗數(shù)據(jù)來自江蘇科技大學信管系實際教學中學生的做題情況,主要包含學生答題得分數(shù)據(jù)和試題數(shù)據(jù)。實驗數(shù)據(jù)集共分為兩組,數(shù)據(jù)集1 包含53 名學生在每道題上的答題得分數(shù)據(jù),共涉及119 道試題。通過試題數(shù)據(jù)將試題與知識點相互對應,以此得到每道試題的對應知識點,在此基礎上處理實驗數(shù)據(jù)得到包含6 307 條答題記錄的數(shù)據(jù)集。用于構建課程知識圖譜的數(shù)據(jù)來源于《數(shù)據(jù)庫系統(tǒng)概論(第5版)》[19]《數(shù)據(jù)庫系統(tǒng)概念》[20]。經(jīng)過知識抽取等步驟,最終得到包含1 349 個節(jié)點和2 054 個關系的數(shù)據(jù)庫課程知識點及關系數(shù)據(jù)集。數(shù)據(jù)集2 包含65 名學生在HTML、CSS 兩個章節(jié)習題上的答題得分數(shù)據(jù),共涉及102 道試題。將數(shù)據(jù)進行上述處理后,最終得到包含149 個節(jié)點和316個關系的Web 課程部分章節(jié)知識點、關系數(shù)據(jù)集以及包含6 618條答題記錄的全部數(shù)據(jù)集。
通過Python 調(diào)用Py2neo 庫,將數(shù)據(jù)庫知識點與關系、Web 前端知識點與關系批量存儲至Neo4j,構建課程知識圖譜,部分知識圖譜如圖4所示。

Fig.4 Partial knowledge graph圖4 部分知識圖譜
本文選取命中率(Hit Ratio,HR)、歸一化折損累計增益(Normalized Discounted Cumulative Gain,NDCG)和覆蓋率(Coverage)這3 個常用的評價指標來評價推薦算法性能。其中,HR 反映推薦算法的準確性;NDCG 反映推薦算法對結果的排序性能;Coverage 反映推薦結果的全面性,值越大代表推薦結果越全面。

其中,N、K分別表示推薦用戶總數(shù)和推薦列表長度,N(S(u) ∩R(u)@K)表示既屬于用戶u的錯題集合S(u),又屬于用戶u的試題推薦集合R(u)@K的試題數(shù)目。

其中,u表示用戶序號,i表示試題在推薦列表位置,當所推的第i個試題為u號用戶的錯題時relu i=1,反之relu i=0。

本文選擇Item-CF、User-CF、KGeP-CF-NUC、LFM、Hete-CF[21]共5種推薦算法與KGeP-CF算法進行比較。其中,KGeP-CF-NUC 為不考慮用戶學習情況的KGeP-CF模型;LFM 模型為經(jīng)典的隱語義模型,通過先挖掘用戶隱藏“興趣”,再根據(jù)用戶“興趣”匹配相應類別物品完成推薦;Hete-CF 算法通過用戶—用戶、項目—項目、用戶—項目等關系構造元路徑進行推薦。
考慮到本文算法僅面向?qū)W生的試題進行推薦,在實驗中選取N=10 進行Top-N 推薦,采取8∶2 的比例劃分訓練集與測試集。
3.4.1 權值參數(shù)設置
權重參數(shù)m在綜合試題相似度的計算中起到重要作用。為了確定式(4)中知識點相似度權重m的最佳取值,以獲得最好的試題推薦效果。本文進行7 組實驗,m依次取0.125、0.25、0.5、1、2、4、8,重復5 次實驗取各項評價指標平均值,實驗結果如圖5-圖7所示。
由圖5、圖6 可見,隨著m增大HR@10、NDCG@10 先增大后減小,并且在m=1 處取得最優(yōu)值。由圖7 可見,當m處于[?,2]時,Coverage 均能取得較優(yōu)值。因此,為了獲得最佳的推薦效果,本文選取m=1進行實驗。

Fig.5 Curve of HR@10 changing with the value of m圖5 HR@10隨m取值變化曲線

Fig.6 Curve of NDCG@10 changing with the value of m圖6 NDCG@10隨m取值變化曲線
3.4.2 算法比較
本文選取了User-CF、Item-CF、LFM、Hete-CF 和KGeP-CF-NUC 共5 種算法進行比較。其中,LFM 模型隱含類別數(shù)量F=10,學習率α=0.02,正則化率ratio=1。不同算法在兩個數(shù)據(jù)集上的指標比較情況如圖8 所示,具體指標數(shù)值如表1所示。

Fig.7 Curve of Coverage changing with the value of m圖7 Coverage隨m取值變化曲線

Fig.8 Index comparison of different algorithms in two data sets圖8 不同算法在兩個數(shù)據(jù)集上的指標對比
由 圖8、表1 可 知,Item-CF、User-CF 在HR@10、NDCG@10 指標上表現(xiàn)不佳,可能原因是協(xié)同過濾算法只基于用戶做題數(shù)據(jù)進行推薦。Item-CF 在Coverage 指標上表現(xiàn)較好,這與其通過不斷尋找“相似物品”進行推薦的特點相關,能使推薦結果覆蓋面更廣。由于KGeP-CF-NUC、KGeP-CF 算法的試題相似度計算部分基于Item-CF 算法,因此兩者保留了Item-CF 算法推薦結果更全面的特點,但比較可知通過表示學習利用知識點等信息能顯著增強推薦精度和排序性能。將KGeP-CF 與不考慮用戶學習情況的KGeP-CF-NUC 比較發(fā)現(xiàn),考慮用戶學習情況后算法性能在精度、排序性能、結果覆蓋性方面提升了15%~30%。實驗證明,KGeP-CF 算法通過知識圖譜引入知識點信息,并結合用戶學習情況推薦的方法能有效提升試題推薦性能。

Table 1 Index values of different algorithms on the two data sets表1 不同算法在兩個數(shù)據(jù)集上的各指標數(shù)值
傳統(tǒng)協(xié)同過濾算法通常僅考慮用戶做題數(shù)據(jù),忽略了某些十分重要的信息。為此,本文提出一種基于知識圖譜與協(xié)同過濾的個性化試題推薦算法。通過引入知識點間的關系對傳統(tǒng)協(xié)同過濾中用戶行為信息進行補充,還考慮了用戶學習情況,使用戶獲得更準確的個性化試題推薦。實驗表明,該算法相較于傳統(tǒng)算法能有效提升試題推薦性能。
此外,這種通過知識圖譜引入第三方信息并加入用戶自身學習情況的個性化推薦算法,不僅可應用于試題推薦領域,對于其他應用場景也具有一定的參考價值。