高立強(qiáng) 繆 凱
(南京工程學(xué)院計(jì)算機(jī)工程學(xué)院,江蘇 南京 211167)
隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,知識(shí)共享的速度和體量得到了突破和飛躍。然而在信息技術(shù)加速知識(shí)傳播的同時(shí),不可避免地造成了信息過載現(xiàn)象(Information Overload)的問題[1]。無論是信息消費(fèi)者還是信息生產(chǎn)者都遇到了很大的挑戰(zhàn)。2020 年在疫情的沖擊下,網(wǎng)絡(luò)教育成為時(shí)代寵兒,在線課程也面臨著信息過載的問題:用戶急速增加,課程數(shù)量龐大,但質(zhì)量參差不齊。為了充分發(fā)掘優(yōu)質(zhì)課程,滿足用戶復(fù)雜需求,需要一種針對(duì)網(wǎng)絡(luò)課程的推薦算法。
目前,推薦系統(tǒng)大致分為以下幾種:基于內(nèi)容的推薦、協(xié)同過濾推薦、基于知識(shí)的推薦、基于網(wǎng)絡(luò)結(jié)構(gòu)的推薦、組合推薦及其他推薦[2]。其中,協(xié)同過濾算法利用用戶的行為數(shù)據(jù),通過分析所有用戶的互動(dòng)數(shù)據(jù),使推薦列表能夠越來越滿足用戶的個(gè)性化需求。協(xié)同過濾推薦一般分為兩類:基于用戶的協(xié)同過濾推薦算法和基于物品的協(xié)同過濾推薦算法[3]?;谟脩舻膮f(xié)同過濾算法的基本思想是找到與目標(biāo)用戶興趣相似的用戶集合所喜歡的而目標(biāo)用戶不認(rèn)識(shí)的物品;而基于物品的協(xié)同過濾算法的基本思想是找到與目標(biāo)用戶喜歡的物品相似的物品[4]。協(xié)同過濾算法擁有善于推薦復(fù)雜的非結(jié)構(gòu)化對(duì)象、善于發(fā)現(xiàn)興趣點(diǎn)、推薦性能隨用戶增多而提升等特點(diǎn)。但也存在諸多問題,如冷啟動(dòng)、數(shù)據(jù)稀疏性、推薦質(zhì)量依賴歷史數(shù)據(jù)集等。
目前,大多數(shù)的推薦算法針對(duì)電子商務(wù)和圖書電影音樂進(jìn)行研究。針對(duì)網(wǎng)絡(luò)課程的推薦算法相對(duì)研究較少。文獻(xiàn)[5]中,通過引入對(duì)課程文本內(nèi)容的挖掘,使用課程文本向量計(jì)算課程相似度,增加物品特征,進(jìn)而預(yù)測(cè)目標(biāo)用戶對(duì)潛在課程興趣集的評(píng)分,達(dá)到對(duì)目標(biāo)用戶進(jìn)行課程推薦的目的。文獻(xiàn)[6]中,對(duì)傳統(tǒng)的基于內(nèi)容的推薦算法在物品建模以及相似度計(jì)算方面存在的語義分析不足的缺陷進(jìn)行改進(jìn),并提出了一種基于內(nèi)容和word2vec的慕課推薦算法。文獻(xiàn)[7]通過挖掘E-Learning 平臺(tái)的用戶數(shù)據(jù)特點(diǎn),實(shí)現(xiàn)基于用戶協(xié)同過濾的個(gè)性化課程推薦。
基于物品的協(xié)同過濾算法給用戶推薦那些和他們之前喜歡的物品相似的物品,該算法并不利用物品的內(nèi)容屬性,它主要通過分析用戶的行為記錄計(jì)算物品之間的關(guān)聯(lián)。該算法認(rèn)為,物品A和物品B具有很大的關(guān)聯(lián)性是因?yàn)橄矚g物品A的用戶大都也喜歡物品B。
在網(wǎng)絡(luò)課程的推薦系統(tǒng)中,課程A和課程B之間具有很大的配合度是因?yàn)閷W(xué)習(xí)A 課程的用戶大都也學(xué)習(xí)過B 課程。同時(shí),專業(yè)知識(shí)的學(xué)習(xí)往往有很大的關(guān)聯(lián)性,下一階段的學(xué)習(xí)內(nèi)容和過往學(xué)習(xí)通常屬于同一學(xué)科科目。
本文的改進(jìn)型網(wǎng)絡(luò)課程推薦算法首先通過用戶評(píng)分、課程完成度、收藏情況等反饋數(shù)據(jù)計(jì)算用戶對(duì)于已選課程的興趣度。然后根據(jù)課程所屬大科目劃分?jǐn)?shù)據(jù)集,這樣極大地增加了課程之間存在高配合度的概率,解決了數(shù)據(jù)稀疏性的問題。將這些課程構(gòu)造成課程集合,利用不同用戶對(duì)同一課程的興趣度依次計(jì)算集合中所有課程之間配合度。根據(jù)配合度和用戶已選課程的興趣度計(jì)算用戶對(duì)未知課程的興趣度,生成排序列表。最后通過實(shí)驗(yàn)確定推薦N值,將前N個(gè)課程作為TopN列表推薦給用戶。
利用課程完成度、收藏和評(píng)分等反饋數(shù)據(jù),計(jì)算用戶對(duì)已知課程的興趣度,公式為:
rui取值范圍[0,2],精確到萬分位,數(shù)值越高代表興趣度越高;Pui為用戶u對(duì)課程i的評(píng)分,取值為[1,10]的整數(shù),默認(rèn)為7;Tui為用戶u對(duì)課程i的完成度,取值范圍[0,1],精確到百分位,Lui為用戶u是否對(duì)課程i有收藏行為,若有則為1,反之為0。
當(dāng)課程數(shù)量較多時(shí),在下一步計(jì)算物品配合度矩陣代價(jià)會(huì)很大,同時(shí)存在嚴(yán)重的數(shù)據(jù)稀疏性問題。由于同一大學(xué)科類目下課程之間的配合度要遠(yuǎn)高于不同學(xué)科之間課程的配合度,因此在計(jì)算課程配合度之前,先根據(jù)其所屬的科目標(biāo)簽,劃分不同的數(shù)據(jù)集。這樣縮小了課程配合度的計(jì)算量,同時(shí)一定程度上緩解了數(shù)據(jù)稀疏性的問題。
定義當(dāng)用戶對(duì)已知課程的興趣度rui>0.76 時(shí),則視為有傾向性。根據(jù)上文所述的“學(xué)習(xí)A課程的用戶一般也學(xué)習(xí)了B課程”,定義A、B課程間的配合度為:
其中,WAB表示A、B課程間的配合度,N(A)為對(duì)A課程有傾向性的用戶數(shù)量,N(B)為對(duì)B 課程有傾向性的用戶數(shù)量。
為了增加推薦的覆蓋率,懲罰熱門課程的權(quán)重。同時(shí)根據(jù)IUF(Inverse User Frequence),懲罰活躍用戶的權(quán)重。修正后的配合度計(jì)算公式為:
其中,N(u)為用戶u 有傾向性的課程數(shù)量。N(A)和N(B)分別為對(duì)A課程和B課程有傾向性的用戶數(shù)量。
在得知同一大科目數(shù)據(jù)集中課程之間的配合度后,通過如下公式計(jì)算用戶u對(duì)課程j的興趣度:
其中,N(u)是用戶有傾向性的課程集合,S(i,K)是和課程i配合度最高的K個(gè)物品的集合,wij是課程i和j的配合度,rui是用戶u對(duì)課程i的興趣度。由于測(cè)試的數(shù)據(jù)集較小,這里K取5。該公式的含義是,和用戶歷史上具有傾向性的課程配合度越高的課程,越有可能在用戶的推薦列表中獲得較高的排名。
在獲得了用戶對(duì)未知課程的興趣度后,根據(jù)興趣度排序推薦前N名課程,這里N的取值會(huì)顯著影響覆蓋率和準(zhǔn)確度等評(píng)測(cè)指標(biāo),通過測(cè)試實(shí)驗(yàn)最終確定向用戶推薦的TopN列表。
由于目前從大型公開課網(wǎng)站獲取用戶的選課情況等個(gè)人信息困難,為了順利進(jìn)行數(shù)據(jù)測(cè)試,我們采用了數(shù)據(jù)仿真模擬的方法,僅對(duì)計(jì)算機(jī)學(xué)科數(shù)據(jù)集進(jìn)行仿真模擬。首先,爬取某網(wǎng)站計(jì)算機(jī)類別下的在線課程名稱,再通過問卷調(diào)查的方式得到用戶數(shù)據(jù),包含歷史行為和未來傾向。通過這種方式來最大限度模擬網(wǎng)絡(luò)課程學(xué)習(xí)的真實(shí)場(chǎng)景。雖然實(shí)際在線學(xué)習(xí)的選課情況更加復(fù)雜,但以上實(shí)驗(yàn)數(shù)據(jù)模擬了用戶在進(jìn)行網(wǎng)絡(luò)課程學(xué)習(xí)時(shí)的主觀傾向,能夠反映出實(shí)驗(yàn)算法的特點(diǎn)。本文通過比較同一數(shù)據(jù)集下N 的取值分析證明算法的效果。
在網(wǎng)站提供推薦服務(wù)的時(shí)候,對(duì)于TopN 推薦算法一般采用準(zhǔn)確率,召回率和覆蓋率來進(jìn)行預(yù)測(cè)準(zhǔn)確率的判斷。
(1)準(zhǔn)確率的定義為:
R(u)是根據(jù)用戶的行為給出的推薦列表,T(u)是用戶的行為列表。
(2)覆蓋率的定義為:
R(u)是根據(jù)用戶的行為給出的推薦列表,I是總物品列表。
(3)召回率的定義為:
R(u)是根據(jù)用戶的行為給出的推薦列表,T(u)是用戶的行為列表。
由于不同的N值,將會(huì)顯著影響到算法的各項(xiàng)評(píng)測(cè)指標(biāo)的數(shù)值,因此,在實(shí)際的網(wǎng)站應(yīng)用中,只有選擇合適的推薦N值,才能取得最好的推薦效果。由于本文所選取的數(shù)據(jù)集較小,因此,N值為從1 到28,間隔3 選取N值,所得的數(shù)據(jù)如圖1準(zhǔn)確率,圖2召回率,圖3 F值圖,圖4覆蓋率所示。
圖1 準(zhǔn)確率
圖2 召回率
圖3 F值
從圖1 中可以看出,隨著推薦數(shù)目N的不斷增加,該算法所形成的準(zhǔn)確率總體呈先上升后下降趨勢(shì),當(dāng)N值取值為16 時(shí),準(zhǔn)確率取得最高,并隨著N值的增大,準(zhǔn)確率反而成一個(gè)下降趨勢(shì)。因此,可以得出準(zhǔn)確率與N值并不成明顯的正相關(guān)或者負(fù)相關(guān)的關(guān)系。圖2中所示,召回率隨著推薦數(shù)據(jù)N的不斷增加,總體呈一個(gè)上升趨勢(shì)。由于推薦N值的增加,推薦數(shù)目也在提高,其跟用戶實(shí)際行為列表的重復(fù)度也會(huì)隨之提高,然而用戶的行為列表是一定的,因此不難理解,隨著推薦N值的提高,召回率呈現(xiàn)一個(gè)上升的趨勢(shì)。然而準(zhǔn)確率與召回率此消彼伏,與N值并沒有一個(gè)很明顯的正負(fù)相關(guān)關(guān)系,因此采用F值,即準(zhǔn)確率與召回率的調(diào)和平均數(shù)來確定一個(gè)對(duì)于該數(shù)據(jù)集最合適的推薦N值。從圖3 中可以看出,當(dāng)N值取16時(shí),所獲得的F值最高,因此,在基于本數(shù)據(jù)集和本算法中,推薦N值取得16時(shí),效果最佳。從圖4 中可以看出,覆蓋率隨著N值的增加,明顯呈一個(gè)上升的趨勢(shì),直到覆蓋率穩(wěn)定不變,達(dá)到最大值。
圖4 覆蓋率
本文提出了改進(jìn)型協(xié)同過濾的網(wǎng)絡(luò)課程推薦算法,首先根據(jù)反饋數(shù)據(jù)計(jì)算用戶對(duì)已知課程的興趣度,然后根據(jù)用戶傾向性計(jì)算同一學(xué)科類別數(shù)據(jù)集下課程間的配合度,并在計(jì)算中對(duì)熱門物品和活躍用戶附加懲罰以提高覆蓋率,最后,根據(jù)用戶對(duì)已知課程的興趣度和配合度計(jì)算對(duì)未知課程的配合度并排序?yàn)橥扑]列表。通過實(shí)驗(yàn)驗(yàn)證了劃分學(xué)科類別、計(jì)算興趣度并判定傾向性、基于課程協(xié)同過濾等符合網(wǎng)絡(luò)課程的特性,具有較好的網(wǎng)絡(luò)課程推薦性能。