徐 碩,尹 雋,郭佩瑤,曹伊夢(mèng),周 楊,方 霖,錢 萍
(1.江蘇科技大學(xué) 經(jīng)濟(jì)管理學(xué)院;2江蘇科技大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 鎮(zhèn)江 212100)
隨著社會(huì)信息化深入發(fā)展,教育模式、教育理念等受其影響發(fā)生了明顯轉(zhuǎn)變,促進(jìn)了互聯(lián)網(wǎng)教育行業(yè)迅速發(fā)展。于此同時(shí),開發(fā)各類學(xué)習(xí)軟件有力補(bǔ)充了傳統(tǒng)教育模式的不足,為學(xué)習(xí)者帶來了極大便利。尤其在2019 年末新冠肺炎疫情發(fā)生后,在線學(xué)習(xí)得到廣泛普及。截至2022年6 月,我國(guó)在線教育用戶規(guī)模已達(dá)到3.77 億人[1]。試題作為一種重要的學(xué)習(xí)資源,伴隨著學(xué)習(xí)者的整個(gè)學(xué)習(xí)過程,隨著網(wǎng)絡(luò)學(xué)習(xí)資源日益增多,學(xué)生難以查詢合適的試題。為此,應(yīng)充分發(fā)揮互聯(lián)網(wǎng)技術(shù)優(yōu)勢(shì),向不同學(xué)習(xí)者推薦符合他們自身學(xué)習(xí)情況的個(gè)性化試題。
協(xié)同過濾是近年來應(yīng)用最廣泛的推薦算法之一,在亞馬遜和Netflix 等知名網(wǎng)站上均有所應(yīng)用[2]。基于協(xié)同過濾的推薦主要包括基于用戶的協(xié)同過濾(User-based Collaborative Filtering,User-CF)、基于物品的協(xié)同過濾(Itembased Collaborative Filtering,Item-CF)[3]。以上方法基于用戶和物品的交互數(shù)據(jù),探索其中表現(xiàn)出行為共性的用戶或物品,通過在用戶行為上“相似”的用戶或物品進(jìn)行推薦。然而,此類方法僅利用用戶行為信息進(jìn)行推薦,通常會(huì)忽略某些重要信息,從而影響推薦精度。
部分研究者引入知識(shí)圖譜提高傳統(tǒng)協(xié)同過濾的精度。周倩等[4]首先構(gòu)建圖書知識(shí)圖譜,然后使用其中的信息進(jìn)行圖書近鄰?fù)扑],并與基于圖書評(píng)分的協(xié)同過濾推薦進(jìn)行結(jié)果融合,提高推薦精度。李浩[5]等利用循環(huán)知識(shí)圖譜存儲(chǔ)用戶與物品信息,同時(shí)尋找最佳推薦路徑結(jié)果融合傳統(tǒng)協(xié)同過濾所得的結(jié)果,使推薦結(jié)果更準(zhǔn)確。顧亦然等[6]利用電影關(guān)聯(lián)構(gòu)造電影知識(shí)圖譜,首先使用RippleNet 模型進(jìn)行推薦,然后使用傳統(tǒng)協(xié)同過濾進(jìn)行推薦,實(shí)踐表明兩種結(jié)果融合后既提升了推薦精度,又獲得了較好的解釋性。然而,上述研究?jī)H將幾種推薦結(jié)果進(jìn)行簡(jiǎn)單疊加,并未充分發(fā)揮知識(shí)圖譜改善協(xié)同過濾數(shù)據(jù)來源單一的優(yōu)勢(shì),仍具有提升空間。
為彌補(bǔ)傳統(tǒng)協(xié)同過濾的不足,充分發(fā)揮知識(shí)圖譜改善數(shù)據(jù)單一的優(yōu)勢(shì),本文提出一種基于知識(shí)圖譜與協(xié)同過濾的個(gè)性化試題推薦算法(KGeP-CF)。首先,引入知識(shí)圖譜存儲(chǔ)試題對(duì)應(yīng)的知識(shí)點(diǎn)信息,利用TransE 模型、余弦相似度提取知識(shí)點(diǎn)間的相關(guān)性聯(lián)系。然后,將提取的知識(shí)點(diǎn)相關(guān)性應(yīng)用于試題相似度計(jì)算中,并非將兩種推薦結(jié)果簡(jiǎn)單疊加,以充分保留知識(shí)圖譜信息的完整性。最后,算法還考慮了用戶學(xué)習(xí)情況,為用戶推薦符合其學(xué)習(xí)情況的個(gè)性化試題,從而提升算法推薦精度,還避免了“千人一面”的推薦結(jié)果。
推薦系統(tǒng)概念于1997年被正式提出,目的是幫助用戶尋找與自身需求真正相關(guān)的內(nèi)容。隨著教育領(lǐng)域內(nèi)互聯(lián)網(wǎng)服務(wù)增長(zhǎng),教育資源數(shù)量大幅增加,信息過載問題愈發(fā)凸顯。
為此,通常引入個(gè)性化學(xué)習(xí)推薦系統(tǒng)。該系統(tǒng)是教育領(lǐng)域的重要研究方向,具有強(qiáng)大而不可替代的推動(dòng)作用,被廣泛應(yīng)用于各種智能教育系統(tǒng)中[7]。其中,協(xié)同過濾是目前最常用的推薦算法之一[8],它通過分析用戶以往行為數(shù)據(jù),得出眾多數(shù)據(jù)背后的有用信息,但通常會(huì)面臨依賴評(píng)分?jǐn)?shù)據(jù)、數(shù)據(jù)稀疏等問題。一些學(xué)者對(duì)此開展了研究,柏茂林[9]改進(jìn)了傳統(tǒng)基于用戶的協(xié)同過濾算法,形成最近鄰居用戶集合,對(duì)用戶進(jìn)行習(xí)題推薦。包志強(qiáng)等[10]提出一種改進(jìn)協(xié)同過濾算法,通過關(guān)聯(lián)規(guī)則預(yù)測(cè)無評(píng)分的項(xiàng)目,以緩解初始數(shù)據(jù)的稀疏問題,并與基于物品的協(xié)同過濾算法相結(jié)合進(jìn)行推薦??紫槿剩?1]將聚類算法與推薦算法相結(jié)合,形成混合推薦算法,并將該算法應(yīng)用于駕校練習(xí)試題推薦中。
然而,隨著現(xiàn)代信息量急劇增長(zhǎng),傳統(tǒng)協(xié)同過濾算法存在計(jì)算量大、計(jì)算特征單一的問題,通常只能依據(jù)用戶自身偏好推薦內(nèi)容。結(jié)合教育領(lǐng)域特點(diǎn)類比個(gè)性化推薦方法,該算法雖然通過用戶間評(píng)分的相似度來預(yù)測(cè)學(xué)習(xí)者答題偏好并進(jìn)行推薦,但忽略了課程試題相關(guān)的知識(shí)點(diǎn)信息及各知識(shí)點(diǎn)間豐富的語義關(guān)系,這些語義關(guān)系可系統(tǒng)、合理地呈現(xiàn)課程知識(shí)的前后關(guān)聯(lián),進(jìn)而為用戶推薦更精確的個(gè)性化試題,也使推薦結(jié)果具有更好的可解釋性。
知識(shí)圖譜是由節(jié)點(diǎn)和邊組成的圖網(wǎng)絡(luò)結(jié)構(gòu),蘊(yùn)含著實(shí)體間的關(guān)系信息,將知識(shí)圖譜引入?yún)f(xié)同過濾算法可解決推薦結(jié)果缺乏可解釋性的問題??笛愕龋?2]在協(xié)同過濾算法中融合知識(shí)圖譜表示學(xué)習(xí)算法,能較好解決協(xié)同過濾推薦算法可解釋性不強(qiáng)、推薦結(jié)果不理想的問題。
目前,知識(shí)圖譜與推薦系統(tǒng)相結(jié)合的方法主要包括基于路徑和表示學(xué)習(xí)的知識(shí)圖譜協(xié)同過濾方法。前者的缺點(diǎn)是需手動(dòng)設(shè)計(jì)路徑,而后者能自動(dòng)獲取知識(shí)圖譜中實(shí)體的語義嵌入[13]。知識(shí)圖譜表示學(xué)習(xí)包括基于距離的模型和基于語義的匹配模型,目前采用最多的是基于距離模型中的Translating 系列算法,例如TransE 算法[14]、TransH 算法[15]、TransR 算法[16]、TransD 算法[17]等。吳璽煜等[18]利用TransE 模型獲取知識(shí)圖譜的語義信息,再將其融入?yún)f(xié)同過濾算法中進(jìn)行推薦,解決了協(xié)同過濾算法未考慮語義信息的問題,提高了推薦精度。
基于上述研究,本文構(gòu)建課程知識(shí)圖譜存儲(chǔ)知識(shí)點(diǎn)信息,并將課程知識(shí)圖譜信息引入?yún)f(xié)同過濾算法解決傳統(tǒng)協(xié)同過濾未考慮語義信息的問題,使推薦結(jié)果更具合理性和可解釋性。同時(shí),在推薦算法中還考慮了用戶自身學(xué)習(xí)情況,以增強(qiáng)推薦結(jié)果與用戶的匹配,使用戶獲得的推薦結(jié)果更精確。
本文所提推薦算法的具體框架如圖1 所示。首先,通過知識(shí)抽取等方法構(gòu)建課程知識(shí)圖譜。然后,將知識(shí)圖譜中的實(shí)體向量化,利用余弦相似度計(jì)算知識(shí)點(diǎn)相似度。接下來,使用矩陣化的用戶做題數(shù)據(jù)計(jì)算試題相似度。再然后,結(jié)合兩種相似度獲得綜合試題相似度。最后,考慮用 戶學(xué)習(xí)情況計(jì)算試題可推薦性大小,實(shí)現(xiàn)試題推薦。
Fig.1 Recommendation algorithm framework圖1 推薦算法框架
課程知識(shí)圖譜屬于領(lǐng)域知識(shí)圖譜,本文采取手工構(gòu)建方法進(jìn)行本體設(shè)計(jì)(見圖2),通過知識(shí)抽取得到知識(shí)點(diǎn)數(shù)據(jù),利用知識(shí)融合消除數(shù)據(jù)歧義,最后將得到的數(shù)據(jù)存儲(chǔ)至Neo4j 圖數(shù)據(jù)庫。在課程本體設(shè)計(jì)階段,課程被分為章節(jié)與知識(shí)點(diǎn),根據(jù)課程知識(shí)點(diǎn)存在的關(guān)系歸納定義了兄弟關(guān)系、同一關(guān)系、包含關(guān)系、前后繼關(guān)系、相關(guān)關(guān)系和繼承關(guān)系。
Fig.2 Design drawing of course ontology圖2 課程本體設(shè)計(jì)圖
由圖2 可見,知識(shí)抽取主要包括實(shí)體抽取與關(guān)系抽取兩部分。為保證所抽取的實(shí)體與關(guān)系質(zhì)量,本文采取手工抽取方式首先抽取實(shí)體,梳理各章節(jié)知識(shí)點(diǎn),抽取其中的知識(shí)點(diǎn)實(shí)體,然后按照各章節(jié)內(nèi)部、每個(gè)章節(jié)間的順序結(jié)合所學(xué)知識(shí),抽取知識(shí)點(diǎn)關(guān)系。由于抽取的知識(shí)點(diǎn)實(shí)體來源于兩本不同數(shù)據(jù)庫教材,同一知識(shí)點(diǎn)實(shí)體可能存在差異,因此需要進(jìn)行知識(shí)融合。本文采用實(shí)體對(duì)齊方法統(tǒng)一知識(shí)點(diǎn)實(shí)體,以消除數(shù)據(jù)歧義問題。
本文使用經(jīng)典的TransE 模型表示學(xué)習(xí)圖譜中的知識(shí)點(diǎn)實(shí)體,得到代表知識(shí)點(diǎn)實(shí)體的低維向量。TransE 算法的原理為當(dāng)一個(gè)三元組(h,r,t)為真時(shí),則應(yīng)滿足h+r≈t,空間中的形式如圖3所示。
Fig.3 Spatial form of the TransE principle圖3 TransE原理的空間形式
TransE 算法通過構(gòu)造初始實(shí)體和關(guān)系向量,不斷帶入三元組集合進(jìn)行更新,最終得到訓(xùn)練好的實(shí)體和關(guān)系向量。在得到知識(shí)點(diǎn)實(shí)體向量后,便能計(jì)算知識(shí)點(diǎn)相似度。在方法選取上,采用了對(duì)向量友好的余弦相似度進(jìn)行計(jì)算。
其中,A、B為知識(shí)點(diǎn)實(shí)體,Ai、Bi為知識(shí)點(diǎn)A、B的低維向量表示在維度為i時(shí)的分量。
在計(jì)算試題相似度前,先處理用戶做題數(shù)據(jù)得到用戶—錯(cuò)題矩陣M。矩陣M中行代表用戶,列代表試題。當(dāng)用戶i做對(duì)試題j時(shí),mij=0;當(dāng)用戶i做錯(cuò)試題j時(shí),mij=1。通過該方式可通過矩陣形式存儲(chǔ)用戶做題情況。
由于用戶做題情況僅為對(duì)、錯(cuò)這種二元變量,使用杰卡德相似度往往能取得較好的相似度計(jì)算結(jié)果。
其中,N(a) ∩N(b)為既做錯(cuò)題目a又做錯(cuò)題目b的用戶數(shù)目,N(a) ∪N(b)為做錯(cuò)題目a或做錯(cuò)題目b的用戶數(shù)目。
為得到更高的推薦精度和可解釋度,需對(duì)兩種相似度加權(quán)取均值,得到綜合試題相似度。本文采用加權(quán)幾何平均數(shù)計(jì)算兩種相似度的綜合相似度。只有當(dāng)二者均較大時(shí),其幾何均值才較大,以得到更綜合的相似度結(jié)果。
其中,1、m分別為Jab、sim(A,B)的權(quán)值。
傳統(tǒng)協(xié)同過濾并未考慮推薦對(duì)象的自身情況,會(huì)使推薦結(jié)果與用戶匹配度不夠。因此,在推薦試題時(shí)本文結(jié)合了用戶對(duì)此類試題的掌握情況,從而增強(qiáng)推薦結(jié)果與用戶的匹配性。但用戶對(duì)某類試題的掌握程度,通常取決于用戶對(duì)試題考查知識(shí)點(diǎn)的掌握情況。為此,本文定義識(shí)點(diǎn)掌握程度來度量用戶對(duì)某知識(shí)點(diǎn)的掌握情況。
其中,Graspu j表示用戶u對(duì)知識(shí)點(diǎn)j的掌握情況,值越大表示掌握程度越差,errori j為用戶u在知識(shí)點(diǎn)j上的錯(cuò)題總個(gè)數(shù),Ni j為用戶u所做知識(shí)點(diǎn)j的試題總數(shù)。
結(jié)合綜合試題相似度與用戶學(xué)習(xí)情況,便能計(jì)算試題可推薦性大小。以用戶u為例,其待推試題i的可推薦性大小的計(jì)算公式為:
其中,Similarityi k為試題i與錯(cuò)題k的綜合相似度,Graspu j為用戶u對(duì)試題i對(duì)應(yīng)知識(shí)點(diǎn)j的掌握情況,N(u)為用戶u的錯(cuò)題集合,S(i,K)為試題i最相似的Top-k 試題的錯(cuò)題集合,ru i=1。
最后,根據(jù)用戶待推試題可推薦性大小的排序結(jié)果,取排名前k的試題形成Top-k 試題推薦列表,并將列表試題推送至用戶,完成試題推薦。
目前,國(guó)內(nèi)尚未公開統(tǒng)一的答題數(shù)據(jù)集,本文實(shí)驗(yàn)數(shù)據(jù)來自江蘇科技大學(xué)信管系實(shí)際教學(xué)中學(xué)生的做題情況,主要包含學(xué)生答題得分?jǐn)?shù)據(jù)和試題數(shù)據(jù)。實(shí)驗(yàn)數(shù)據(jù)集共分為兩組,數(shù)據(jù)集1 包含53 名學(xué)生在每道題上的答題得分?jǐn)?shù)據(jù),共涉及119 道試題。通過試題數(shù)據(jù)將試題與知識(shí)點(diǎn)相互對(duì)應(yīng),以此得到每道試題的對(duì)應(yīng)知識(shí)點(diǎn),在此基礎(chǔ)上處理實(shí)驗(yàn)數(shù)據(jù)得到包含6 307 條答題記錄的數(shù)據(jù)集。用于構(gòu)建課程知識(shí)圖譜的數(shù)據(jù)來源于《數(shù)據(jù)庫系統(tǒng)概論(第5版)》[19]《數(shù)據(jù)庫系統(tǒng)概念》[20]。經(jīng)過知識(shí)抽取等步驟,最終得到包含1 349 個(gè)節(jié)點(diǎn)和2 054 個(gè)關(guān)系的數(shù)據(jù)庫課程知識(shí)點(diǎn)及關(guān)系數(shù)據(jù)集。數(shù)據(jù)集2 包含65 名學(xué)生在HTML、CSS 兩個(gè)章節(jié)習(xí)題上的答題得分?jǐn)?shù)據(jù),共涉及102 道試題。將數(shù)據(jù)進(jìn)行上述處理后,最終得到包含149 個(gè)節(jié)點(diǎn)和316個(gè)關(guān)系的Web 課程部分章節(jié)知識(shí)點(diǎn)、關(guān)系數(shù)據(jù)集以及包含6 618條答題記錄的全部數(shù)據(jù)集。
通過Python 調(diào)用Py2neo 庫,將數(shù)據(jù)庫知識(shí)點(diǎn)與關(guān)系、Web 前端知識(shí)點(diǎn)與關(guān)系批量存儲(chǔ)至Neo4j,構(gòu)建課程知識(shí)圖譜,部分知識(shí)圖譜如圖4所示。
Fig.4 Partial knowledge graph圖4 部分知識(shí)圖譜
本文選取命中率(Hit Ratio,HR)、歸一化折損累計(jì)增益(Normalized Discounted Cumulative Gain,NDCG)和覆蓋率(Coverage)這3 個(gè)常用的評(píng)價(jià)指標(biāo)來評(píng)價(jià)推薦算法性能。其中,HR 反映推薦算法的準(zhǔn)確性;NDCG 反映推薦算法對(duì)結(jié)果的排序性能;Coverage 反映推薦結(jié)果的全面性,值越大代表推薦結(jié)果越全面。
其中,N、K分別表示推薦用戶總數(shù)和推薦列表長(zhǎng)度,N(S(u) ∩R(u)@K)表示既屬于用戶u的錯(cuò)題集合S(u),又屬于用戶u的試題推薦集合R(u)@K的試題數(shù)目。
其中,u表示用戶序號(hào),i表示試題在推薦列表位置,當(dāng)所推的第i個(gè)試題為u號(hào)用戶的錯(cuò)題時(shí)relu i=1,反之relu i=0。
本文選擇Item-CF、User-CF、KGeP-CF-NUC、LFM、Hete-CF[21]共5種推薦算法與KGeP-CF算法進(jìn)行比較。其中,KGeP-CF-NUC 為不考慮用戶學(xué)習(xí)情況的KGeP-CF模型;LFM 模型為經(jīng)典的隱語義模型,通過先挖掘用戶隱藏“興趣”,再根據(jù)用戶“興趣”匹配相應(yīng)類別物品完成推薦;Hete-CF 算法通過用戶—用戶、項(xiàng)目—項(xiàng)目、用戶—項(xiàng)目等關(guān)系構(gòu)造元路徑進(jìn)行推薦。
考慮到本文算法僅面向?qū)W生的試題進(jìn)行推薦,在實(shí)驗(yàn)中選取N=10 進(jìn)行Top-N 推薦,采取8∶2 的比例劃分訓(xùn)練集與測(cè)試集。
3.4.1 權(quán)值參數(shù)設(shè)置
權(quán)重參數(shù)m在綜合試題相似度的計(jì)算中起到重要作用。為了確定式(4)中知識(shí)點(diǎn)相似度權(quán)重m的最佳取值,以獲得最好的試題推薦效果。本文進(jìn)行7 組實(shí)驗(yàn),m依次取0.125、0.25、0.5、1、2、4、8,重復(fù)5 次實(shí)驗(yàn)取各項(xiàng)評(píng)價(jià)指標(biāo)平均值,實(shí)驗(yàn)結(jié)果如圖5-圖7所示。
由圖5、圖6 可見,隨著m增大HR@10、NDCG@10 先增大后減小,并且在m=1 處取得最優(yōu)值。由圖7 可見,當(dāng)m處于[?,2]時(shí),Coverage 均能取得較優(yōu)值。因此,為了獲得最佳的推薦效果,本文選取m=1進(jìn)行實(shí)驗(yàn)。
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 種算法進(jìn)行比較。其中,LFM 模型隱含類別數(shù)量F=10,學(xué)習(xí)率α=0.02,正則化率ratio=1。不同算法在兩個(gè)數(shù)據(jù)集上的指標(biāo)比較情況如圖8 所示,具體指標(biāo)數(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 不同算法在兩個(gè)數(shù)據(jù)集上的指標(biāo)對(duì)比
由 圖8、表1 可 知,Item-CF、User-CF 在HR@10、NDCG@10 指標(biāo)上表現(xiàn)不佳,可能原因是協(xié)同過濾算法只基于用戶做題數(shù)據(jù)進(jìn)行推薦。Item-CF 在Coverage 指標(biāo)上表現(xiàn)較好,這與其通過不斷尋找“相似物品”進(jìn)行推薦的特點(diǎn)相關(guān),能使推薦結(jié)果覆蓋面更廣。由于KGeP-CF-NUC、KGeP-CF 算法的試題相似度計(jì)算部分基于Item-CF 算法,因此兩者保留了Item-CF 算法推薦結(jié)果更全面的特點(diǎn),但比較可知通過表示學(xué)習(xí)利用知識(shí)點(diǎn)等信息能顯著增強(qiáng)推薦精度和排序性能。將KGeP-CF 與不考慮用戶學(xué)習(xí)情況的KGeP-CF-NUC 比較發(fā)現(xiàn),考慮用戶學(xué)習(xí)情況后算法性能在精度、排序性能、結(jié)果覆蓋性方面提升了15%~30%。實(shí)驗(yàn)證明,KGeP-CF 算法通過知識(shí)圖譜引入知識(shí)點(diǎn)信息,并結(jié)合用戶學(xué)習(xí)情況推薦的方法能有效提升試題推薦性能。
Table 1 Index values of different algorithms on the two data sets表1 不同算法在兩個(gè)數(shù)據(jù)集上的各指標(biāo)數(shù)值
傳統(tǒng)協(xié)同過濾算法通常僅考慮用戶做題數(shù)據(jù),忽略了某些十分重要的信息。為此,本文提出一種基于知識(shí)圖譜與協(xié)同過濾的個(gè)性化試題推薦算法。通過引入知識(shí)點(diǎn)間的關(guān)系對(duì)傳統(tǒng)協(xié)同過濾中用戶行為信息進(jìn)行補(bǔ)充,還考慮了用戶學(xué)習(xí)情況,使用戶獲得更準(zhǔn)確的個(gè)性化試題推薦。實(shí)驗(yàn)表明,該算法相較于傳統(tǒng)算法能有效提升試題推薦性能。
此外,這種通過知識(shí)圖譜引入第三方信息并加入用戶自身學(xué)習(xí)情況的個(gè)性化推薦算法,不僅可應(yīng)用于試題推薦領(lǐng)域,對(duì)于其他應(yīng)用場(chǎng)景也具有一定的參考價(jià)值。