呂 婷,朱正月 ,余沛文
(1.安徽電子信息職業(yè)技術(shù)學(xué)院,安徽 蚌埠 233000;2.吉林大學(xué) 軟件學(xué)院,吉林 長春 130000)
隨著大數(shù)據(jù)、云計算和移動互聯(lián)等技術(shù)的不斷發(fā)展以及人們對教育需求的提升,以在線教育平臺為主的“互聯(lián)網(wǎng)+”教育模式得到了廣泛的認可與普及。國內(nèi)在線教育大學(xué)生用戶規(guī)模呈快速持續(xù)擴張的趨勢[1]。
在線上教育中學(xué)習(xí)者與學(xué)習(xí)者、學(xué)習(xí)者與教師之間處于時空分離的狀態(tài),容易產(chǎn)生寂寞、孤獨、無助的情緒。若能為學(xué)習(xí)者提供合適的學(xué)習(xí)伙伴,通過協(xié)作學(xué)習(xí)則可減輕這種孤獨感,并有利于提高學(xué)習(xí)興趣、提升學(xué)習(xí)效果。因此,如何為學(xué)習(xí)者提供合適的學(xué)習(xí)伙伴,是當(dāng)代教育領(lǐng)域的一個重要研究課題[3]。學(xué)習(xí)者對自己的學(xué)習(xí)伙伴有著個性化的選擇,在網(wǎng)絡(luò)化學(xué)習(xí)環(huán)境中,由于缺少某種合適有效的技術(shù)支持,學(xué)習(xí)者很難發(fā)現(xiàn)與自己興趣或認知風(fēng)格相近的學(xué)習(xí)伙伴,“獨學(xué)而無友”,成為網(wǎng)絡(luò)化教育被詬病的重要原因之一[4]。
面對海量的學(xué)習(xí)資源,個性化推薦在線教育平臺大部分都是圍繞著用戶的特征信息進行分析和建模。例如,通過用戶的學(xué)習(xí)風(fēng)格、學(xué)習(xí)興趣等特征信息構(gòu)建推薦模型[1,5-6]。但這種推薦的結(jié)果往往不精準(zhǔn),很難令人滿意,一般適用于一些簡單推薦。
KNN(K-Nearest Neighbor)是機器學(xué)習(xí)中的經(jīng)典算法,在特征空間k個最近鄰樣本中,以多數(shù)樣本的類別來分類,進而找出相似度較高的同類事物,該算法運行效率較高,被廣泛應(yīng)用于科學(xué)和工業(yè)等領(lǐng)域。為此,很多學(xué)者在KNN算法應(yīng)用上不斷嘗試,推陳出新。圖像分類方面,有學(xué)者認為KNN算法是一種理想的分類器,在此基礎(chǔ)之上,提出了基于KNN的圖像自動分類模型[7];有學(xué)者針對在用戶給定分類精度需求和低時間復(fù)雜度的約束下,提出的自適應(yīng)加權(quán)K近鄰分類法,提高了自然圖像的分類性能[8]。在文本分類方面,有學(xué)者根據(jù)文本之間關(guān)系重構(gòu)隸屬度函數(shù),引入粗糙集重新定義上下近似概念,定義各類文本的上下近似空間,改進傳統(tǒng)KNN,形成基于粗糙KNN算法的加權(quán)距離隸屬度算法,最終使文本分類準(zhǔn)確率和分類效率都得到了有效提高[9]。另有學(xué)者,依據(jù)KNN分類算法和反饋學(xué)習(xí)的思想,給出基于反饋學(xué)習(xí)的中文文本分類模型和基于KNN的中文文本分類反饋學(xué)習(xí)過程,通過實驗表明,KNN分類算法可以有效地改善分類效果[10]。
基于在線教育環(huán)境下學(xué)習(xí)伙伴推薦需求及KNN算法應(yīng)用現(xiàn)狀的分析,本文提出基于機器學(xué)習(xí)的學(xué)生學(xué)習(xí)伙伴推薦平臺,具有一定的現(xiàn)實意義。
推薦平臺設(shè)計自上而下分為交互界面層、采集數(shù)據(jù)層、數(shù)據(jù)分析層、基于機器學(xué)習(xí)的推薦算法設(shè)計及數(shù)據(jù)應(yīng)用層。整體的技術(shù)方案如圖1所示,平臺設(shè)計整體流程如圖2所示。
圖1 整體技術(shù)方案圖
圖2 平臺設(shè)計整體流程圖
為實現(xiàn)學(xué)生學(xué)習(xí)伙伴推薦預(yù)測分類,將分別從平臺的交互界面層、數(shù)據(jù)采集層獲取數(shù)據(jù),建立豐富的數(shù)據(jù)集。
交互界面層主要是填寫調(diào)查問卷,問卷調(diào)查可以幫助我們自定義獲取一些特殊的數(shù)據(jù),通過獲取的這些數(shù)據(jù),我們能了解學(xué)生的興趣愛好、學(xué)習(xí)方向及學(xué)生的基本信息,問卷調(diào)查為項目的數(shù)據(jù)分析提供了明確的導(dǎo)向性及可靠的數(shù)據(jù)支撐。
平臺數(shù)據(jù)采集包括:視頻資料學(xué)習(xí)數(shù)據(jù)和階段性測試數(shù)據(jù);基于課程的綜合項目考核由專家打分數(shù)據(jù);考查學(xué)生的綜合知識運用能力、協(xié)作率、技術(shù)和知識掌握的熟練程度等數(shù)據(jù)。
KNN算法是機器學(xué)習(xí)典型的算法,本研究的算法設(shè)計主要介紹KNN算法理論及應(yīng)用基礎(chǔ)和學(xué)習(xí)伙伴推薦預(yù)測分類的詳細算法設(shè)計兩部分內(nèi)容。
設(shè)計的KNN算法,首先是距離計算,KNN算法使用更多的是歐氏距離,以二維空間兩個點的歐氏距離計算為例,公式如式(1)。
其中 ρ為(x2,y2)點與(x1,y1)點之間的歐氏距離;|x|為(x2,y2)點到原點的歐氏距離。
拓展到多維空間后,歐氏距離計算公式如式(2)。
針對k值的選取,首先k的取值要盡可能取奇數(shù),這樣才能確保最后計算結(jié)果會產(chǎn)生一個較多的類別;其次k取值不同得到的分類結(jié)果也會不同。為避免k取值過大或過小造成的預(yù)測誤差或過擬合現(xiàn)象,采取交叉驗證的方式,然后反復(fù)驗證集合的方差,以找到一個最合適的k值,最終獲得理想的分類效果。
4.2.1 樣本數(shù)據(jù)構(gòu)建
本次平臺搭建中數(shù)據(jù)分為真實數(shù)據(jù)集和模擬數(shù)據(jù)集,所有的數(shù)據(jù)集內(nèi)都包括學(xué)生信息、課程基本信息以及學(xué)生學(xué)習(xí)情況。用于KNN預(yù)測的數(shù)據(jù)主要為學(xué)生學(xué)習(xí)情況數(shù)據(jù),包括學(xué)生視頻得分、作業(yè)得分、專家結(jié)合學(xué)生的平時學(xué)習(xí)表現(xiàn)對學(xué)生打分以及對項目進行評分組成專家評分數(shù)據(jù)。
其中模擬數(shù)據(jù)集中的數(shù)據(jù)在交叉驗證一步中用來確定k值,由后臺直接提供。真實數(shù)據(jù)集中的數(shù)據(jù)通過學(xué)生觀看視頻等交互行為,由平臺統(tǒng)計生成。
4.2.2 機械標(biāo)簽生成
在學(xué)生學(xué)習(xí)情況數(shù)據(jù)的基礎(chǔ)上,給每個學(xué)生用戶打上標(biāo)簽,其中模擬數(shù)據(jù)集部分的標(biāo)簽由平臺自動生成,這里稱為機械標(biāo)簽。
標(biāo)簽分為四大類,分別為學(xué)習(xí)方向、學(xué)習(xí)成績、學(xué)習(xí)習(xí)慣、學(xué)習(xí)能力。學(xué)習(xí)方向由整型數(shù)表示,不同學(xué)習(xí)方向的學(xué)生不參與后續(xù)生成真實標(biāo)簽操作。其他三種標(biāo)簽每個基于兩種數(shù)據(jù)生成,學(xué)習(xí)成績由專家打分和項目得分組成的專家評分數(shù)據(jù)生成,學(xué)習(xí)習(xí)慣由視頻得分和作業(yè)得分生成,學(xué)習(xí)能力標(biāo)簽在學(xué)習(xí)成績標(biāo)簽和學(xué)習(xí)習(xí)慣標(biāo)簽的基礎(chǔ)上生成。
在進行機械標(biāo)簽生成操作時,因為學(xué)習(xí)成績標(biāo)簽和學(xué)習(xí)習(xí)慣標(biāo)簽由用戶數(shù)據(jù)直接生成,因此先將學(xué)生成績分為 90~100,75~89,60~74 三檔,則可生成五等A-E標(biāo)簽,如圖3所示。學(xué)習(xí)能力標(biāo)簽將在成績標(biāo)簽和習(xí)慣標(biāo)簽的基礎(chǔ)上生成,并且同樣會分成五等。
圖3 A-E的標(biāo)簽生成圖
4.2.3 交叉驗證
首先后臺將會生成容量為10000以內(nèi)的學(xué)生模擬數(shù)據(jù)集1,給數(shù)據(jù)集1內(nèi)的每個用戶打上機械標(biāo)簽,然后生成容量為1000以內(nèi)的模擬數(shù)據(jù)集2作為測試數(shù)據(jù)集。
對于數(shù)據(jù)集2,使用數(shù)據(jù)集1已經(jīng)生成的標(biāo)簽,通過KNN算法流程,初始情況下k設(shè)定為1,對數(shù)據(jù)集2的每個用戶進行標(biāo)簽生成操作。再直接處理數(shù)據(jù)集2為這些用戶生成“準(zhǔn)確”的機械標(biāo)簽,計算在不同k值下生成標(biāo)簽的準(zhǔn)確率,從而確定最佳k值。
真實數(shù)據(jù)部分給每個學(xué)生用戶打上的標(biāo)簽,現(xiàn)在k值已知,通過KNN算法可以為每個學(xué)生用戶生成各自的標(biāo)簽,即通過k個近鄰,以最多近鄰的標(biāo)簽為該用戶標(biāo)簽,這里稱為每個學(xué)生用戶的真實標(biāo)簽。具體步驟是首先使用模擬數(shù)據(jù)集,對部分真實數(shù)據(jù)集進行真實標(biāo)簽生成操作,在足量部分數(shù)據(jù)標(biāo)簽生成完成后,使用該部分數(shù)據(jù)對后續(xù)真實數(shù)據(jù)進行標(biāo)簽生成操作。
基于已經(jīng)生成的標(biāo)簽,計算每個學(xué)生之間的歐式距離,為每個學(xué)生推薦歐氏距離最近的五名同學(xué),從而完成學(xué)生推薦操作。以學(xué)號20180645學(xué)生為例。隨機抽樣十名學(xué)生作為樣本,通過平臺采集視頻得分成績、測試得分成績、專家評分數(shù)據(jù),根據(jù)歐氏距離分別計算這10名學(xué)生的學(xué)習(xí)習(xí)慣標(biāo)簽、學(xué)習(xí)成績標(biāo)簽、學(xué)習(xí)能力標(biāo)簽,最后計算出學(xué)號20180645學(xué)生與這10名學(xué)生的歐氏距離,找出匹配的最佳學(xué)習(xí)伙伴,如表1、表2所示。
表1 隨機抽樣十名學(xué)生情況
表2 與學(xué)號20180645學(xué)生匹配情況
表2 與學(xué)號20180645學(xué)生匹配情況(續(xù))
筆者基于機器學(xué)習(xí)的學(xué)生學(xué)習(xí)伙伴推薦平臺,依托課程平臺采集數(shù)據(jù),建立數(shù)據(jù)集,分析學(xué)習(xí)者的興趣特征和個性化的學(xué)習(xí)特征,幫助學(xué)生有效地找到學(xué)習(xí)伙伴。最后以平臺隨機選取十名學(xué)生,進行實驗,為學(xué)生推薦學(xué)習(xí)伙伴,實驗結(jié)果驗證了平臺預(yù)測的準(zhǔn)確性。