一種基于在線課程用戶數(shù)據(jù)的個(gè)性化推薦方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及個(gè)性化預(yù)測(cè)與推薦領(lǐng)域,基于在線課程網(wǎng)站用戶的歷史學(xué)習(xí)數(shù)據(jù)進(jìn)行 出錯(cuò)高峰課程的預(yù)測(cè),并進(jìn)行相應(yīng)標(biāo)簽映射下拓展學(xué)習(xí)內(nèi)容的個(gè)性化推薦,如挑戰(zhàn)題目等。 具體為一種基于在線課程用戶數(shù)據(jù)的個(gè)性化內(nèi)容推薦方法。
【背景技術(shù)】
[0002] 在線課程學(xué)習(xí)網(wǎng)站作為當(dāng)前最為流行的學(xué)習(xí)方式之一,在一定程度上為學(xué)習(xí)用戶 提供了廣泛的資源與開(kāi)放的平臺(tái),但當(dāng)前這種學(xué)習(xí)方式也存在著一些明顯的弊端:1.伴隨 式學(xué)習(xí)方式很容易使用戶模糊判斷自己的學(xué)習(xí)情況;2.資源、信息的膨脹會(huì)使用戶盲目于 所要學(xué)習(xí)的內(nèi)容;3.對(duì)于不同愛(ài)好、水平的用戶提供無(wú)差別的課程內(nèi)容。這些弊端無(wú)疑都 會(huì)導(dǎo)致用戶學(xué)習(xí)效果的降低與學(xué)習(xí)用戶的流失。所以我們需要實(shí)現(xiàn)在線課程平臺(tái)的個(gè)性化 學(xué)習(xí)內(nèi)容推薦,充分利用學(xué)習(xí)過(guò)程中產(chǎn)生的海量記錄與數(shù)據(jù),改變順序與無(wú)差別的傳統(tǒng)學(xué) 習(xí)方式,因材施教。
[0003] 個(gè)性化推薦系統(tǒng)主要根據(jù)用戶的偏好與行為等特征為其推薦可能感興趣的信息 或項(xiàng)目,通過(guò)在用戶與項(xiàng)目之間建立的二元關(guān)系,利用歷史行為與相似性挖掘每個(gè)用戶潛 在的偏好信息,進(jìn)而進(jìn)行個(gè)性化內(nèi)容推薦。目前的主流推薦算法包括:基于內(nèi)容的推薦、協(xié) 同過(guò)濾推薦以及混合推薦。協(xié)同過(guò)濾推薦技術(shù)是推薦系統(tǒng)中應(yīng)用最早也是最為成功的技術(shù) 之一,且已經(jīng)被廣泛應(yīng)用到電子商務(wù)、醫(yī)療、金融等各個(gè)領(lǐng)域中。在其走向成熟的過(guò)程中也 存在著許多待解決問(wèn)題:如數(shù)據(jù)稀疏性問(wèn)題會(huì)導(dǎo)致性能下降與伸縮性不足、新用戶冷啟動(dòng) 問(wèn)題以及算法健壯性不夠等。
[0004] 本發(fā)明致力于實(shí)現(xiàn)基于在線課程海量數(shù)據(jù)下用戶的個(gè)性化內(nèi)容推薦,同時(shí)解決錯(cuò) 誤信息較少用戶的冷啟動(dòng)問(wèn)題:參與度較低用戶(初級(jí)用戶)學(xué)習(xí)記錄過(guò)少,或者學(xué)習(xí)水平 較高用戶(高級(jí)用戶)基本無(wú)出錯(cuò)信息,難以進(jìn)行最易出錯(cuò)課程的預(yù)測(cè)與推薦。
【發(fā)明內(nèi)容】
[0005] 為了解決當(dāng)前在線學(xué)習(xí)網(wǎng)站學(xué)習(xí)結(jié)構(gòu)的順序化與學(xué)習(xí)內(nèi)容的無(wú)差別化,本發(fā)明提 供一種基于用戶學(xué)習(xí)歷史數(shù)據(jù)的個(gè)性化內(nèi)容推薦方法。將傳統(tǒng)協(xié)同過(guò)濾推薦方式應(yīng)用于對(duì) 在線課程學(xué)習(xí)平臺(tái)上用戶學(xué)習(xí)的個(gè)性化反饋中,并解決信息過(guò)少用戶的冷啟動(dòng)問(wèn)題。
[0006] 本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:一種基于在線學(xué)習(xí)課程用戶的數(shù)據(jù) 的個(gè)性化內(nèi)容推薦方法,在用戶的學(xué)習(xí)過(guò)程中會(huì)伴隨著大量學(xué)習(xí)記錄的產(chǎn)生,用戶對(duì)課程 的提交操作與準(zhǔn)確率等信息將作為歷史數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中;定期處理原始記 錄數(shù)據(jù)獲得用戶對(duì)于每一門(mén)課程的掌握程度,這里以錯(cuò)誤率為衡量基準(zhǔn);根據(jù)用戶錯(cuò)誤率 與課程間相似度,可以獲得用戶對(duì)每一門(mén)課程的錯(cuò)誤率預(yù)測(cè)權(quán)重;選取預(yù)測(cè)權(quán)重最高的N 門(mén)課程;根據(jù)標(biāo)簽映射計(jì)算標(biāo)簽權(quán)重,進(jìn)而計(jì)算相應(yīng)標(biāo)簽下內(nèi)容的權(quán)重并排序獲得拓展內(nèi) 容的推薦列表。
[0007] 其中,課程、標(biāo)簽、拓展內(nèi)容之間的標(biāo)簽映射關(guān)系(C,L,P)是學(xué)習(xí)系統(tǒng)提前確定 的,標(biāo)簽集L根據(jù)應(yīng)用場(chǎng)景不同可以預(yù)先設(shè)定(如由課程的學(xué)習(xí)內(nèi)容設(shè)置主題標(biāo)簽、由課程 的難度設(shè)置難易標(biāo)簽等多種標(biāo)簽),或由用戶學(xué)習(xí)過(guò)程中挖掘分析而獲得(如對(duì)用戶的學(xué) 習(xí)行為進(jìn)行聚類(lèi)分析,相似的課程劃分為同一類(lèi),進(jìn)而歸納出標(biāo)簽)。這三者間的映射關(guān)系 是η對(duì)η的,每一個(gè)課程可以關(guān)聯(lián)任意多個(gè)標(biāo)簽,每一個(gè)標(biāo)簽又可以關(guān)聯(lián)任意多個(gè)題目,可 參考圖2。
[0008] 本發(fā)明的具體步驟如下,可參考圖1 :
[0009] 1.處理原始用戶數(shù)據(jù),獲得用戶的錯(cuò)誤列表:課程推薦系統(tǒng)在學(xué)習(xí)過(guò)程中用戶集 U對(duì)課程集C的海量操作記錄均會(huì)被存儲(chǔ)于數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中。經(jīng)歷一定的時(shí)間周期T 后從數(shù)據(jù)庫(kù)中取出原始學(xué)習(xí)記錄包括提交操作、提交結(jié)果、完成時(shí)間等詳細(xì)信息,對(duì)其進(jìn)行 預(yù)處理與統(tǒng)計(jì)分析可以獲得用戶對(duì)課程的錯(cuò)誤率列表ΕΤ,錯(cuò)誤列表是用戶、課程之間錯(cuò)誤 率的二元關(guān)系,BP :
[0010] ET = {(Ui, Cj, error (Ui, Cj)) I Ui e U,c j e C,error (u i,Cj) ^ 0}
[0011] 其中,error (Ul,C])表示統(tǒng)計(jì)計(jì)算出用戶化參與課程c ,學(xué)習(xí)后的錯(cuò)誤率:
[0012]
[0013] Cerror (Ui, Cj)表示用戶Ui參與c 學(xué)習(xí)中提交結(jié)果出錯(cuò)的次數(shù),Call (Ui, Cj)表示用戶 Ui參與c 學(xué)習(xí)中所有提交次數(shù);
[0014] 2.獲得項(xiàng)目(課程)相似度列表:課程推薦系統(tǒng)利用步驟1中處理獲得的ET中 用戶與課程間的二元關(guān)系可以獲得課程的錯(cuò)誤列表,如, Cl,c]:
[0015] Ci: {error (U1, Ci),error (u2, Ci),…error (um, Ci)}
[0016] Cj: {error (U1, Cj),error (u2, Cj),…error (um, Cj)}
[0017] 計(jì)算每?jī)蓚€(gè)課程間的相似度,這里采用pearson系數(shù)計(jì)算:
[0018]
[0019] 其中E(X)表示變量X的數(shù)學(xué)期望,如(^與c j的相似度為:
[0020]
[0021] 3.計(jì)算用戶U1所有課程的錯(cuò)誤率預(yù)測(cè)權(quán)重:課程推薦系統(tǒng)對(duì)于用戶對(duì)某一課程 的錯(cuò)誤率權(quán)重,由其所參與學(xué)習(xí)課程的錯(cuò)誤率的加權(quán)和計(jì)算,其中每一項(xiàng)的權(quán)重采用其與 所預(yù)測(cè)課程之間的相似度,相似度越大的課程,其對(duì)于該課程的影響性就越大,可以參考步 驟2中計(jì)算得出的相似度列表;即用戶u對(duì)于課程a的預(yù)測(cè)權(quán)重為用戶u出錯(cuò)的每一個(gè)課 程的錯(cuò)誤率與該課程和a相似度乘積之和,如計(jì)算用戶U 1對(duì)于課程c ,的錯(cuò)誤率預(yù)測(cè)權(quán)重:
[0022]
[0023] 其中 U1G U ;c pc# C ;
[0024] 4.獲取1^的Top-N出錯(cuò)高峰課程列表:對(duì)步驟3中計(jì)算獲得的預(yù)測(cè)列表按 predict_erro;r (Ui, Cj)進(jìn)行降序排列,選擇錯(cuò)誤率預(yù)測(cè)權(quán)重最高的N個(gè)課程。
[0025] 5.計(jì)算與步驟4所得Top-N列表中課程有映射關(guān)系的標(biāo)簽Ik的推薦權(quán)重w (I k): 利用課程、標(biāo)簽、題目之間的三元關(guān)系(C,L,P),每一個(gè)標(biāo)簽的推薦權(quán)重值是由其集合所包 含的且屬于Top-N出錯(cuò)高峰課程列表的課程的錯(cuò)誤率預(yù)測(cè)權(quán)重和計(jì)算獲得:
[0026] lke L ;
[0027]
[0028] courses (Ik)表示標(biāo)簽]^所映射的課程的集合,Top-N (u ;)表示用戶11;的Top-N出 錯(cuò)尚峰列表;
[0029] 6.獲得拓展內(nèi)容(挑戰(zhàn)題目)推薦列表:根據(jù)步驟5中獲得的標(biāo)簽推薦權(quán)重計(jì)算 與其標(biāo)簽集有映射關(guān)系的拓展內(nèi)容(挑戰(zhàn)題目)權(quán)重w( Pl),其中:
[0030] pi e P
[0031]
[0032] problems (Ik)表示標(biāo)簽Ik所映射的挑戰(zhàn)題目的集合,
[0033] 挑戰(zhàn)題目的推薦權(quán)重由所屬標(biāo)簽集合的推薦權(quán)重求和獲得,并按降序排列,即可 獲得推薦K列表。
[0034] 在現(xiàn)實(shí)應(yīng)用場(chǎng)景中常常會(huì)面臨很多無(wú)錯(cuò)誤率信息用戶的冷啟動(dòng)問(wèn)題(因?yàn)檫@些 用戶在錯(cuò)誤列表中無(wú)相關(guān)學(xué)習(xí)記錄或者錯(cuò)誤率均為0,于上述步驟3預(yù)測(cè)所有課程錯(cuò)誤率 過(guò)程中會(huì)發(fā)現(xiàn)預(yù)測(cè)出的錯(cuò)誤率均很低,導(dǎo)致推薦結(jié)果不準(zhǔn)確),解決方案將采用:對(duì)于無(wú)學(xué) 習(xí)參與活動(dòng)或者學(xué)習(xí)參與活動(dòng)較少(如參與學(xué)習(xí)的課程數(shù)量〈20%)的用戶,其掌握水平是 未知的,對(duì)于課程的內(nèi)容了解也時(shí)是甚微的,故為其推薦相應(yīng)簡(jiǎn)單級(jí)別(預(yù)先設(shè)定標(biāo)簽種 類(lèi)中的一種)標(biāo)簽下的內(nèi)容(挑戰(zhàn)題目),比如為其推薦預(yù)先設(shè)定的一組題目列表;對(duì)于掌 握程度較高(如參與學(xué)習(xí)的課程數(shù)量>20%)的用戶,完成課程數(shù)量多同時(shí)學(xué)習(xí)效率較高, 故根據(jù)所有用戶的學(xué)習(xí)規(guī)律為其進(jìn)行基于大眾的推薦。
[0035] 與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:
[0036] 本發(fā)明不但能夠解決冷啟動(dòng)問(wèn)題,而且能夠主動(dòng)吸引用戶的注意力,提高學(xué)習(xí)動(dòng) 力;對(duì)于掌握程度較高級(jí)用戶,完成課程數(shù)量多同時(shí)學(xué)習(xí)效率高,本發(fā)明能夠根據(jù)用戶的學(xué) 習(xí)規(guī)律為其進(jìn)行基于大眾的推薦。
【附圖說(shuō)明】
[0037] 圖1是本發(fā)明的推薦過(guò)程流程圖。
[0038] 圖2是課程、標(biāo)簽、挑戰(zhàn)題目(C,L,P)之間的三元關(guān)系圖。
【具體實(shí)施方式】
[0039] 下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。
[0040] 本發(fā)明基于對(duì)原始學(xué)習(xí)數(shù)據(jù)的整合與處理,由用戶真實(shí)出錯(cuò)率和課程間相似度預(yù) 測(cè)出出錯(cuò)率最高的N個(gè)課程,進(jìn)行加權(quán)投票計(jì)算相應(yīng)標(biāo)簽映射下課外挑戰(zhàn)題目的推薦權(quán) 重,并獲得推薦列表。
[0041] 以某在線編程學(xué)習(xí)網(wǎng)站為例進(jìn)一步說(shuō)明,其主要步驟如下:
[0042] 1.原始用戶數(shù)據(jù)的預(yù)處理,獲得用戶的錯(cuò)誤列表:數(shù)據(jù)庫(kù)中取出原始學(xué)習(xí)記錄, 這里分析用戶對(duì)課程的提交操作數(shù)據(jù)(cid, uid, active_type, active_text, time)
[0043] 其中各參數(shù)代表:cid:課程唯一 id,uid:學(xué)習(xí)用戶唯一 id,active_type:用戶學(xué) 習(xí)行為類(lèi)型,active_text:用戶學(xué)習(xí)行為類(lèi)型說(shuō)明,time:學(xué)習(xí)時(shí)間。
[0044] 對(duì)其進(jìn)行預(yù)處理與統(tǒng)計(jì)分析,可以獲得最新周期時(shí)間內(nèi)用戶對(duì)課程的錯(cuò)誤率列表 ET,即
[0045] ET = {(Ui, c j,error (Ui, c)) I Ui