劉洪瑞 倪佳鑫 周序杰 袁光輝 劉兆春


摘要:文章提出了一種根據學生興趣特征和習題掌握水平來進行協同推薦的思路,并通過遺忘曲線設置知識點回顧的關鍵時間點進行混合推薦。該算法使用協同過濾推薦算法,具有推薦過程復雜度低、準確度高等特點。實驗結果表明,該算法能夠有效地進行習題推薦。
關鍵詞:個性化推薦;協同過濾;極端梯度提升;遺忘曲線
中圖分類號:TP18 ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)28-0023-03
1 概述
隨著互聯網在線教育技術的高速發展,越來越多的高等院校利用大規模的開放式在線課程與在線判題系統對學生進行多方面培養。在利用信息技術進行高效教學的同時,面對大量課程內容與習題數據的海量激增,如何針對學生興趣與知識漏洞進行針對性的課程與習題推薦成為研究熱點。使用個性化推薦是解決信息過載的一種有效手段,在習題推薦領域,采用協調過濾算法能有效地根據學生相似度、習題難度、知識點提供推薦[1]。基于不同知識點的習題,通過遺忘曲線的記憶規律進行復習性習題推薦,能有效地提高學生該知識點的記憶率。通過記錄不同學生完成對應習題所消耗平均時間,以及對應習題完成的正確率,作為習題分類的特征標簽,使用分類算法,將不同規模、難易度的習題進行分類。
近年來,各類推薦算法逐漸被應用于習題推薦中,當前習題推薦算法主要分為基于模型的協同過濾推薦算法和基于知識點層次圖的推薦算法[2],其中基于模型的協同過濾推薦算法研究現狀如下: 柏茂林通過習題正答概率與用戶能力特征,形成能力水平相似用戶模型[3];付興華通過設計與構建學習興趣模型和學習資源模型,進行組合推薦[4];姜盼通過皮爾遜相關系數求解相似度,解決冷啟動問題[5]。基于知識點層次圖的推薦算法研究現狀如下: 蔣昌猛提出學生知識點掌握概率模型,進而提出TOPN進行推薦[6];蔣昌猛等借鑒課程知識特點,構建知識點層次權重圖,進而實現習題推薦[7]。丁強使用知識點之間的關系構建學習路徑圖,提取習題特征詞作詞典,提高學習效率[8]。
興趣偏好,即多者相比更喜歡其中某些事物,是一種心理性傾向,與自身興趣、相關內容以及思維相關。近年來,各領域均對興趣偏好進行研究,在計算機科學領域,提高用戶行為及畫像進行興趣推薦,在購物、搜索、訪問、網絡社交中應用廣泛,使用收集與分析的用戶偏好信息,推薦給用戶較為喜歡的事物,提高了用戶的使用體驗,實現雙贏。
協同過濾推薦算法與知識點層次圖推薦算法相比,前者結構簡單、易于實現、能夠快速地處理數據。在實際應用中,面對不同規模、難易程度的題目,常重復推薦難易度相同的題目,且不能準確識別學生的知識點掌握情況。后者能夠根據學生的知識點掌握情況進行推薦,但難以根據學生的學習進度進行進一步推薦。
為解決上述中存在的問題,本文提出一種融合協同過濾與分類的習題推薦算法,提高習題推薦系統的性能和學生使用體驗,有效降低推薦過程的復雜度,實現為學生提供符合當前學習情況的習題推薦。
2 融合協同過濾與分類的習題推薦算法
2.1 協同過濾算法
在推薦系統領域中,協同過濾算法被廣泛應用,成為該領域研究最深入、業界最為認可、應用最為廣泛的推薦算法[9]。在單獨使用協同過濾算法進行習題推薦時,忽略了學生對該習題知識點的掌握程度,常出現推薦較難或特別容易的習題。在融合協同過濾與分類的習題推薦算法中,通過協同過濾算法計算學生的相似度,再使用分類算法推薦不同難度的習題。根據學生學習、訓練記錄,使用艾賓浩斯遺忘曲線,在適當的時間點推薦學生上一階段知識點的習題,加以鞏固,進而實現習題推薦。
在使用協同過濾算法進行習題推薦時,學生間共同學習、訓練的習題越多,共同偏好的相似度越高,基于對方產生的習題推薦正確率越高。使用[u]和[v]分別表示兩個學生,使用[={u1,u2,...,un}]、[V={v1,v2,...,vn}]分別表示兩學生的特征向量。
[simu,v=U∩VU∪V] ? ? ? ? (1)
使用式(1) 可計算學生之間的相似度。并設置相似度閾值[a],當學生之間相似度大于相似度閾值時,則判斷兩個學生為近鄰學生,為他們訓練的習題進行相互推薦。
2.2 分類模型
在融合協同過濾與分類的習題推薦算法中,使用各習題的平均完成時間、平均失分率,通過設置閾值,將習題分為簡易、復雜題型,形成分類模型。同時根據學生的做題時長、失分率,判斷學生的知識點掌握情況,配合協同過濾算法,進行習題推薦。
極端梯度提升(XGBoost) ,是一種梯度提升框架,能夠通過分布式、并行計算實現高速梯度提升。使用集合[S=(s1,s2,...,sn)]表示[n]個學生,學生[si]做過[M]道習題的集合為[E=(e1si,e2si,...,emsi)],學生[si]做第1到[emsi]道習題花費時間的集合為T[=(t1si,t2si,...,tmsi)]。設置閾值[φ],則依據學生習題時間消耗程度的近鄰學生掌握相似度列表可使用公式(2) 計算獲得。
[SimClassS,M=i=1n(j=1ttjsi·tjsi+1j=1t(tjsi)2×j=1t(tjsi+1)2-φ)] ?(2)
其中,學生掌握相似度由閾值[φ]調節,[φ]的取值范圍為[0,1]。隨著[φ]的增加,判定兩個學生為近鄰學生所需的掌握程度越近似。
2.3 艾賓浩斯遺忘曲線
德國心理學家艾賓浩斯研究發現,遺忘在學習后立即開始,而且遺忘的過程是非線性的。最初遺忘速度很快,以后逐漸緩慢,最后會保持在一個水平[10],可用公式(3) 表示:
[ft=100k(logt)c+k] ? ? ?(3)
通過反復實驗,發現[c=1.5],[k=1.84][11],較為符合人的記憶遺忘規律。學生在學習、訓練某知識點的一定習題后,會進一步學習其他知識點習題。通過遺忘曲線規律,將上一階段習題及時推薦給學生,復習鞏固知識點。
2.4 模型融合
混合模型融合了協同過濾算法、分類模型的優點,在大量數據累積的情況下,混合模型有著較好的推薦結果。將協同過濾與分類模型進行流水線混合,并使用分級混合、得到掌握程度相近似的近鄰學生,使用并行混合,幫助學生回顧遺忘知識點。
基于協同過濾算法,使用學生特征向量,計算學生間相似度,尋找學習、訓練進度相似的近鄰學生。得到近鄰學生后,使用分類模型,輸入近鄰學生的習題時間消耗和失分率,得到近鄰學生間的掌握相似度,并找到掌握程度相近的近鄰學生,為他們訓練的習題進行相互推薦,進而實現習題推薦。
3 實驗方案及結果
3.1 實驗數據
本實驗在校園中成立Python學習小組,共計180名學生,進行無進度要求的Python學習,并搭建在線判題系統(OnlineJudge) ,要求小組成員在系統中進行自由習題訓練,為習題推薦系統提供前期數據。進行自由學習30天后,將學習小組成員分為兩組,各90名學生,一組使用協同過濾的習題推薦系統,另一組使用融合協同過濾與分類的習題推薦系統(設置閾值[a=0.75,φ=0.9]) ,每天為所在組的每位學生產生20道推薦習題,再隨機抽取未推薦習題10道,組成30道習題。要求每位同學每天在30道習題中選取10道自己喜愛的題目進行作答。實驗共進行10天,得到使用協同過濾的習題推薦系統的共18000道習題及學生選擇作答的9000道習題,以及使用融合協同過濾與分類的習題推薦系統的共18000道習題及學生選擇作答的9000道習題。
3.2 評估方法
準確率(Accuracy)是推薦系統中常用的評價指標,指學生選擇所推薦習題數量與學生未選擇不推薦習題數量之和與所有習題數量的比例。即10道推薦習題中學生選擇回答的數量與10道未推薦習題中學生未選擇回答的數量和,與總題數20的比例。
召回率(Recall) 是推薦系統中常用的評價指標,指學生選擇所推薦習題數量、學生選擇所推薦習題數量與學生未選擇不推薦習題數量之和的比例。即10道推薦習題中學生選擇回答的數量,與10道推薦習題中學生選擇回答的數量與10道未推薦習題中學生未選擇回答的數量和的比例。
[accuracy =TP+TNTP+FN+FP+TN] ? (4)
[recall=TPTP+FN]
其中TP為將正類預測為正類數,FN為將正類預測為負類數,FP為將負類預測為正類數,TN為將負類預測為負類數。
3.3 實驗及結果分析
3.3.1 實驗環境
實驗環境操作系統為Windows 10 64位,語言為Python 3.6,采用 TensoFlow GPU 1.14 版本,顯卡為 NVIDIA GTX1060-6G,內存:16G,共90臺。使用OnlineJudge系統進行學生個性化習題在線推送及在線判題。
3.3.2 習題推薦及結果對比
在習題推薦的實驗中,實驗將本文提出的融合協同過濾與分類的習題推薦算法對比單獨使用協同過濾進行習題推薦,以精確度、召回率的指標來評價習題推薦的效果。從3.1中描述的實驗得出數據集,實驗結果如表1所示,從中可以得到以下結論:
1) 在該數據集中,本文提出的融合協同過濾與分類的習題推薦算法習題推薦效果優于單獨使用協同過濾算法,精確度、召回率均具有優勢。說明融合協同過濾與分類的習題推薦算法相比單獨使用協同過濾算法能夠更精準地進行習題推薦,比其他算法更加有效。
2) 在實驗中,進行“冷啟動”時,精確度、召回率均比較低。重復進行3.1中描述的實驗,在已積累一定量學生數據后,進行“熱啟動”,精確度、召回率均有提升。說明通過積累用戶數據來提高習題推薦的精確度、召回率的方法是有效的。
4 結束語
本算法通過對傳統協同過濾算法加入分類算法,實現混合推薦,并應用到習題推薦中,有效地向學生推薦習題,讓學生能夠得到難易度合適的習題,同時在關鍵時刻進行知識點回顧,提高了習題推薦質量,促進了學生高效學習。通過控制并不斷增加習題難易度,有效提高了學生進一步學習的積極性。該算法在實際應用中取得較好效果,但前期需要積累一定量的用戶數據,提高協同過濾精準度,也需要經常回顧用戶數據,清除長期停滯的用戶數據,使推薦內容及時跟進。
參考文獻:
[1] 陳云峰.基于用戶偏好多樣性的推薦算法研究及應用[D].合肥:中國科學技術大學,2018.
[2] 劉建國,周濤,汪秉宏.個性化推薦系統的研究進展[J].自然科學進展,2009,19(1):1-15.
[3] 柏茂林.基于協同過濾的數學習題個性化推薦系統的設計與實現[D].錦州:渤海大學,2018.
[4] 付興華.基于協同過濾算法的移動學習系統的設計與實現[D].北京:北京工業大學,2017.
[5] 姜盼.基于協同過濾的習題推薦系統設計與實現[D].荊州:長江大學,2017.
[6] 蔣昌猛.基于知識點的個性化習題推薦研究[D].西安:西北大學,2017.
[7] 蔣昌猛,馮筠,孫霞,等.基于知識點層次圖的個性化習題推薦算法[J].計算機工程與應用,2018,54(10):229-235.
[8] 丁強.基于學習路徑圖的習題推薦算法研究——以程序設計基礎課程為例[D].西安:西北大學,2016.
【通聯編輯:唐一東】