宋曉麗,賀龍威
1(中國石油大學(華東),青島 266580)
2(海洋石油工程(青島)有限公司,青島266520)
隨著互聯網技術的發展,在線教育以其打破課堂時空限制等優勢越來越受到人們的關注,尤其是新冠疫情爆發以來,人們對在線教育的需求大大增加.中國互聯網絡信息中心報告顯示:2020年3月,我國在線教育用戶規模達4.23 億,較2018年底增長110.2%,占網民整體的46.8%.然而,隨著在線教育的發展,信息過載現象愈發嚴重,如何使用戶在短時間內找到適合自己的學習資源便成了一項巨大的挑戰.為了解決信息過載的問題,科研人員提出了推薦系統的概念,通過對信息的個性化推薦,提高了人們的用戶體驗[1].
有關推薦系統算法的研究較多,主要分為3 類:基于內容的推薦算法、協同過濾的推薦算法和混合的推薦算法.許多在線教育網站采用傳統的協同過濾的推薦算法[2],其基本思想是利用已有的用戶選課信息來構建相似用戶群體,進而進行課程的推薦,但傳統的協同過濾算法存在冷啟動和數據稀疏性等問題[3].
由于深度學習具有強大的非線性映射能力,在處理高維數據時,可以有效地將其映射到低維空間從而提取高層次的特征,隨著近幾年深度學習的發展,利用深度學習進行個性化推薦也得到了廣泛的應用[4-6].由于自編碼器具有強大的隱特征學習能力,能夠有效處理數據的稀疏性問題[7].另外,由于用戶在進行選課時往往會考慮到之前學過的課程,用戶的選課序列具有明顯的時序特點,LSTM (long short-term memory,長短期記憶網絡)具有強大的時序建模能力,能夠有效處理時間序列數據.根據上述特性,本文利用LSTM 改進自編碼器,將其應用于在線教育的課程推薦領域,根據用戶的課程學習歷史來推薦之后的學習課程.
協同過濾算法是根據用戶的歷史數據劃分用戶群體,根據群體內其他用戶的偏好來為其進行推薦,分為兩大類:基于用戶的協同過濾推薦和基于物品的協同過濾推薦.
劉國麗等人[8]提出了一種融合專家信任的協同過濾推薦算法,在專家信任度計算公式中引入了項目平衡因子,提高了算法的推薦準確率.Li 等人[9]設計了一個應用協同過濾算法的個性化在線教育平臺,實驗驗證了平臺的性能和功能的有效性.為了解決在物聯網情境下的推薦問題,Cui 等人[10]提出了一種結合時間相關系數和改進的K-means 聚類方法的推薦模型,實驗結果表明了其在物聯網情境下的優越性能.
隨著深度學習的發展,越來越多的研究人員將深度學習方法應用到推薦系統上.利用深度學習的非線性映射能力,對協同過濾算法中的用戶矩陣和物品矩陣進行建模,使模型具有非線性表達能力.
王素琴等人[11]提出了一種基于LSTM和課程關聯分類的推薦模型,首先利用GSP (generalized sequential pattern mining algorithm) 算法和譜聚類算法對課程進行分組,然后利用LSTM 進行課程的時間序列建模,最后利用Softmax 函數對課程進行分類,實驗結果表明與協同過濾等算法相比,該算法具有更高的推薦準確性.卜祥鵬[12]提出了一種基于GRU (gated recurrent unit,門控循環單元)和課程關聯關系的推薦模型,結合課程之間的關聯關系,利用GRU和Softmax 函數進行課程推薦,實驗結果表明與協同過濾或僅考慮課程關聯的推薦算法相比,推薦的準確率更高.Sedhain 等人[13]利用自編碼器將數據映射到非線性隱空間,實驗證明與MF (matrix factorization,矩陣分解)和CF (collaborative filtering,協同過濾)相比,具有更低的均方誤差.Strub[3]結合評價信息和諸如用戶屬性和物品描述等輔助信息,利用自編碼器進行矩陣的分解,通過實驗驗證了所提方法的有效性.
假設在當前的在線教育系統中,共有m位用戶,n門課程,則用U={u1,u2,···,um}表示所有用戶的集合,I={I1,I2,···,In}表示所有課程的集合.對于用戶u∈U,其學習課程的序列可以表示為課程推薦的目的是已知t1-ti時間段內用戶已經學習的課程,向其推薦ti+1時刻用戶可能感興趣的課程.
長短期記憶網絡是一類特殊的循環神經網絡,最早由Hochreiter和Schmidhuber為了解決傳統循環神經網絡梯度消失的問題而提出[14].不同于前饋神經網絡跟普通的循環神經網絡,長短期記憶網絡不僅可以處理點數據(例如圖片),還可以處理間隔和延遲非常長的序列數據(例如語音跟視頻).長短期記憶網絡在諸如連筆字識別[15]、語音識別[16]以及時間序列數據異常檢測[17]等任務中取得了優秀的成果.其結構如圖1.

圖1 LSTM 網絡結構[18]
長短期記憶網絡主要由3 個稱為門的特殊結構來控制神經元的狀態,這3 個門分別稱為遺忘門、輸入門跟輸出門.
長短期記憶網絡的工作由3 個階段完成:
(1)遺忘階段.該階段來決定神經元需要遺忘哪些信息,對輸入的信息進行選擇性拋棄.
(2)選擇記憶階段.該階段來決定給神經元添加哪些信息.
(3)輸出階段.該階段來決定神經元的哪些信息會被輸出.
自編碼器是一種以無監督學習的方法來學習數據編碼的人工神經網絡,其特點是學習目標跟輸入數據相同,一般用途是通過訓練神經網絡來忽略無關信息以實現對數據的降維.
自編碼器由兩部分組成:對輸入數據進行壓縮編碼的編碼器和將編碼重建為輸入數據的解碼器.其基本結構如圖2所示.

圖2 自編碼器網絡結構
對于編碼器映射φ和解碼器映射ψ有:

自編碼器在編碼階段,將輸入x∈Rd=X映射到隱藏層h∈RP=F,h常被稱為編碼、隱變量或隱表示,對于h有:

f為激活函數,常用的有Sigmoid 函數和ReLU 函數,W是輸入x的權重矩陣,b為偏置單元.在訓練過程中通過反向傳播算法來更新W和b.
在解碼階段,將h映射到輸出,x′和x結構相同:

通過最小化重構誤差(例如均方誤差),來訓練自編碼器:

為了對用戶選課數據的時序性建模,利用LSTM替換自編碼器中的前饋神經網絡,類似于RNN Encoder-Decoder[19]和EncDec-AD[20],將二者相結合.
所提時序特征提取方法如圖3所示.

圖3 時序特征提取方法
本文提出的時序特征提取方法包括輸入層、編碼層、LSTM 層、解碼層和輸出層5 部分.首先對輸入數據進行預處理,包括數據增強和按窗口劃分序列,隨后將每一個序列送入編碼器得到特征向量,再將此特征向量作為LSTM 網絡的輸入,最后將LSTM的輸出送入解碼器,得到對原始數據窗口下一個窗口的重建.通過最小化重構誤差進行訓練,訓練完成后,提取LSTM網絡輸出作為提取的時序特征.
(1)對原始的時序數據進行預處理,將處理好后的數據輸入到輸入層.
預處理過程中采用了數據增強(data augmentation)技術,通過添加高斯噪音來提高模型的準確率.

其中,X′為增強后的數據,X為原始數據,γ為噪音的比例,m為原始數據的長度,σ2表示原始數據的方差,randn(m) 可以產生m條服從標準正態分布的數據.
然后,將添加噪音的數據以長度為p的窗口進行序列劃分.

其中,xi∈X′,wt表示結束時刻為t的數據序列.
(2)將k個不重疊的窗口進行序列劃分,經編碼后得到的特征表示Et作為LSTM 網絡的輸入.

Wt表示結束時刻為t的窗口序列,eit表示Wt中的第i個窗口wit的特征表示,Et表示與窗口序列Wt相對應的特征表示.
(3)訓練LSTM 網絡,用一個序列Et中的前k-1個窗口作為輸入數據,來預測接下來的后k-1個窗口.

LSTM的計算可以按照以下公式展開:

其中,Wf,Wi,Wc,Wo與bf,bi,bc,bo分別為t時刻LSTM單元中遺忘門、輸入門、細胞狀態、輸出門的權重矩陣和偏置向量,σ為激活函數,*表示矩陣按元素相乘,ht-1表示t-1時刻隱藏層的狀態.
應用梯度裁剪(gradient clipping)[21]來解決LSTM中的梯度爆炸問題.通過將超過閾值的梯度設定為固定值來使梯度值保持在合理水平.更確切地說,在梯度g更 新前,裁剪g的范數 ‖g‖:


其中,v是閾值的范數,g是要用來更新的參數.
采用真實值跟LSTM 預測值之間的均方誤差(mean square error,MSE)作為損失函數,MSE計算公式如式(21)所示:

其中eit為真實數據值,為預測數據值.
(4)利用解碼器將LSTM的輸出重構為時間序列窗口.

經過上一步提取到數據的時序特征后,將LSTM的輸出作為輸入,經過Softmax函數,得到模型最后的推薦結果.如圖4所示.

圖4 進行課程推薦

采用MOOC 真實數據集[22],共458 454 條選課記錄,包含82 535 位用戶和1 302 門課程.每條記錄包含用戶id、選課時間、課程id、課程名稱、課程類別等屬性.
(1)首先,將原始數據數據簡化為三元組(用戶id,選課時間,課程id).
(2)其次,從82 535 位用戶中,剔除選修課程數量少于10 門的用戶,剩余130 812 條數據,8 268 位用戶.
(3)然后,再按照用戶分組,共分為8 268 個組,在每個組內按照選課時間升序進行排序.
(4)最后,按照(用戶id,課程id 時間序列)合并組內數據,得到最終數據集,共計8 268 條數據.
本文采用Top-N推薦系統中常用的查準率(precision,P)、查全率(recall,R)、F1-分數(F1-Score,F1)3 個評價指標來衡量所提方法的推薦性能,表達式如下.

其中,R(u)表示根據用戶在訓練數據集上課程學習數據給用戶做出的課程推薦列表,T(u)表示用戶在測試數據集上的課程學習列表.
對于Top-N課程推薦問題,本文取N∈{1,3,10},設置3 組對比實驗,每組對比實驗中,與協同過濾算法(CF)和基于傳統的自編碼器的推薦算法(AE) 進行對比.
實驗結果如表1、表2、表3所示.

表1 N=1 時實驗對比

表2 N=3 時實驗對比

表3 N=10 時實驗對比
由表1、表2、表3可得以下結論:
(1)在同一組對比實驗內,所提方法在查準率、查全率、F1-Score3 個指標上的表現均要優于協同過濾算法和基于傳統的自編碼器的推薦算法.當N=1 時,與CF 算法相比,準確率提高22.8%,召回率提高26.2%,F1-Score 提高24.6%;與AE 算法相比,準確率提高9.9%,召回率提高7.7%,F1-Score 提高8.7%.當N=3 時,與CF 算法相比,準確率提高15.5%,召回率提高12.7%,F1-Score 提高14.1%;與AE 算法相比,準確率提高8.5%,召回率提高7.4%,F1-Score 提高7.9%.當N=10 時,與CF 算法相比,準確率提高13.3%,召回率提高14.2%,F1-Score 提高13.8%;與AE 算法相比,準確率提高3.1%,召回率提高2.6%,F1-Score 提高2.9%.實驗結果表明,基于深度學習方法的推薦算法性能表現要優于傳統的算法,這是因為深度學習算法可以提取更深層次的數據特征.本文所提方法由于采用了LSTM 對數據的時序特征進行建模,因此效果也要優于基于傳統的自編碼器的推薦算法.
(2)不同對比實驗組間,隨著N的增大,模型的3 個性能評價指標也越來越高,這是因為隨著推薦課程的數量增加,包含用戶喜歡的課程的概率也越來越大.
本文針對在線教育的課程推薦問題,提出了一種基于改進自編碼器的在線課程推薦模型.首先,利用長短期記憶網絡改進自編碼器,使得模型可以提取數據的時序性特征;然后,利用提取到的數據特征進行在線教育的課程推薦;最后,在真實的MOOC 數據集上進行實驗驗證,實驗結果表明所提方法與協同過濾算法和基于傳統的自編碼器的推薦算法相比,具有更高的準確性.
但是,本文工作仍存在以下不足:在LSTM 網絡中,有眾多的超參數需要手動設置,僅憑個人經驗難以找到最合適的數值,接下來將研究如何利用神經網絡搜索,去自動尋找最優的超參數.