石弘利,王從瑜,謝維奇




摘要:進入大數據時代后,教育平臺的資源量不斷增長,帶來便利的同時也為用戶選擇課程帶來了困難。推薦系統(tǒng)是解決該問題的一個切實可行的辦法。協(xié)同過濾算法廣泛應用于推薦系統(tǒng)中。本文利用某教育平臺 194975 條學習記錄數據和 43917 條用戶數據,通過分析兩者的內容,構建了物品相似度矩陣,并根據矩陣進行用戶個性化推薦。實驗結果表明,該方法可以高效和準確地對教育平臺在線課程推薦。
關鍵詞:協(xié)同過濾算法;推薦;教育平臺
中圖分類號:TP181? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)34-0019-04
1? 背景與研究意義
近年來,隨著互聯(lián)網與通信技術的高速發(fā)展,學習資源的建設與共享呈現(xiàn)出新的發(fā)展趨勢,各種網課、視頻直播課程等層出不窮,各種在線教育平臺和學習應用紛紛涌現(xiàn)。尤其是2020年春季學期,受新型冠狀病毒肺炎疫情影響,在教育部“停課不停學”的要求下,網絡平臺成為“互聯(lián)網+教育”成果的重要展示陣地。因此,如何根據教育平臺的線上用戶學習信息,通過數據分析與數據挖掘為教育平臺和用戶提供精準的課程推薦服務成了線上教育的熱點問題。
個性化推薦可以解決信息過載的問題,在當前疫情環(huán)境下,其對于教育平臺在線課程也有著至關重要的意義。在現(xiàn)有的論文對教育平臺在線課程的推薦研究中,孔德宇[1]等針對用戶與課程資源關聯(lián)程度不足的問題,使用層次分析法,分解了影響用戶選擇課程的因素,建立層級結構模型,提出了初步的解決方案;張楠[2]基于雙屬性評分矩陣及神經網絡對協(xié)同過濾算法進行改進,提升了推薦算法的質量;陳子豪[3]基于UCC的個性化推薦算法研究,對MOOC在線教育平臺情況分析,結果驗證了該算法擁有更好的推薦性能;王永固等[4]基于改進協(xié)同過濾算法進行用戶個性化推薦,結果表明與傳統(tǒng)推薦算法相比,改進的組合協(xié)同過濾推薦算法具有更高的推薦精度。綜合上述文獻可以看出,學者們采用不同的推薦或改進推薦方法對在線學習課程進行推薦研究。
本文介紹了協(xié)同過濾算法的基本思想,并根據算法依據的不同,分別介紹基于鄰域協(xié)同過濾算法的兩大經典算法:基于用戶的協(xié)同過濾算法與基于物品的協(xié)同過濾算法。采用后者對某教育平臺在線課程進行推薦并通過召回率、準確率、覆蓋率三個指標,檢驗推薦結果的優(yōu)劣性。
2? 算法介紹
2.1 協(xié)同過濾算法
協(xié)同過濾(Collaborative Filtering)算法的理論基礎是,大部分具有相似三觀、知識水平和興趣愛好的用戶所需求的信息或產品也是相似的[5]。其中“協(xié)同”二字,從字面上理解,就是多個用戶間合作,將相似用戶的評價進行合并歸類,對指定用戶信息喜好程度進行推薦[6]。協(xié)同過濾算法在信息過濾與推薦、電子商務網站、電影評論網站、在線視頻網站等眾多場景中得到廣泛應用[7]。根據相似度計算的對象不同,可以將協(xié)同過濾算法分成兩大類:一類是基于用戶的協(xié)同過濾算法,一類是基于物品的協(xié)同過濾算法,簡言之:物以類聚,人以群分。
2.2 基于用戶的協(xié)同過濾算法
基于用戶的協(xié)同過濾(User-based CF)算法的基本思想是:給用戶推薦與其類似的用戶產生行為的物品[8]。主要依據的是用戶的歷史行為數據,從中挖掘獲取信息,并對這些數據進行評價。根據目標用戶的產生行為即用戶與用戶之間的相似性,找到與指定用戶有著類似喜好的用戶群體并將該群體產生行為的內容推薦給指定用戶;比如當一個用戶A需要個性化推薦時,可以先找到和他興趣相似的用戶群組G,然后把G產生行為的且A尚未接受的物品推薦給A。
User-based CF算法利用相似用戶的數據記錄來計算彼此之間的相似度,常用方法包括Jaccard公式、余弦相似性(Cosine Similarity)、皮爾遜相關度(Pearson Correlation Coefficient),公式分別如下:
[sim(u,v)=N(u)?N(v)N(u)?N(v)]? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
式(1)為Jaccard公式。其中,代表用戶u與用戶v之間的相似度,表示用戶u喜歡的物品集合,表示用戶v喜歡的物品集合。分子即為用戶u,v同時喜歡的物品的個數,分母表示用戶u,v總共喜歡的物品總數。
[sim(u,v)=cos(u,v)=u?vu2×v2=N(u)?N(v)N(u)?N(v)]? ? ? ? ? ? (2)
式(2)為余弦相似性公式,分子是同時喜歡用戶u與用戶v同時喜歡的物品的數量,分母是喜歡用戶u與用戶v喜歡的物品數的乘積的平方根。整體原理與Jaccard公式類似。
[sim(u,v)=i∈K(ru,i-ru)(rv,i-rv)i∈K(ru,i-ru)2i∈K(rv,i-rv)2]? ? ? ? ? ? ? ? ?(3)
式(3)為皮爾遜相關度計算公式。代表用戶u與用戶v共同的物品評分集合。分別表示用戶u,v對物品i的評分值。則分別代表用戶u,v對每一個物品的平均均分。
計算用戶間的相似度后,得到用戶u對物品i的預測評分公式如式(4):
[Pu,i=ru+v∈Nsim(u,v)×(rv,i-rv)v∈Nsim(u,v)]? ? ? ? ? ? ? ? ? ? ?(4)
上式中,是用戶u對物品i的預測評分,是用戶u已經評價的物品的評價均分,N是用戶u的最近鄰集合,v表示用戶集合。
傳統(tǒng)User-based CF算法存在以下問題:1)當用戶評價物品為評分時,難以對推薦結果進行解釋;2)若用戶沒有對某個物品進行評價,則無法進行推薦;3)當用戶數量激增時,此算法性能驟減。
2.3 基于物品的協(xié)同過濾算法
基于物品的協(xié)同過濾(Item-based CF)算法的基本思想是:給用戶推薦與其之前喜歡的物品相似的物品[9]。Item-based CF算法主要依據的是物品與物品之間的相似性,計算目標物品與用戶產生行為的物品的相似度,將相似度較高的物品推薦給用戶;如在電子商務網站購買過商品A的用戶,經常會收到和商品A類似的商品推薦。在互聯(lián)網中,Item-based CF算法已經被個性化推薦系統(tǒng)大量使用,同時其也可以為長尾物品更加豐富的領域所運用。
Item-based CF算法使用式(2)計算物品之間的相似度。在計算物品之間相似度之前,需要建立用戶-物品倒排表(user-item inverted list),對每一個用戶建立其產生行為的物品列表。在實際計算過程中,存在大部分用戶對于物品的產生行為列表數目較小,極少數用戶的物品產生行為列表數目較大的情況。這種現(xiàn)象的存在會極大影響整個算法的時間復雜度,導致整個算法的運行周期增長,效率下降。因此在生產環(huán)境中,首先計算出物品間相似度非0([N(u)?N(v)≠0])的物品組,隨后對這些物品組進行后續(xù)的處理。這樣操作的好處在于,可以節(jié)約計算物品相似度為0的物品組所用的時間,提升了整個算法的運行效率。
如圖1所示,左側表格即為計算后得到的每個用戶的用戶-物品倒排表,然后針對每個用戶,將其倒排表中的物品兩兩加一,得到了每個用戶對物品的中間矩陣,所有的中間矩陣都沿對角線對稱。將上述所有用戶的物品中間矩陣進行累加,得到共現(xiàn)矩陣[C]。根據共現(xiàn)矩陣[C]能夠計算出每兩個物品之間的相似度。
計算物品間的相似度后,得到用戶u對物品j的預測評分公式如式(5):
[Pu,j=i∈N(u)?S(j,K)sim(j,i)?ru,i]? ? ? ? ? ? ? ? ? ? ? ? ? ? (5)
上式中,是用戶u對物品j的產生行為程度,代表用戶u產生行為的物品集合,與物品j最為接近的K個物品集合,代表物品j與物品i間的相似度,表示用戶u對物品i的產生行為程度。式(5)說明了與用戶歷史產生行為越類似的物品,越可能在生成的推薦列表中排在前列[10]。
2.4? User-based CF與Item-based CF比較
如表2所示,筆者將從以下五個方面對User-based CF算法與Item-based CF算法進行比較。
由推薦原理可知,User-based CF的推薦結果更加看重擁有相同興趣用戶的特點,結果體現(xiàn)了聚類化與社會化,Item-based CF的推薦著眼于用戶的歷史數據,從而挖掘出屬于用戶自身的特點,結果體現(xiàn)了個性化。兩種算法適用的場景不同,下一步還需要針對冷啟動問題分別對兩種算法提出改進措施,從而進一步提升推薦效果。
3? 實驗與分析
3.1 數據介紹
本文實驗所采用的數據來自某教育平臺近兩年真實數據,其中數據集包含兩個部分,第一部分為194975 條學習記錄數據,如表2所示;第二部分為43917 條用戶數據,如表3所示。所有數據均經過脫敏處理。
3.2 實驗流程
考慮到數據的體量較大,因此我們首先使用Python對數據進行清洗操作與初步描述性統(tǒng)計分析。如圖2所示,數據清洗按照:“數據導入”“缺失值處理”“異常值處理”“重復值處理”“數據導出”五步進行。針對數據集中噪音數據的不同情況,本次實驗采用不同的處理方式。以“異常值處理”為例:對于重要性較高的數據,結合上下文進行填補處理;對于重要性較低的數據或對后續(xù)推薦過程產生影響較小的數據進行刪除或隱藏處理。
在本次實驗中,我們采用基于物品的協(xié)同過濾算法,原因如下:
一、其適用于物品數明顯小于用戶數的場合,數據集中用戶學習記錄數遠大于課程數,故采用基于物品的協(xié)同過濾算法。
二、數據集中尚未提供與課程內容相關的屬性。基于物品的協(xié)同過濾算法不利用物品的內容屬性計算物品之間的相似度,主要通過分析用戶的行為計算物品之間相似度[11],非常符合當前場景。
針對清洗后的數據集中的用戶學習記錄表,提取其中的“用戶編號”“課程編號”“學習進度”等字段作為推薦的基礎數據集。隨后對該數據集進行劃分。訓練集與測試集分別占原數據集的70%與30%。分別計算得到用戶信息-課程信息評分表和課程信息-課程信息共現(xiàn)矩陣,選取式(2)來計算物品間相似度,并得到相似度矩陣,進而可以通過式(6)進行物品相似度歸一化得到相似度矩陣,以提高推薦的準確度和覆蓋性,這在后續(xù)的評價指標中有所體現(xiàn)。
[w'i,j=wi,jmaxwi,jj]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(6)
最后根據相似度矩陣為指定用戶選擇K個產生行為的課程,選擇推薦值前N個課程組成推薦列表,也就是針對目標用戶組U,找到K個相似課程,并推薦前N個課程(本實驗選擇U=5,K=5,N=3)。最終返回形式為:用戶編號1:{[課程編號1,推薦值 1],[課程編號2,推薦值 2],...[課程編號N,推薦值 N]},用戶編號2:{[[課程編號1,推薦值 1],[課程編號2,推薦值 2]...,[課程編號N,推薦值 N]},...,用戶編號U:{[[課程編號1,推薦值 1],[課程編號2,推薦值 2]...,[課程編號N,推薦值 N]}]。
除此之外,本實驗結合用戶已選課程的記錄,對用戶學習記錄表中“學習時長”字段排名前五名的用戶(用戶41187、用戶19267、用戶1193、用戶29748、用戶21684)分別推薦了三門學習課程,最后的推薦結果如表5所示。
3.3 結果分析
由于本次實驗不考慮評分,只是通過用戶對物品的產生行為對推薦物品進行排序,選取其中前N個物品形成推薦列表推薦給用戶[12]。因而從召回率、準確率、覆蓋率三個方面對整個算法進行評價,<E:\2021知網文件\34-36\34\01xs2021342\Image\image30.pdf>代表算法根據訓練集數據為用戶u提供的推薦列表。<E:\2021知網文件\34-36\34\01xs2021342\Image\image31.pdf>表示用戶u在測試集中實際產生行為的列表,召回率的計算公式如式(7)所示:
[recall=uR(u)?T(u)uT(u)]? ? ? ? ? ? ? ? ? ? ? ? ?(7)
準確率描述的是推薦列表中用戶產生行為的物品個數占測試集中用戶產品行為物品個數的大小,計算公式如式(8)所示:
[precision=uR(u)?T(u)uR(u)]? ? ?; ? ? ? ? ? ? ? ? ?(8)
覆蓋率是通過推薦列表中所有物品占全部物品的比例來計算的,其值越大,說明推薦結果覆蓋到的物品越多。<E:\2021知網文件\34-36\34\01xs2021342\Image\image34.pdf>代表所有用戶,I代表所有物品,計算公式如式(9)所示:
將獲得的推薦列表與測試集中的用戶學習記錄表按照上述公式進行計算,以召回率、準確率、覆蓋率作為算法的評價指標。如表6所示,召回率為17.25%,準確率和覆蓋率分別為20.59%和72.88%,整個結果說明了,使用基于物品協(xié)同過濾算法為教育平臺在線課程推薦時,該算法不僅能夠維持準確率與召回率之間的平衡,并且擁有良好的覆蓋率,實現(xiàn)了為指定用戶的個性化推薦。
4? 結語
本文利用了某教育平臺的近兩年運營真實數據,運用數據分析與數據挖掘方法,初步分析了數據的各項指標信息。對協(xié)同過濾算法整體進行了詳細的介紹,并通過基于物品的協(xié)同過濾算法對某教育平臺線上課程進行用戶推薦,并計算召回率、準確率和覆蓋率等指標對推薦結果進行驗證。在使用召回率、準確率和覆蓋率時,三者檢驗的結果分別為17.25%,20.59%,72.88%,說明此算法在解決教育平臺在線課程推薦的案例中有著優(yōu)良的效果。今后將會嘗試獲取更加豐富的教育平臺數據,并與其他類型的協(xié)同過濾算法進行結合,解決冷啟動問題以提高推薦準確率。
參考文獻:
[1] 孔德宇,孔若陽,趙燕慧,等.基于層次分析法的在線教育平臺課程推薦研究[J].科技視界,2020(10):32-34.
[2] 張楠.面向在線教育的學習資源推薦方法研究與實現(xiàn)[D].西安:西安電子科技大學,2018.
[3] 陳子豪.在線教育中個性化推薦課程算法的研究與實現(xiàn)[D].北京:北京郵電大學,2017.
[4] 王永固,邱飛岳,趙建龍,等.基于協(xié)同過濾技術的學習資源個性化推薦研究[J].遠程教育雜志,2011,29(3):66-71.
[5] 李星雨,宋娜,何錦兒,等.基于協(xié)同過濾算法的個性化課程推薦服務[J].現(xiàn)代信息科技,2019,3(24):121-122,125.
[6] 李娜.基于混合協(xié)同過濾的高校選課推薦方法研究[D].長沙:中南大學,2013.
[7] 呂杰,關欣,李鏘,等.一種融合用戶上下文信息和動態(tài)預測的協(xié)同過濾推薦算法[J].小型微型計算機系統(tǒng),2016,37(8):1680-1685.
[8] 王嬋.一種基于加權因子的混合協(xié)同過濾算法[J].電腦知識與技術,2018,14(9):14-16.
[9] 張玉葉.基于協(xié)同過濾的電影推薦系統(tǒng)的設計與實現(xiàn)[J].電腦知識與技術,2019,15(6):70-73.
[10] 王娜,何曉明,劉志強,等.一種基于用戶播放行為序列的個性化視頻推薦策略[J].計算機學報,2020,43(1):123-135.
[11] 葛昊,葉艷,包西林,等.基于主題模型的英語寫作批閱系統(tǒng)個性化推薦模塊設計與實現(xiàn)[J].科技和產業(yè),2013,13(6):151-155.
[12] 張云洲.單類協(xié)同過濾推薦算法的研究[D].合肥:中國科學技術大學,2018.
【通聯(lián)編輯:唐一東】