王文泉
(深圳信息職業技術學院 信息中心,廣東 深圳518172)
錯題管理系統中個性化推薦練習算法的設計與實現
王文泉
(深圳信息職業技術學院 信息中心,廣東 深圳518172)
文章針對錯題管理系統中最為重要的一個組成部分——鞏固練習,設計個性化推薦練習算法,采用Java語言進行模擬實現,通過算法分析發現推薦結果較為理想。算法設計在網絡錯題管理系統中得到功能上的實現,并應用于實際教學中。
錯題管理;個性化推薦;算法分析
網絡學習者作為眾多Web用戶之一,有其獨特的特征。在錯題管理系統中,更正錯題作為最重要的環節,其中主要的策略是鞏固練習的實施。如何為學習者推薦個性化的練習,消除學習者知識缺陷,最大程度做到“錯題不錯”,其推薦技術及算法值得研究。
一般來說,個性化推薦可采用基于規則的技術、基于內容過濾的技術和協作過濾技術。基于內容的過濾技術主要依靠關鍵詞匹配技術,過濾掉那些相關度不高的項目。基于內容過濾通過“資源——用戶”關系,利用信息資源與用戶興趣之間相似性來過濾信息,把符合用戶興趣的新的資源推薦給用戶,簡單有效。
錯題管理系統要為學習者推薦的試題應該具有與學習者做錯的試題具有相同知識點、類似難度的特征。所以,本研究采用內容過濾方法為學習者篩選出合適的試題資源。
1.推薦試題特征分析
錯題的鞏固練習作為錯題管理系統中最為重要的一部分,其主要目的在于根據學習者需要,為學習者推薦一定數量相關知識的練習題,以用于練習和鞏固知識。在錯題管理系統中,推薦給學習者的試題應具有以下三個特征:
(1)與學習者做錯的試題同屬一個知識點
作為學習者“鞏固練習”而推薦的試題,其首先要具備的特征就是要與學習者做錯的題目具有相同的知識點屬性,只有這樣,才能達到鞏固該知識的目的。
(2)試題具有盡可能高的質量
試題的質量高低取決于兩個方面:一是試題資源的得分,系統用戶對試題的評分越高,說明試題質量越好,該題越值得推薦,反之亦然;二是試題被收藏次數,由于錯題管理系統有著不同于普通學習系統的特點,它的主要目的在于消除學習者錯誤。所以,決定試題質量高低的第二個因素是試題被收藏次數。試題被收藏次數越多,說明該題目被做錯的次數越多或者該題目極具經典試題的特征,該試題對于當前學習者的質量也就越高,試題也就越值得推薦。
(3)與學習者做錯的題目具有類似的試題難度,兼顧基礎鞏固和能力提升
為維持學習者的學習積極性,保證學習者掌握知識,系統盡量為學習者推薦相同試題難度的試題。但是,當前的推薦是發生在學習者已經發生錯誤,并且進行了初步的分析之后,所以為起到鞏固基礎知識和進一步提高能力的作用,系統可以為學習者推薦相鄰試題難度的試題。例如,學習者當前出錯試題難度為“理解”,那么系統為其推薦的試題集可能包含 “識記”、“理解”、“應用”三個難度等級;而如果學習者當前出錯試題難度級別為“識記”,那么系統為其推薦的試題則可能包含“識記”和“理解”兩個難度級別。
2.算法的設計思路
該部分依據上一小節的討論,針對錯題管理系統中推薦試題所應具有的三點特征進行分析,設計推薦算法。
(1)知識體系的建立
系統采用知識結構樹建立知識體系,知識結構樹的建立按照“課程——章/單元——節——知識點”的次序依次建立,效果如圖 1所示,該圖為初二《科學》課程的知識結構樹,包含三個級別:課程——章——知識點,這是因為:根據科目的不同,知識結構樹的建立所作的取舍也不同。

圖1 學習內容樹結構圖
知識結構樹建立完畢后,題目入庫將綁定到相應的知識點(可以綁定為“課程”、“章”、“節”、“具體定理、公式、單詞等”其中的某一項或者某幾項)。當系統為學習者推薦試題時,系統將首先檢索出與錯題具有相同知識點的題目。
(2)試題質量的確定
根據上一小節的討論,被推薦的試題質量由兩部分決定:試題資源的得分和試題被收藏的次數。
系統采用“5”、“4”、“3”、“2”、“1”評分的形式區分不同質量的資源,將試題分為五個等級。試題得分越高,說明試題資源的質量越好。試題評分者可以是學生或者教師,試題得分取所有評分者評分的平均值,計算公式如公式1所示。假如試題是新加入到系統中,那么會出現試題沒有得分的現象。為避免這種現象的發生,將新加入系統中的每道試題得分默認設為“3”,也即設為中等水平。伴隨著系統的使用,試題評分逐漸增多,系統將自適應地計算和更改試題得分。篩選出的試題按照試題得分由多到少排序。

其中,S表示試題得分,Si表示第i個評分用戶對試題的評分,n表示對試題評分的用戶總數。
被收藏次數是指一道試題被所有學習者收藏到錯題本中的總次數。試題被收藏次數越多,說明試題質量越高,越具有知識點代表性,越值得學習者去做。系統為學習者推薦的試題按試題被收藏次數由多到少排序。
由于試題質量要綜合考慮試題得分和被收藏次數兩方面因素,而且兩個因素沒有權重區別 (即同等重要),試題得分已經界定取值范圍為1~5。所以,為了消除由于被收藏次數單方面過多或者過少而引起的試題質量得分偏高或者偏低的現象發生,試題被收藏次數采取與試題得分相同的五等級劃分方法。由此而得出的結果稱為試題收藏度,其計算公式如公式2所示。

其中,F表示試題收藏度,CTmax表示所有試題中被收藏最多的試題的被收藏次數,CT表示試題的實際被收藏次數。
綜上討論,試題質量的最后得分取試題得分和試題收藏度的均值,其計算方法如公式3所示。試題質量得分越高,說明試題質量越高。

其中,QS表示試題質量得分,S表示試題資源評分,F表示試題收藏度。
(3)試題難度的劃分
為指導教育測量和評價,美國教育心理學家布魯姆發表《教育目標分類學》,將認知領域目標由低到高依次分為知道、領會、運用、分析、綜合和評價。不同層次的教育目標代表著不同的知識結果和認知水平。
系統借鑒布魯姆教育目標分類方法,將試題標記為識記、理解、運用(包含原始分類的運用、分析、綜合和評價)三個難度等級。
內容過濾技術的基本過程如下:在同一特征空間下,建立資源特征向量和用戶描述文件;依據用戶描述文件,比較系統內所有資源特征向量與用戶描述文件之間的相似度;把相似度高的資源推薦給用戶。余弦相似度計算公式如公式4所示。

其中,u表示用戶向量,q表示資源向量。
結合第二部分第一節的討論,試題難度特征值按照其難度級別,依次將識記、理解、運用記為“1”、“2”、“3”。由于跟學習者做錯的試題不屬于同一知識點的試題是不希望被選出的,試題難度級別最大特征值為“3”,所以為了區別出試題知識點屬性,將知識點特征值按照是否為所需要知識點設為“5(任意一個大于5的值)”或者“-5”。
3.個性化推薦流程
根據以上討論,確定系統整體推薦流程如下:
(1)獲取用戶描述文件,對學習者做錯的題目和試題資源進行特征向量構建。
(2)通過比較資源特征向量與用戶描述文件,篩選出與學習者錯誤試題具有相同知識點、類似試題難度的試題集C1。
(3)C1按照試題質量由高到低排序,形成試題集C2。
(4)C2按照實際需要選出top(N)推薦給學習者。
以上內容過濾算法推薦流程中的關鍵步驟是特征向量的構建,其思想如下:
IF出錯
THEN獲取出錯試題屬性信息
SELECT試題FROM試題庫
IF試題知識點屬性值=出錯試題知識點屬性值
THEN試題知識點特征值=5
ELSE試題知識點特征值=-5
SET試題難度級別特征值=1,2,3WHERE試題難度級別=識記,理解,應用
試題特征向量=(試題知識點特征值,試題難度級別特征值)
1.算法分析
為驗證推薦算法的有效性,現假定有10道試題,它們的屬性信息如圖2所示。采用本文討論的個性化推薦方法,為學習者推薦3道試題。其詳細推薦步驟如下:

圖2 試題數據庫
(1)假定t0為當前學習者出錯試題,按照“試題(知識點,難度)”獲取所有試題特征向量值如表1所示。

表1 試題特征向量構建
采用JAVA實現該部分代碼如下:

//構建特征向量questionsset難度特征值=1where難度級別='識記'");//設置難度級別為“識記”的試題難度特征值為1
intb=stmt.executeUpdate("updateexamquestionsset難度特征值=2where難度級別='理解'");//設置難度級別為“理解”的試題難度特征值為2
intc=stmt.executeUpdate("updateexamquestionsset難度特征值=3where難度級別='應用'");//設置難度級別為“應用”的試題難度特征值為3
intd=stmt.executeUpdate("updateexamquestionsset知識點特征值=-5");//初始化所有試題的知識點特征值為-5
inte=stmt.executeUpdate("updateexamquestionsset知識點特征值=5where試題名稱='T0'");//將當前出錯試題的知識點特征值設為5
System.out.println(a+"條記錄難度特征值被設為1"+";"+b+"條記錄難度特征值被設為2"+";"+c+"條記錄難度特征值被設為3"+"。");
System.out.println("所有試題難度特征值構建完畢!");
System.out.println(d+"條記錄知識點特征值初始化為-5。");
System.out.print("當前出錯試題T0的知識點特征值已被設為5;");
rs=stmt.executeQuery("select*fromexamquestionswhere 試題名稱='T0'");

T0.tname=rs.getString("試題名稱");
T0.tknowledge=rs.getString("所屬知識點");
T0.tdifficulty=rs.getString( "難度級別");
T0.knowledgevalue=Integer.parseInt(rs. getString("知識點特征值"));
T0.difficultyvalue=Integer.parseInt(rs. getString("難度特征值"));
currentknowledge=T0.tknowledge;//將T0所屬知識點設為當前知識點
System.out.println("當前出錯知識點為" +"“"+currentknowledge+"”;"+"難度特征值為"+ T0.difficultyvalue+"。");
}
intf=stmt.executeUpdate("updateexamquestionsset知識點特征值=5where所屬知識點='知識點1'");//將與T0具有相同知識點的試題的知識點特征值設為5
System.out.println(f+"條記錄知識點特征值被設為5。");
System.out.println("所有試題知識點特征值構建完畢!");
System.out.println("所有試題特征向量構建完畢!");
該部分輸出結果如圖3所示。

圖3 構建特征向量過程的輸出結果
(2)接下來,根據公式4計算T1~T9與T0的余弦相似度,計算結果如表2所示。

表2 余弦相似度
舍棄與T0不屬于同一知識點(即與T0之間的余弦相似度小于0)和與T0難度級別相差大于1(即與T0之間的余弦相似度小于等于0.94)的題目,也就是只取sim值大于0.94的試題,形成試題集C1={T1,T2,T3,T6,T7, T8,T9}。
(3)按照公式2和公式3計算C1中各試題質量得分如表3所示。

表3 試題質量得分
C1按照資源質量得分由高到低排序,形成試題集C2={T7,T6,T3,T2,T9,T1,T8}。
該部分代碼輸出結果如圖4所示。

圖4 C1按照試題質量由高到低排序生成C2過程的輸出結果
(4)根據需要,從C2中選出3道試題,即T6,T7和T3,推薦給學習者。
根據上一部分的討論,可以看出,為學習者推薦的三道試題,符合被推薦試題所應具有的特征。
2.算法功能實現
根據個性化推薦練習算法的設計,在系統功能上予以實現。當學習者做錯題目時,點擊 “舉一反三”按鈕,則彈出推薦試題練習窗口,學習者可以進行鞏固練習。
為考察個性化推薦練習算法的應用效果,進一步指導錯題管理系統設計和開發,筆者在深圳市福田區南華中學某兩個班進行了教學實驗。在后續的研究中,筆者將第一時間公布實驗結果;并進一步優化個性化推薦練習算法,檢驗其效果。
[1]StellanOhlsson.Learningfromperformanceerrors [J].PsychologicalReview,1996,103(2):241-262.
[2]Tzu-HuaWang.Web-baseddynamicassessment:Takingassessmentasteachingandlearningstrategyforimprovingstudents'e-Learningeffectiveness[J].Computers& Education,2010(54):1157-1166.
[3]StevenJ.Lorenzet,EduardoSalas,ScottI.Tannenbaum.BenefitingfromMistakes:TheImpactofGuided ErrorsonLearning,Performance,andSelf-Efficacy[J].Human ResourceDevelopmentQuarterly,2005,16(3):301-322.
[4]王文.個性化推薦算法研究[J].電腦知識與技術,2010,6(16):4562-4564.
[5]王智.E-learning環境中個性化推薦系統研究[D].重慶:西南大學,2009.
[6]尤秀梅.教學平臺中基于知識點的個性化推薦學習的研究與實現[D].天津:天津師范大學,2010.
[7]劉建國,周濤,汪秉宏.個性化推薦系統的研究進展[J].自然科學進展,2009,19(1):1-15.
[8]尤秀梅.教學平臺中基于知識點的個性化推薦學習的研究與實現[D].天津:天津師范大學,2010.
[9]劉博.智能教學系統中個性化題庫的設計與實現[J].中國電化教育,2010(284):110-114.
[10]陳敏,余勝泉,楊現民,黃昆.泛在學習的內容個性化推薦模型設計[J].現代教育技術,2011,21(6):13-18.
[11]鄭婕.個性化推薦技術在網絡教學中的應用研究[D].江西:南昌大學,2011.
[12]MarkoBalabanovic,YoavShoham.Fab:Content-Based,CollaborativeRecommendation[J].CommunicationsofTheACM,1997,40(3):66-72.
[13]郭麗麗.E-learning個性化推薦系統研究[D].山東:山東科技大學,2008.
[14]JohnS.Breese,DavidHeckerman,CarlKadie. EmpiricalAnalysisofPredictiveAlgorithmsforCollaborativeFiltering[C].ProceedingUAI's98Proceedingsof theFourteenthconferenceonUncertaintyinArtificialintelligence,1998,SanFrancisco:43-52.
[15]NicholasJ.Belkin,W.BruceCroft.Information FilteringandInformationRetrieval:TwoSidesofthe SameCoin[J].CommunicationofTheACM,1992,35(12):29-38.
[16]曾春,刑春曉,周立柱.基于內容過濾的個性化搜索算法[J].軟件學報,2003,14(5):999-1004.
[17]張開飛.個性化推薦學習系統的模型研究與設計[D].上海:華東師范大學,2009.
[18]葉海琴,尹世君.個性化推薦預測模型性能指標研究[J].軟件導刊,2010,9(8):31-32.
[19]李高敏.基于協同過濾的教學資源個性化推薦技術的研究及應用[D].北京:北京交通大學,2011.
[20]張煒.教育信息共享系統中個性化推薦服務研究[D].陜西:西安電子科技大學,2008.
(編輯:楊馥紅)
G434
B
1673-8454(2016)11-0067-05