国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用LSTM網(wǎng)絡(luò)和課程關(guān)聯(lián)分類的推薦模型

2019-08-12 02:11:14王素琴吳子銳
計算機與生活 2019年8期
關(guān)鍵詞:準(zhǔn)確率聚類分類

王素琴,吳子銳

華北電力大學(xué) 控制與計算機工程學(xué)院,北京 102206

1 引言

隨著互聯(lián)網(wǎng)以及移動互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,在線學(xué)習(xí)方式已經(jīng)得到了人們的廣泛認(rèn)可。在線學(xué)習(xí)網(wǎng)站在為用戶提供豐富課程資源的同時,信息過載問題日益凸顯,海量的學(xué)習(xí)資源常常讓用戶無所適從。推薦系統(tǒng)能夠幫助用戶快速發(fā)現(xiàn)所需要的課程,是緩解信息過載問題的最有效方法之一[1]。

在線學(xué)習(xí)網(wǎng)站目前主要采用傳統(tǒng)的協(xié)同過濾算法[2-3]為用戶推薦課程,但存在冷啟動[4]和數(shù)據(jù)稀疏性等問題。近年來,深度學(xué)習(xí)技術(shù)發(fā)展迅速,并率先在圖像處理、自然語言處理和語音識別等領(lǐng)域取得突破性進展[5-6],為推薦系統(tǒng)帶來了新的思路。與協(xié)同過濾算法相比,多層神經(jīng)網(wǎng)絡(luò)可以更好地應(yīng)對數(shù)據(jù)的稀疏性特征。其中,長短時記憶(long short-term memory,LSTM)網(wǎng)絡(luò)擅長處理時間序列數(shù)據(jù),當(dāng)用戶行為模式具有明顯的時序性特點時,采用LSTM網(wǎng)絡(luò)能夠更準(zhǔn)確地預(yù)測用戶未來的行為。用戶選擇新的課程時要考慮的因素與網(wǎng)絡(luò)購物差異較大,用戶購買商品通常出于個人偏好[7],但選擇新的課程時,往往與其學(xué)過的課程有關(guān),即用戶所學(xué)習(xí)的課程具有一定的時序性。根據(jù)這一特性,本文將LSTM網(wǎng)絡(luò)應(yīng)用于在線課程的推薦,根據(jù)用戶已學(xué)習(xí)的課程序列預(yù)測其將要學(xué)習(xí)的課程。

本文第2章介紹相關(guān)工作;第3章給出相關(guān)概念;第4章介紹課程推薦模型;第5章提出基于頻繁模式譜聚類的課程關(guān)聯(lián)分類模型;第6章給出在線課程推薦算法;第7章基于在線學(xué)習(xí)網(wǎng)站數(shù)據(jù)集進行實驗結(jié)果驗證和分析;第8章對全文工作進行總結(jié)。

2 相關(guān)工作

2.1 協(xié)同過濾算法及其應(yīng)用

協(xié)同過濾算法是根據(jù)用戶群體興趣的相似性進行推薦的技術(shù),分為基于用戶的協(xié)同過濾推薦(userbased collaborative filtering,UCF)和基于項目的協(xié)同過濾推薦(item-based collaborative filtering,ICF)。由于在線學(xué)習(xí)網(wǎng)站中用戶的數(shù)量通常遠多于課程的數(shù)量,使得計算用戶相似度矩陣的代價遠遠高于計算課程相似度矩陣的代價,因此針對該問題采用基于項目的協(xié)同過濾推薦算法效率更高。

馮亞麗等人[8]綜合應(yīng)用UCF和ICF算法進行遠程培訓(xùn)中的個性化學(xué)習(xí)資源的智能推薦,經(jīng)實際應(yīng)用測試表明效果良好。李浩君等人[9]提出了基于多維特征差異的個性化學(xué)習(xí)資源推薦算法,針對推薦模型的多目標(biāo)優(yōu)化特征,將協(xié)同過濾算法和粒子群算法相結(jié)合,實驗結(jié)果證明該算法準(zhǔn)確率較好。

2.2 基于深度學(xué)習(xí)的推薦算法及其應(yīng)用

深度學(xué)習(xí)技術(shù)能將數(shù)據(jù)的屬性或者特征進行提取并抽象為更高層的表示。最早應(yīng)用于推薦系統(tǒng)的深度學(xué)習(xí)技術(shù)是受限玻爾茲曼機[10](restricted Boltzmann machine,RBM),Hinton等人使用RBM對表格數(shù)據(jù)建模,并提出了一種對比散度算法來提高RBM的訓(xùn)練效率。實驗結(jié)果表明,該方法在Netflix數(shù)據(jù)集(包含超過1億用戶的評分?jǐn)?shù)據(jù))上表現(xiàn)出色。微軟公司的研究人員Song等人[11]在WWW2015會議上提出了一個面向新聞和桌面應(yīng)用的基于內(nèi)容的推薦模型,采用深層神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNN)進行用戶信息的提取。

循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)主要用于處理序列數(shù)據(jù)。Netflix研究員Hidasi[12]提出了一個基于會話的循環(huán)神經(jīng)網(wǎng)絡(luò)推薦系統(tǒng),將會話記錄中的用戶點擊項序列信息作為輸入數(shù)據(jù),在用戶點擊流數(shù)據(jù)量龐大且數(shù)據(jù)稀疏性高(即大部分用戶點擊量往往集中在少量的數(shù)據(jù)項)的情況下,RNN網(wǎng)絡(luò)取得了不錯的推薦結(jié)果。Okura等人[13]采用RNN從用戶的歷史行為列表中學(xué)習(xí)用戶的偏好,最后利用用戶與新聞之間的關(guān)聯(lián)性為用戶推薦新聞。斯坦福大學(xué)Liu等人[14]比較了十種不同結(jié)構(gòu)的RNN網(wǎng)絡(luò)對用戶評論信息進行處理后的推薦效果,在此基礎(chǔ)上提出了一種適合于推薦的雙向RNN結(jié)構(gòu)。

2.3 基于LSTM的推薦算法及應(yīng)用

LSTM網(wǎng)絡(luò)針對RNN的隱藏層單元進行改進,具備長時記憶功能。通常來說,RNN能夠解決的問題LSTM都能夠處理并且效果更好。目前LSTM網(wǎng)絡(luò)主要應(yīng)用于自然語言處理、語音識別和圖像理解。Graves等人[15]最早將LSTM網(wǎng)絡(luò)應(yīng)用于單詞預(yù)測方面的研究,經(jīng)過英語和法語語言庫的訓(xùn)練后,單詞預(yù)測正確率比標(biāo)準(zhǔn)RNN高出8%。Li等人[16]提出了一種基于LSTM網(wǎng)絡(luò)的推特推文標(biāo)簽推薦系統(tǒng),首先使用skip-gram模型生成詞匯表,然后應(yīng)用CNN(convolutional neural networks,CNN)將文章中的每一個句子生成為句子向量,最后利用句子向量訓(xùn)練LSTM網(wǎng)絡(luò)。實驗結(jié)果表明,與標(biāo)準(zhǔn)RNN以及GRU(gated recurrent unit)相比,基于LSTM的推薦模型取得了更好的效果。

多項研究結(jié)果表明LSTM網(wǎng)絡(luò)適合于對具有時序性的信息流進行建模,并且在序列的時間跨度較大的情況下LSTM的性能優(yōu)于RNN。

3 相關(guān)概念

3.1 RNN網(wǎng)絡(luò)結(jié)構(gòu)

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN是一種時間遞歸網(wǎng)絡(luò),可以看作是同一個神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在時間軸上循環(huán)多次得到的結(jié)果。與其他深層神經(jīng)網(wǎng)絡(luò)相比,RNN的結(jié)構(gòu)特點決定了它更擅長處理序列數(shù)據(jù)。

Fig.1 Network structure of RNN圖1 RNN網(wǎng)絡(luò)結(jié)構(gòu)

RNN的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,其中A為RNN隱藏層處理單元,xt為當(dāng)前時刻的輸入值,ht為當(dāng)前時刻隱藏層的輸出值。從圖中可以看出,ht是由當(dāng)前輸入值xt和上一時刻輸出值ht-1共同決定,而ht又會影響下一時刻的輸出,即每個輸出值不僅與當(dāng)前的輸入值有關(guān)還與之前時刻的輸出值有關(guān)。

理論上RNN可以處理任意長度的時間序列數(shù)據(jù),但是在實際應(yīng)用中發(fā)現(xiàn),在RNN訓(xùn)練過程中會產(chǎn)生梯度消失和梯度爆炸的問題。Pascanu等人[17]通過詳細的數(shù)學(xué)推導(dǎo)解釋了這一現(xiàn)象產(chǎn)生的原因,即傳統(tǒng)的RNN模型在訓(xùn)練時傾向于按照序列結(jié)尾處的權(quán)值正確方向進行更新。由于隔得越遠的輸入序列,對權(quán)值能夠正確變化的影響越小,因此網(wǎng)絡(luò)輸入偏向于新信息的輸入而不具備長期記憶功能。

3.2 LSTM網(wǎng)絡(luò)結(jié)構(gòu)

LSTM解決了RNN訓(xùn)練神經(jīng)網(wǎng)絡(luò)過程中梯度消失和梯度爆炸問題,能夠保留更久以前的信息。LSTM的網(wǎng)絡(luò)結(jié)構(gòu)與RNN大體接近,但是隱藏層的結(jié)構(gòu)更為復(fù)雜,如圖2所示。

Fig.2 Comparison of RNN and LSTM network structures圖2 RNN和LSTM網(wǎng)絡(luò)結(jié)構(gòu)比較

圖2 中,t時刻的輸入信息包括當(dāng)前的輸入值xt以及上一時刻的輸出值ht-1。LSTM處理單元主要由輸入門(用it表示)、遺忘門(用ft表示)、輸出門(用ot表示)組成。

輸入門it主要用于控制當(dāng)前時刻信息的流入量,見式(1)。

遺忘門ft用于控制上一時刻累積的歷史信息ct-1的流入量,見式(2)。

輸出門ot主要用于控制當(dāng)前時刻信息的流出量,見式(3)。

gt代表當(dāng)前時刻信息的更新值,它由上一時刻的輸出值ht-1和當(dāng)前時刻的輸入值xt所決定,見式(4)。

ct表示隱藏層單元攜帶的信息,類似于細胞的狀態(tài)。它由輸入門和遺忘門控制,每一時刻都在更新,并直接決定當(dāng)前的輸出。ht是由輸出門ot對ct進行篩選后得到的輸出結(jié)果,見式(5)、式(6)。

以上公式詳細地推導(dǎo)了輸入信息在LSTM隱藏層的處理過程。LSTM通過輸入門、遺忘門和輸出門三個門的作用來調(diào)控信息的流向以及篩選信息,從而解決了信息的長時記憶問題[18-20]。

4 基于LSTM網(wǎng)絡(luò)的在線課程推薦模型

4.1 在線課程推薦模型的框架

基于LSTM的在線課程推薦模型按照功能劃分為輸入部分、處理部分和輸出部分,如圖3所示。

輸入部分將用戶的原始學(xué)習(xí)記錄轉(zhuǎn)化為LSTM網(wǎng)絡(luò)計算時所需要的數(shù)據(jù)形式,即每個用戶已學(xué)課程的向量表示。

處理部分是通過LSTM網(wǎng)絡(luò)處理輸入數(shù)據(jù),得到輸出結(jié)果。需要確定LSTM網(wǎng)絡(luò)的結(jié)構(gòu),包括網(wǎng)絡(luò)層數(shù)、時間步長以及各層之間的連接設(shè)置。本文以課程的數(shù)量作為特征值的數(shù)量,相應(yīng)地也就定義了輸入數(shù)據(jù)和輸出數(shù)據(jù)的維度,即輸入層和輸出層神經(jīng)元的數(shù)量。用戶的課程學(xué)習(xí)序列長度決定了每次計算時的時間步長,將最大時間步長定義為用戶學(xué)習(xí)的課程序列的最大值,同時在讀取每個用戶學(xué)習(xí)序列時,需要指定相應(yīng)的序列長度。這樣整個LSTM網(wǎng)絡(luò)模型的結(jié)構(gòu)就確定了。Softmax層是將LSTM處理層輸出向量的值映射到(0,1)區(qū)間內(nèi)。

輸出部分取Softmax層處理結(jié)果的最后一個維度得到最終推薦的課程向量。

4.2 課程向量表示及輸入數(shù)據(jù)預(yù)處理

Fig.3 Framework of online course recommendation model圖3 在線課程推薦模型框架

神經(jīng)網(wǎng)絡(luò)在計算前通常需要對輸入數(shù)據(jù)進行歸一化處理,將數(shù)據(jù)限制在一定范圍內(nèi),以保證模型能夠迅速收斂。本文采用One-Hot編碼對輸入數(shù)據(jù)進行歸一化處理。One-Hot編碼采用二進制向量形式,因此需要將課程映射為整數(shù)值,即每一門課程對應(yīng)一個課程id,再將課程id表示為二進制向量,向量中下標(biāo)為id號的元素值標(biāo)記為1,其他元素都是0,例如{0,0,0,1,0…0}表示課程id為4的課程。對輸入數(shù)據(jù)進行預(yù)處理的過程如圖4所示。

首先讀取數(shù)據(jù)庫中用戶原始學(xué)習(xí)記錄,并轉(zhuǎn)化為用戶-課程序列的格式,最后將課程序列中每一門課程用向量表示。

其中將用戶課程序列用向量表示的方法如圖5所示。

Fig.5 Data normalization diagram圖5 數(shù)據(jù)歸一化處理示意圖

4.3 模型輸出和推薦結(jié)果

將樣本中每個用戶的課程學(xué)習(xí)序列輸入到模型中,經(jīng)過LSTM網(wǎng)絡(luò)處理后,再通過Softmax層映射得到最終的推薦結(jié)果,如圖6所示。

輸出結(jié)果是向量形式,每個元素的下標(biāo)代表相應(yīng)的課程id,每個元素的值表示用戶學(xué)習(xí)該課程的概率。向量中最大元素的下標(biāo)即為推薦給用戶的課程id,是用戶接下來最有可能學(xué)習(xí)的課程。

4.4 模型輸出和推薦結(jié)果

Fig.6 Input and output of model圖6 模型輸入輸出示意圖

訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,使用損失函數(shù)(loss function)來評估模型的預(yù)測值與實際值不一致的程度。損失函數(shù)的值越小,模型的性能越好。交叉熵?fù)p失函數(shù)適用于多分類和預(yù)測問題。根據(jù)在線課程推薦的特點,本文選用交叉熵?fù)p失函數(shù)作為LSTM網(wǎng)絡(luò)的損失函數(shù),其計算方法如式(7)所示。

式中,m表示樣本大小,xi表示第i組輸入值,yi表示第i組輸入值對應(yīng)的實際值,hθ表示模型中的權(quán)值參數(shù),hθ(xi)表示模型的輸出值。

交叉熵?fù)p失函數(shù)有兩個重要的性質(zhì):

(1)非負(fù)性:J(θ)的值始終大于0,優(yōu)化函數(shù)的目標(biāo)是將函數(shù)值減小。

(2)模型的輸出值hθ(xi)與實際值yi偏差越小,J(θ)的值越小。當(dāng)神經(jīng)網(wǎng)絡(luò)的輸出值接近于實際值時,J(θ)的值接近于0。

以上兩個性質(zhì)說明了交叉熵?fù)p失函數(shù)從數(shù)學(xué)的角度上看,適合用來評估模型的性能。當(dāng)選擇sigmoid函數(shù)作為激活函數(shù)時,權(quán)值的更新速度與誤差大小相關(guān),避免了反向傳播損失值收斂速度慢這一問題[21]。

4.5 Adam優(yōu)化算法

在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,需要使用優(yōu)化算法來調(diào)整網(wǎng)絡(luò)的權(quán)值參數(shù),減小損失函數(shù)的值,使模型的性能得到優(yōu)化。常用的優(yōu)化算法有SGD算法、Adagrad算法和Adam算法等。SGD算法在每次迭代時計算最小batch的梯度,然后更新參數(shù),缺點是選擇合適的學(xué)習(xí)速率比較困難,且容易陷入局部最優(yōu)解。Adagrad算法對學(xué)習(xí)速率進行了約束,但仍依賴人工設(shè)置全局的學(xué)習(xí)速率,有時對梯度的調(diào)節(jié)過大。Adam(adaptive moment estimation)算法適用于大數(shù)據(jù)和高維度的空間,對內(nèi)存的需求較小,因此本文采用Adam算法作為優(yōu)化算法。

Adam算法能夠根據(jù)損失函數(shù)對每個參數(shù)的梯度的一階矩估計和二階矩估計動態(tài)調(diào)整針對于每個參數(shù)的學(xué)習(xí)速率。Adam是基于梯度下降的方法,但是每次迭代參數(shù)的學(xué)習(xí)步長都有一個確定的范圍,不會因為較大的梯度導(dǎo)致過大的學(xué)習(xí)步長,參數(shù)更新比較穩(wěn)定。Adam的每一步迭代過程如下:

(1)從訓(xùn)練集中隨機抽取一批樣本{x1,x2,…,xm}以及相應(yīng)的輸出yi。

(2)計算梯度和誤差,更新一階動量s和二階動量r,再根據(jù)s和r以及梯度計算參數(shù)更新量。

與其他自適應(yīng)學(xué)習(xí)率算法相比,Adam算法收斂速度更快,學(xué)習(xí)效果更有效,能夠解決其他優(yōu)化算法中存在的問題,如學(xué)習(xí)率消失、收斂過慢或是高方差的參數(shù)更新導(dǎo)致?lián)p失函數(shù)波動較大等[22]。

5 基于頻繁模式譜聚類的課程關(guān)聯(lián)分類模型

5.1 關(guān)于課程分類的討論

上文的課程推薦算法是基于課程之間的時序性而提出的,因此將課程按照時序相關(guān)性進行分類后推薦的準(zhǔn)確率會更高。目前,在線學(xué)習(xí)網(wǎng)站課程的分類由人工進行,一般只是單純地依據(jù)課程內(nèi)容上的相似性,對課程學(xué)習(xí)的時序相關(guān)性考慮不多。同時,由于在線課程更新頻繁,人工維護課程分類的工作量較大。如果能夠根據(jù)大量用戶的學(xué)習(xí)記錄發(fā)現(xiàn)課程之間的時序相關(guān)性,再依據(jù)時序相關(guān)性對課程進行自動分類,必將進一步提高推薦算法的準(zhǔn)確性。這里的課程分類不是通常意義上的課程聚類,聚類是根據(jù)課程的特征值計算課程間的“距離”,反映的是課程的相似性,而這里的課程分類考慮的是課程的時序相關(guān)性。本文采用GSP(generalized sequential pattern mining algorithm)算法和譜聚類算法對課程進行分類。

5.2 GSP算法和課程關(guān)系建立

首先使用GSP算法從用戶課程學(xué)習(xí)記錄數(shù)據(jù)庫中挖掘出不同課程之間的關(guān)聯(lián)關(guān)系,為下一步的聚類決策提供支持。GSP算法是一種常用的序列模式挖掘算法[23],屬于Apriori類算法。它能夠從用戶對課程的學(xué)習(xí)行為中,發(fā)現(xiàn)常見的學(xué)習(xí)模式,挖掘出課程之間時序上的聯(lián)系。

首先應(yīng)用GSP算法挖掘出數(shù)據(jù)庫中所有超過最小支持度閾值的頻繁項集。對課程序列α支持度的定義見式(8)。

式中,count(α?d)表示數(shù)據(jù)庫中包含課程序列α的用戶課程序列d的個數(shù),|D|表示數(shù)據(jù)庫大小,即序列總數(shù)。最小支持度閾值Supmin是人為設(shè)定的。

再對頻繁項集進行連接操作,設(shè)有兩個序列s1和s2,若s1去掉第一項和s2去掉最后一項剩下的序列相同,便可進行連接操作。通過連接操作自下而上地進行迭代產(chǎn)生更長的高階頻繁序列。

算法的實現(xiàn)流程如下所示:

(1)輸入用戶-課程數(shù)據(jù)庫D,支持度閾值Supmin。

(2)掃描數(shù)據(jù)庫,產(chǎn)生長度為1的頻繁序列的集合,即種子集L1。

(3)對頻繁序列進行連接,刪掉不滿足支持度閾值的序列,直到?jīng)]有新的候選集產(chǎn)生時,結(jié)束。

(4)輸出頻繁模式L,支持度列表count。

GSP算法挖掘出的頻繁序列數(shù)量隨著序列長度的增加呈現(xiàn)指數(shù)級遞減。較長的頻繁序列數(shù)量稀少,無法用于課程的分類。因此根據(jù)GSP算法挖掘出的長度為2的頻繁序列,建立課程關(guān)聯(lián)矩陣W。W是一個對稱矩陣,其中Wij表示課程i與課程j的關(guān)聯(lián)度,設(shè)定Wii=0。對于頻繁模式 <i,j>,對應(yīng)的支持度為a(a<1),那么Wij=Wji=a。

5.3 譜聚類算法和課程關(guān)聯(lián)分類

GSP算法得到的關(guān)聯(lián)矩陣只能提供兩個課程間的相關(guān)程度,需要利用譜聚類算法[24]進一步根據(jù)課程關(guān)聯(lián)關(guān)系的強弱對所有課程做出合理的簇劃分。譜聚類算法是在傳統(tǒng)聚類算法的基礎(chǔ)上結(jié)合了圖譜理論而演化出的算法,后來在聚類中得到了廣泛的應(yīng)用。其基本原理是:對于一個圖G,通常需要用點的集合V和邊的集合E來進行描述,記作G(V,E)。V為樣本集中的所有點(v1,v2,…,vn),對于圖中的點,定義Wij為點vi和vj之間的權(quán)重。譜聚類算法簡單地說就是通過對所有數(shù)據(jù)點組成的圖進行切圖,讓切圖后不同子圖點之間的權(quán)重較低,子圖內(nèi)點之間的權(quán)重盡可能得高,從而達到聚類的目的。而最優(yōu)的切圖方式,則可以通過對無向圖鄰接矩陣進行數(shù)學(xué)變化得到[25]。

本文將各個課程當(dāng)作頂點,課程數(shù)為n,課程間的關(guān)聯(lián)度Wij看成帶權(quán)重的邊。算法流程如下:

(2)求出L前k個較小特征值對應(yīng)的特征向量,構(gòu)造N×K維特征向量矩陣M,其中N為全部課程數(shù),K為指定特征數(shù)。將全部課程投影到k維空間,M的每一行表示每門課程對應(yīng)的k個特征。

(3)將每一行作為一個樣本點,對N個樣本點進行K-means聚類,最終得到每個課程的分類結(jié)果。

6 基于課程關(guān)聯(lián)分類和LSTM網(wǎng)絡(luò)的課程推薦流程

(1)利用GSP算法從用戶課程學(xué)習(xí)記錄表中挖掘出頻繁序列,并根據(jù)支持度建立課程關(guān)聯(lián)矩陣。

(2)應(yīng)用譜聚類算法在課程關(guān)聯(lián)矩陣的基礎(chǔ)上對所有課程分類。

(3)數(shù)據(jù)歸一化,通過one-hot編碼將課程序列轉(zhuǎn)化為課程向量集合。

(4)按類別將課程向量輸入推薦模型,得到輸出結(jié)果。

(5)通過交叉熵?fù)p失函數(shù),將模型的輸出結(jié)果與實際值比較,計算偏差值。

(6)偏差值反向傳播,應(yīng)用Adam優(yōu)化算法更新模型中每一層神經(jīng)元的權(quán)值參數(shù),達到調(diào)整偏差值的目的,直到滿足指定的條件,否則重復(fù)(3)、(4)、(5)步驟。

(7)推薦模型訓(xùn)練結(jié)束后,載入測試數(shù)據(jù),得到模型的輸出值,獲取推薦結(jié)果。

7 實驗結(jié)果及分析

7.1 實驗數(shù)據(jù)集

實驗數(shù)據(jù)集來自于某在線教學(xué)網(wǎng)站的實際運行數(shù)據(jù),用戶數(shù)13 680人,課程總數(shù)737門,主要是計算機類相關(guān)課程。數(shù)據(jù)包括用戶的學(xué)習(xí)記錄和評分記錄,時間跨度從2014年5月到2017年7月,記錄總條數(shù)共148 170條。其中訓(xùn)練集占80%,約11.8萬條記錄,測試集占20%,約3萬條記錄。首先將數(shù)據(jù)簡化為三元組(用戶id,學(xué)習(xí)時間,課程id)。

7.2 評估指標(biāo)

算法的評價指標(biāo)是準(zhǔn)確率(Precision),是指在推薦給用戶的所有課程中用戶實際學(xué)習(xí)的課程所占的比例,見式(9)。

式中,T(u)表示用戶u實際學(xué)習(xí)的所有課程,R(u)表示推薦給用戶u的所有課程。準(zhǔn)確率越高,表示推薦的課程越符合用戶的期望。

7.3 實驗結(jié)果

輸入測試集中用戶已學(xué)習(xí)的課程序列,經(jīng)模型處理后輸出一個課程序列,取最后一門課程作為用戶推薦課程,并與用戶實際學(xué)習(xí)的課程相比,判斷推薦結(jié)果是否準(zhǔn)確。

7.3.1 人工分類和頻繁模式譜聚類下推薦結(jié)果對比

將全部課程人工劃分為前端開發(fā)、后端開發(fā)、數(shù)據(jù)庫應(yīng)用、軟件測試、UI設(shè)計、移動端開發(fā)六大類,并相應(yīng)地將數(shù)據(jù)集拆分為六個子集。

表1記載了網(wǎng)站人工分類下應(yīng)用基于LSTM推薦算法的推薦結(jié)果。

Table 1 Recommend results based on artificial classification of websites表1 基于網(wǎng)站人工分類下的推薦結(jié)果

從表格中可以看出,分類后各個類別下的推薦結(jié)果普遍好于全部課程下的推薦結(jié)果。

采用頻繁模式譜聚類算法進行課程的自動分類,得到六個課程類別,相應(yīng)的推薦結(jié)果如表2所示。

Table 2 Recommended results based on spectral clustering表2 譜聚類下的推薦結(jié)果

與表1人工分類推薦結(jié)果對比,推薦算法在譜聚類劃分的大多數(shù)類別下比人工分類的表現(xiàn)更好,加權(quán)的準(zhǔn)確率提高了1.7%。

7.3.2 與協(xié)同過濾推薦算法對比

本文算法與UCF和ICF算法在相同數(shù)據(jù)集下的推薦結(jié)果準(zhǔn)確率比較如表3所示。

除了全部課程類別外,本文算法的準(zhǔn)確率指標(biāo)均遠遠高于ICF和UCF算法。與協(xié)同過濾算法相比,本文算法更適合于時序依賴性較強的課程的推薦。另外,ICF比UCF更適合于在線教學(xué)網(wǎng)站中用戶數(shù)量遠大于課程數(shù)量情況下的推薦工作。

Table 3 Precision comparison between this algorithm and collaborative filtering recommendation algorithm表3 本文算法與協(xié)同過濾推薦算法準(zhǔn)確率的對比

7.3.3 與基于RNN的推薦算法對比

基于RNN網(wǎng)絡(luò)的推薦算法與本文算法在相同訓(xùn)練周期下(設(shè)定為100)推薦結(jié)果的準(zhǔn)確率比較如表4所示。

Table 4 Precision comparison between this algorithm and recommendation algorithm based on RNN表4 本文算法與基于RNN的推薦算法準(zhǔn)確率的對比

實驗結(jié)果表明,一方面,兩個算法在不同類別課程上表現(xiàn)的差異性是相似的,在課程之間聯(lián)系比較緊密的課程類別上算法的表現(xiàn)更好,反之則算法的表現(xiàn)稍差;另一方面,在每一個課程類別上本文算法的推薦效果都優(yōu)于RNN推薦算法,在用戶課程學(xué)習(xí)序列普遍較長的情況下兩者表現(xiàn)差距更大,出現(xiàn)這種現(xiàn)象的原因是LSTM網(wǎng)絡(luò)具備長時記憶功能,能夠很好地利用關(guān)系緊密的序列信息。

8 總結(jié)

本文結(jié)合了LSTM網(wǎng)絡(luò)的特性和在線課程學(xué)習(xí)的特點,提出將LSTM網(wǎng)絡(luò)應(yīng)用于在線課程推薦算法,并應(yīng)用GSP算法和譜聚類算法對全部課程進行分類,使每一類別下的課程聯(lián)系更加緊密。實驗結(jié)果表明,自動分類方法提高了課程推薦的準(zhǔn)確率。與傳統(tǒng)的協(xié)同過濾算法相比,對于同類課程的推薦本文算法準(zhǔn)確率有大幅度提升;與RNN推薦算法相比,本文算法在各個類別的課程數(shù)據(jù)集上準(zhǔn)確率均有明顯提升,在用戶課程學(xué)習(xí)序列普遍較長的情況下,兩者表現(xiàn)差距更大,體現(xiàn)了LSTM網(wǎng)絡(luò)具備長時記憶的優(yōu)勢。實驗結(jié)果表明,本文算法具有準(zhǔn)確率高,所推薦課程與用戶已學(xué)課程密切相關(guān)的優(yōu)點。

本文算法存在的不足主要是推薦列表的長度過短。本文算法推薦課程時取的是LSTM網(wǎng)絡(luò)輸出序列的最后一個維度,對應(yīng)的是出現(xiàn)概率最大的課程,因此推薦列表的長度只有1,在實際推薦系統(tǒng)中,往往需要更多的推薦結(jié)果,在后續(xù)改進時,可選擇出現(xiàn)概率大的多門課程進行Top-N推薦。

猜你喜歡
準(zhǔn)確率聚類分類
分類算一算
乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
健康之家(2021年19期)2021-05-23 11:17:39
不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
2015—2017 年寧夏各天氣預(yù)報參考產(chǎn)品質(zhì)量檢驗分析
分類討論求坐標(biāo)
高速公路車牌識別標(biāo)識站準(zhǔn)確率驗證法
數(shù)據(jù)分析中的分類討論
基于DBSACN聚類算法的XML文檔聚類
電子測試(2017年15期)2017-12-18 07:19:27
教你一招:數(shù)的分類
基于改進的遺傳算法的模糊聚類算法
锦州市| 莎车县| 霍州市| 昌黎县| 时尚| 南和县| 芒康县| 洞头县| 顺平县| 清丰县| 泰州市| 和静县| 上高县| 白银市| 吕梁市| 张家界市| 南涧| 诸城市| 孟村| 洞头县| 许昌市| 蕉岭县| 琼海市| 应城市| 耒阳市| 遵义市| 镇沅| 大方县| 舞阳县| 锡林郭勒盟| 罗田县| 将乐县| 墨脱县| 紫金县| 运城市| 裕民县| 东平县| 北碚区| 平塘县| 凯里市| 昂仁县|