羅琨杰,張 瓏,楊 波,孫華志
(天津師范大學(xué)計算機(jī)與信息工程學(xué)院,天津 300387)
隨著互聯(lián)網(wǎng)的發(fā)展,在線資源極易出現(xiàn)信息過載,相關(guān)領(lǐng)域通過逐漸完善個性化推薦算法解決該問題[1].在教育領(lǐng)域,隨著教育信息化和素質(zhì)教育的提出,實現(xiàn)智能“因材施教”形態(tài)下的個性化課程資源推薦越來越重要.課程推薦屬于典型的數(shù)據(jù)挖掘項目,旨在挖掘出學(xué)習(xí)者潛在的個性化學(xué)習(xí)興趣[2],然后提出下一步的學(xué)習(xí)建議.課程推薦常用的算法通常是從其他類型的推薦模型中遷移過來的(如電影、音樂、電子商品等的推薦).一個通用的課程推薦模型包括基于學(xué)習(xí)者的協(xié)同過濾[3-4]、基于課程的協(xié)同過濾以及利用矩陣分解[5-6]和內(nèi)容感知[7]來捕獲學(xué)習(xí)者的個性化潛在學(xué)習(xí)興趣的方法.由于課程學(xué)習(xí)時間長(幾周甚至更長)且具有學(xué)習(xí)順序,因此這種長期學(xué)習(xí)行為導(dǎo)致課程推薦的數(shù)據(jù)形成了區(qū)別于電影、音樂等數(shù)據(jù)的獨(dú)有特點,表現(xiàn)出的數(shù)據(jù)稀疏性程度更深.因此,大多數(shù)研究者在設(shè)計課程推薦系統(tǒng)時常利用許多其他輔助信息[8]進(jìn)行主題建模[9]以彌補(bǔ)學(xué)習(xí)行為的不足.考慮到學(xué)習(xí)順序的問題,文獻(xiàn)[10]提出一種計算課程先驗關(guān)系的推薦算法,用以構(gòu)建更好的課程學(xué)習(xí)推薦順序.為更好地獲得課程的先驗關(guān)系,文獻(xiàn)[11]引入其他輔助信息用于計算先驗關(guān)系:在一種混合的學(xué)習(xí)環(huán)境下設(shè)計一種基于關(guān)聯(lián)規(guī)則的課程推薦系統(tǒng).這些方法雖然在推薦性能上有一定提升,但需要大量額外的輔助信息數(shù)據(jù)和資源.
近年來,越來越多的推薦算法基于深度學(xué)習(xí)[12-13]設(shè)計模型.文獻(xiàn)[14]提出的分解課程相似度模型(factored item similarity model,F(xiàn)ISM)將學(xué)習(xí)者的歷史學(xué)習(xí)行為表示為嵌入向量,再利用學(xué)習(xí)者兩兩嵌入向量之間的內(nèi)積來建模學(xué)習(xí)者的相似度.而在學(xué)習(xí)者的課程學(xué)習(xí)中,想從每門課程中獲得的知識是不同的,學(xué)習(xí)行為的權(quán)重也不同,而FISM在目標(biāo)課程與歷史課程的計算中將所有的歷史行為看作同等重要,將其遷移到課程資源推薦上會限制模型的表達(dá)能力,也不利于個性化學(xué)習(xí)興趣的獲取.為解決該問題,文獻(xiàn)[15]提出一種基于神經(jīng)注意力項目相似的推薦模型(neural attentive item similarity model,NAIS).該模型是融合注意力機(jī)制的神經(jīng)協(xié)同過濾推薦算法,通過區(qū)分學(xué)習(xí)者每個歷史行為的重要性,給每個歷史行為都賦予注意力系數(shù)[16-18]作為歷史行為的貢獻(xiàn)度來進(jìn)行學(xué)習(xí)者的偏好計算,NAIS可以看作是FISM的一種增強(qiáng)模型.而學(xué)習(xí)者的學(xué)習(xí)興趣可能會隨著時間的推移而改變,采用以上算法獲得的結(jié)果是一種當(dāng)時時刻的歷史貢獻(xiàn)值,而不是學(xué)習(xí)者動態(tài)興趣變化賦能的動態(tài)興趣偏好貢獻(xiàn).模型將各時刻的歷史行為都視為靜態(tài)的,無法平衡學(xué)習(xí)者歷史行為靜態(tài)偏好和近期動態(tài)化偏好間的關(guān)系,只能獲得靜態(tài)化的歷史學(xué)習(xí)行為貢獻(xiàn)值,致使最終的推薦性能欠佳.
本文提出一種聯(lián)合神經(jīng)協(xié)同過濾與短期偏好的課程推薦模型,利用短期偏好嵌入與歷史行為嵌入獲得動態(tài)興趣賦能的歷史行為嵌入的新表示,利用新嵌入表示更新計算學(xué)習(xí)者歷史行為的動態(tài)化貢獻(xiàn)度,重構(gòu)個性化動態(tài)學(xué)習(xí)興趣,以提高推薦性能.
本文模型的主要思想是通過利用學(xué)習(xí)者短期學(xué)習(xí)行為的動態(tài)偏好,將其與學(xué)習(xí)者各時刻的歷史行為嵌入融合,形成重構(gòu)的個性化歷史行為嵌入表示,構(gòu)建動態(tài)興趣賦能的歷史行為的新貢獻(xiàn)度,最后利用算法融合后的損失函數(shù)對模型進(jìn)行訓(xùn)練,獲得更準(zhǔn)確的歷史新貢獻(xiàn)度和個性化偏好來進(jìn)行課程推薦.本文推薦模型的整體流程如圖1所示.
圖1 推薦模型流程Fig.1 Flow of recommended model
將學(xué)習(xí)者表示為集合U={u1,u2,…,um},將課程集合表示為C={c1,c2,…,cn},學(xué)習(xí)者的課程學(xué)習(xí)注冊行為表示為矩陣Rm×n,rij∈{0,1},學(xué)習(xí)者ui對課程cj的注冊行為視為學(xué)習(xí)者的歷史行為,標(biāo)記為rij=1,反之標(biāo)記rij=0.令x1,x2,…,xt為學(xué)習(xí)者對課程注冊的歷史行為序列,其中xt為學(xué)習(xí)者在時刻t的注冊行為.推薦系統(tǒng)的最終目標(biāo)是要給學(xué)習(xí)者推薦時刻t+1的目標(biāo)課程ci,而該目標(biāo)課程ci來自于學(xué)習(xí)者未注冊過的課程序列候選集.
該模塊以歷史行為序列x1,x2,…,xt和目標(biāo)課程ci作為輸入,采用基于學(xué)習(xí)者注冊過的歷史課程與未注冊過的目標(biāo)課程的相似度計算的協(xié)同過濾算法來擬合數(shù)據(jù).利用模塊融入的注意力機(jī)制將輸入值輸入到注意力網(wǎng)絡(luò)計算學(xué)習(xí)者的歷史行為的權(quán)重值,以獲得不同學(xué)習(xí)者不同歷史學(xué)習(xí)行為的歷史貢獻(xiàn)度.該過程需要將輸入序列處理為嵌入的形式,具體處理方法是將歷史行為序列表示為Multi-hot的編碼方式,在獲得基礎(chǔ)的歷史行為表示后輸入線性嵌入層,獲得最終的歷史行為的嵌入序列q1,q2,…,qt.將目標(biāo)課程利用One-hot的編碼方式得到目標(biāo)課程的稀疏向量表示,再輸入到線性嵌入層后降維得到稠密向量pi,表示目標(biāo)課程的嵌入[19].最后利用學(xué)習(xí)者的各個行為特征嵌入與學(xué)習(xí)者的目標(biāo)課程嵌入作為注意力網(wǎng)絡(luò)的輸入,獲得學(xué)習(xí)者每個歷史行為的一個標(biāo)量值作為輸出,表示貢獻(xiàn)度.該模塊涉及不同歷史行為的權(quán)重問題,因此引入softmax函數(shù)歸一化權(quán)重計算神經(jīng)注意力相似度,獲取歷史行為的貢獻(xiàn)值[15].基于課程的歷史行為的貢獻(xiàn)值aij表示為
其中:f為使用一個多層感知機(jī)(multilayer perceptron,MLP)進(jìn)行計算的函數(shù),且以Relu為激活函數(shù);R+u為學(xué)習(xí)者曾經(jīng)注冊過的課程集合;β為針對某些過度活躍的學(xué)習(xí)者獲得過度懲罰的softmax分母的平滑系數(shù),β∈[0,1],當(dāng)β=0.5時的推薦效果最佳.上述利用神經(jīng)協(xié)同過濾歷史貢獻(xiàn)計算的整體框架結(jié)構(gòu)如圖2所示.
圖2 神經(jīng)協(xié)同過濾歷史貢獻(xiàn)計算框架Fig.2 Neural collaborative filtering framework for computing historical contributions
本文基于雙向長短時記憶網(wǎng)絡(luò)(BI-LSTM)[20]構(gòu)建短期偏好模型,模型結(jié)構(gòu)如圖3所示.
圖3 捕獲短期偏好的模型結(jié)構(gòu)Fig.3 Model structure for capture short-term preference
該模型網(wǎng)絡(luò)以歷史行為序列作為輸入,為了獲得近期的動態(tài)性興趣,選用最近的部分歷史行為序列,下文的實驗部分中說明了選取最近3次的歷史行為序列(xt-2,xt-1,xt)獲得的性能最佳.隱藏向量的特征狀態(tài)為
BI-LSTM包含左右序列上下文的2個子序列,分別表示前向網(wǎng)絡(luò)和后向網(wǎng)絡(luò)所獲得的高層次特征狀態(tài),因此學(xué)習(xí)者在時刻t的歷史行為序列產(chǎn)生的包含上下文信息的隱藏向量的特征狀態(tài)ht表示為
其中:ht∈Rd,H∈Rd×t,d為學(xué)習(xí)者歷史行為嵌入的維度.之后,利用自注意力機(jī)制來學(xué)習(xí)短期偏好S,其過程為
其中:tanh為特征狀態(tài)的激活函數(shù);w為訓(xùn)練獲得的超級參數(shù)矩陣;α為由自注意力機(jī)制獲得的每個狀態(tài)特征的權(quán)重向量.
為更好地平衡各時刻歷史行為與近期動態(tài)性偏好,本文建構(gòu)了一種融合短期偏好的動態(tài)性偏好行為的新表示,用以重構(gòu)近期動態(tài)性偏好變化賦能的歷史行為的新貢獻(xiàn)度.模型結(jié)構(gòu)如圖4所示,通過γ控制融入的短期偏好S的比例后,分別與學(xué)習(xí)者在時刻1到t注冊過的第j個課程的嵌入qj相乘,重構(gòu)得到學(xué)習(xí)者動態(tài)興趣賦能的新嵌入表示qsj,將其與目標(biāo)課程嵌入輸入到注意力機(jī)制模塊中,建構(gòu)學(xué)習(xí)者歷史行為的新貢獻(xiàn)度aisj.將該新貢獻(xiàn)度作為學(xué)習(xí)者歷史行為的權(quán)重值,重新量化不同歷史學(xué)習(xí)行為的重要性,其形式為
圖4 模型的整體結(jié)構(gòu)Fig.4 Overall structure of the model
當(dāng)學(xué)習(xí)者的歷史行為處于負(fù)面狀態(tài)時(學(xué)習(xí)興趣已改變),通過融合短期偏好后獲得的qsj向量會變得稀疏,弱化了新貢獻(xiàn)度aisj的計算,故短期偏好的引入對各時刻歷史行為與近期興趣起到平衡作用;當(dāng)處于理想狀態(tài)時(學(xué)習(xí)興趣未改變),通過融合短期偏好后獲得的qsj向量會變得更加稠密,強(qiáng)化了新貢獻(xiàn)度aisj的計算,此時短期偏好將起到輔助作用.這2種情況下模型都能獲得近期動態(tài)興趣賦能的偏好.
獲得新貢獻(xiàn)度后,利用基于課程的協(xié)同過濾進(jìn)行課程推薦.
為獲得更好的推薦性能,需要在融合后的模型中選擇特定的目標(biāo)函數(shù)優(yōu)化模型.整個推薦問題中的隱式反饋被視為二分類問題,故選用二元交叉熵函數(shù)作為損失函數(shù)的一部分.同時,為更好地匹配模型中引入的短期偏好,加入負(fù)對數(shù)似然函數(shù),聯(lián)合訓(xùn)練整個模型.訓(xùn)練中將學(xué)習(xí)者的歷史行為序列看作正樣本,從該學(xué)習(xí)者未注冊的樣例中隨機(jī)采樣99個作為負(fù)樣本,因此最小正則化日志損失函數(shù)定義為
其中:N為訓(xùn)練實例總數(shù);σ為激活函數(shù);ti為One-hot表示的一個正確標(biāo)記數(shù)據(jù);R+、R-分別為正、負(fù)樣本集合;λ為L2正則項的權(quán)重參數(shù),用于防止過擬合.
選用來自學(xué)堂在線真實的MOOC數(shù)據(jù)集進(jìn)行實驗.選擇學(xué)習(xí)者在2016年10月至2018年3月之間的歷史注冊課程的有效行為作為學(xué)習(xí)行為的歷史記錄,數(shù)據(jù)集中用戶數(shù)為82 535,課程數(shù)為1 302,互動數(shù)為458 454,數(shù)據(jù)集稀疏度為99.57%.
由于實驗引入了短期偏好并且數(shù)據(jù)集的稀疏度高達(dá)99.57%,因此對數(shù)據(jù)集進(jìn)行清洗過濾處理,將歷史行為長度低于3的記錄過濾.考慮到行為序列相對較少的情況,按照時間線對數(shù)據(jù)集進(jìn)行劃分,2016年10月至2017年12月的數(shù)據(jù)作為訓(xùn)練集,2018年1月至3月的數(shù)據(jù)作為測試集.
采用top-K推薦中廣泛使用的評估方法,即以基于召回的命中率(hit ratio,HR)和基于位置預(yù)測的歸一化折損增益(normalized discounted cumulative gain,NDCG)作為性能評估指標(biāo).
采用Python3和TensorFlow框架實現(xiàn)模型構(gòu)建并在Linux系統(tǒng)下運(yùn)行實驗.模型訓(xùn)練參考已有的相關(guān)文獻(xiàn)[15,20]對部分參數(shù)進(jìn)行設(shè)置,設(shè)置學(xué)習(xí)率為0.5~0.000 1;嵌入維度為64、32、16、8,依次取值實驗;迭代次數(shù)為15;丟棄率為0.75;Batch_size為128;γ為0.2.
為驗證所設(shè)計模型的推薦性能,將本文模型與常用模型FISM[14]、MLP、NeuMF(neural matrix factorization)和NAIS[15]進(jìn)行比較.MLP模型利用多層感知機(jī)對學(xué)習(xí)者和課程學(xué)習(xí)行為數(shù)據(jù)進(jìn)行處理,從中獲得評分函數(shù)以學(xué)習(xí)相關(guān)課程被選擇的概率,從而進(jìn)行課程推薦[21].NeuMF模型通過融合矩陣分解和多層感知機(jī),建模復(fù)合矩陣分解與多層膜耦合課程排序,屬于神經(jīng)協(xié)同過濾推薦模型,是神經(jīng)協(xié)同過濾算法中使用最為廣泛的模型之一[21].
在相同的環(huán)境下進(jìn)行實驗,5種模型的HR和NDCG實驗結(jié)果見表1.由表1可見,本文模型與另外4種模型相比,2個評價指標(biāo)都有不同的增長,推薦性能得到一定提升.
表1 課程推薦性能比較Tab.1 Performance comparison of course recommendation
5種模型的HR和NDCG隨迭代次數(shù)變化的情況見圖5.由圖5可見,5種模型的HR和NDCG隨迭代次數(shù)的增加都呈先上升后下降再穩(wěn)定的趨勢,本文模型的指標(biāo)在后期迭代中一直處于穩(wěn)定的狀態(tài),而NAIS和FISM的2個指標(biāo)都有一段明顯的下降趨勢,這是因為在迭代后期,由于MOOC數(shù)據(jù)集的稀疏性使得模型收斂較快,且神經(jīng)網(wǎng)絡(luò)中的權(quán)重和參數(shù)更新次數(shù)增多造成了過擬合,這說明本文模型的魯棒性較強(qiáng).NeuMF和MLP在迭代后期較NAIS和FISM穩(wěn)定,但性能整體上低于本文模型.因此本文模型更適合于具有高度稀疏性的數(shù)據(jù)集的推薦任務(wù).
圖5 5種模型2個指標(biāo)隨迭代次數(shù)的變化Fig.5 Changes of two indicators of five models with the number of iterations
實驗對比了使用LSTM和BI-LSTM的模型性能,HR和NDCG見圖6.由圖6可見,在迭代前期,LSTM和BI-LSTM的HR基本一致,LSTM的NDCG低于BI-LSTM,但相對穩(wěn)定,隨著迭代的增加,LSTM的2個指標(biāo)呈現(xiàn)下降趨勢.說明LSTM雖然在一定程度上能提升推薦性能,但在面對具有高度稀疏性的數(shù)據(jù)集時,穩(wěn)定性低于BI-LSTM,因此,使用BI-LSTM在課程推薦中捕獲學(xué)習(xí)者的短期偏好后融入貢獻(xiàn)度計算模型更加適合.
圖6 使用LSTM和BI-LSTM 2個指標(biāo)隨迭代次數(shù)的變化Fig.6 Changes of two indicators using LSTM and BI-LSTM with the number of iterations
由于模型使用BI-LSTM來獲取短期偏好以重構(gòu)學(xué)習(xí)者個性化學(xué)習(xí)偏好,因此選取的歷史長度也對模型性能有一定影響.選取歷史長度為1,2,…,6,本文模型和NAIS的HR和NDCG見圖7.由圖7可見,本文模型的HR和NDCG隨歷史長度增加呈先上升后下降的趨勢.歷史長度為3時的推薦性能最佳,這是因為融入的短期偏好起到平衡和輔助的作用,歷史長度過小不利于短期偏好的捕獲且構(gòu)造的損失函數(shù)也不利于模型訓(xùn)練,歷史長度過大又會引入其他噪聲信息,也不利于模型的訓(xùn)練.
圖7 歷史長度對2個指標(biāo)的影響Fig.7 Influences of history length on two indicators
本文模型旨在重構(gòu)個性化學(xué)習(xí)偏好以平衡時刻偏好來更新計算歷史貢獻(xiàn)度,但時刻偏好不是完全片面、不可利用的偏好,將短期偏好融入神經(jīng)協(xié)同過濾歷史貢獻(xiàn)度計算中時,需要選擇合適的比例才能獲得更好的推薦結(jié)果.選擇γ為0.1,0.2,…,0.9,本文模型和NAIS的HR和NDCG見圖8.由圖8可見,本文模型的2個指標(biāo)隨γ的增大呈現(xiàn)波動趨勢.當(dāng)γ=0.2時的實驗結(jié)果最好,這是因為針對數(shù)據(jù)集本身的特點,只需取相對較小比例即可獲得較好的性能,取值過大反而會限制模型的表達(dá)能力且弱化短期偏好的平衡和輔助作用.
圖8 融入短期偏好的權(quán)重比例對2個指標(biāo)的影響Fig.8 Influences of weight proportion with short-term preference on two indicators
獲取歷史行為的貢獻(xiàn)度是課程資源推薦的一種重要應(yīng)用方式.本文模型通過捕獲學(xué)習(xí)者近期的動態(tài)興趣偏好,不僅可以平衡興趣發(fā)生變化時歷史行為的靜態(tài)偏好問題,還能在興趣未改變時輔助計算偏好,獲得學(xué)習(xí)者更準(zhǔn)確的個性化學(xué)習(xí)偏好表示,建構(gòu)出計算動態(tài)興趣賦能的歷史行為的新貢獻(xiàn)度,能夠增強(qiáng)課程推薦模型的魯棒性,使推薦結(jié)果相對穩(wěn)定.實驗結(jié)果表明,本文模型相比其他方法,在MOOC數(shù)據(jù)集上獲得了一定比例的性能提升.在未來工作中將嘗試?yán)脧?qiáng)化學(xué)習(xí)、知識圖譜等技術(shù)以獲得各時刻偏好與個性化動態(tài)學(xué)習(xí)偏好的映射關(guān)系,以進(jìn)一步提升推薦性能.