宋曉麗,賀龍威
1(中國石油大學(xué)(華東),青島 266580)
2(海洋石油工程(青島)有限公司,青島266520)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,在線教育以其打破課堂時空限制等優(yōu)勢越來越受到人們的關(guān)注,尤其是新冠疫情爆發(fā)以來,人們對在線教育的需求大大增加.中國互聯(lián)網(wǎng)絡(luò)信息中心報告顯示:2020年3月,我國在線教育用戶規(guī)模達(dá)4.23 億,較2018年底增長110.2%,占網(wǎng)民整體的46.8%.然而,隨著在線教育的發(fā)展,信息過載現(xiàn)象愈發(fā)嚴(yán)重,如何使用戶在短時間內(nèi)找到適合自己的學(xué)習(xí)資源便成了一項巨大的挑戰(zhàn).為了解決信息過載的問題,科研人員提出了推薦系統(tǒng)的概念,通過對信息的個性化推薦,提高了人們的用戶體驗[1].
有關(guān)推薦系統(tǒng)算法的研究較多,主要分為3 類:基于內(nèi)容的推薦算法、協(xié)同過濾的推薦算法和混合的推薦算法.許多在線教育網(wǎng)站采用傳統(tǒng)的協(xié)同過濾的推薦算法[2],其基本思想是利用已有的用戶選課信息來構(gòu)建相似用戶群體,進(jìn)而進(jìn)行課程的推薦,但傳統(tǒng)的協(xié)同過濾算法存在冷啟動和數(shù)據(jù)稀疏性等問題[3].
由于深度學(xué)習(xí)具有強大的非線性映射能力,在處理高維數(shù)據(jù)時,可以有效地將其映射到低維空間從而提取高層次的特征,隨著近幾年深度學(xué)習(xí)的發(fā)展,利用深度學(xué)習(xí)進(jìn)行個性化推薦也得到了廣泛的應(yīng)用[4-6].由于自編碼器具有強大的隱特征學(xué)習(xí)能力,能夠有效處理數(shù)據(jù)的稀疏性問題[7].另外,由于用戶在進(jìn)行選課時往往會考慮到之前學(xué)過的課程,用戶的選課序列具有明顯的時序特點,LSTM (long short-term memory,長短期記憶網(wǎng)絡(luò))具有強大的時序建模能力,能夠有效處理時間序列數(shù)據(jù).根據(jù)上述特性,本文利用LSTM 改進(jìn)自編碼器,將其應(yīng)用于在線教育的課程推薦領(lǐng)域,根據(jù)用戶的課程學(xué)習(xí)歷史來推薦之后的學(xué)習(xí)課程.
協(xié)同過濾算法是根據(jù)用戶的歷史數(shù)據(jù)劃分用戶群體,根據(jù)群體內(nèi)其他用戶的偏好來為其進(jìn)行推薦,分為兩大類:基于用戶的協(xié)同過濾推薦和基于物品的協(xié)同過濾推薦.
劉國麗等人[8]提出了一種融合專家信任的協(xié)同過濾推薦算法,在專家信任度計算公式中引入了項目平衡因子,提高了算法的推薦準(zhǔn)確率.Li 等人[9]設(shè)計了一個應(yīng)用協(xié)同過濾算法的個性化在線教育平臺,實驗驗證了平臺的性能和功能的有效性.為了解決在物聯(lián)網(wǎng)情境下的推薦問題,Cui 等人[10]提出了一種結(jié)合時間相關(guān)系數(shù)和改進(jìn)的K-means 聚類方法的推薦模型,實驗結(jié)果表明了其在物聯(lián)網(wǎng)情境下的優(yōu)越性能.
隨著深度學(xué)習(xí)的發(fā)展,越來越多的研究人員將深度學(xué)習(xí)方法應(yīng)用到推薦系統(tǒng)上.利用深度學(xué)習(xí)的非線性映射能力,對協(xié)同過濾算法中的用戶矩陣和物品矩陣進(jìn)行建模,使模型具有非線性表達(dá)能力.
王素琴等人[11]提出了一種基于LSTM和課程關(guān)聯(lián)分類的推薦模型,首先利用GSP (generalized sequential pattern mining algorithm) 算法和譜聚類算法對課程進(jìn)行分組,然后利用LSTM 進(jìn)行課程的時間序列建模,最后利用Softmax 函數(shù)對課程進(jìn)行分類,實驗結(jié)果表明與協(xié)同過濾等算法相比,該算法具有更高的推薦準(zhǔn)確性.卜祥鵬[12]提出了一種基于GRU (gated recurrent unit,門控循環(huán)單元)和課程關(guān)聯(lián)關(guān)系的推薦模型,結(jié)合課程之間的關(guān)聯(lián)關(guān)系,利用GRU和Softmax 函數(shù)進(jìn)行課程推薦,實驗結(jié)果表明與協(xié)同過濾或僅考慮課程關(guān)聯(lián)的推薦算法相比,推薦的準(zhǔn)確率更高.Sedhain 等人[13]利用自編碼器將數(shù)據(jù)映射到非線性隱空間,實驗證明與MF (matrix factorization,矩陣分解)和CF (collaborative filtering,協(xié)同過濾)相比,具有更低的均方誤差.Strub[3]結(jié)合評價信息和諸如用戶屬性和物品描述等輔助信息,利用自編碼器進(jìn)行矩陣的分解,通過實驗驗證了所提方法的有效性.
假設(shè)在當(dāng)前的在線教育系統(tǒng)中,共有m位用戶,n門課程,則用U={u1,u2,···,um}表示所有用戶的集合,I={I1,I2,···,In}表示所有課程的集合.對于用戶u∈U,其學(xué)習(xí)課程的序列可以表示為課程推薦的目的是已知t1-ti時間段內(nèi)用戶已經(jīng)學(xué)習(xí)的課程,向其推薦ti+1時刻用戶可能感興趣的課程.
長短期記憶網(wǎng)絡(luò)是一類特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),最早由Hochreiter和Schmidhuber為了解決傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)梯度消失的問題而提出[14].不同于前饋神經(jīng)網(wǎng)絡(luò)跟普通的循環(huán)神經(jīng)網(wǎng)絡(luò),長短期記憶網(wǎng)絡(luò)不僅可以處理點數(shù)據(jù)(例如圖片),還可以處理間隔和延遲非常長的序列數(shù)據(jù)(例如語音跟視頻).長短期記憶網(wǎng)絡(luò)在諸如連筆字識別[15]、語音識別[16]以及時間序列數(shù)據(jù)異常檢測[17]等任務(wù)中取得了優(yōu)秀的成果.其結(jié)構(gòu)如圖1.
圖1 LSTM 網(wǎng)絡(luò)結(jié)構(gòu)[18]
長短期記憶網(wǎng)絡(luò)主要由3 個稱為門的特殊結(jié)構(gòu)來控制神經(jīng)元的狀態(tài),這3 個門分別稱為遺忘門、輸入門跟輸出門.
長短期記憶網(wǎng)絡(luò)的工作由3 個階段完成:
(1)遺忘階段.該階段來決定神經(jīng)元需要遺忘哪些信息,對輸入的信息進(jìn)行選擇性拋棄.
(2)選擇記憶階段.該階段來決定給神經(jīng)元添加哪些信息.
(3)輸出階段.該階段來決定神經(jīng)元的哪些信息會被輸出.
自編碼器是一種以無監(jiān)督學(xué)習(xí)的方法來學(xué)習(xí)數(shù)據(jù)編碼的人工神經(jīng)網(wǎng)絡(luò),其特點是學(xué)習(xí)目標(biāo)跟輸入數(shù)據(jù)相同,一般用途是通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)來忽略無關(guān)信息以實現(xiàn)對數(shù)據(jù)的降維.
自編碼器由兩部分組成:對輸入數(shù)據(jù)進(jìn)行壓縮編碼的編碼器和將編碼重建為輸入數(shù)據(jù)的解碼器.其基本結(jié)構(gòu)如圖2所示.
圖2 自編碼器網(wǎng)絡(luò)結(jié)構(gòu)
對于編碼器映射φ和解碼器映射ψ有:
自編碼器在編碼階段,將輸入x∈Rd=X映射到隱藏層h∈RP=F,h常被稱為編碼、隱變量或隱表示,對于h有:
f為激活函數(shù),常用的有Sigmoid 函數(shù)和ReLU 函數(shù),W是輸入x的權(quán)重矩陣,b為偏置單元.在訓(xùn)練過程中通過反向傳播算法來更新W和b.
在解碼階段,將h映射到輸出,x′和x結(jié)構(gòu)相同:
通過最小化重構(gòu)誤差(例如均方誤差),來訓(xùn)練自編碼器:
為了對用戶選課數(shù)據(jù)的時序性建模,利用LSTM替換自編碼器中的前饋神經(jīng)網(wǎng)絡(luò),類似于RNN Encoder-Decoder[19]和EncDec-AD[20],將二者相結(jié)合.
所提時序特征提取方法如圖3所示.
圖3 時序特征提取方法
本文提出的時序特征提取方法包括輸入層、編碼層、LSTM 層、解碼層和輸出層5 部分.首先對輸入數(shù)據(jù)進(jìn)行預(yù)處理,包括數(shù)據(jù)增強和按窗口劃分序列,隨后將每一個序列送入編碼器得到特征向量,再將此特征向量作為LSTM 網(wǎng)絡(luò)的輸入,最后將LSTM的輸出送入解碼器,得到對原始數(shù)據(jù)窗口下一個窗口的重建.通過最小化重構(gòu)誤差進(jìn)行訓(xùn)練,訓(xùn)練完成后,提取LSTM網(wǎng)絡(luò)輸出作為提取的時序特征.
(1)對原始的時序數(shù)據(jù)進(jìn)行預(yù)處理,將處理好后的數(shù)據(jù)輸入到輸入層.
預(yù)處理過程中采用了數(shù)據(jù)增強(data augmentation)技術(shù),通過添加高斯噪音來提高模型的準(zhǔn)確率.
其中,X′為增強后的數(shù)據(jù),X為原始數(shù)據(jù),γ為噪音的比例,m為原始數(shù)據(jù)的長度,σ2表示原始數(shù)據(jù)的方差,randn(m) 可以產(chǎn)生m條服從標(biāo)準(zhǔn)正態(tài)分布的數(shù)據(jù).
然后,將添加噪音的數(shù)據(jù)以長度為p的窗口進(jìn)行序列劃分.
其中,xi∈X′,wt表示結(jié)束時刻為t的數(shù)據(jù)序列.
(2)將k個不重疊的窗口進(jìn)行序列劃分,經(jīng)編碼后得到的特征表示Et作為LSTM 網(wǎng)絡(luò)的輸入.
Wt表示結(jié)束時刻為t的窗口序列,eit表示W(wǎng)t中的第i個窗口wit的特征表示,Et表示與窗口序列Wt相對應(yīng)的特征表示.
(3)訓(xùn)練LSTM 網(wǎng)絡(luò),用一個序列Et中的前k-1個窗口作為輸入數(shù)據(jù),來預(yù)測接下來的后k-1個窗口.
LSTM的計算可以按照以下公式展開:
其中,Wf,Wi,Wc,Wo與bf,bi,bc,bo分別為t時刻LSTM單元中遺忘門、輸入門、細(xì)胞狀態(tài)、輸出門的權(quán)重矩陣和偏置向量,σ為激活函數(shù),*表示矩陣按元素相乘,ht-1表示t-1時刻隱藏層的狀態(tài).
應(yīng)用梯度裁剪(gradient clipping)[21]來解決LSTM中的梯度爆炸問題.通過將超過閾值的梯度設(shè)定為固定值來使梯度值保持在合理水平.更確切地說,在梯度g更 新前,裁剪g的范數(shù) ‖g‖:
其中,v是閾值的范數(shù),g是要用來更新的參數(shù).
采用真實值跟LSTM 預(yù)測值之間的均方誤差(mean square error,MSE)作為損失函數(shù),MSE計算公式如式(21)所示:
其中eit為真實數(shù)據(jù)值,為預(yù)測數(shù)據(jù)值.
(4)利用解碼器將LSTM的輸出重構(gòu)為時間序列窗口.
經(jīng)過上一步提取到數(shù)據(jù)的時序特征后,將LSTM的輸出作為輸入,經(jīng)過Softmax函數(shù),得到模型最后的推薦結(jié)果.如圖4所示.
圖4 進(jìn)行課程推薦
采用MOOC 真實數(shù)據(jù)集[22],共458 454 條選課記錄,包含82 535 位用戶和1 302 門課程.每條記錄包含用戶id、選課時間、課程id、課程名稱、課程類別等屬性.
(1)首先,將原始數(shù)據(jù)數(shù)據(jù)簡化為三元組(用戶id,選課時間,課程id).
(2)其次,從82 535 位用戶中,剔除選修課程數(shù)量少于10 門的用戶,剩余130 812 條數(shù)據(jù),8 268 位用戶.
(3)然后,再按照用戶分組,共分為8 268 個組,在每個組內(nèi)按照選課時間升序進(jìn)行排序.
(4)最后,按照(用戶id,課程id 時間序列)合并組內(nèi)數(shù)據(jù),得到最終數(shù)據(jù)集,共計8 268 條數(shù)據(jù).
本文采用Top-N推薦系統(tǒng)中常用的查準(zhǔn)率(precision,P)、查全率(recall,R)、F1-分?jǐn)?shù)(F1-Score,F1)3 個評價指標(biāo)來衡量所提方法的推薦性能,表達(dá)式如下.
其中,R(u)表示根據(jù)用戶在訓(xùn)練數(shù)據(jù)集上課程學(xué)習(xí)數(shù)據(jù)給用戶做出的課程推薦列表,T(u)表示用戶在測試數(shù)據(jù)集上的課程學(xué)習(xí)列表.
對于Top-N課程推薦問題,本文取N∈{1,3,10},設(shè)置3 組對比實驗,每組對比實驗中,與協(xié)同過濾算法(CF)和基于傳統(tǒng)的自編碼器的推薦算法(AE) 進(jìn)行對比.
實驗結(jié)果如表1、表2、表3所示.
表1 N=1 時實驗對比
表2 N=3 時實驗對比
表3 N=10 時實驗對比
由表1、表2、表3可得以下結(jié)論:
(1)在同一組對比實驗內(nèi),所提方法在查準(zhǔn)率、查全率、F1-Score3 個指標(biāo)上的表現(xiàn)均要優(yōu)于協(xié)同過濾算法和基于傳統(tǒng)的自編碼器的推薦算法.當(dāng)N=1 時,與CF 算法相比,準(zhǔn)確率提高22.8%,召回率提高26.2%,F1-Score 提高24.6%;與AE 算法相比,準(zhǔn)確率提高9.9%,召回率提高7.7%,F1-Score 提高8.7%.當(dāng)N=3 時,與CF 算法相比,準(zhǔn)確率提高15.5%,召回率提高12.7%,F1-Score 提高14.1%;與AE 算法相比,準(zhǔn)確率提高8.5%,召回率提高7.4%,F1-Score 提高7.9%.當(dāng)N=10 時,與CF 算法相比,準(zhǔn)確率提高13.3%,召回率提高14.2%,F1-Score 提高13.8%;與AE 算法相比,準(zhǔn)確率提高3.1%,召回率提高2.6%,F1-Score 提高2.9%.實驗結(jié)果表明,基于深度學(xué)習(xí)方法的推薦算法性能表現(xiàn)要優(yōu)于傳統(tǒng)的算法,這是因為深度學(xué)習(xí)算法可以提取更深層次的數(shù)據(jù)特征.本文所提方法由于采用了LSTM 對數(shù)據(jù)的時序特征進(jìn)行建模,因此效果也要優(yōu)于基于傳統(tǒng)的自編碼器的推薦算法.
(2)不同對比實驗組間,隨著N的增大,模型的3 個性能評價指標(biāo)也越來越高,這是因為隨著推薦課程的數(shù)量增加,包含用戶喜歡的課程的概率也越來越大.
本文針對在線教育的課程推薦問題,提出了一種基于改進(jìn)自編碼器的在線課程推薦模型.首先,利用長短期記憶網(wǎng)絡(luò)改進(jìn)自編碼器,使得模型可以提取數(shù)據(jù)的時序性特征;然后,利用提取到的數(shù)據(jù)特征進(jìn)行在線教育的課程推薦;最后,在真實的MOOC 數(shù)據(jù)集上進(jìn)行實驗驗證,實驗結(jié)果表明所提方法與協(xié)同過濾算法和基于傳統(tǒng)的自編碼器的推薦算法相比,具有更高的準(zhǔn)確性.
但是,本文工作仍存在以下不足:在LSTM 網(wǎng)絡(luò)中,有眾多的超參數(shù)需要手動設(shè)置,僅憑個人經(jīng)驗難以找到最合適的數(shù)值,接下來將研究如何利用神經(jīng)網(wǎng)絡(luò)搜索,去自動尋找最優(yōu)的超參數(shù).