王仡捷



關鍵詞:數據挖掘;課程推薦;協同過濾算法
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2023)14-0054-03
1概論
1.1 研究背景和意義
隨著在線學習的逐漸興起和規模的擴大,各種在線學習平臺和相關資訊也在不斷增多,各種類型課程也在快速增多,類型越來越豐富,用戶學習課程類型選擇的余地也逐漸增加,但是顧客往往要花費大量的時間才能找到自己喜歡的類型的課程,并且缺少與用戶交流的功能,多以用戶為主導,由用戶主動去直接搜索,很少有對用戶進行個性化推薦的功能,這些存在一定的局限性,從而可能造成課程平臺的用戶流失問題。為了解決這個問題,個性化推薦系統應運而生[1]。個性化推薦系統基于特定的算法向用戶推薦他們感興趣的課程,實現了系統與用戶之間的互動,根據用戶的學習記錄和學習習慣或者用戶對課程的評分,向用戶推薦用戶喜歡的具有相同標簽的課程或者相同類型的課程內容。
1.2 國內外研究現狀
網絡學習推薦技術是指通過對用戶歷史行為數據和課程資源屬性等信息的分析,利用機器學習、深度學習等技術為用戶推薦合適的課程,以提高學習效果和用戶滿意度。Natarajan S等人[2]根據網民的網頁操作行為推薦課程資源。在課程推薦系統中,除了明確的評分之外,還有各種類型的隱性評分數據,如贊、評論等。在許多混合系統中,這些功能被視為要包含在評級矩陣基礎上的模型中的側信息(評級可以是數字或二進制)。國內在推薦領域的研究雖然起步較晚,但也產生了一批具有代表性的推薦算法,如古險峰等人[3]針對項目評分的稀疏性,提出一種基于項目的協同過濾推薦算法;劉錦濤等人[4]提出一種適應用戶興趣變化的協同過濾推薦算法,以此來解決傳統協同過濾不能反映用戶興趣變化的問題;潘毓昉等人[5]針對傳統概率矩陣分解算法容易忽略用戶和產品之間的關系,提出一種基于時序行為的推薦算法。針對課程推薦的準確性問題,魏江南[6]認為可以從用戶的學習行為中獲取用戶評分,從而解決評分矩陣稀疏的問題,進而提高推薦的準確率。
2 推薦系統推薦系統
主要分為用戶(User)、項目(Item)及評價(Review)三個不同的數據,用戶數據是用來描述用戶的特征,例如用戶的性別、年齡、零售產品、居住地等信息。但這些特征與項目之間難以建立彼此的關系,因此在推薦系統中雖然有被使用,但很少與算法進行結合,通常都是對推薦的結果進行過濾排序。推薦系統在不同領域的應用上,鑒于產生推薦的方式不同,文獻[7]將推薦系統共分為內容導向(Content-Based)、協同過濾(Collaborative Filtering)、混合過濾(Hybrid Fil?tering)以及人口統計推薦(Demographic Recommenda?tion)四類。
1)基于內容導向的推薦:它是基于項目的內容信息上做推薦,不需要利用用戶對項目的評價意見,例如根據音樂的類型、電影的風格等固有或內在品質的屬性進行推薦,以項目內容的相似性作為依據來做推薦。
2)協同過濾的推薦:利用用戶過往的行為記錄分析偏好并提供個人化的推薦,也是電子商務中最常使用的推薦方法。根據用戶歷史購買記錄,并從具有相似購買行為的用戶群中的購買行為來推薦目標用戶可能感興趣或喜歡的商品。
3)混合過濾的推薦:它組合了2種以上的推薦系統方法,希望能避免自己本身的缺點,同時融合彼此的優點。而Burke整理了混合過濾的推薦系統的方法以及其介紹,主要分為權重(Weighted)、交換(Switch?ing)、混合(Mixed)、特征組合(Feature combination)、瀑布型(Cascade)、特征遞增(Feature augmentation)及元層級(Meta-level)7種。
4)人口統計的推薦:它依據用戶的個人屬性作為分類的指標,包含性別、年齡、居住地區、薪資、零售產品等個人屬性。用戶的個人屬性與相似的個人屬性彼此間都可能會擁有共同的喜好,因此可以利用這些屬性對每個用戶建立一個用戶剖面(User Profile)進行聚類,并且通過計算分析用戶之間的相似度,最后將評分較高的項目推薦給當前的用戶。
這四種方法中,依據學者的研究發現協同過濾法較常被推薦系統所使用。協同過濾推薦算法擁有簡單高效的特點,也是比較受歡迎的個人化(Personal?ized)推薦方法,因此在實踐中受到許多研究者的關注。在協同過濾的推薦中又可分為基于記憶體(Memory-based)的協同過濾和基于模型(Modelbased)的協同過濾。
3 課程推薦設計
本研究的推薦系統整體的流程如圖1所示,先利用人口統計的過濾法,經由用戶的年齡和性別的特征,先計算進門用戶與歷史數據里用戶彼此間的相似度,借此得到初步的推薦結果。接著針對相似的用戶所適合的課程,根據設計的權重替課程產生各自的評分,并進行排名,取得最終TOP-N的推薦結果。因此該系統可以提供個性化推薦服務,依據不同的用戶提供不同的推薦服務。
當面對大量數據時,首先需要進行數據清理,剔除不需要的數據,過濾錯誤的信息,提取自己需要的有用信息等前置作業。我們將各種不同來源的相關數據集合起來進行分析,包含數據庫、數據倉儲以及網絡流等。接著根據不同情況,不同目標進行數據過濾處理,找出有價值或者所需要的數據。然后將過濾后的數據放進模塊里進行評估確認和調整,確保評估出的結果是所期望的結果。最后再將數據進行分析,確認模型所評估出來的結果是正確的,若是錯誤則回到模型進行調整。
對于用戶情況以及歷史學習記錄的搭配,我們對用戶做出推薦,以下為推薦生成的步驟流程:
步驟一:首先進行用戶特征提取,這邊選擇了幾個屬性作為描述用戶的特征,分別為年齡、性別和疾病。
步驟二:接著進行用戶相似度計算,度量或相似度量(SM)用來確定用戶對用戶或項目對項目之間的相似度,取得用戶或項目之間的相似度也是很重要的一環。KNN算法基本上基于使用統計起源的傳統相似度量,其中最常用的傳統指標有Pearson correlation、Cosine以及Euclidean等。本文所選擇的是歐幾里得距離公式,如公式(1),計算空間向量中兩點的距離,距離越近,代表相似度越高。利用距離公式,計算出A 用戶與其他用戶數據之間的相似度。
步驟三:根據計算出的相似度,選擇前N個相似度最高的用戶,并將前N個用戶曾學習的課程挑選出來,為其課程產生評分以及推薦結果。
步驟四:在推薦評分的部分,考慮到由于系統中沒有用戶對課程的評價記錄,因此我們設計了一套評分機制,利用過往用戶的學習記錄,將課程的類型和學習數量作為推薦依據,同時加入了時間的考慮。因為季節的不同會影響用戶學習課程的行為,因此把每一季課程的學習頻率也考慮在評分機制里,并生成最后的評分。公式(2)中,評價分數分為三個部分:課程點擊數量、類型和該季課程的學習頻率。Oi為會員學習課程i的數量,Ci為課程i的類型系數,Tni為課程i在每月里第n天的學習頻率系數。
在這些歷史學習數據中,我們必須先對數據預先處理過。根據分析系統的學習情況,扣除批量學習,或者一些特殊情況發生,將學習數量超過5都視為離群值過濾掉。Ci的計算中,如公式(3),Oi為該會員學習課程i的總數量,Tni的學習率則是計算在第n天中,所有學習過的課程總數量里課程i所被學習過的數量占的百分比,而w0、w1與w2則是課程數量、課程類型和該季課程學習頻率之間的權重設置,三者相加總和為1。
步驟五:最后依據關聯規則產生的權重所生成的課程評分產生最后的推薦結果排名,根據推薦排名順序,將課程推薦給A用戶。
關聯法則也被稱作購物車分析,經典的案例是美國零售業者沃爾瑪從結賬訂單中發現每當星期五晚上啤酒與尿布的銷量有正向關聯,因此在每周五都會將這兩樣商品放在同一區讓銷售量增加30%。在本研究中嘗試將每位用戶每天評價的課程數據視為一筆數據,計算課程間同時發生的概率。該概率值作為權重可以輸入用戶偏好預測的權重,從而更好地完成混合推薦算法。
4 結果分析
4.1 實驗數據
此系統研發者進行實驗的數據來源是使用爬蟲軟件進行采集的某教學系統中的真實用戶數據以及課程數據。在進行數據采集時,先以某一組用戶選取為種子節點,選取之后,使用滾雪球抽樣的方式來抽取其他用戶并采集這些用戶的信息,從而得到實驗需要的數據。此次為完成實驗進行采集的數據中,包含100位用戶的具體信息,如背景信息、行為信息以及社會信息等,同時還包含相關的2000 位課程的具體信息。
4.2 評價標準
本系統能夠度量預測用戶評分的準確率,當平均絕對誤差(MAE)較大時,系統預測準確率低,系統推薦準確度低,反之亦然。
4.3 實驗
本文使用傳統的基于用戶的協同過濾推薦算法作為基準算法進行對比實驗,具體的實驗結果如圖2 所示。
通過圖2的算法比較可以發現,本文的算法MAE 值一直都比傳統的算法低,說明本文的系統具有很好的精確度。本文還測試了不同n值對系統的推薦結果的影響,具體的實驗結果如圖3所示。
如圖3所示,從算法驗證的結果不難發現:無論n 的取值為多少,改進后的算法都要比傳統算法的MAE 值低。這是因為在進行協同過濾算法的改進時,充分將用戶評分的時間衰減和用戶信任度考慮了進去,使得改進后的算法在準確度方面有所提升。
5 結束語
隨著大數據時代的來臨,數據的增加速度比以往更加迅速,因此如何從這龐大的數據中提取所需要的數據,如何從中獲得重要信息并做出正確的決策判斷,是一個重要的議題。因此本文所提出方法,除了改善傳統的協同過濾方式,與人口統計推薦進行結合,還改進了該算法的準確性。課程的排名推薦是利用我們所研究出的評分機制以及權重調整,最終產生更符合實際情況的推薦結果,這樣可以讓用戶除了更有目標性地快速找到所想要的課程外,還能大幅增加用戶體驗的滿意度,讓更多用戶愿意學習該課程。未來我們希望能朝兩個方向更進一步地研究,完善模型,配合學習記錄的數據,加入更多不同的屬性,增強用戶彼此間的相似度。同時配合權重更多比例的分配,讓推薦系統所推薦的課程更貼近用戶所期望的結果。