趙秀梅 趙宗昌 袁衛(wèi)華 劉云嬌
1(山東建筑大學計算機科學與技術學院 山東 濟南 250101) 2(山東大學附屬中學 山東 濟南 250199) 3(山大地緯軟件股份有限公司 山東 濟南 250101)
現(xiàn)今,為培養(yǎng)適應社會發(fā)展和地方經(jīng)濟需求的多元化的應用型創(chuàng)新人才,眾多本科院校逐步實施“以學生為本”的學分制,允許學生根據(jù)自己的興趣安排個人修學計劃。然而,很多低年級學生不了解當前企業(yè)的具體需求及其發(fā)展趨勢,學習缺乏方向性;沒有充分了解各種關鍵技能與課程的關系、課程對基礎能力的需求,學習計劃缺乏完備性和條理性。此外,多數(shù)地方院校所實施的“專業(yè)教師指導機制”因專業(yè)教師時間和精力有限,存在著“對人才需求分析不足、信息獲取時間長、指導力度受限”的問題。目前大量研究者利用各種推薦算法,根據(jù)選課歷史記錄挖掘學生興趣點,進行課程推薦,提高學生選課效率。然而,這些研究通常不能有效反映人才需求/專業(yè)技能與課程之間、課程與課程之間的關系,不能使學生很好地了解專業(yè)學習整體框架、各種技能修學途徑、就業(yè)及發(fā)展前景等。對于興趣不明確、選課記錄少的低年級學生推薦效率低、指導力度小。因此,本文研究并確立了“基于協(xié)同過濾的專業(yè)學習指導平臺”,通過“專業(yè)技能需求分析、課程與技能關聯(lián)關系分析、學習指導與推薦”三個不同層次的校企協(xié)同分析,構建企業(yè)人才需求、技能、課程之間的加權關聯(lián)關系,并能根據(jù)學生修課情況估計學生專業(yè)技能水平,同時結合學生興趣,提供多種基于協(xié)同過濾的雙向查詢與修學計劃推薦服務,并以圖形化輸出提升系統(tǒng)的友好性。
為了提高選課效率、滿足學生個性化學習的需求,眾多研究者將各種個性化推薦技術應用到選課系統(tǒng)。個性化推薦技術根據(jù)用戶的興趣特點和需求,向用戶推薦可能感興趣的信息、產(chǎn)品等。傳統(tǒng)的推薦方法主要包括協(xié)同過濾、基于內(nèi)容的推薦方法和混合推薦方法[1]。其中協(xié)同過濾應用最為廣泛,其基本思想是:根據(jù)用戶對項目的評分數(shù)據(jù),計算目標用戶(項目)與其他用戶(項目)的相似度,從而根據(jù)相鄰用戶(項目)為目標用戶完成推薦[2]。文獻[2-11]以協(xié)同過濾技術為基礎為用戶提供課程/學習資源推薦。同時,為提高推薦效果,文獻[2]使用標簽技術和關聯(lián)規(guī)則算法發(fā)掘用戶可能感興趣的知識內(nèi)容,文獻[3]對課程和學生進行加權處理,文獻[7]綜合應用學生屬性和課程特征,文獻[8]在Hadoop平臺上使用MapReduce算法來加快系統(tǒng)整體運行速度,文獻[9]增加了標簽和評分預測機制;為解決數(shù)據(jù)稀疏和冷啟動問題,文獻[5]在充分利用用戶注冊信息的基礎上增加了預測填充機制,文獻[6]融合了基于內(nèi)容的推薦,文獻[10]對用戶興趣和課程建模并完善用戶-課程評分矩陣;文獻[4]通過課程進階關系確保用戶課程知識結構的健壯性。此外還有研究者應用關聯(lián)規(guī)則數(shù)據(jù)發(fā)掘[12-13]、潛在因子關系矩陣[14]、課程知識圖譜[15]等技術來提高個性化課程推薦的效率。
但是,這些已有研究成果不能清晰地展示知識點、課程、專業(yè)能力與企業(yè)人才需求之間的關聯(lián)關系,不能使學生全面了解專業(yè)技能及其就業(yè)前景,也就不能使學生很好地理解系統(tǒng)推薦結果對能力培養(yǎng)的作用,不利于更好地激發(fā)學生的學習興趣;同時,在學生不能明確把握自己的學習興趣、沒有開始學習專業(yè)課或已修專業(yè)課數(shù)量少而所在專業(yè)又存在多個學習方向時,推薦效率明顯降低。為此,本文研究并確立了具有圖形化接口,全面考慮“課程、專業(yè)技能與人才需求”關聯(lián)關系,并提供多種雙向查詢推薦服務的“基于協(xié)同過濾的專業(yè)學習指導平臺”。
基于協(xié)同過濾的專業(yè)學習指導平臺充分利用企業(yè)的專家分析、技能培訓、員工評價記錄和人才需求信息等資源,通過“線上線下”校企雙向協(xié)同,實現(xiàn)具有專業(yè)技能需求分析、課程與技能關聯(lián)關系分析、學習指導與推薦三個層次的專業(yè)學習指導。該平臺的層次模型如圖1所示。
圖1 基于協(xié)同過濾的專業(yè)學習指導平臺層次模型
專業(yè)技能需求分析層是基于協(xié)同過濾的專業(yè)學習指導平臺的基礎層,學校需要安排專門的指導教師與企業(yè)專家協(xié)同完成“線上線下”專業(yè)技能需求分析,并實現(xiàn)定期更新,具體如圖2所示。學校線下指導教師需要帶領團隊,對相關行業(yè)企業(yè)進行廣泛調(diào)研,并與企業(yè)專家進行線下溝通,了解企業(yè)對專業(yè)技能的需求,了解企業(yè)專家對人才需求趨勢的預測,細致了解相關技能對重要知識點的基本要求,匯總并整理相關信息,形成基礎數(shù)據(jù)。之后,由線上指導教師針對本專業(yè)特色,對基礎數(shù)據(jù)做進一步的篩選和細化。錄入平臺系統(tǒng)后,由企業(yè)線上專家進行協(xié)同確認,形成最終的專業(yè)技能需求報告。
圖2 專業(yè)技能需求分析
在課程與技能關聯(lián)關系分析層中,學校專業(yè)指導教師細化專業(yè)培養(yǎng)方案的目標技能,梳理校內(nèi)專業(yè)課程(含集中實踐教學環(huán)節(jié))開設情況以及所包含的知識點,確立校內(nèi)培養(yǎng)的技能常規(guī)集合(即TS)和關鍵知識點集合(即KS)。同時,分析專業(yè)技能需求報告,獲取技能需求集合(即TI)和關鍵知識點需求集合(即KI),比較二者與TS和KS集合的差異,確立技能差異集合(即TD=TI-TS)和知識點差異集合(即KD=KI-KS)。學校專業(yè)指導教師在企業(yè)專家的協(xié)同下,充分利用企業(yè)的師資和培訓資源,確立彌補技能、知識點差異的具體方法,如:新開選修課、慕課、企業(yè)講座/培訓、第二課堂、學生自學等,并將其中可控方式(如前三種)納入專業(yè)培養(yǎng)體系,作為獨立課程,或者作為特殊輔助課程。在學校政策允許的情況下,建立特殊輔助課程與專業(yè)課程之間的學分置換關系,以激發(fā)學生學習特殊輔助課程的積極性。對于不可控方式,也應盡可能多地為學生集中提供可用學習資源。
根據(jù)專業(yè)技能需求完善專業(yè)教學環(huán)節(jié)的同時,分析知識點間、課程(含特殊輔助課程)間、知識點與課程間的關聯(lián)(如前驅后繼、包含等關系),分析知識點、課程與專業(yè)技能之間的關聯(lián),建立相應的關聯(lián)關系庫,并確立該關聯(lián)關系庫的查詢規(guī)則,以實現(xiàn)根據(jù)目前技能查找需要選修的課程/知識點、根據(jù)當前課程或知識點查找其前驅或后繼對象的基本功能。具體如圖3所示。
圖3 知識點、課程與技能關聯(lián)關系分析
學習指導與推薦層是基于協(xié)同過濾的專業(yè)學習指導平臺的用戶接口層,主要完成對下層關聯(lián)關系庫和查詢規(guī)則的升級,并在協(xié)同過濾技術的基礎上,利用近鄰查找與分析完成雙向查詢,從而為用戶提供多種修學計劃推薦服務,并實現(xiàn)推薦、分析結果的圖形化輸出。具體如圖4所示。
圖4 學習指導與推薦
該層在對用戶提供服務之前,需要依據(jù)學校所積累的學生在校學習信息、就業(yè)信息,連同關聯(lián)聯(lián)系庫,確定各課程對所關聯(lián)技能的加權值。而該加權值的確定通常有兩類方法。
1) 由專業(yè)指導教師仔細研究知識點、課程與專業(yè)技能之間的關聯(lián)關系,梳理專業(yè)培養(yǎng)方案,研究課程對所關聯(lián)專業(yè)技能的學時分配,研究學生培養(yǎng)的實際效果,并結合專業(yè)指導教師自身的學生培養(yǎng)經(jīng)驗,設定各課程對所關聯(lián)專業(yè)技能的加權值。
2) 借助各種統(tǒng)計分析算法,如因子分析等,根據(jù)相關歷史記錄,確立課程與算法中關鍵因素之間的關系,確立算法中關鍵因素與專業(yè)技能之間的關系,進而確立課程對專業(yè)技能的加權值。
兩類方法中,前者對專業(yè)指導教師經(jīng)驗的依賴性較強,而后者則需要大量學生在校學習信息和就業(yè)信息的支持。在完成課程對專業(yè)技能的加權值的設定后,升級關聯(lián)關系庫,形成本層所需要的加權關聯(lián)關系庫,同時對查詢規(guī)則進行升級,以便于提供基于協(xié)同過濾的雙向查詢推薦服務。
除基本的知識點、課程與專業(yè)技能關聯(lián)關系查詢外,雙向查詢推薦服務在協(xié)同過濾技術的基礎上,查詢加權關聯(lián)關系庫,實現(xiàn)各種修學計劃的推薦服務,其中比較典型的有:
1) 根據(jù)學生感興趣的企業(yè)崗位或目標專業(yè)技能進行修學計劃推薦。若由學生直接選擇所感興趣的目標技能,則查找并列舉對目標技能要求強度超過閾值的就業(yè)崗位,作為目標崗位。否則,將學生感興趣的企業(yè)崗位作為目標崗位,將目標崗位所需要的要求強度超過閾值的專業(yè)技能作為目標技能。查找在目標崗位上工作的畢業(yè)生,計算此類畢業(yè)生在校學習期間目標技能值的平均值,以此作為用戶目標技能的期望值,查找K近鄰(畢業(yè)生)信息。以專業(yè)培養(yǎng)方案中必修課設定和選課基本要求為約束條件,以K近鄰的修學計劃為篩選補充依據(jù),以目標技能為終點,雙向檢索加權關聯(lián)關系庫,完成修學計劃推薦。
2) 查詢顯示常見的完整的修學計劃。讀取畢業(yè)生就業(yè)崗位信息,按照其所需要的專業(yè)技能及其要求強度進行聚類,選取每一類的中心崗位。以中心崗位為目標崗位,以中心崗位所需要的要求強度超過閾值的專業(yè)技能為目標技能,按照與第1)類服務類似的方法,完成每一類就業(yè)崗位修學計劃的推薦。
3) 根據(jù)學生當前已修課程集合(記為SA)和目標技能進行修學計劃推薦。計算該學生的當前能力值TSA,查找對目標技能(其確立與第1)類服務相同)要求強度超過閾值的就業(yè)崗位作為目標崗位。查找在目標崗位上工作的畢業(yè)生,計算此類畢業(yè)生通過SA課程所獲得的能力值,以TSA為目標,查找K近鄰信息。以專業(yè)培養(yǎng)方案中必修課設定和選課基本要求為約束條件,以K近鄰的修學計劃為篩選補充依據(jù),以SA課程為起點,以目標技能為終點,雙向檢索加權關聯(lián)關系庫,完成后繼修學計劃的推薦。
4) 根據(jù)學生SA課程推薦后繼修學計劃。計算該學生當前的單項/綜合能力值,將值最大的單項能力/綜合能力記為T_M,其值記為Tmax。計算畢業(yè)生通過SA課程所獲得的T_M能力的值,以Tmax為目標,查找K近鄰信息。以專業(yè)培養(yǎng)方案中必修課設定和選課基本要求為約束條件,以K近鄰的修學計劃為篩選補充依據(jù),以學生SA課程為起點,完成后繼修學計劃的推薦。
其中,1)、2)兩種服務主要適用于剛入學的新生,使其能初步了解在校學習的整體情況以及各種目標技能的修學途徑。以上各種服務還可以向學生提供K近鄰的后繼學習統(tǒng)計分析、就業(yè)去向分析、發(fā)展狀況分析等,使學生全面了解學習內(nèi)容、修學線索、就業(yè)及發(fā)展前景等信息,從而提供更細致地學習指導與推薦。
為了提高系統(tǒng)的友好度,學習指導與推薦層還提供圖形化輸出接口,以簡潔圖形或圖表的形式輸出所查詢的各種關聯(lián)關系、所薦的修學計劃和各種分析結果。
本文以本校網(wǎng)絡工程專業(yè)為核心進行了基于協(xié)同過濾的專業(yè)學習指導平臺的建設。
期間,對該專業(yè)學生就業(yè)單位典型代表的專業(yè)技能需求進行了調(diào)研、匯總分析;對該專業(yè)近40門常開專業(yè)課(含選修課)和8門集中實踐教學環(huán)節(jié)(以下統(tǒng)稱為課程)進行了知識點、課程與技能關聯(lián)關系分析;整理了2011級-2015級5屆學生的在校學習信息和就業(yè)信息。同時,利用因子分析技術對這些數(shù)據(jù)進行了分析:KMO統(tǒng)計量為0.922,大于最低標準0.5,Bartlett球形檢驗的結果中Sig.項的值為0.000,小于0.05,說明這些數(shù)據(jù)適合做因子分析;主要成分列表中特征值大于1的前14個主成分的累積貢獻率超過70%,故選前14個公共因子;公因子方差結果中每個指標變量(即課程)的提取值均在0.5以上,且多數(shù)接近或超過0.7(如圖5所示),因此所選公因子能較好地反映原始指標變量的大部分信息。根據(jù)所得的旋轉成分矩陣對各個公共因子的專業(yè)能力含義進行了解釋,進而確立了各課程對各專業(yè)能力的加權值,其中,部分公共因子上具有較大載荷的課程及對因子能力的解釋如表1所示。
圖5 主成分列表、公因子方差、旋轉成分矩陣部分內(nèi)容
表1 部分公共因子對應能力解釋
同時,本文開發(fā)了相應的平臺系統(tǒng)實現(xiàn)了基于協(xié)同過濾的雙向查詢推薦、鄰近分析和圖形化輸出。在K近鄰查找時,所采用的部分定義及公式如下。
系統(tǒng)中所實現(xiàn)的查詢推薦算法比較典型的如下所示。這些算法的正確執(zhí)行要求專業(yè)培養(yǎng)方案的知識結構是健壯的、無冗余的,即任何課程的先修課程(中學階段的課程除外)仍在同一培養(yǎng)方案中;同一培養(yǎng)方案中,任意兩門專業(yè)課程的關鍵知識點的重復率趨于0。
1) 根據(jù)學生感興趣的企業(yè)崗位或目標專業(yè)技能進行修學計劃推薦的算法(偽代碼)。
//IE_Jobs:感興趣的企業(yè)崗位/目標崗位列表;WA_Db:加權關聯(lián)
//關系庫;
//TP_Skills:目標專業(yè)技能列表;TP_SValues:目標專業(yè)技能值
//列表;
//TP_Knowledge:目標知識點集合;TP_Courses:目標課程集合
//CA:推薦課程列表;EA:選修課程列表;K_neighbors:K近
//鄰信息列表;
//SR:選課比例/優(yōu)先值列表,初始值為空;
function search_add_p_courses(CA,ea_max)
//完成選修課ea_max先修課程的查詢確認或添加
{EA_Pc=search_p_courses(WA_Db,ea_max);
//獲取EA_max的先修課程(前驅課)
for (spcinEA_Pc)
if (spcnot inCA)
{將spc添加到CA中;
search_add_p_courses(CA,spc);
}
}
function service1(IE_Jobs,TP_Skills)
//根據(jù)學生感興趣的企業(yè)崗位或目標專業(yè)技能進行修學計劃
//推薦
{if (IE_Jobsis not empty)
TP_Skills=IE_Jobs所需的要求強度超過閾值的專業(yè)技能;
else
IE_Jobs=TP_Skills技能要求強度超過閾值的就業(yè)崗位;
TP_Knowledge=search(WA_Db,TP_Skills,null);
//查找企業(yè)崗位對目標技能所要求的關鍵知識點——目標知
//識點
TP_Courses=search(WA_Db,null,TP_Knowledge);
//查找包含目標知識點的課程——目標課程
TP_SValues=在IE_Jobs崗位上工作的畢業(yè)生的TP_Skills的
每一元素平均值列表;
K_neighbors=search_K_N(IE_Jobs,TP_Skills,TP_SValues);
//對于IE_Jobs崗位上的畢業(yè)生的TP_Skills技能,以TP_SValues
//為期望,查找K近鄰
CA=專業(yè)培養(yǎng)方案中的必修課程列表(初始值);
TP_EA=TP_Courses中屬于選修的課程列表;
EA=K_neighbors信息中所涉及到的選修課程列表+TP_EA;
for (ssainEA)
if (ssainTP_EA)
SR.add(1+|ssa對目標技能加權值|*
目標崗位對目標技能要求強度的最大值);
else
SR.add(K_neighbors中選修ssa人數(shù)/K);
flag=false;
while (flagis false andEAis not empty)
{ea_max=EA中選課比例/優(yōu)先值最大的課程;
if (CA中選修課學分尚未滿足基本要求)
{if (ea_maxnot inCA)
{將ea_max添加到CA中;
search_add_p_courses(CA,ea_max);
}
刪除EA中的ea_max以及SR中的對應元素;
}
if (CA中選修課學分已滿足基本要求)
flag=true;
}
Grapic_output(WA_Db,CA);
//完成推薦課程及其圖形化輸出
}
2) 根據(jù)學生SA課程推薦后繼修學計劃的算法(偽代碼)。
function service4(Student_id,SA,Tflag)
//根據(jù)學生SA課程推薦后繼修學計劃
{根據(jù)學生已修課程集合SA的成績計算Student_id對應學生當前的各項能力值;
if (Tflag==1)
T_M=Student_id對應學生當前值最大的單項能力;
else
T_M=Student_id對應學生當前的綜合能力標識;
Tmax=Student_id對應學生T_M能力的具體數(shù)值;
//對于畢業(yè)生通過SA課程所獲取的T_M能力,以Tmax為期望,
//查找K近鄰
K_neighbors=search_K_N_4(SA,T_M,Tmax);
EA=K_neighbors信息中所涉及到的SA之外的選修課程列表;
CA=專業(yè)培養(yǎng)方案中的必修課程列表(初始值);
for (ssainEA)SR.add(K_neighbors中選修ssa人數(shù)/K);
flag=false;
while (flagis false andEAis not empty)
{ea_max=EA中選課比例最大的課程;
if (CA中選修課學分尚未滿足基本要求)
{ if (ea_maxnot inCA)
{ 將ea_max添加到CA中;
search_add_p_courses(CA,ea_max);
}
刪除EA中的ea_max以及SR中的對應元素;
}
if (CA中選修課學分已滿足基本要求)
flag=true;
}
Grapic_output(WA_Db,CA,SA);
}
本文平臺系統(tǒng)部分運行實例界面如圖6所示。
(a) 企業(yè)崗位需求維護頁面
(b) 課程關系及修學推薦頁面圖6 系統(tǒng)運行實例頁面
基于協(xié)同過濾的專業(yè)學習指導平臺通過“專業(yè)技能需求分析、課程與技能關聯(lián)關系分析、學習指導與推薦”三個不同層次的模塊,充分利用校企合作,使學生及時了解知識點、課程與專業(yè)技能之間的關系和企業(yè)崗位需求,可根據(jù)學生已修課程情況,結合學生興趣,進行協(xié)同過濾、近鄰分析,為學生推薦修學計劃。