謝修娟,陳 永,李香菊,莫凌飛
1(東南大學(xué) 成賢學(xué)院,計算機工程系,南京 210000) 2(金斗云信息科技有限公司,南京 210000) 3(東南大學(xué) 儀器科學(xué)與工程學(xué)院,南京 210000)
在線學(xué)習(xí)作為一種新型的學(xué)習(xí)方式,被廣泛應(yīng)用于學(xué)校在線課堂教學(xué)、技能培訓(xùn)、遠程教育等多種行業(yè).但因為網(wǎng)絡(luò)上學(xué)習(xí)資源與信息的迅速膨脹,如何在海量的學(xué)習(xí)資源中找到學(xué)習(xí)者最需要的信息成為在線學(xué)習(xí)的最大困難[1].解決此類問題最有效的工具就是個性化推薦系統(tǒng),它通過分析在線學(xué)習(xí)者的喜好,為學(xué)習(xí)者推薦其感興趣的學(xué)習(xí)資源[2].
目前主流的推薦算法主要有基于內(nèi)容、基于規(guī)則和協(xié)同過濾三類[3-5].其中,協(xié)同過濾算法是個性化推薦系統(tǒng)中最成功的推薦技術(shù),該算法是根據(jù)歷史數(shù)據(jù)計算目標(biāo)用戶/項目與全體用戶/項目的相似度,建立近鄰用戶/項目,再由近鄰集預(yù)測用戶對未知項目的評分從而產(chǎn)生推薦集.但隨著用戶數(shù)和項目數(shù)的增加,數(shù)據(jù)稀疏和冷啟動問題,成為制約推薦系統(tǒng)質(zhì)量的關(guān)鍵因素.為解決此類問題,國內(nèi)外學(xué)者在已有算法的基礎(chǔ)上提出多種改進措施.如:Gong[6]提出基于用戶和項目兩階段聚類的協(xié)同過濾推薦算法,通過用戶聚類平滑評分為評分矩陣填充數(shù)據(jù),以降低其稀疏性;Jyoti Gupta and Jayant Gadge[7]運用用戶集群離線計算方法改善冷啟動問題,在用戶的可用評分比較少時,使用基于用戶集群的人口統(tǒng)計為用戶賦予更高的權(quán)值;Salehi[8]等人提出樹形模型為用戶進行興趣建模,并在用戶樹形模型中采用新的相似度計算方法產(chǎn)生推薦;Quan[9]提出兩個基于個性的協(xié)同過濾算法,一是從用戶的個性角度計算用戶相似性,產(chǎn)生近鄰進行推薦,二是使用個性項目評分矩陣,為目標(biāo)用戶做出推薦;姚勁勃[10]等人提出采用主成分分析法對用戶-項目評分矩陣進行降維處理,以改善輸入數(shù)據(jù)的高稀疏性;趙偉[11]等人引入聚類技術(shù)對協(xié)同過濾算法進行優(yōu)化,先對用戶進行K-means聚類分類,再為每個用戶類應(yīng)用基于用戶的協(xié)同過濾推薦算法;王成[12]等人提出建立項目-用戶的倒查表,并充分考慮項目熱度,對用戶進行相似度的計算進行改進.王雪蓉[13]等人提出用戶行為關(guān)聯(lián)聚類的協(xié)同過濾算法,對用戶行為相似性度量公式、用戶行為等級函數(shù)、關(guān)聯(lián)規(guī)則函數(shù)進行改進.
以上研究一定程度上改善了數(shù)據(jù)稀疏和冷啟動問題對于推薦質(zhì)量的影響,但是算法仍然單一地強依賴于用戶評分信息,在用戶評分信息不足或者是部分評分數(shù)據(jù)不真實可靠的情況下,很難得到準(zhǔn)確的推薦結(jié)果;再者,諸多研究中并沒有結(jié)合在線學(xué)習(xí)環(huán)境下的學(xué)習(xí)行為進行針對性地推薦.為此,本文提出基于E-learning (數(shù)字化學(xué)習(xí))的協(xié)同過濾推薦算法,結(jié)合學(xué)習(xí)者的學(xué)習(xí)行為和對學(xué)習(xí)資源的顯示打分進行綜合評分,建立評分矩陣,并且引入社交信任機制,根據(jù)學(xué)習(xí)者間的信任程度,創(chuàng)建一種變權(quán)重的用戶相似度計算模型.
定義1.學(xué)習(xí)行為
學(xué)習(xí)行為是指學(xué)習(xí)者在E-learning學(xué)習(xí)過程中所進行的與學(xué)習(xí)資源有關(guān)的活動集合,包括對學(xué)習(xí)資源的下載、收藏、評價和打分,記為LB={Down,Collect,Evaluate,Mark}.
定義2.基于評分的學(xué)習(xí)者間相似度
基于評分的學(xué)習(xí)者間相似度是指利用學(xué)習(xí)者對學(xué)習(xí)資源的評分數(shù)據(jù),來衡量學(xué)習(xí)者間的相似程度.相似度計算方法有多種,常用的有余弦相似度(Cosine Similarity)和皮爾森相關(guān)度(Person Correlation Coefficient),本文采用的是后者,計算兩個學(xué)習(xí)者La和Lb之間的相似度sim(La,Lb),公式如下:
(1)
定義3.Top-N 推薦
根據(jù)學(xué)習(xí)者間的相似度值,選出與當(dāng)前目標(biāo)學(xué)習(xí)者興趣、偏好相近的學(xué)習(xí)者集合(Neighbor:近鄰集),而后將當(dāng)前目標(biāo)學(xué)習(xí)者對學(xué)習(xí)資源的評分與近鄰集中學(xué)習(xí)者之間的相似程度結(jié)合起來,計算目標(biāo)學(xué)習(xí)者對未知學(xué)習(xí)資源的預(yù)測評分,篩選出評分最高的前N項,即產(chǎn)生Top-N 推薦集.學(xué)習(xí)者La對項目i的預(yù)測評分Prea,i,計算公式如下:
(2)
協(xié)同過濾算法的原理是根據(jù)相似用戶的評分或者活動用戶對相似項目的評分作出個性化推薦,因此,獲取用戶-項目評分矩陣是第一步,而往往用戶進行評分的項目數(shù)量過少,嚴重影響推薦質(zhì)量,這就是典型的數(shù)據(jù)稀疏性問題,此外,部分用戶惡意的評分也會導(dǎo)致數(shù)據(jù)缺乏真實有效性,從而制約推薦效果.為克服此類問題,本文將采用主動評分和被動評分相結(jié)合的綜合評分機制.主動評分來自學(xué)習(xí)者對學(xué)習(xí)資源的直接評分行為(打分Mark),使用1-5五級制數(shù)值,數(shù)值越高,表明學(xué)習(xí)者對此資源越感興趣.被動評分是通過跟蹤、分析學(xué)習(xí)者的學(xué)習(xí)行為(下載Down,收藏Collect,評價 Evaluate),對照表1得到的一個潛在評分.
表1 基于學(xué)習(xí)行為的被動評分
Table 1 Passive scoring based on learning behavior
學(xué)習(xí)行為分值Down3Collect2Evaluate2Down+Collect4.5Down+Evaluate4Collect+Evaluate3.5Down+Collect+Evaluate5
對學(xué)習(xí)者的主動和被動兩個評分數(shù)據(jù)求平均值,得到最終評分.而后構(gòu)建學(xué)習(xí)者-學(xué)習(xí)資源的二維評分矩陣,形如:
矩陣M中每一個行向量表示一個特定學(xué)習(xí)者對不同學(xué)習(xí)資源的評分集合,每一個列向量表示一個特定學(xué)習(xí)資源被不同學(xué)習(xí)者的評分集合,而矩陣的每個元素rj,i表示學(xué)習(xí)者j對學(xué)習(xí)資源i的評分.
現(xiàn)有的協(xié)同推薦算法中,絕大多數(shù)僅利用用戶-項目的評分信息計算用戶之間的相似度,而實際推薦過程,不僅要考慮基于評分的用戶興趣因素,還要考慮用戶之間可能存在的社交信任因素,因為用戶一般更傾向于熟人或朋友的推薦.比如當(dāng)下火熱的微商,在微信朋友圈從事商業(yè)買賣,就是一種典型的基于好友間信任的活動.可見,用戶的社交信任信息對于計算用戶的相似度有著舉足輕重的作用.因此,在計算學(xué)習(xí)者間相似度時,應(yīng)充分利用學(xué)習(xí)者的社交數(shù)據(jù),挖掘他們之間的信任度,更為準(zhǔn)確有效地衡量學(xué)習(xí)者間的相似程度.
在線學(xué)習(xí)過程中,學(xué)習(xí)者可以相互關(guān)注、評論,這兩個行為一定程度上反映了他們之間的信任關(guān)系.關(guān)注關(guān)系可以是單向或是雙向,如學(xué)習(xí)者a(La)關(guān)注學(xué)習(xí)者b(Lb),且學(xué)習(xí)者b(Lb)關(guān)注學(xué)習(xí)者a(La),那么此時La和Lb之間應(yīng)是雙向關(guān)注關(guān)系,雙向關(guān)注對應(yīng)的雙方一般是朋友關(guān)系,所以它比單向關(guān)注的信任程度要高,推薦成功性更大.學(xué)習(xí)者間的關(guān)注信任值記為FolTrust(La,Lb),對應(yīng)的計算公式為:
(3)
如果說關(guān)注是學(xué)習(xí)者間的一種顯示信任行為,那么評論則是學(xué)習(xí)者之間的隱式信任行為,某學(xué)習(xí)者頻繁地互動另一學(xué)習(xí)者,說明二者關(guān)系甚好,可見評論次數(shù)越多,信任程度越高,推薦成功率越大.學(xué)習(xí)者間的評論信任值記為ComTrust(La,Lb),對應(yīng)的計算公式為:
(4)
綜合學(xué)習(xí)者間的關(guān)注信任值和評論信任值,得到學(xué)習(xí)者總的信任權(quán)重Trust(La,Lb)為:
Trust(La,Lb)=λ×FolTrust(La,Lb)+(1-λ)×
ComTrust(La,Lb)
(5)
其中,λ表示關(guān)注信任值所占的比重,其取值范圍為[0,1],通過設(shè)定λ來調(diào)節(jié)關(guān)注信任值和評論信任值對信任權(quán)重的影響,以達到預(yù)測值的最佳狀態(tài).
將信任權(quán)重帶入相似度計算公式(1),得到改進后的基于信任權(quán)重的相似度計算公式如下:
(6)
輸入:目標(biāo)學(xué)習(xí)者L0,學(xué)習(xí)者在線學(xué)習(xí)行為日志數(shù)據(jù);學(xué)習(xí)者的社交數(shù)據(jù);
輸出:N個學(xué)習(xí)資源推薦集.
Step1.根據(jù)學(xué)習(xí)行為日志數(shù)據(jù),計算學(xué)習(xí)者對資源的綜合評分,建立學(xué)習(xí)者-資源評分矩陣;
Step2.使用公式(1),計算L0與其他所有學(xué)習(xí)者的相似度;
Step3.根據(jù)學(xué)習(xí)者的社交數(shù)據(jù),使用公式(3)和(4)計算L0與其他所有學(xué)習(xí)者的關(guān)注信任值和評論信任值;
Step4.為λ設(shè)置一個合適的值,代入公式(5),得到學(xué)習(xí)者的信任權(quán)重;
Step5.使用公式(6),計算L0與其他所有學(xué)習(xí)者的融入信任權(quán)重后的相似度;
Step6.對相似度進行排序,為L0選擇相似度最高的近鄰集;
Step7.查找L0近鄰集中未評分的學(xué)習(xí)資源,通過公式(2)計算L0對每個未評分資源的預(yù)測評分;
Step8.對每個預(yù)測評分進行降序排序,篩選出前N項作為推薦集提供給L0.
實驗數(shù)據(jù)集來自本人所在學(xué)校E-learning平臺的歷史學(xué)習(xí)數(shù)據(jù),與本次實驗相關(guān)的數(shù)據(jù)包括:學(xué)習(xí)者(Learner)、資源(Resource)、學(xué)習(xí)行為( LearningBehavior)和學(xué)習(xí)者間社交信任數(shù)據(jù)(SocialTrust),對應(yīng)數(shù)據(jù)庫文件的詳細信息如下所示.
①學(xué)習(xí)者Learner:LID,Gender,Age,Special,分別表示學(xué)習(xí)者ID,性別,年齡和專業(yè).
②資源Resource:RID,Title,Types,分別表示資源ID,資源名和資源的類別.
③下載Down:LID,RID,DTime,分別表示學(xué)習(xí)者ID,資源ID,下載時間.
④收藏Collect:LID,RID,CTime,分別表示學(xué)習(xí)者ID,資源ID,收藏時間.
⑤打分Mark:LID,RID,Score,MTime,分別表示學(xué)習(xí)者ID,資源ID,分數(shù),打分時間.
⑥評價Evaluate:LID,RID,ETime,分別表示學(xué)習(xí)者ID,資源ID,評價時間.
⑦關(guān)注Follow:LID,RID,YesNO,分別表示學(xué)習(xí)者ID,資源ID,是否關(guān)注.
⑧帖子Topic:TID,Title,Content,TTime,TLearnerID,分別表示帖子編號,標(biāo)題,內(nèi)容,發(fā)布時間,發(fā)布者.
⑨評論Comment:CID,Title,Content,CTime,CLearnerID,分別表示回帖編號,評論標(biāo)題,內(nèi)容,評論時間,評論者.
學(xué)習(xí)行為正好對應(yīng)上述的③④⑤⑥,統(tǒng)計每個學(xué)習(xí)者存在的下載、收藏、打分和評價行為;而學(xué)習(xí)者間的社交信任數(shù)據(jù)可以從⑦⑧⑨中獲取,檢索學(xué)習(xí)者間是否添加關(guān)注以及相互間的評論次數(shù).經(jīng)過篩選后,選取1045個學(xué)習(xí)者,529個學(xué)習(xí)資源,每個學(xué)習(xí)者至少有一個在線學(xué)習(xí)行為,至少有一個社交信任數(shù)據(jù).并采用五折交叉驗證的方法,按照4:1的比例將數(shù)據(jù)集分為訓(xùn)練集和測試集,取5次實驗結(jié)果的平均值作為本次實驗的結(jié)果.
本文采用平均絕對偏差(Mean Absolute Error,MAE)作為推薦性能評價指標(biāo).MAE通過計算預(yù)測評分與實際評分之間的偏差來度量預(yù)測的準(zhǔn)確性,MAE值越小,推薦質(zhì)量越高.MAE的計算公式如下:
(7)
表2 兩種方法的訓(xùn)練集稀疏性比較
Table 2 Comparison of r training set sparsity with two methods
評分數(shù)稀疏度改進前改進后改進前(%)改進后(%)15310211021.536.126710397291.9411.4834287483021.2413.9645051499351.4614.4354963482731.4313.95
其中,pi表示目標(biāo)學(xué)習(xí)者對資源i的預(yù)測評分,ri表示目標(biāo)學(xué)習(xí)者對資源i的實際評分,N表示目標(biāo)學(xué)習(xí)者的預(yù)測評分和實際評分都不為零的資源個數(shù).
4.3.1 綜合評分機制的有效性驗證
本文通過主動評分和被動評分相結(jié)合的綜合評分機制,構(gòu)建學(xué)習(xí)者-資源評分矩陣.對5折交叉法的每次訓(xùn)練集,分別采用傳統(tǒng)的基于主動評分的方法和改進后的綜合評分的方法,計算評分值,5組數(shù)據(jù)的集中評分數(shù)及稀疏度如表2所示,其中,每組訓(xùn)練集中學(xué)習(xí)者數(shù)為836,資源數(shù)為414,稀疏度=評分數(shù)/(學(xué)習(xí)者數(shù)×資源數(shù)).
表2中,不難發(fā)現(xiàn),運用綜合評分的機制,評分數(shù)大大增多,評分數(shù)據(jù)稀疏性問題明顯改善.這主要是因為在線學(xué)習(xí)過程中,學(xué)習(xí)者對學(xué)習(xí)資源的直接打分行為不多,更多的是對學(xué)習(xí)資源的收藏、下載、評價等行為,而這些學(xué)習(xí)行為也隱含了學(xué)習(xí)者對資源的興趣偏好信息,使用它們來間接評分合乎情理.
4.3.2 與傳統(tǒng)算法的推薦效果比較
為說明基于信任權(quán)重的改進效果,用傳統(tǒng)的基于用戶的協(xié)同過濾算法與本文提出的改進算法進行比較分析.首先,需要為信任調(diào)節(jié)因子λ選擇合適的值,λ從0開始,以0.1的步長增加到1,λ值為0意味著信任權(quán)重完全依賴于學(xué)習(xí)者間的關(guān)注信息,λ值為1,算法只根據(jù)學(xué)習(xí)者間的評論信息計算信任權(quán)重.MAE與λ的曲線變化關(guān)系如圖1所示(近鄰數(shù)為30),通過觀察發(fā)現(xiàn)隨著λ的值從0到1的遞增,MAE呈現(xiàn)先降低后升高的趨勢,在取值約為0.6時,推薦效果最佳.
圖1 λ對MAE值的影響Fig.1 Effect of λ on MAE value
確定好λ后,再進行傳統(tǒng)算法與改進算法的對比實驗,近鄰集數(shù)目分別取5,10,15,20,25,30,35,40,45,50,實驗結(jié)果如圖2所示.由圖不難發(fā)現(xiàn),隨著最大近鄰數(shù)的變化,改進后算法的MAE值始終保持在傳統(tǒng)算法之下,并且在近鄰數(shù)越來越大時,MAE越來越趨于平穩(wěn),而傳統(tǒng)算法后期MAE的波動幅度比較大,說明本文提出的基于社交信任的推薦算法優(yōu)于傳統(tǒng)的經(jīng)典協(xié)同過濾推薦算法.
圖2 傳統(tǒng)算法與改進算法的對比結(jié)果Fig.2 Comparison of traditional and improved algorithms
本文將基于用戶的協(xié)同過濾算法融入E-learning平臺,實現(xiàn)個性化學(xué)習(xí)推薦.針對傳統(tǒng)算法中存在的典型的數(shù)據(jù)稀疏問題以及強依賴于用戶評分問題,本文對傳統(tǒng)算法提出兩點改進:第一,利用學(xué)習(xí)行為日志數(shù)據(jù)進行綜合評分,構(gòu)建學(xué)習(xí)者-學(xué)習(xí)資源評分矩陣;第二,引入社交信任機制的變權(quán)重相似度模型.為了對本文算法進行評價,進行了兩個實驗,首先是綜合評分機制對評分矩陣稀疏度的影響實驗,然后是確定合適的調(diào)節(jié)因子λ值,并與傳統(tǒng)算法進行推薦效果的對比實驗,實驗結(jié)果表明,本文算法能有效緩解數(shù)據(jù)稀疏問題,MAE值比傳統(tǒng)算法普遍要低,有效提高了系統(tǒng)的推薦質(zhì)量.
[1] Choik,Suh Y.A new similarity function for selecting neighbors for each target item in collaborative filtering [J]. Knowledge-Based Systems,2013,37(1):146-153.
[2] Krzywicki A,Wobcke W,Kim Y S,et al.Collaborative filtering for people-to-people recommendation in online dating:data analysis and user trial[J].International Journal of Human Computer Studies,2015,76(4):50-66.
[3] Greg L,Brent S,Jeremy Y.Amazon.Com Recommen-dations:item-to-item collaborative filtering [J].IEEE Internet Computing,2003,7(1):76-80.
[4] Deng Ai-lin,Zhu Yang-yong,Shi Bo-le.A collaborative filtering recommendation algorithm based on item rating prediction[J].Journal of Software,2003,14(9):1621-1624.
[5] Karypis G.Evaluation of item-based top-N recommendation algorithms [C].Proceedings of CIKM 2001,Atlanta,ACM Press,2001:247-254.
[6] Gong S.A collaborative filtering recommendation algorithm based on user clustering and item clustering[J].Journal of Software,2010,5(7):745-752.
[7] Gupta J,Gadge J.A framework for a recommendation system based on collaborative filtering and demographics[C].International Conference on Circuits,Systems,Communication and Information Technology Applications,IEEE,2014:300-304.
[8] Salehi M,Kamalabadi I N.Attribute-based recommender system for learning resource by learner preference tree[C].Proceedings of the 2nd International E-conference on Computer and Knowledge Engineering,IEEE,2012:133-138.
[9] Quan Z.Collaborative filtering recommendation based on user personality[C].International Conference on Information Management,Innovation Management and Industrial Engineering,IEEE,2013:307-310.
[10] Yao Jin-bo,Yu Yi-cheng,Yu Zhuo-er,et al.Improvement on collaborative filtering algorithm based on PCA default-values[J].Journal of Jilin University(Information Science Edition),2011,29(5):494-497.
[11] Zhao Wei,Lin Nan,Han Ying,et al.User-based collaborative filtering recommendation algorithm based on improved K-means clustering[J].Journal of Anhui University(Natural Science Edition),2016,40(2):32-36.
[12] Wang Cheng,Zhu Zhi-gang,Zhang Yu-xia,et al.Improvement in recommendation efficiency and personalized of user-based collaborative filtering algorithm[J].Journal of Chinese Computer Systems,2016,37(3):428-432.
[13] Wang Xue-rong,Wan Nian-hong.Cloud pattern collaborative filtering recommender algorithm using user behavior correlation clustering[J].Journal of Computer Applications,2011,31(9):2421-2425.
附中文參考文獻:
[4] 鄧愛林,朱揚勇,施伯樂.基于項目評分預(yù)測的協(xié)同過濾推薦算法[J].軟件學(xué)報,2003,14(9):1621-1624.
[10] 姚勁勃,余宜誠,于卓爾,等.基于PCA降維協(xié)同過濾算法的改進[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2011,29(5):494-497.
[11] 趙 偉,林 楠,韓 英,等.一種改進的K-means聚類的協(xié)同過濾算法[J].安徽大學(xué)學(xué)報(自科版),2016,40(2):32-36.
[12] 王 成,朱志剛,張玉俠,等.基于用戶的協(xié)同過濾算法的推薦效率和個性化改進[J].小型微型計算機系統(tǒng),2016,37(3):428-432.
[13] 王雪蓉,萬年紅.云模式用戶行為關(guān)聯(lián)聚類的協(xié)同過濾推薦算法[J].計算機應(yīng)用,2011,31(9):2421-2425.