于源 左景垠 安瑛 楊陽
(1.北京化工大學機電工程學院 2.北京化工大學研究生院)
碩士研究生培養主要采取課程學習與科學研究并重的方式。隨著高校教育體制的改革,研究生除了學習本專業的課程之外,還可以根據興趣和自身發展需要選擇與專業相關度較低的非學位課程,有助于激發學生學習熱情,使其發展成為社會所需的復合型人才。[1]但是,由于導師選課指導的缺位、學生選課的盲目性和選課管理制度不健全等原因,許多剛入學的研究生對自己的課程和學習情況不甚了解,不清楚如何選擇適合自己的課程。[2-5]他們往往根據自己對課程的主觀判斷或者根據往屆研究生的建議進行選課,導致選課存在一定隨意性,不僅浪費教育資源,而且無法達到研究生綜合素質培養目標。針對上述情況,本文引入智能推薦算法,對具有基本信息管理功能的研究生選課系統進行研究和改進。在挖掘往年學生選課行為數據的基礎上,通過協同過濾推薦算法探究課程之間的關聯度并得到個性化推薦課程列表,在一定程度上對研究生選課提供了有效指導和個性化培養方案。
“智能推薦”是研究生選課系統的核心功能,在課程基本信息管理基礎上,具備課程推薦的特點,其功能分為“課程推薦”“選課指導”和“個性化推薦”三個模塊。“課程推薦”是系統依照研究生的研究方向,采用既定的培養方案進行的推薦,屬于“先驗”推薦;“選課指導”是系統通過研究生對課程的反饋及選課熱度進行的推薦,屬于“后驗”推薦;“個性化推薦”是基于智能算法挖掘研究生的愛好和需求,推薦學生可能會感興趣的課程,屬于“智能”推薦。
通過該系統多維度、多功能組合的融合推薦,研究生可以深入了解本專業課程設置以及相關課程的歷年選課情況,并據此選擇既滿足研究方向又兼顧個人興趣的課程。研究生選課智能推薦系統的選課流程如圖1所示。

圖1 基于智能推薦的研究生選課流程圖
在“課程推薦”功能模塊中,系統將根據研究生輸入的研究方向通過模糊查詢的方法搜索出對應專業,再根據該專業培養方案中的培養計劃和培養目標為研究生推薦與其研究方向匹配的課程列表。我國各高等院校制定的研究生培養方案是進行人才培養的指導性文件,其中對課程分類、課程體系設置、課程教學要求以及課程學分和學時安排等進行了較為系統的規劃。根據研究生在選課系統中輸入的研究方向,以研究生培養方案為依據進行課程推薦后,推薦的課程將自動顯示在列表中,其作為“先驗”推薦給出較為寬泛的研究生選課參考,適應大部分研究生學業及未來職業發展的需求。
在“選課指導”功能模塊中,系統可向研究生展示相關專業課程的立體化信息,對課程特征進行深入的描述,不僅細致介紹課程所屬類別、知識梗概和教學目標,也可滿足學生關注的問題,如“課程課時數”“歷史課程作業量”“實踐教學比”“考試成績均分”“教師教學經歷”“教師授課風格”等。除此之外,系統具有大數據分析功能,基于歷屆研究生對課程的評價信息,計算出課程喜愛度指標。分值越高表示課程越受到學生歡迎,即選課熱度更高。在學生輸入課程名稱或關鍵字之后,系統按照選課熱度的高低將課程排列到列表中。
在個性化推薦功能模塊中引入“協同過濾推薦算法”,即基于學生選課歷史記錄,通過挖掘學生的喜好和需求,基于學生不同偏好對其進行群組劃分并向學生推薦課程,實現智能的、個性化的課程推薦。個性化推薦功能模塊的優勢在于生成的結果更加符合用戶的個性化需求,更加符合用戶的興趣愛好,為學生制定個性化選課方案,屬于一對一式信息推薦服務,可極大減少用戶搜索相關信息所耗費的精力和成本。
推薦算法可以分為基于協同過濾的推薦、基于內容的推薦、基于知識的推薦和組合推薦等。[6]協同過濾是一種應用廣泛的推薦算法,主要功能是預測和推薦,協同過濾推薦算法主要分為兩類,即基于用戶的協同過濾算法(user-based collaborative filtering, UserCF)和基于項目的協同過濾算法(item-based collaborative filtering, ItemCF)。這兩種類型的協同過濾算法均不需要和目標用戶進行直接交流,也不需要通過填寫調查問卷等煩瑣的方式搜集用戶信息,而是通過相似用戶的興趣和需求挖掘目標用戶的興趣。由于大多數研究生并不清楚所選課程內容是否適合自己需求、自己是否對所選的課程感興趣以及此課程是否能讓自己的能力得到提升。因此,通過協同過濾算法為研究生智能推薦課程是完善研究生選課系統功能的有效途徑。本文以機械工程專業的研究生選課為例,分別使用基于用戶的協同過濾算法和基于項目的協同過濾算法得到向學生推薦的課程列表,并且比較了兩種算法在研究生智能選課推薦系統中的適用性。
基于用戶的課程推薦是以發展規劃以及興趣愛好相似的學生對課程的需求也相似作為前提。基于用戶的課程推薦算法通過計算各用戶之間的相似度,自動為目標用戶推薦課表。在本系統中,基于用戶的協同過濾算法主要包括兩個步驟:1.找到所有與目標用戶具有類似興趣的學生列表;2.根據相似用戶列表,挖掘目標用戶沒有選擇的課程并加以推薦。以研究生A、B和C的選課情況為例對此算法加以說明。N(u)表示研究生A已經選擇的課程集合,令N(ν)為研究生B已經選擇的課程集合。學生A與學生B的相似度Wuser-AB的計算公式如式(1)所示。



在計算出學生選課相似度的基礎上,需要計算出學生對未選課程的興趣度,其中學生選擇了某門課程,則對該門課程的興趣度為1,否則為0。例如,學生B和C均選擇了“最優化方法”,其對“最優化方法”的興趣度為1。學生A 并未選擇課程“最優化方法”,可以計算出A對“最優化方法”的興趣度為:Wuser-AB×1+ Wuser-AC×1=0.74。以此類推,計算出學生與其他所有學生的相似度,并在其基礎上計算該生對所有未選課程的興趣度后,按照該生興趣度從高到低的原則對課程進行排序,得到向該生推薦的課程列表。需要指出的是隨著系統中學生數量增加,累加得到的學生對某門課程的興趣度數值也會增大。例如:系統計算得到某機械工程專業研究生對“先進制造理論與技術”的興趣度為209.89,對“流體機械課程”的興趣度是200.63,對“最優化方法”的興趣度是193.07,對“研究生的壓力應對與心理健康”的興趣度是204.48,對“機械現代設計理論及方法”的興趣度是201.08,對“彈性力學”的興趣度是197.99,對“高聚物成型加工理論及設備”的興趣度是278.85,對“數值分析”的興趣度是202.73。系統自動對課程興趣度進行排序,為該生智能推薦興趣度排名靠前的課程:“高聚物成型加工理論及設備”(278.85)、“先進制造理論與技術”(209.89)、“研究生的壓力應對與心理健康”(204.48)、“數值分析”(202.73)、“機械現代設計理論及方法”(201.08)。
用戶相似度矩陣的計算會隨著用戶數量增多而倍增。而基于項目的協同過濾推薦算法可以解決這個問題,其中的“項目”即為“課程”,即給學生推薦那些和他們之前選擇的課程相似的課程。在本系統中,基于項目的協同過濾算法主要包括以下兩個步驟:1.計算課程之間的相似度;2.根據學生的歷史行為和課程相似度生成課程推薦列表。以課程a和b為例對此算法加以說明。N(i)表示課程a選課用戶集合,令N(j)表示課程b選課用戶集合。課程a和b的余弦相似度Witem-ab的計算公式如式(2)所示。




圖2 學生對未選課程的興趣度
ItemCF算法計算的是課程相似度矩陣,高校研究生培養方案相對比較固定,課程數目一般幾十門左右,課程相似度矩陣比較固定,因此維護成本較低;而UserCF算法計算的是用戶相似度矩陣,隨著研究生數量逐漸增加,選課系統用戶數量急劇增加,用戶數量遠遠大于課程數量,很顯然,維護學生相似度矩陣的成本更高。從存儲的角度來講,UserCF需要消耗更大的空間復雜度。此外,ItemCF是根據用戶歷史選課行為推薦相似課程,更注重個性化推薦,而UserCF是推薦用戶同學們關注的熱門課程,更注重社會化。比如系統給用戶推薦一門課程,給出的推薦理由是某某學生和你有相似興趣,他選了這門課程,這較難讓用戶信服,因為用戶有可能不認識那個和自己有相同興趣的人;但是如果給出的理由是因為這門課程和你所選的課程比較相似,這樣的解釋相對更合理,增加用戶對推薦系統的信任度,所以在研究生選課推薦系統中,ItemCF算法比UserCF算法更能發揮優勢,適用性更強。
針對研究生課程信息管理系統存在的問題,引入智能推薦算法,賦予研究生選課系統智能推薦課程的功能。具體包括:根據研究生的研究方向,根據既定的培養方案進行課程推薦,即“先驗”推薦;根據研究生對課程的反饋及選課熱度進行課程推薦,即“后驗”推薦;基于智能算法挖掘研究生的愛好和需求,利用協同過濾推薦算法,推薦學生可能感興趣的課程,即“智能”推薦。此外,結合實例對比分析了基于項目和基于用戶的協同過濾推薦算法的實現原理及在研究生選課系統中算法的適用性。分析結果表明:在研究生選課推薦系統中,ItemCF算法比UserCF算法更能發揮優勢,適用性更強。