盧春華 胡曉楠 彭璐康 李翠霞
1(安順學院數理學院 貴州 安順 561000) 2(樸茨茅斯大學會計與金融管理系 樸茨茅斯 PO1 2UP) 3(北京郵電大學網絡技術研究院 北京 100876)
近年,隨著科技的發展和“互聯網+”概念的迅速普及,基于互聯網的在線學習應運而生,學習方式發生了翻天覆地的變化。在線學習由于其在資源利用、學習方法和教學形式等方面的優點,逐漸成為了一種新的趨勢。然而,隨著時間的推移以及用戶的不斷增加,在線學習系統上的數據變得愈加龐大,資源過載問題日益凸顯,給學生在課程選擇方面帶來了極大的困難。個性化推薦方法可以通過分析學生的歷史行為數據等對其進行個性化建模,自動生成潛在興趣課程并進行智能推薦,有效緩解課程資源過載問題,為用戶個性化、精準化地提供學習資源建議,提升學習效率和用戶滿意度。
傳統的個性化推薦算法主要分為三種:基于內容的推薦方法、協同過濾推薦方法和混合型推薦方法[1]。這些推薦算法在某些特定的應用場景下能取得良好的推薦效果,但在某些方面還存在一些缺陷[2]。目前,深度學習在圖像識別、文本處理和語音識別等領域都取得了前所未有的突破,其方法也被不斷地應用到課程推薦領域。Shen等[3]結合卷積神經網絡和隱含因子模型,利用卷積神經網絡從課程資源的文本描述中獲取隱式特征,提升了模型的推薦效果。朱柳青[4]基于神經網絡設計了一種課程推薦模型,該模型使用卷積神經網絡處理用戶和課程的數據并建模,得到它們的隱式特征,提高了課程推薦的準確性。Khribi等[5]根據學生瀏覽記錄對用戶進行個性化建模,并結合學習資源等內容完成課程推薦。林木輝[6]通過構建學習資源本體,提出一種基于學習者認知水平的個性化課程推薦模型,其中認知水平是通過對知識點進行難度標注產生的。Aher等[7]使用半監督機器學習從用戶歷史數據中挖掘用戶的主要興趣,較為合理地為學習者進行課程推薦。Batouche等[8]提出一種基于改進的人工神經網絡的教學資源推薦模型,獲得了較為合理的推薦結果。文孟飛等[9]通過結合支持向量機與深度學習,將網絡教學視頻實時推送給學習者,提升了教學資源的利用率;Zhou等[10]提出了基于長短期記憶網絡(Long Short-Term Memory,LSTM)的在線學習路徑推薦策略。總體來說,以上模型在特征選擇的時候都使用同種類型的結構化數據,而現實世界中的數據大多都是異構的、非結構化的,這大大制約了推薦模型的建模能力。基于這個角度出發,本文提出了一種基于網絡拓撲和文本特征的智能課程推薦方法,旨在通過融合在線教育過程中產生的大量異構數據對在線課程進行全面的建模,進而匹配用戶特征并進行智能化的推薦。具體步驟為:首先為了充分利用網絡結構信息,分別以課程-學生、課程-教師和課程為主體構建網絡拓撲,利用node2vec隨機游走的方法生成節點序列;然后使用句向量將它們和相關課程的描述文本信息嵌入到更低維的表示向量中;其次通過多模塊的卷積神經網絡(Convolutional Neural Network,CNN)分別得到它們的向量表示,通過向量首尾拼接的方法來建模用戶的偏好;最后,通過計算用戶查看課程信息與目標課程的相似度大小得出推薦課程序列。
卷積神經網絡(Convolutional Neural Network,CNN)是一個重要的深度學習模型。目前,卷積神經網絡在自然語言處理中的應用已經取得了較好的結果[11-12],框架如圖1所示,其主要包含三層結構:卷積層、池化層和全連接層。

圖1 卷積神經網絡結構圖
卷積層:用來提取某個區域的特征,卷積層計算式如下:
xj=σ(Wj?X+bj)
(1)
式中:xj表示在j層(卷積層)的特征圖;Wj是第j層的卷積核;X表示第j層輸入;?表示卷積操作;bj是第j層的偏置項;σ表示激活函數。
池化層用來對不同位置的特征圖進行壓縮,可以減少特征圖的大小,簡化網絡計算復雜度。池化層運算公式如下:
xj=σ(δjS(xj-1)+bj)
(2)
式中:S(°)表示降采樣函數;δ為乘子偏差;b為附加偏差;σ表示激活函數。一般情況下,池化層后接入全連接層,主要實現從特征到分類類別輸出的轉換。
詞的向量化是將自然語言中的詞語映射到低維連續空間,生成一個實數向量[13],Word2vec[14-15]是一種使用廣泛的無監督式詞向量化模型,它從海量文本語料中學習富含語義信息的低維詞向量,使得語義相似的單詞在向量空間中距離相近[16],Word2vec包括兩種訓練模型,分別是連續詞袋模型CBOW和Skip-gram[17]模型。類似Word2vec、Doc2vec用來進行語句或段落的向量化表示,網絡結構如圖2所示,Doc2vec將句子和詞的向量通過求平均或者首尾相連作為輸入來預測文本中的下一個單詞,對于給定的段落di和其詞語序列w1,w2,…,wt,該方法的目標是使平均對數概率最大化,計算式如下:

圖2 Doc2vec
(3)
(4)
y=b+Uh(wt-k,…,wt+k,di;W,D)
(5)
式中:U和b是模型參數。h由W中提取的詞向量與D中提取的段落向量聯結或平均構成。
受到Skip-gram的啟發,Vasile等[18]使用元數據嵌入,將項目元數據映射到潛在空間后通過計算元數據之間的相似性來得出推薦序列。后來,Perozzi等[19]發現自然語言處理中單詞的出現頻率和無標度網絡中節點的出現頻率均服從冪律分布[2],并基于此提出了Deepwalk,該方法將隨機游走產生的節點序列作為文本的句子并將節點作為單詞,使用Word2vec學習節點序列的低維表示。Grover等[20]在Deepwalk的基礎上提出了Node2vec方法,該方法結合廣度優先搜索算法(BFS)和深度優先搜索算法(DFS)這兩種策略,通過調節隨機游走的走向來挖掘網絡拓撲。研究結果表明鄰居節點具有相似性,而充當相同角色的節點具有結構一致性。在網絡的表示中,節點間的這種性質是十分重要的。在生成序列時兩個節點間的轉移概率是通過如下公式產生的。
πvx=αpq(t,x)·ωvx
(6)
式中:ωvx表示節點v和節點x之間邊的權重值,α為轉移概率,如圖3所示,計算公式為:

圖3 Node2vec的游走策略
(7)
式中:v表示當前的節點,t是v的上一步所在節點,而x代表下一步的位置;dtx表示t和x之間的最短距離。
在線課程網站上具有豐富的元數據信息(包括課程、老師和學生等實體以及屬性信息),這些實體構成一個巨大的圖結構,充分挖掘其中蘊涵的特征對于個性化推薦系統的性能提升具有重大意義。如圖4所示,學生a和學生b同時學習了課程A,同時學生b也學習了課程B,而課程A和課程B屬于同一個二級學科,這時課程B和學生a之間存在較強的相關性,可以給學生a推薦課程B。為了緩解數據稀疏性,本文分別以課程-學生、課程-老師和課程所屬二級學科科目為依據構建課程圖結構,從相關元數據的信息中得到課程的向量表示。

圖4 課程圖結構示意圖
在課程-學生元數據圖結構AS={VS,ES,WS},VS表示課程節點集合,ES表示節點之間的邊集合,WS是邊的權重。它結合了學生社交關系(關注與被關注)、個人信息等,如具有社交關系的學生學習的課程之間、共同學生占課程總人數超過比重P的兩個課程之間構成邊。
在課程-老師元數據圖結構AT={VT,ET,WT}中,VT表示老師節點集合,ET表示節點之間的邊集合,WT是邊的權重。它結合了老師之間的社交關系、個人信息等,如具有社交關系的老師所教授課程之間、具有相同研究方向的老師教授課程之間、同一個老師所教授課程之間構成邊。
在課程-課程元數據圖結構AC={VC,EC,WC}中,VC表示課程節點集合,EC表示節點之間的邊集合,WC是邊的權重。課程元數據圖結構主要根據二級學科進行統計的,例如計算機系統結構、計算機軟件與理論、計算機應用技術屬于同一個學科大類,屬于它們的課程之間構成邊。
關于邊的權重值,以課程-課程元數據圖結構為例,若其與其他課程共含有n種邊的關系類型,課程i和課程j之間有邊,若課程i和課程j之間共有m種關系,則課程j和課程j在圖結構中邊的權重值w(i,j)∈WS為:
(8)
在課程推薦系統中,熱門課程通常會得到很多學生的青睞,所以在隨機游走過程中考慮到邊的權重可以使節點往較為熱門的方向游走。在課程-學生元數據圖結構AS={VS,ES,WS}中,隨機選定節點S1,從S1出發選定長度為L的游走節點學列,如圖5所示,節點從Sk-2游走到Sk-1,則下一步的游走概率為:

圖5 游走過程示意圖
(9)
式中:α為二階隨機游走參數,v為與Sk-1節點有邊的節點。
針對課程推薦中特征單一、結果不精準的問題,本文提出了基于邊隨機游走的多模塊神經網絡表示學習方法。該方法包括生成節點序列、使用向量嵌入學習生成圖結構中節點以及課程描述文本的低維表示、訓練基于異構特征的多模塊CNN模型三個階段。首先分別將課程-學生、課程-教師和課程-課程為主體構建網絡拓撲;其次利用Node2vec隨機游走的方法各自生成節點序列并嵌入表示,使用Doc2vec將相關課程的描述文本信息嵌入到低維的表示向量中;最后通過多模塊的CNN進行網絡和文本特征的轉換,并使用向量首尾拼接的方法得到的向量來用戶的偏好表示X,計算X與前饋層處理的目標課程Y(包含網絡和文本特征)的相似度大小得出課程推薦序列。模型架構圖如圖6所示,課程相似度大小計算式為:

圖6 模型架構圖
XTY=S
(10)
式中:X表示用戶的偏好向量;Y表示目標課程向量;S表示與目標課程(候選課程)相似度大小,S值越大,目標課程在推薦序列中的排名越靠前。
本文數據集來自于“愛課程”網。通過網絡爬蟲技術采集“愛課程_中國大學MOOC(慕課)”上的課程,涉及的課程類別包括計算機、化學、外語、經濟學、管理學、醫藥衛生、電子和教育教學這八個門類。采集的課程信息主要包括中文文本格式的課程名稱、課程詳情、課程頁面鏈接、教師詳情和學生詳情等內容,實驗總共收集350余門在線開放課程的相關元數據,共計170余萬字。具體詳情如表1所示。

表1 數據集
本文設置的基準模型如下:
(1) 基于用戶的最近鄰推薦方法(User-KNN):將評分數據集和當前學生ID作為輸入,找出與當前學生的聽課記錄有相似偏好的其他學生,對當前學生未學習的每個課程A,利用學生的近鄰對課程A的評分進行預測;最后,選擇評分最高的TopN個課程推薦給當前學生。
(2) 基于物品的最近鄰推薦方法(Item-KNN):通過計算課程的相似度代替用戶的相似度進行推薦,但是并不以課程的內容屬性計算相似度,而是主要通過分析學生的行為記錄。一般而言,課程A和B具有很大相似度是因為喜歡物品A的用戶大都喜歡B。
(3) 非負矩陣分解(NMF)[21]:將用戶—課程矩陣分解為用戶和課程矩陣相乘的形式,矩陣中每行代表一個個體,最終匹配得分通過這些向量表示。
(4) FGMSI[22]:基于社會影響力因素的圖形推薦模型。該模型首先構建一個異構的社交網絡,然后計算基于元路徑的相似性。最后,從網絡中提取一些特定功能,并將其用于推薦。
在本文實驗中,選取準確率(Precision)和折扣累計利潤及其歸一化(Normalized Discounted Cumulative Gain,NDCG)作為推薦結果的評估指標[14]。
Precision表示推薦方法推薦的課程被用戶喜歡的比例,其計算式如下:
(11)
式中:R(u)表示推薦模型認為用戶喜歡的課程;T(u)表示用戶真正喜歡的課程。
NDCG指標通過比較推薦課程結果列表中位置與課程指定所在位置,評估出推薦結果有效性,其計算式如下:
(12)
(13)
式中:r(i)是第i個課程的結果得分;iDCG是查詢的理想值,即查詢結果好的狀態下計算出來的DCG值。
對于神經網絡模型,其超參數的初始化設置對模型性能是極其重要的。本文對所構建網絡拓撲利用Node2vec隨機游走的方法進行嵌入表示,對將相關課程的描述文本信息使用Doc2vec的方法進行嵌入表示,其中Node2vec和Doc2vec參數設置如表2和表3所示。

表2 Node2vec參數設置

表3 Doc2vec參數設置
最后通過多模塊的CNN進行網絡和文本特征的轉換,為了訓練得到性能最好的模型,Epoch大小設定為250,且在每20個Epoch后保存一次模型,最后選擇在測試集上效果最好的模型作為本文最后的推薦模型。表4給出了本本提出模型的參數設置情況。

表4 模型超參數設置
TopN推薦中,N表示在推薦列表中的前N個推薦課程。實驗結果如表5和圖7所示,本文推薦模型較其他模型表現出了最好的推薦效果。當N=10時,在推薦指標準確率Precision指標上,本文模型比基于用戶的最近鄰推薦方法有約16.4百分點的性能提升,比基于物品的最近鄰推薦方法有約10.2百分點的提升,比NMF推薦方法有約9.5百分點的提升,比基于神經網絡模型的FGMSI推薦方法有約5.2百分點的提升;在更注重推薦列表排序的指標NDCG方面,本文模型比基于用戶的最近鄰推薦方法有約23.6百分點的提升,比基于物品的最近鄰推薦方法有約23.5百分點的提升,比NMF推薦方法有約16.9百分點的提升,比基于神經網絡模型的FGMSI推薦方法有約4.86百分點的提升。可以得出,本文以課程、學生和教師為主體構建網絡拓撲,利用Node2vec隨機游走的方法獲取了課程與課程、學生與課程、老師與課程之間的關系,并通過多模塊的神經網絡結構將它們有機地融合在一起,有效地提升了模型的推薦性能。

表5 N為10時推薦模型的性能

(a) 準確率

(b) NDCG圖7 各模型在數據集上的性能比較
為了能直觀地說明本文模型的推薦機制,本文選取了數據集中的一條推薦實例加以說明。如圖8所示,對于特定學生A,推薦目標是根據目前學習記錄(計算機組成原理、數據結構、人工智能原理等),及其相關的圖結特征和文本描述特征,將目標課程“操作系統”進行精準推薦。在本實例中,由于“操作系統”與已學習的三門課程具有類似的網絡結構,同時,它們的描述文本也具有相似之處(如:計算機、基礎課程、大學生必修等),因而本文提出的模型會將該目標課程排在相對靠前的位置(第二名),它與排名第一的課程“計算機網絡”具有相似的特征。這說明本文提出的模型能夠進行精準推薦,同時對于推薦結果是可解釋的,顯示出其在大規模在線教育平臺應用中存在極大的潛力。

圖8 推薦實例
除了上述實驗,文本通過依次將各特征模塊消除的方法來探索各特征對模型性能的影響。實驗結果如9所示,圖中,C_Student表示在原模型的基礎上消除課程-學生元數據信息模塊,同理,C_Teacher、C_Course、C_Description表示在原模型的基礎上分別消除課程-教師、課程-課程和相關課程的文本描述信息模塊。

(a) Precision

(b) NDCG圖9 各實驗在數據集上的性能比較
由圖9可知,對于本文模型四個輸入模塊(課程-學生元數據信息、課程-老師元數據信息、課程-課程元數據信息和課程的文本描述信息),去掉某種輸入特征之后模型的性能都會下降,說明本文使用的三個網絡拓撲結構和文本特征對于模型都有正面的積極作用。在三個網絡拓撲結構中,課程-教師網絡對模型推薦結果影響最小,課程-課程網絡次之,課程-學生網絡影響最大,表明對于學生與課程關系的挖掘具有重大潛力。而課程文本描述信息相較三種網絡特征對模型的推薦效果影響都大,說明文本特征對推薦模型效果最重要。這進一步表明本模型融合課程-學生、課程-教師和課程-課程的網絡拓撲結構,并結合課程描述文本信息來建模學生的偏好,能為學生提供個性化、精準化的學習資源推薦服務。
本文提出了一種融合網絡特征和文本特征的智能課程推薦方法。首先構建在線課程的網絡拓撲結構,并將其通過Node2vec映射到低維向量空間中,同時將文本數據通過Doc2vec表示,使用多模塊CNN神經網絡擬合網絡和文本特征并計算用戶和目標課程之間的相似度。在進行推薦時,選擇匹配度最高的TopN課程。實驗結果表明,該方法的性能遠遠超過四種基準模型性能,同時消除實驗表明本文使用的每種特征對于推薦性能的提升都有積極作用。在以后的工作中,將挖掘更多形式的異構特征(例如學習序列、課程的多模態數據),并探討不同特征融合方法對于智能課程推薦的影響。