熊超,馬華
(湖南師范大學(xué)信息科學(xué)與工程學(xué)院,湖南 長沙 410081)
隨著近年來在線教育大規(guī)模普及,線上學(xué)習(xí)已經(jīng)成為當(dāng)前的主要學(xué)習(xí)形式之一,在線學(xué)習(xí)平臺(tái)中豐富的試題資源,對(duì)于學(xué)生鞏固與強(qiáng)化所學(xué)知識(shí),發(fā)揮了重要作用[1]。但是,試題庫中的試題資源數(shù)量通常比較龐大,而多數(shù)現(xiàn)有的試題系統(tǒng)僅由學(xué)生自主選擇所需練習(xí)的試題,學(xué)生往往憑借主觀感覺去選擇試題,可解釋性不高。同時(shí),學(xué)生對(duì)需要練習(xí)的知識(shí)點(diǎn)的感知較為籠統(tǒng)[2],容易陷入典型的學(xué)習(xí)困境,即不清楚自己對(duì)各個(gè)知識(shí)點(diǎn)的掌握情況,也不知道應(yīng)該挑選哪些適合自己的試題來鞏固或強(qiáng)化所學(xué)的知識(shí)點(diǎn)。因此,我們對(duì)學(xué)生的認(rèn)知狀態(tài)進(jìn)行科學(xué)的診斷分析,并以此來指導(dǎo)在線學(xué)習(xí)平臺(tái)對(duì)學(xué)生進(jìn)行個(gè)性化的試題推薦,這已成為當(dāng)前的一個(gè)研究熱點(diǎn)[3-4]。
心理與教育測量中,對(duì)個(gè)體的認(rèn)知過程、加工技能或知識(shí)結(jié)構(gòu)的診斷評(píng)估被稱為認(rèn)知診斷[5]。DINA模型[6]是一種典型的認(rèn)知診斷模型,目前,大多數(shù)基于認(rèn)知診斷的試題推薦都是基于DINA 模型,例如,朱天宇等人[7]基于DINA 模型提出了一套試題推薦方法。DINA 模型僅支持對(duì)客觀題的處理,即答案僅為對(duì)或錯(cuò)兩種情況。針對(duì)DINA 模型的局限性,Liu 等人[8]提出了模糊認(rèn)知診斷框架(fuzzy cognitive diagnosis framework,F(xiàn)uzzyCDF)以支持認(rèn)知診斷模型處理主觀題。然而,現(xiàn)有研究在進(jìn)行個(gè)性化試題推薦時(shí),側(cè)重于考慮學(xué)生個(gè)體的認(rèn)知診斷情況,缺乏對(duì)學(xué)生群體的共性特性的評(píng)估。
綜上所述,本文在模糊認(rèn)知診斷框架的基礎(chǔ)上,對(duì)學(xué)生在主觀題和客觀題上的答題行為進(jìn)行建模分析,計(jì)算學(xué)生答題風(fēng)格相似度,再采用協(xié)同過濾方法計(jì)算具有相似做題風(fēng)格的學(xué)生得分上的相似度。
通過充分考慮學(xué)生的個(gè)體知識(shí)點(diǎn)掌握程度和群體的學(xué)生學(xué)習(xí)共性,本文提出了一個(gè)新的個(gè)性化試題混合推薦方法,并基于它進(jìn)行了系統(tǒng)實(shí)現(xiàn),該系統(tǒng)以學(xué)生的試題作答情況、知識(shí)點(diǎn)關(guān)聯(lián)矩陣和答題行為作為輸入,對(duì)學(xué)生進(jìn)行認(rèn)知診斷分析與建模,獲取學(xué)生的知識(shí)點(diǎn)掌握情況,為其推薦合適的試題,生成學(xué)生認(rèn)知診斷報(bào)告,以此為學(xué)生自主學(xué)習(xí)提供指導(dǎo),可有效提升學(xué)生的學(xué)習(xí)質(zhì)量和效率。
傳統(tǒng)的DINA 模型僅能有效地處理客觀題,而無法有效地處理主觀題。針對(duì)這一問題,Liu 等人[8]提出了FuzzyCDF。該框架的思路是首先通過IRT 的雙參數(shù)反應(yīng)模型表達(dá)式計(jì)算出學(xué)生對(duì)知識(shí)點(diǎn)的認(rèn)知狀態(tài),即使用一個(gè)模糊集合中的值(即一個(gè)從0 到1 的實(shí)數(shù))來表示學(xué)生對(duì)于知識(shí)點(diǎn)的認(rèn)知能力,再用模糊并和模糊交運(yùn)算來建立主觀題和客觀題的認(rèn)知作答模式。使用知識(shí)點(diǎn)相關(guān)的模糊集的隸屬函數(shù)來確定學(xué)生i 對(duì)知識(shí)點(diǎn)k的掌握程度,其計(jì)算方法如下所示。
其中,αik表示學(xué)生i對(duì)知識(shí)點(diǎn)k的掌握程度,即學(xué)生i對(duì)知識(shí)點(diǎn)k的隸屬度i(k);aik表示知識(shí)點(diǎn)的區(qū)分度;bik表示知識(shí)點(diǎn)k對(duì)于學(xué)生i來說的難度;θi表示學(xué)生i的潛在特質(zhì)水平;D為常數(shù)等于-1.7。對(duì)于客觀題,學(xué)生只有掌握試題考察的所有知識(shí)點(diǎn)才能答對(duì)它。而對(duì)于主觀題,學(xué)生在主觀題上的得分越高,說明他掌握的知識(shí)點(diǎn)越多,其對(duì)該題的掌握程度也越高??陀^題和主觀題的計(jì)算公式如下:
其中,ηij表示學(xué)生i對(duì)試題j的掌握程度;αik表示學(xué)生i對(duì)知識(shí)點(diǎn)k的掌握程度;qjk表示試題j是否考察了知識(shí)點(diǎn)k,取值為1代表考察了,取值為0代表未考察;∩和∪分別代表模糊交和模糊并運(yùn)算。
概率矩陣分解(probabilistic matrix factorization,PMF)作為一種傳統(tǒng)的預(yù)測方法,最開始被用于電影推薦,之后被廣泛用于推薦系統(tǒng),可以通過預(yù)測學(xué)生在試題上的得分來將其應(yīng)用于個(gè)性化試題推薦。首先將學(xué)生和試題分別對(duì)應(yīng)到傳統(tǒng)推薦系統(tǒng)中的用戶和商品,再將學(xué)生的答題情況矩陣對(duì)應(yīng)用戶對(duì)物品的喜愛程度。圖1為將概率矩陣分解應(yīng)用于學(xué)生得分矩陣分解時(shí)的圖模型,PMF 將學(xué)生得分矩陣R分解為學(xué)生和試題的特征矩陣M、N,其中M∈ZD×V、N∈ZD×V且Mu和Nv分別表示特定學(xué)生u和試題v的潛在特征向量來刻畫學(xué)生和試題在低維空間下的表現(xiàn)。
圖1 學(xué)生成績PMF圖模型
本文獲取的學(xué)生答題行為為學(xué)生跳題行為與學(xué)生修改答案行為。其中,學(xué)生跳題行為可分為明顯性跳題和技巧性跳題,明顯性跳題即用戶由于對(duì)試題考察知識(shí)點(diǎn)不熟悉等原因放棄試題,而技巧性跳題則表示學(xué)生為了取得更好的成績?nèi)ミ\(yùn)用一些技巧跳題,如在規(guī)定時(shí)間內(nèi)作答試題,學(xué)生主動(dòng)放棄一些耗時(shí)較大而分值較少的試題。由于本系統(tǒng)不限制學(xué)生做題的時(shí)間,因此僅需考慮學(xué)生的明顯性跳題行為。首先,系統(tǒng)在生成推薦試題列表時(shí)將試題號(hào)按列表順序存入數(shù)據(jù)庫中,之后在學(xué)生作答過程中將正在作答試題號(hào)與數(shù)據(jù)庫中應(yīng)作答試題號(hào)進(jìn)行比較,若相等則不記錄,若不相等則將數(shù)據(jù)庫中該學(xué)生跳題次數(shù)加1。同時(shí),在用戶的作答過程中,除了記錄答案外還記錄本次答案提交時(shí)刻及上次答案提交時(shí)刻,若兩個(gè)時(shí)刻不相等,則說明用戶在作答后修改答案,將數(shù)據(jù)庫中該學(xué)生改題次數(shù)加1。
將學(xué)生每次作答完推薦試題后的答題情況存入數(shù)據(jù)庫中,每一條作答情況記錄對(duì)應(yīng)一條推薦列表,0表示錯(cuò)誤,1表示正確,以字符串形式存儲(chǔ)。
從數(shù)據(jù)庫中提取學(xué)生答題行為矩陣B矩陣,該矩陣一行表示一名學(xué)生,第一列為跳題次數(shù),第二列為改題次數(shù)。通過式⑷計(jì)算兩個(gè)學(xué)生u1和u2之間的相似度。
計(jì)算當(dāng)前學(xué)生與其余所有學(xué)生的相似度,然后選取相似度最高的前50名學(xué)生組成學(xué)生集U。
基于FuzzyCDF 進(jìn)行學(xué)生認(rèn)知診斷的步驟如下:①使用MCMC算法對(duì)FuzzyCDF進(jìn)行失誤率s、猜測率g、潛在特質(zhì)θ、主觀題歸一化方差σ、分度a和困難度b的參數(shù)估計(jì),并結(jié)合一部分初始數(shù)據(jù)獲得訓(xùn)練后的模型。②提取學(xué)生作答模型,使用訓(xùn)練過的FuzzyCDF對(duì)學(xué)生作答情況進(jìn)行分析,由式⑴計(jì)算學(xué)生對(duì)各個(gè)知識(shí)點(diǎn)的掌握情況,由式⑵、式⑶計(jì)算學(xué)生在各個(gè)試題上的掌握水平,學(xué)生試題掌握水平表現(xiàn)為一個(gè)矩陣(即學(xué)生試題掌握矩陣A,A中的每一行代表一個(gè)學(xué)生,每一列代表一個(gè)試題)。③由于每次學(xué)生在使用系統(tǒng)進(jìn)行習(xí)題練習(xí)之后都會(huì)產(chǎn)生新的歷史作答記錄,因此在學(xué)生每次使用完系統(tǒng)退出之后,都需要更新參數(shù)以準(zhǔn)確獲得學(xué)生的知識(shí)點(diǎn)掌握情況。
在得到學(xué)生認(rèn)知診斷信息和答題風(fēng)格相似的學(xué)生集合U后,將其用于概率矩陣分解。具體的,首先在學(xué)生試題掌握矩陣A中提取出學(xué)生集合U中所有學(xué)生的試題掌握情況組成相似學(xué)生試題掌握矩陣S,然后由式⑸從相似學(xué)生試題掌握矩陣S中提取特征buv,其作為PMF的先驗(yàn)信息[6]。
其中,bu表示學(xué)生Pu的學(xué)習(xí)得分先驗(yàn)程度,體現(xiàn)了學(xué)生之間知識(shí)點(diǎn)掌握程度的差異,為矩陣A第u行的平均值bv表示試題v的先驗(yàn)得分程度,體現(xiàn)了題目之間難易程度的差異,為矩陣A第v列的平均值。然后利用概率矩陣分解和式⑹獲得學(xué)生的潛在作答情況ηuv。
其中,μ為總體平均分,ρ表示學(xué)生個(gè)性學(xué)習(xí)狀態(tài)與共性學(xué)習(xí)狀態(tài)在預(yù)測時(shí)所占的比例,ρ∈[0,1],ρ越大表示預(yù)測得分更多的受學(xué)習(xí)狀態(tài)共性影響,可自行調(diào)節(jié),M、N表示PMF 分解出的低緯因子。其中,個(gè)性學(xué)習(xí)表示不考慮與其他學(xué)生的相似度,而共性學(xué)習(xí)則考慮當(dāng)前學(xué)生與其他學(xué)生間的相似度。
在獲得學(xué)生潛在作答情況ηuv后,計(jì)算出學(xué)生Pu正確回答試題v的概率,隨后設(shè)定邊界值low和high(low<high),根據(jù)學(xué)生潛在作答情況向?qū)W生Pu從待推薦試題集合J中向其推薦正確作答概率在low和high之間的試題集合J0。
系統(tǒng)采用SpringBoot、Layui、Thymeleaf 開發(fā),數(shù)據(jù)庫選用Mysql,F(xiàn)uzzyCDF 與PMF均以Python 語言編碼,使用EChart 進(jìn)行數(shù)據(jù)可視化,運(yùn)用Runtime.getRuntime()執(zhí)行腳本文件從而實(shí)現(xiàn)在Java 項(xiàng)目中調(diào)用FuzzyCDF與PMF算法。系統(tǒng)主要包括了用戶管理、試題管理、知識(shí)點(diǎn)管理、試題推薦、學(xué)習(xí)診斷報(bào)告、習(xí)題練習(xí)等六個(gè)模塊。系統(tǒng)的功能模塊結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)功能模塊結(jié)構(gòu)
系統(tǒng)中六個(gè)核心模塊的特點(diǎn)如下。①用戶管理模塊:系統(tǒng)支持管理員、教師、學(xué)生三種權(quán)限登錄,管理員負(fù)責(zé)管理教師和學(xué)生賬號(hào),教師負(fù)責(zé)知識(shí)點(diǎn)管理、試題管理,學(xué)生可進(jìn)行試題練習(xí)和查看認(rèn)知診斷報(bào)告。其中,管理員賬號(hào)只能在數(shù)據(jù)庫中添加,教師賬號(hào)只能由管理員進(jìn)行管理而不能注冊(cè),學(xué)生賬號(hào)允許學(xué)生自主注冊(cè)。②試題管理模塊:系統(tǒng)支持教師錄入、修改、刪除試題,為試題添加相關(guān)知識(shí)點(diǎn)。③知識(shí)點(diǎn)管理模塊:系統(tǒng)支持教師增加、修改、刪除知識(shí)點(diǎn)信息,同時(shí)知識(shí)點(diǎn)的變化會(huì)影響Q矩陣的變化。④試題推薦模塊:系統(tǒng)用本文提出的試題推薦方法生成學(xué)生試題推薦列表。⑤學(xué)習(xí)診斷模塊:系統(tǒng)將學(xué)生對(duì)各知識(shí)點(diǎn)的掌握情況通過Echart 以可視化的方式呈現(xiàn),讓學(xué)生直觀地了解自己對(duì)各個(gè)知識(shí)點(diǎn)的掌握情況,有助于提高增強(qiáng)學(xué)習(xí)針對(duì)性和提高學(xué)習(xí)效率。⑥試題練習(xí)模塊:系統(tǒng)支持學(xué)生自己選擇不同知識(shí)點(diǎn)關(guān)聯(lián)的試題,也支持學(xué)生練習(xí)系統(tǒng)推薦試題。學(xué)生選擇練習(xí)推薦試題時(shí),系統(tǒng)訪問數(shù)據(jù)庫查看學(xué)生最新的試題推薦列表,將試題展示出來。學(xué)生在進(jìn)行試題練習(xí)時(shí)系統(tǒng)會(huì)記錄其作答情況及答題行為。
學(xué)生登錄后的首頁如圖3 所示,認(rèn)知診斷結(jié)果的展示頁面如圖4所示。
圖3 學(xué)生首頁
圖4 認(rèn)知診斷報(bào)告頁面
本文提出的個(gè)性化試題推薦方法和系統(tǒng),基于模糊認(rèn)知診斷框架獲取學(xué)生的當(dāng)前認(rèn)知狀態(tài),分析學(xué)生答題過程中的動(dòng)態(tài)行為數(shù)據(jù),獲得學(xué)生的共性特性,通過結(jié)合這兩方面的信息來提高個(gè)性化試題推薦的準(zhǔn)確性有利于提高學(xué)生的學(xué)習(xí)效率和試題資源利用率。未來研究中,我們將引入自然語言處理,使系統(tǒng)能處理簡答題等多種主觀題,以完善系統(tǒng)對(duì)更多主觀和客觀題型的處理機(jī)制。