李 芳, 曲豫賓, 李 龍, 李夢鰲
(1. 桂林電子科技大學(xué) 廣西可信軟件重點實驗室, 廣西 桂林 541004; 2. 江蘇工程職業(yè)技術(shù)學(xué)院 馬克思主義學(xué)院, 江蘇 南通 226001;3. 江蘇工程職業(yè)技術(shù)學(xué)院 信息工程學(xué)院, 江蘇 南通 226001; 4. 中國船舶工業(yè)系統(tǒng)工程研究院, 北京 100094)
慕課(massive open online course, MOOC)能支持線上大規(guī)模學(xué)習(xí), 因此目前已成為高等教育領(lǐng)域內(nèi)廣泛使用的教學(xué)方法之一. 針對MOOC的研究也取得了豐富成果[1-11]. 但目前單一針對MOOC評論的深度語義分析框架與評價機制尚未見文獻報道, 因此本文采用卷積神經(jīng)網(wǎng)絡(luò)對MOOC評論進行深度語義分析, 設(shè)計語義理解框架并基于該框架設(shè)計MOOC平臺評價機制. 該分析框架具有適應(yīng)性廣、 數(shù)據(jù)采集成本較低、 評價策略直觀等特點. 該面向MOOC評論的深度智能化教學(xué)評價框架與自然語言處理領(lǐng)域中的情感分析有一定的相似性. 網(wǎng)絡(luò)評論中的情感分析是將網(wǎng)絡(luò)評論內(nèi)容根據(jù)極性的不同分類為積極評論或消極評論. 情感分析是文本處理任務(wù)中的一項基本任務(wù)[12]. 借鑒文本中情感分析任務(wù)的分類標(biāo)準(zhǔn), 將面向MOOC評論的深度智能化教學(xué)評價也劃分為積極評價或消極評價. 在本文研究中, 積極評論除包含對課程支持或贊揚的評論外, 還包括對課程的一般性內(nèi)容評價. 情感分析任務(wù)中, 基于機器學(xué)習(xí)的分析技術(shù)被廣泛使用[13], 高巍等[14]采用卷積神經(jīng)網(wǎng)絡(luò)對Twitter進行情感分析, 取得了較好的效果; 李芳等[15]基于卷積神經(jīng)網(wǎng)絡(luò)設(shè)計教學(xué)評論語義理解框架, 該框架采用了基于淺層卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu).
對MOOC評論的深度語義分析除考慮采用淺層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)語義外, 在實證研究中發(fā)現(xiàn)MOOC評論數(shù)據(jù)集中存在較明顯的特征偏移現(xiàn)象, 如淺層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的訓(xùn)練數(shù)據(jù)中的數(shù)據(jù)分布與測試數(shù)據(jù)集中的數(shù)據(jù)分布有較大差異. 在圖形圖像分類領(lǐng)域, 廣泛存在著長尾效應(yīng), 即某幾種圖形圖像在訓(xùn)練數(shù)據(jù)集中有較多的實例, 而其余的大部分圖形圖像卻有較少的實例[16-17], 這是一種典型的類不平衡現(xiàn)象. 采用存在類不平衡現(xiàn)象的數(shù)據(jù)集訓(xùn)練得到的卷積神經(jīng)網(wǎng)絡(luò)在少數(shù)類上分類效果不佳[18]. 產(chǎn)生該現(xiàn)象的原因是深度卷積神經(jīng)網(wǎng)絡(luò)從訓(xùn)練數(shù)據(jù)集的多數(shù)類損失中學(xué)到了特征而對于少數(shù)類的損失未重點關(guān)注, 從而導(dǎo)致深度卷積神經(jīng)網(wǎng)絡(luò)在少數(shù)類上的分類效果較差[19-20]. 常見的處理方法包括對少數(shù)類進行過采樣[18,21]以及采用代價敏感的方式提升少數(shù)類訓(xùn)練過程中的損失值[15,20]. 但這些方法存在對少數(shù)類過擬合的現(xiàn)象[18-19,22], 而且訓(xùn)練數(shù)據(jù)集中少數(shù)類越少, 預(yù)測效果越差. 文獻[23]基于訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集的特征偏移, 提出了特征偏移補償?shù)姆椒? 用于解決類不平衡問題. 在圖形分類中, 該方法在常見的類不平衡數(shù)據(jù)集上達到了較好的分類效果, 但該方法并未考慮二分類問題中多數(shù)類與少數(shù)類之間的畸形類不平衡率問題, 可能會存在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中損失突變的問題.
本文采用歸一法對二分類中的多數(shù)類與少數(shù)類樣例的數(shù)目進行處理, 以解決損失突變的問題. 針對MOOC評論智能化評價問題, 本文采用淺層卷積神經(jīng)網(wǎng)絡(luò)對MOOC評論進行語義學(xué)習(xí), 通過歸一化的特征偏移補償函數(shù)對數(shù)據(jù)集進行訓(xùn)練, 在公開的MOOC評論數(shù)據(jù)集上進行實證驗證, 驗證結(jié)果表明, 在常見的評價指標(biāo)上, 如F1,gmean,balance,gmeasure等, 該分類方法能取得較好的分類效果.
針對MOOC評論中存在的特征偏移問題, 采用淺層卷積神經(jīng)網(wǎng)絡(luò)對評論進行語義學(xué)習(xí), 用基于歸一法的特征偏移補償函數(shù)計算訓(xùn)練數(shù)據(jù)集中的損失值, 用梯度下降法對損失函數(shù)進行優(yōu)化, 訓(xùn)練MOOC評論語義學(xué)習(xí)模型. 該深度語義學(xué)習(xí)框架的整體流程如圖1所示.
圖1 基于特征偏移補償?shù)纳疃日Z義學(xué)習(xí)框架Fig.1 Deep semantic learning framework based on compensation for feature deviation
(1)
(2)
MOOC評論通過使用詞嵌入的方式獲取分布式向量展示, 作為淺層卷積神經(jīng)網(wǎng)絡(luò)的的輸入. 詞向量采用Glove預(yù)訓(xùn)練模型進行表示[24], 這是一個基于全局詞頻統(tǒng)計的詞表征工具, 每個單詞被表示為一個實數(shù)詞向量. 單詞的語義相似性可通過歐氏距離等計算. 圖1所示的深度語義學(xué)習(xí)框架中, 詞向量的語義學(xué)習(xí)通過含有多個卷積核的淺層卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)得到. 卷積神經(jīng)網(wǎng)絡(luò)的輸出值作為特征向量分類層的輸入, 特征向量分類層是一種線性分類器wc.全連接層將深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的評論語義特征輸入到激活神經(jīng)元, 對激活神經(jīng)元做Softmax處理, 最后通過交叉信息熵?fù)p失函數(shù)計算損失值.
1.2 基于淺層卷積神經(jīng)網(wǎng)絡(luò)的MOOC評論語義學(xué)習(xí)模型
基于淺層卷積神經(jīng)網(wǎng)絡(luò)的MOOC評論語義學(xué)習(xí)模型源于TextCNN[25]模型, 該語義分類模型目前已廣泛應(yīng)用于如智能軟件工程中自引入技術(shù)債務(wù)等問題的語義學(xué)習(xí)中. 基于TextCNN的深度語義學(xué)習(xí)模型如圖2所示. 該模型由卷積層、 池化層、 全連接層等組成, 該模型中的全連接層與特征向量分類層中的全連接層共享同一層. 卷積神經(jīng)網(wǎng)絡(luò)的核心思想是使用多個卷積核獲取不同的特征表示, 在MOOC評論語義分析過程中, 采用多種不同尺寸的卷積核組成滑動窗口對分布式詞向量進行語義理解. 卷積核的尺寸為filter_size∈{1,2,3,4,5,6}. 多種尺寸的一維卷積核對詞向量進行組合篩選, 獲得不同層次的語義信息.
圖2 基于TextCNN的深度語義學(xué)習(xí)模型Fig.2 Deep semantic learning model based on TextCNN
對MOOC評論進行補全獲得句子長度為n, 通過檢索Glove預(yù)訓(xùn)練詞向量獲得分布式詞向量的輸出為n×k的矩陣, 其中k表示詞向量的輸出維度.該輸出矩陣作為卷積層的輸入值.在卷積層中, 采用一維卷積核進行局部特征學(xué)習(xí), 與圖形圖像處理領(lǐng)域中的二維卷積核不同, 一維卷積核的寬度為詞向量的維度k.多個不同的卷積核對MOOC評論分布式詞向量矩陣窗口進行滑動即可獲取多個不同的特征向量. 如filter_size=2, 則一維卷積核為2×k, 在窗口中滑動形成特征向量為w[n-2+1,1], 多個卷積核對窗口進行滑動形成當(dāng)前評論向量的特征向量集合.然后對該特征向量集合池化處理, 處理方法采用1-max池化方法, 從不同的特征向量中選取值最大的特征作為輸入特征. 不同的輸出特征拼接作為全連接層的輸入. 全連接層中的輸入向量值即為學(xué)習(xí)到的深度語義特征.
1.3.1 MOOC評論可視化分析
MOOC評論數(shù)據(jù)集存在類不平衡問題, 常見解決類不平衡問題的方法(如重采樣和代價敏感的方法)可能會導(dǎo)致在深度學(xué)習(xí)過程中少數(shù)類的過擬合現(xiàn)象[18-19]. Ye等[23]通過對圖形圖像處理中的圖像識別問題研究表明, 對于少數(shù)類, 訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集存在特征偏移問題. 而且訓(xùn)練越少的類別偏移問題越嚴(yán)重, 這種情況下加大少數(shù)類的損失補償會使過擬合更易發(fā)生. 采用t-SNE(t-distributed stochastic neighbor embedding)對MOOC評論數(shù)據(jù)集進行可視化分析.t-SNE是一種高效的針對高維數(shù)據(jù)的可視化方法, 使用非線性降維算法將高維數(shù)據(jù)降為二維或者三維數(shù)據(jù).
針對MOOC評論數(shù)據(jù)集的少數(shù)類特征偏移可視化展示如圖3所示. 通過t-SNE算法將詞嵌入后的多維分布式詞向量降維為二維向量, 并在二維平面展示. 訓(xùn)練數(shù)據(jù)集中的積極評論具有最大的數(shù)據(jù)分布, 該數(shù)據(jù)分布可以覆蓋到測試數(shù)據(jù)集中積極評論的數(shù)據(jù)分布, 積極評論在整個數(shù)據(jù)集中為多數(shù)類, 這種數(shù)據(jù)分布式符合對訓(xùn)練數(shù)據(jù)集的直觀認(rèn)識. 而訓(xùn)練數(shù)據(jù)集中消極評論的數(shù)據(jù)分布與測試數(shù)據(jù)集中的消極評論數(shù)據(jù)分布有明顯偏移, 表明在訓(xùn)練數(shù)據(jù)集中學(xué)到的少數(shù)類特征無法泛化到測試數(shù)據(jù)集中. 因此在深度語義學(xué)習(xí)過程中有必要解決存在少數(shù)類的特征偏移問題.
圖3 少數(shù)類特征偏移可視化展示Fig.3 Visual display of feature deviation for minority class
1.3.2 Class-Dependent Temperatures補償函數(shù)
選取2015年1月~2017年12月吉林市職業(yè)病防治院接收的突發(fā)性職業(yè)中毒患者86例作為研究對象,將其隨機分為研究組與對照組,各43例。其中,研究組男25例,女18例,年齡25~59歲,平均年齡(45.2±4.7)歲,中毒類型:三氯乙烯19例,二甲基甲酰胺15例,二氯乙烷9例;對照組男26例,女17例,年齡24~58歲,平均年齡(45.5±4.3)歲,中毒類型:三氯乙烯21例,二甲基甲酰胺14例,二氯乙烷8例。兩組患者的性別、年齡及中毒類型等一般資料比較,差異無統(tǒng)計學(xué)意義(P>0.05)。
基于特征偏移現(xiàn)象, Ye等[23]提出了在存在類不平衡問題的圖形圖像訓(xùn)練數(shù)據(jù)集上采用降低決策邊界的方法設(shè)計新的損失函數(shù)(Class-Dependent Temperatures補償函數(shù)), 表示為
(3)
式(3)與式(2)的不同之處在于增加了影響因子αc,αc與訓(xùn)練數(shù)據(jù)集中特定類別的數(shù)量成反比, 訓(xùn)練數(shù)據(jù)集中數(shù)量越少的類別有更大的影響因子值.影響因子αc反映了少數(shù)類在訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集中存在的特征偏移現(xiàn)象.影響因子αc的計算公式為
αc=(Nmax/Nc)γ,
(4)
其中:Nmax表示訓(xùn)練數(shù)據(jù)集中多數(shù)類的樣例數(shù)目, 在MOOC評論數(shù)據(jù)集中則表示積極評論的數(shù)目;Nc表示訓(xùn)練數(shù)據(jù)集中少數(shù)類的樣例數(shù)目, 在MOOC評論數(shù)據(jù)集中則表示消極評論的數(shù)目;γ≥0, 是一個超參數(shù), 為與文獻[23]的研究結(jié)果保持一致, 本文實驗中設(shè)定γ=0.3.如果αc=1, 則表示多數(shù)類與少數(shù)類有同樣的偏移補償效果, 式(3)退化為式(2); 如果αc>1, 則表示多數(shù)類擁有較少的偏移補償效果, 而少數(shù)類有較多的偏移補償效果.
1.3.3 基于歸一法的特征偏移補償損失函數(shù)
Class-Dependent Temperatures補償函數(shù)在存在類不平衡問題的圖形圖像分類問題上分類效果較好, 但針對MOOC評論數(shù)據(jù)集, 類不平衡率為21.67, 影響因子αc=2.51.在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中樣例要進行隨機抽樣, 則可能在抽樣過程中出現(xiàn)嚴(yán)重的類不平衡率畸變問題, 其結(jié)果會導(dǎo)致影響因子針對不同的訓(xùn)練過程出現(xiàn)較大波動, 進而導(dǎo)致?lián)p失值也存在較大波動, 因此本文設(shè)計一種基于歸一法的特征偏移補償損失函數(shù).歸一法的思想是不同類別的影響因子應(yīng)在某一個固定區(qū)間內(nèi)變化, 不會出現(xiàn)較大波動.針對影響因子αc設(shè)計的歸一法影響因子為
(5)
(6)
本文實驗在基于Intel Corei7-10700K的CPU與64 GB內(nèi)存的工作站上完成, 淺層卷積神經(jīng)網(wǎng)絡(luò)在NVIDIA GeForce RTX 2070 GPU上訓(xùn)練完成, 操作系統(tǒng)采用Windows 10專業(yè)版. 實驗中采用的深度神經(jīng)網(wǎng)絡(luò)庫為Pytorch 1.9穩(wěn)定版本.
實驗采用的數(shù)據(jù)集來源于公開的數(shù)據(jù)集, 該數(shù)據(jù)集用于針對本科學(xué)生的教學(xué)研究(https://www.kaggle.com/septa97/100k-courseras-course-reviews-dataset), 數(shù)據(jù)集中存在的主要問題是類不平衡問題, 其抓取自Coursera網(wǎng)站, 并根據(jù)他們的評分預(yù)先標(biāo)記. 對于5星評級, 該評論被標(biāo)記為非常積極, 4星為積極, 3星為中性, 2星為負(fù)面, 1星為非常差. 原始數(shù)據(jù)集中有2個數(shù)據(jù)文件, 分別為review.tsv和reviewbycourse.tsv. reviews.tsv文件沒有課程分組, 只有課程評論及其相應(yīng)的標(biāo)簽. 對于reviewbycourse.tsv, 按CourseId列分組. 本文實驗重點研究不同MOOC課程評論的分類問題, 因此未使用涉及課程編號的數(shù)據(jù)集reviewbycourse.tsv. reviews.tsv文件中共有3個字段, Id字段表示評論的唯一標(biāo)識符, Review字段表示評論的內(nèi)容, Label字段表示相應(yīng)課程的評分. 將該評論的分類問題簡化為二分類問題, 對數(shù)據(jù)集進行預(yù)處理. 對于評分為3星以上(包括3星)的評論重新標(biāo)記為積極評論, 對應(yīng)標(biāo)記為0; 對于評分為3星以下的評論重新標(biāo)記為消極評論, 對應(yīng)標(biāo)記為1. Coursera學(xué)習(xí)評論數(shù)據(jù)集的信息列于表1.
表1 數(shù)據(jù)集信息
實驗采用Glove預(yù)訓(xùn)練模型獲取MOOC評論的分布式詞向量, 每個詞向量的維度設(shè)為300, 每條評論的長度設(shè)為 20. 超過特定長度的句子做截斷處理, 對不滿足長度的句子進行補零操作, 數(shù)據(jù)字典大小為20 000. 卷積神經(jīng)網(wǎng)絡(luò)的模型參數(shù)設(shè)置中卷積核的尺寸為filter_size∈{1,2,3,4,5,6}, 每種卷積核的數(shù)量為128個, 其他超參數(shù)采用默認(rèn)超參數(shù).
實驗中訓(xùn)練數(shù)據(jù)集與驗證數(shù)據(jù)集、 測試數(shù)據(jù)集的比例為8∶1∶1, 重復(fù)訓(xùn)練次數(shù)為10次, 每次都對數(shù)據(jù)集進行隨機分層抽樣, 保持?jǐn)?shù)據(jù)分布的一致性. 驗證過程中, 采用早停法終止神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程防止出現(xiàn)過擬合. 基于t-SNE的可視化展示采用sklearn.manifold模塊進行非線性降維, 參數(shù)采用默認(rèn)值.
針對類不平衡數(shù)據(jù)集的常見評價指標(biāo)包括F1,gmean,balance,gmeasure等. 針對MOOC評論數(shù)據(jù)集的混淆矩陣如圖4所示, 其中TP(true positive)表示消極評論被正確預(yù)測為消極評論, FN(false negative)表示消極評論被錯誤預(yù)測為積極評論, FP(false positive)表示積極評論被錯誤預(yù)測為消極評論, TN(true negative)表示積極評論被正確預(yù)測為積極評論.
圖4 混淆矩陣Fig.4 Confusion matrix
基于混淆矩陣, 定義精確度(precision)和召回率(recall)分別為
(7)
F1和gmean指標(biāo)分別定義為
(8)
FPR定義為
(9)
balance和gmeasure指標(biāo)分別定義為
(10)
實驗采用3種基線損失函數(shù)與本文補償損失函數(shù)進行對比, 分別為常規(guī)交叉熵?fù)p失函數(shù)、 基于不同類別權(quán)重的交叉熵?fù)p失函數(shù)、 Class-Dependent Temperatures補償函數(shù).
1) 如式(2)所示, 采用交叉信息熵作為損失函數(shù), 未考慮類不平衡問題, 該函數(shù)記為normal;
2) 采用交叉信息熵作為損失函數(shù), 將不同類別的評論數(shù)量作為影響權(quán)重引入損失函數(shù), 該函數(shù)記為reweight;
3) 如式(3)所示, 采用Class-Dependent Temperatures補償函數(shù), 該函數(shù)記為CDT;
4) 如式(6)所示, 基于Class-Dependent Temperatures補償函數(shù), 采用歸一法設(shè)計面向特征偏移補償?shù)膿p失函數(shù), 該函數(shù)記為FDC.
在MOOC評論數(shù)據(jù)集上重復(fù)執(zhí)行10次實驗, 每次實驗中采用分層抽樣的80%數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集, 10%的數(shù)據(jù)作為驗證數(shù)據(jù)集, 剩余10%的數(shù)據(jù)作為測試數(shù)據(jù)集獲取模型的泛化性能. 采用的性能指標(biāo)包括F1,gmean,balance,gmeasure等, 在不同性能指標(biāo)上的結(jié)果如圖5~圖8所示. 由圖5~圖8可見, FDC在多個評價指標(biāo)上都獲得了較大的性能提升. FDC在F1指標(biāo)上從中位數(shù)計算比基類損失函數(shù)獲取了最多15.39%的性能提升, FDC在gmean指標(biāo)上從中位數(shù)計算比基類損失函數(shù)獲取了最多7.72%的性能提升, FDC在balance指標(biāo)上從中位數(shù)計算比基類損失函數(shù)獲取了最多6.28%的性能提升, FDC在gmeasure指標(biāo)上從中位數(shù)計算比基類損失函數(shù)獲取了最多15.40%的性能提升,F1指標(biāo)與gmeasure指標(biāo)都獲得了較大的性能提升. 并且FDC與其他損失函數(shù)相比, 各性能指標(biāo)值的中位數(shù)都接近最大值, 表明采用該種損失函數(shù)有較穩(wěn)定的性能提升. 此外, 采用CDT損失函數(shù)的各性能指標(biāo)值從中位數(shù)上看都處于性能第二佳的位置, 表明采用這種特征偏移的補償損失函數(shù)可潛在解決類不平衡問題. 采用reweight損失函數(shù), 其性能指標(biāo)表現(xiàn)不佳, 表明采用這種損失函數(shù)無法有效解決特征偏移問題. 采用normal損失函數(shù)在幾個性能指標(biāo)值上的中位數(shù)偏低, 表明此時特征偏移帶來的類別不平衡問題影響到了分類函數(shù)的分類性能.
圖5 采用不同損失函數(shù)的模型F1指標(biāo)對比結(jié)果Fig.5 Comparison results of F1 indexes of models with different loss functions
圖6 采用不同損失函數(shù)的模型gmean指標(biāo)對比結(jié)果Fig.6 Comparison results of gmean indexes of models with different loss functions
圖7 采用不同損失函數(shù)的模型balance指標(biāo)對比結(jié)果Fig.7 Comparison results of balance indexes of models with different loss functions
圖8 采用不同損失函數(shù)的模型gmeasure指標(biāo)對比結(jié)果Fig.8 Comparison results of gmeasure indexes of models with different loss functions
綜上所述, 針對MOOC評論數(shù)據(jù)集中存在的特征偏移問題, 本文設(shè)計了一種基于歸一法的特征偏移補償損失函數(shù). 通過與其他常見的損失函數(shù)在F1,gmean,balance,gmeasure等評價指標(biāo)上進行性能對比, 結(jié)果表明, 基于歸一法的特征偏移補償損失函數(shù)在gmeasure指標(biāo)上從中位數(shù)計算比基類損失函數(shù)得到15.40%的性能提升, 并且采用該損失函數(shù)的分類模型穩(wěn)定性較強.