周顯春,肖衡,高華玲
(三亞學(xué)院信息與智能工程學(xué)院,三亞 572022)
隨著大數(shù)據(jù)技術(shù)、人工智能、互聯(lián)網(wǎng)技術(shù)和教育信息化技術(shù)的飛速發(fā)展,學(xué)習(xí)資源也呈現(xiàn)爆發(fā)式增長,造成學(xué)習(xí)者很難從浩如煙海的資料不能快速有效地找到適合自己個性化學(xué)習(xí)資源,甚至?xí)霈F(xiàn)認知超載、網(wǎng)絡(luò)迷航[1]等異常現(xiàn)象。于是,個性化學(xué)習(xí)順勢而生,并已經(jīng)成為教育技術(shù)領(lǐng)域的研究熱點[2-3]。然而,在近兩年的新媒體聯(lián)盟地平線報告(高等教育版)[4]中,個性化學(xué)習(xí)被定義為是一項“了解但解決方案尚不清晰的困難挑戰(zhàn)”,并且認為目前個性化學(xué)習(xí)最大的障礙就是如何把紛繁復(fù)雜的方法和技術(shù)轉(zhuǎn)變成一套精簡的策略,開發(fā)出有教學(xué)理論指導(dǎo)的個性化網(wǎng)絡(luò)學(xué)習(xí)系統(tǒng)。
現(xiàn)在是大數(shù)據(jù)、人工智能時代,一切以數(shù)據(jù)為基礎(chǔ),用數(shù)據(jù)說話。通過獲取學(xué)生個性特征、學(xué)習(xí)行為軌跡數(shù)據(jù),利用機器學(xué)習(xí)算法能夠精準識別學(xué)習(xí)中的個性化特征、推薦優(yōu)秀的學(xué)習(xí)資源、學(xué)習(xí)路徑,預(yù)測未來的學(xué)習(xí)行為、學(xué)習(xí)結(jié)果。對于預(yù)測結(jié)果欠佳的學(xué)習(xí),需要盡早給予個性化學(xué)習(xí)強制干預(yù)、有效指導(dǎo),讓學(xué)習(xí)者能克服時空的限制實現(xiàn)自我導(dǎo)航,避免認知過載,提高學(xué)習(xí)者的學(xué)習(xí)興趣,激化學(xué)習(xí)中潛在的學(xué)習(xí)潛能,最終達到最優(yōu)的學(xué)習(xí)效果。
當(dāng)前,國內(nèi)外利用機器學(xué)習(xí)算法對個性化學(xué)習(xí)研究多集中在個性化學(xué)習(xí)路徑推薦、個性化學(xué)習(xí)系統(tǒng)、個性化教學(xué)方法、個性化學(xué)習(xí)評價模型等幾個方面。姜強等[5]基于大數(shù)據(jù)背景下以AprioriAll算法分析并通過實驗驗證群體信息挖掘個性化的學(xué)習(xí)路徑。周海波[6]提出根據(jù)學(xué)生個性特征推送個性化的學(xué)習(xí)資源。牟智佳[7]為了對學(xué)習(xí)效果有效評價,采用基于聚類的層次性個性化化評價體系,有助于個性化評價系統(tǒng)的實現(xiàn)。以上研究都忽視一個關(guān)鍵內(nèi)容,即學(xué)生的學(xué)習(xí)特征,包括學(xué)習(xí)風(fēng)格,與知識點內(nèi)容之間是有本質(zhì)區(qū)別的。學(xué)生特征沒有時序性,而知識點之間大多數(shù)是有時序性的。根據(jù)學(xué)生風(fēng)格、特征使用Apriori進行聚類,都不能產(chǎn)生符合時間序列的資源或者學(xué)習(xí)路徑推薦。
在海量的教育教學(xué)數(shù)據(jù)環(huán)境下,為了更好改善個性化學(xué)習(xí)效果,本研究主要從兩個方面對以前的研究成果進行改進。一是對Apriori算法在Spark分布式計算框架并行化,改善算法的實時性;二是利用學(xué)習(xí)目標和知識點修改Apriori方法推薦的知識點序列,讓學(xué)習(xí)內(nèi)容或路徑更有針對性,改善個性化學(xué)習(xí)的質(zhì)量。
Apriori算法是R.Agrawal用于解決關(guān)聯(lián)規(guī)則問題的數(shù)據(jù)挖掘方法[8],得到廣泛的應(yīng)用。隨著數(shù)據(jù)規(guī)模、維度的不斷增大,造成該算法在實際場景運用中也存在時間延長、內(nèi)存不足的問題。為了改善其挖掘的效率,利用分布式架構(gòu)Hadoop、Spark,大量的學(xué)者并行化Apriori算法研究,可以大幅度提升數(shù)據(jù)挖掘的效率。對比Hadoop平臺,Spark的效率更高[9-10]。
Spark引入彈性分布式數(shù)據(jù)集RDD數(shù)據(jù)模型,集成了節(jié)點集群內(nèi)存,適合迭代計算,不需要訪問磁盤。相對于Hadoop,Spark更適合分布式處理場景。Trans?actions、Action是Apriori算法并行化迭代計算實現(xiàn)的核心[8]。Apriori在Spark上實現(xiàn)分為兩個階段,第一階段迭代求出每個項集,第二階段針在第j個項集前提下求出第i+1項集的候選集。
輸入:數(shù)據(jù)源 DataSet,最小支持度閾值Count_min_sup。
輸出:K-項頻繁集。
#頻繁集合生成偽代碼
(1)采用并行化得到分區(qū)的RDD,分發(fā)給worker;#每個worker節(jié)點可以獨立工作;
(2)flatMap()作用于數(shù)據(jù)集中的 Transaction,讀取每個中的Item;
(3)map()轉(zhuǎn)換 Item 成鍵值對(Item,1);
(4)reduceByKey()用于計算每個Item的出現(xiàn)的次數(shù),filter()對于Item的次數(shù)小于Count_min_sup的進行剪枝;
(5)最后,把剪枝后的Item轉(zhuǎn)換成Set中保存。#規(guī)則生成偽代碼
(1)轉(zhuǎn)換Item的Set為候選項集Set(T);
(2)頻繁集合的元素進行自連接,產(chǎn)生K+1候選集;
(3)重復(fù)頻繁集生成過程。
經(jīng)典或并行化的Apriori算法首先要從Transaction中獲得Item出現(xiàn)的次數(shù),再根據(jù)次數(shù)閾值過濾、自連接生成規(guī)則?;趯W(xué)習(xí)目標的并行化Apriori,針對學(xué)習(xí)目標,先過濾Transaction,即Transaction的Item不包含學(xué)習(xí)目標的關(guān)鍵詞(知識點關(guān)鍵詞)直接刪除,可以大幅提升其推薦的效率。
相對于其1.1并行化Apriori偽代碼,需要修改兩句一是頻繁集生成的第二句為:flatMap()作用于數(shù)據(jù)集中的Transaction,filter讀取每個中的Item,過濾掉沒有學(xué)習(xí)目標關(guān)鍵詞的Transaction;二是把規(guī)則生成偽代碼的第二句修改為:頻繁集合的元素進行自連接,然后根據(jù)知識點、知識點的關(guān)系排列Item順序,產(chǎn)生有序Item的K+1候選集。
目前,Spark支持四種運行模式。本地單機模式、集群模式,而集群模式又分為基于Mesos、基于YARN、基于EC模式。本文的Spark分布式集群基于YARN,即Hadoop2[11]。
(1)實驗條件
軟件:Ubuntu Server 17.10,Hadoop 2.7,JDK 1.8。硬件:6臺聯(lián)想商用機,CPU是主頻3.4GHz的Intel酷睿i5,硬盤容量512G,內(nèi)存8GB。
實驗數(shù)據(jù):數(shù)據(jù)量大小為2G,Transaction平均長度為38MB,共120個Item項集,包括約500萬條Trans?action記錄。
實驗計劃:首先,采用經(jīng)典Apriori算法以及保持10個節(jié)點的集群環(huán)境下的并行化MapReduce-Apriori、Spark-Apriori算法,在處理不同數(shù)據(jù)集的情況下,不同的算法運行時間關(guān)系如圖1所示;其次,采用200萬條數(shù)據(jù)集,從一臺機器開始,以2的倍數(shù)遞增機器數(shù)、節(jié)點數(shù)。MapReduce-Apriori、Spark-Apriori算法分別在1、2、4、8節(jié)點時完成任務(wù)的運行時間結(jié)果如圖2所示?;趯W(xué)習(xí)目標和知識點的Spark-Apriori簡稱為改進的Spark-Apriori。
由圖 1可知,無論是 MapReduce-Apriori還是Spark-Apriori算法都比經(jīng)典Apriori算法的完成相同任務(wù)執(zhí)行時間短、效率高。隨著數(shù)據(jù)量的增加,分布式算法優(yōu)勢更加明顯,而且Spark-Apriori比MapReduce-Apriori更適合大數(shù)據(jù)環(huán)境,原因是Spark-Apriori算法是基于內(nèi)存進行迭代計算,大大減少數(shù)據(jù)需要I/O讀取時間,而且因為簡化運算,改進的Spark-Apriori比Spark-Apriori的運行時間更短。由圖2可知,隨著worker節(jié)點數(shù)增多,改進 Spark-Apriori、Spark-Apriori、MapReduce-Apriori算法執(zhí)行時間越來越短,說明計算節(jié)點worker節(jié)點越多越能提高算法效率。
圖1 三種算法不同數(shù)據(jù)量的運行時間圖
圖2 兩種算法在不同節(jié)點數(shù)的運行時間
Apriori可以不僅應(yīng)用在學(xué)生的成績分析上[12],如知識點與學(xué)生能力[13]之間的相關(guān)性,而且還可以與學(xué)生風(fēng)格相結(jié)合。本研究在個性化學(xué)習(xí)的應(yīng)用中最大的創(chuàng)新點是根據(jù)學(xué)習(xí)目標,即需要掌握的知識逆推學(xué)習(xí)過程。如果要完成該學(xué)習(xí)目標,需要掌握那些知識點序列。知識點之間不僅有時間順序,而且還可以根據(jù)學(xué)生的風(fēng)格和學(xué)習(xí)能力可以動態(tài)調(diào)整,以最優(yōu)的路徑掌握知識點。
圖3 基于學(xué)習(xí)目標的個性化學(xué)習(xí)推薦路徑生成架構(gòu)
以教育教學(xué)的布魯姆認知目標為依據(jù),構(gòu)建學(xué)科知識點模型、知識思維導(dǎo)圖,然后利用jieba+Apriori方法完成知識點、知識點關(guān)系的提取和集成。例如,利用閔宇鋒[14]等提出方法可以生成進制二和字符表示知識點及關(guān)系如圖4。
圖4 進制、字符表示知識點及關(guān)系圖
(1)收集數(shù)據(jù)
在學(xué)生確定學(xué)生目標之后,要求學(xué)生填寫基本特征的調(diào)查表,涉及內(nèi)容有學(xué)生姓名、性別、學(xué)號、學(xué)習(xí)風(fēng)格、學(xué)習(xí)時間等內(nèi)容,接著學(xué)生參加基于學(xué)習(xí)目標的知識點題目測試,測試結(jié)果能夠動態(tài)調(diào)整學(xué)習(xí)路徑。
(2)基于學(xué)習(xí)目標和知識點的Spark的Apriori算法的知識點推薦
在基于學(xué)習(xí)目標的并行化Apriori算法完成學(xué)習(xí)路徑推薦后,使用知識點對學(xué)習(xí)路徑進行修正。例如,中文字符表示知識點的學(xué)習(xí)。
①根據(jù)學(xué)習(xí)風(fēng)格、學(xué)生特征[4]可以獲取Transac?tion,但是通過中文字符、漢字、字符表示等關(guān)鍵詞篩選后剩下少量的 Transaction;如:{進制,字符表示},{進制,西文,漢字},{十進制,二進制,西文,漢字輸入,漢字存儲,漢字輸出},……
為了體現(xiàn)本研究的效果,以物流專業(yè)50名學(xué)生作為研究對象,講授《計算機應(yīng)用基礎(chǔ)》課程。按照學(xué)號計算機隨機均等分組,每組25人,一組自主學(xué)習(xí),另外一組按照推薦學(xué)習(xí)路徑學(xué)習(xí),采用靈活的在線和翻轉(zhuǎn)課堂方式開展一個學(xué)期的學(xué)習(xí)。期末考試后,隨機挑選4位學(xué)生,從網(wǎng)上平臺提取學(xué)習(xí)數(shù)據(jù)和學(xué)習(xí)成績對已完成學(xué)習(xí)績效進行客觀分析,如圖5、6所示。
由圖5知,自選學(xué)習(xí)路徑的學(xué)生所花費學(xué)習(xí)時間要多于按照個性化推薦路徑學(xué)習(xí)的學(xué)生;由圖6知,使用個性化推薦路徑學(xué)習(xí)的學(xué)生成績要好于自選學(xué)習(xí)路徑的學(xué)生。因此,學(xué)生按照個性化學(xué)習(xí)路徑學(xué)習(xí)時,無論花費的學(xué)習(xí)時間還是產(chǎn)生的學(xué)習(xí)效果的效率都自選學(xué)習(xí)路徑要好。
在海量的教育教學(xué)數(shù)據(jù)環(huán)境下,為了更加改善個性化學(xué)習(xí)的效果,本研究以學(xué)習(xí)目標為核心,利用在Spark平臺上并行化Apriori方法逆向推薦基于有序知識點的學(xué)習(xí)內(nèi)容或?qū)W習(xí)路徑。經(jīng)過教學(xué)實踐驗證,基于學(xué)習(xí)目標的個性化學(xué)習(xí)推薦路徑能夠大幅提升學(xué)習(xí)者學(xué)習(xí)效率,可以解決認知超載、網(wǎng)絡(luò)迷航等問題,也為該類平臺的實現(xiàn)提供研究思路。
圖5 不同學(xué)習(xí)組的學(xué)習(xí)時間比較
圖6 不同學(xué)習(xí)組的學(xué)習(xí)成績比較