李 芳, 曲豫賓, 李 龍, 李夢鰲
(1. 桂林電子科技大學 廣西可信軟件重點實驗室, 廣西 桂林 541004; 2. 江蘇工程職業技術學院 馬克思主義學院, 江蘇 南通 226001;3. 江蘇工程職業技術學院 信息工程學院, 江蘇 南通 226001; 4. 中國船舶工業系統工程研究院, 北京 100094)
慕課(massive open online course, MOOC)能支持線上大規模學習, 因此目前已成為高等教育領域內廣泛使用的教學方法之一. 針對MOOC的研究也取得了豐富成果[1-11]. 但目前單一針對MOOC評論的深度語義分析框架與評價機制尚未見文獻報道, 因此本文采用卷積神經網絡對MOOC評論進行深度語義分析, 設計語義理解框架并基于該框架設計MOOC平臺評價機制. 該分析框架具有適應性廣、 數據采集成本較低、 評價策略直觀等特點. 該面向MOOC評論的深度智能化教學評價框架與自然語言處理領域中的情感分析有一定的相似性. 網絡評論中的情感分析是將網絡評論內容根據極性的不同分類為積極評論或消極評論. 情感分析是文本處理任務中的一項基本任務[12]. 借鑒文本中情感分析任務的分類標準, 將面向MOOC評論的深度智能化教學評價也劃分為積極評價或消極評價. 在本文研究中, 積極評論除包含對課程支持或贊揚的評論外, 還包括對課程的一般性內容評價. 情感分析任務中, 基于機器學習的分析技術被廣泛使用[13], 高巍等[14]采用卷積神經網絡對Twitter進行情感分析, 取得了較好的效果; 李芳等[15]基于卷積神經網絡設計教學評論語義理解框架, 該框架采用了基于淺層卷積神經網絡的結構.
對MOOC評論的深度語義分析除考慮采用淺層神經網絡學習語義外, 在實證研究中發現MOOC評論數據集中存在較明顯的特征偏移現象, 如淺層神經網絡學習到的訓練數據中的數據分布與測試數據集中的數據分布有較大差異. 在圖形圖像分類領域, 廣泛存在著長尾效應, 即某幾種圖形圖像在訓練數據集中有較多的實例, 而其余的大部分圖形圖像卻有較少的實例[16-17], 這是一種典型的類不平衡現象. 采用存在類不平衡現象的數據集訓練得到的卷積神經網絡在少數類上分類效果不佳[18]. 產生該現象的原因是深度卷積神經網絡從訓練數據集的多數類損失中學到了特征而對于少數類的損失未重點關注, 從而導致深度卷積神經網絡在少數類上的分類效果較差[19-20]. 常見的處理方法包括對少數類進行過采樣[18,21]以及采用代價敏感的方式提升少數類訓練過程中的損失值[15,20]. 但這些方法存在對少數類過擬合的現象[18-19,22], 而且訓練數據集中少數類越少, 預測效果越差. 文獻[23]基于訓練數據集與測試數據集的特征偏移, 提出了特征偏移補償的方法, 用于解決類不平衡問題. 在圖形分類中, 該方法在常見的類不平衡數據集上達到了較好的分類效果, 但該方法并未考慮二分類問題中多數類與少數類之間的畸形類不平衡率問題, 可能會存在深度神經網絡訓練過程中損失突變的問題.
本文采用歸一法對二分類中的多數類與少數類樣例的數目進行處理, 以解決損失突變的問題. 針對MOOC評論智能化評價問題, 本文采用淺層卷積神經網絡對MOOC評論進行語義學習, 通過歸一化的特征偏移補償函數對數據集進行訓練, 在公開的MOOC評論數據集上進行實證驗證, 驗證結果表明, 在常見的評價指標上, 如F1,gmean,balance,gmeasure等, 該分類方法能取得較好的分類效果.
針對MOOC評論中存在的特征偏移問題, 采用淺層卷積神經網絡對評論進行語義學習, 用基于歸一法的特征偏移補償函數計算訓練數據集中的損失值, 用梯度下降法對損失函數進行優化, 訓練MOOC評論語義學習模型. 該深度語義學習框架的整體流程如圖1所示.

圖1 基于特征偏移補償的深度語義學習框架Fig.1 Deep semantic learning framework based on compensation for feature deviation

(1)


(2)
MOOC評論通過使用詞嵌入的方式獲取分布式向量展示, 作為淺層卷積神經網絡的的輸入. 詞向量采用Glove預訓練模型進行表示[24], 這是一個基于全局詞頻統計的詞表征工具, 每個單詞被表示為一個實數詞向量. 單詞的語義相似性可通過歐氏距離等計算. 圖1所示的深度語義學習框架中, 詞向量的語義學習通過含有多個卷積核的淺層卷積神經網絡學習得到. 卷積神經網絡的輸出值作為特征向量分類層的輸入, 特征向量分類層是一種線性分類器wc.全連接層將深度神經網絡學習到的評論語義特征輸入到激活神經元, 對激活神經元做Softmax處理, 最后通過交叉信息熵損失函數計算損失值.
1.2 基于淺層卷積神經網絡的MOOC評論語義學習模型
基于淺層卷積神經網絡的MOOC評論語義學習模型源于TextCNN[25]模型, 該語義分類模型目前已廣泛應用于如智能軟件工程中自引入技術債務等問題的語義學習中. 基于TextCNN的深度語義學習模型如圖2所示. 該模型由卷積層、 池化層、 全連接層等組成, 該模型中的全連接層與特征向量分類層中的全連接層共享同一層. 卷積神經網絡的核心思想是使用多個卷積核獲取不同的特征表示, 在MOOC評論語義分析過程中, 采用多種不同尺寸的卷積核組成滑動窗口對分布式詞向量進行語義理解. 卷積核的尺寸為filter_size∈{1,2,3,4,5,6}. 多種尺寸的一維卷積核對詞向量進行組合篩選, 獲得不同層次的語義信息.

圖2 基于TextCNN的深度語義學習模型Fig.2 Deep semantic learning model based on TextCNN
對MOOC評論進行補全獲得句子長度為n, 通過檢索Glove預訓練詞向量獲得分布式詞向量的輸出為n×k的矩陣, 其中k表示詞向量的輸出維度.該輸出矩陣作為卷積層的輸入值.在卷積層中, 采用一維卷積核進行局部特征學習, 與圖形圖像處理領域中的二維卷積核不同, 一維卷積核的寬度為詞向量的維度k.多個不同的卷積核對MOOC評論分布式詞向量矩陣窗口進行滑動即可獲取多個不同的特征向量. 如filter_size=2, 則一維卷積核為2×k, 在窗口中滑動形成特征向量為w[n-2+1,1], 多個卷積核對窗口進行滑動形成當前評論向量的特征向量集合.然后對該特征向量集合池化處理, 處理方法采用1-max池化方法, 從不同的特征向量中選取值最大的特征作為輸入特征. 不同的輸出特征拼接作為全連接層的輸入. 全連接層中的輸入向量值即為學習到的深度語義特征.
1.3.1 MOOC評論可視化分析
MOOC評論數據集存在類不平衡問題, 常見解決類不平衡問題的方法(如重采樣和代價敏感的方法)可能會導致在深度學習過程中少數類的過擬合現象[18-19]. Ye等[23]通過對圖形圖像處理中的圖像識別問題研究表明, 對于少數類, 訓練數據集與測試數據集存在特征偏移問題. 而且訓練越少的類別偏移問題越嚴重, 這種情況下加大少數類的損失補償會使過擬合更易發生. 采用t-SNE(t-distributed stochastic neighbor embedding)對MOOC評論數據集進行可視化分析.t-SNE是一種高效的針對高維數據的可視化方法, 使用非線性降維算法將高維數據降為二維或者三維數據.
針對MOOC評論數據集的少數類特征偏移可視化展示如圖3所示. 通過t-SNE算法將詞嵌入后的多維分布式詞向量降維為二維向量, 并在二維平面展示. 訓練數據集中的積極評論具有最大的數據分布, 該數據分布可以覆蓋到測試數據集中積極評論的數據分布, 積極評論在整個數據集中為多數類, 這種數據分布式符合對訓練數據集的直觀認識. 而訓練數據集中消極評論的數據分布與測試數據集中的消極評論數據分布有明顯偏移, 表明在訓練數據集中學到的少數類特征無法泛化到測試數據集中. 因此在深度語義學習過程中有必要解決存在少數類的特征偏移問題.

圖3 少數類特征偏移可視化展示Fig.3 Visual display of feature deviation for minority class
1.3.2 Class-Dependent Temperatures補償函數
選取2015年1月~2017年12月吉林市職業病防治院接收的突發性職業中毒患者86例作為研究對象,將其隨機分為研究組與對照組,各43例。其中,研究組男25例,女18例,年齡25~59歲,平均年齡(45.2±4.7)歲,中毒類型:三氯乙烯19例,二甲基甲酰胺15例,二氯乙烷9例;對照組男26例,女17例,年齡24~58歲,平均年齡(45.5±4.3)歲,中毒類型:三氯乙烯21例,二甲基甲酰胺14例,二氯乙烷8例。兩組患者的性別、年齡及中毒類型等一般資料比較,差異無統計學意義(P>0.05)。
基于特征偏移現象, Ye等[23]提出了在存在類不平衡問題的圖形圖像訓練數據集上采用降低決策邊界的方法設計新的損失函數(Class-Dependent Temperatures補償函數), 表示為

(3)
式(3)與式(2)的不同之處在于增加了影響因子αc,αc與訓練數據集中特定類別的數量成反比, 訓練數據集中數量越少的類別有更大的影響因子值.影響因子αc反映了少數類在訓練數據集與測試數據集中存在的特征偏移現象.影響因子αc的計算公式為
αc=(Nmax/Nc)γ,
(4)
其中:Nmax表示訓練數據集中多數類的樣例數目, 在MOOC評論數據集中則表示積極評論的數目;Nc表示訓練數據集中少數類的樣例數目, 在MOOC評論數據集中則表示消極評論的數目;γ≥0, 是一個超參數, 為與文獻[23]的研究結果保持一致, 本文實驗中設定γ=0.3.如果αc=1, 則表示多數類與少數類有同樣的偏移補償效果, 式(3)退化為式(2); 如果αc>1, 則表示多數類擁有較少的偏移補償效果, 而少數類有較多的偏移補償效果.
1.3.3 基于歸一法的特征偏移補償損失函數
Class-Dependent Temperatures補償函數在存在類不平衡問題的圖形圖像分類問題上分類效果較好, 但針對MOOC評論數據集, 類不平衡率為21.67, 影響因子αc=2.51.在神經網絡訓練過程中樣例要進行隨機抽樣, 則可能在抽樣過程中出現嚴重的類不平衡率畸變問題, 其結果會導致影響因子針對不同的訓練過程出現較大波動, 進而導致損失值也存在較大波動, 因此本文設計一種基于歸一法的特征偏移補償損失函數.歸一法的思想是不同類別的影響因子應在某一個固定區間內變化, 不會出現較大波動.針對影響因子αc設計的歸一法影響因子為

(5)


(6)
本文實驗在基于Intel Corei7-10700K的CPU與64 GB內存的工作站上完成, 淺層卷積神經網絡在NVIDIA GeForce RTX 2070 GPU上訓練完成, 操作系統采用Windows 10專業版. 實驗中采用的深度神經網絡庫為Pytorch 1.9穩定版本.
實驗采用的數據集來源于公開的數據集, 該數據集用于針對本科學生的教學研究(https://www.kaggle.com/septa97/100k-courseras-course-reviews-dataset), 數據集中存在的主要問題是類不平衡問題, 其抓取自Coursera網站, 并根據他們的評分預先標記. 對于5星評級, 該評論被標記為非常積極, 4星為積極, 3星為中性, 2星為負面, 1星為非常差. 原始數據集中有2個數據文件, 分別為review.tsv和reviewbycourse.tsv. reviews.tsv文件沒有課程分組, 只有課程評論及其相應的標簽. 對于reviewbycourse.tsv, 按CourseId列分組. 本文實驗重點研究不同MOOC課程評論的分類問題, 因此未使用涉及課程編號的數據集reviewbycourse.tsv. reviews.tsv文件中共有3個字段, Id字段表示評論的唯一標識符, Review字段表示評論的內容, Label字段表示相應課程的評分. 將該評論的分類問題簡化為二分類問題, 對數據集進行預處理. 對于評分為3星以上(包括3星)的評論重新標記為積極評論, 對應標記為0; 對于評分為3星以下的評論重新標記為消極評論, 對應標記為1. Coursera學習評論數據集的信息列于表1.

表1 數據集信息
實驗采用Glove預訓練模型獲取MOOC評論的分布式詞向量, 每個詞向量的維度設為300, 每條評論的長度設為 20. 超過特定長度的句子做截斷處理, 對不滿足長度的句子進行補零操作, 數據字典大小為20 000. 卷積神經網絡的模型參數設置中卷積核的尺寸為filter_size∈{1,2,3,4,5,6}, 每種卷積核的數量為128個, 其他超參數采用默認超參數.
實驗中訓練數據集與驗證數據集、 測試數據集的比例為8∶1∶1, 重復訓練次數為10次, 每次都對數據集進行隨機分層抽樣, 保持數據分布的一致性. 驗證過程中, 采用早停法終止神經網絡訓練過程防止出現過擬合. 基于t-SNE的可視化展示采用sklearn.manifold模塊進行非線性降維, 參數采用默認值.
針對類不平衡數據集的常見評價指標包括F1,gmean,balance,gmeasure等. 針對MOOC評論數據集的混淆矩陣如圖4所示, 其中TP(true positive)表示消極評論被正確預測為消極評論, FN(false negative)表示消極評論被錯誤預測為積極評論, FP(false positive)表示積極評論被錯誤預測為消極評論, TN(true negative)表示積極評論被正確預測為積極評論.

圖4 混淆矩陣Fig.4 Confusion matrix
基于混淆矩陣, 定義精確度(precision)和召回率(recall)分別為

(7)
F1和gmean指標分別定義為

(8)
FPR定義為

(9)
balance和gmeasure指標分別定義為

(10)
實驗采用3種基線損失函數與本文補償損失函數進行對比, 分別為常規交叉熵損失函數、 基于不同類別權重的交叉熵損失函數、 Class-Dependent Temperatures補償函數.
1) 如式(2)所示, 采用交叉信息熵作為損失函數, 未考慮類不平衡問題, 該函數記為normal;
2) 采用交叉信息熵作為損失函數, 將不同類別的評論數量作為影響權重引入損失函數, 該函數記為reweight;
3) 如式(3)所示, 采用Class-Dependent Temperatures補償函數, 該函數記為CDT;
4) 如式(6)所示, 基于Class-Dependent Temperatures補償函數, 采用歸一法設計面向特征偏移補償的損失函數, 該函數記為FDC.
在MOOC評論數據集上重復執行10次實驗, 每次實驗中采用分層抽樣的80%數據作為訓練數據集, 10%的數據作為驗證數據集, 剩余10%的數據作為測試數據集獲取模型的泛化性能. 采用的性能指標包括F1,gmean,balance,gmeasure等, 在不同性能指標上的結果如圖5~圖8所示. 由圖5~圖8可見, FDC在多個評價指標上都獲得了較大的性能提升. FDC在F1指標上從中位數計算比基類損失函數獲取了最多15.39%的性能提升, FDC在gmean指標上從中位數計算比基類損失函數獲取了最多7.72%的性能提升, FDC在balance指標上從中位數計算比基類損失函數獲取了最多6.28%的性能提升, FDC在gmeasure指標上從中位數計算比基類損失函數獲取了最多15.40%的性能提升,F1指標與gmeasure指標都獲得了較大的性能提升. 并且FDC與其他損失函數相比, 各性能指標值的中位數都接近最大值, 表明采用該種損失函數有較穩定的性能提升. 此外, 采用CDT損失函數的各性能指標值從中位數上看都處于性能第二佳的位置, 表明采用這種特征偏移的補償損失函數可潛在解決類不平衡問題. 采用reweight損失函數, 其性能指標表現不佳, 表明采用這種損失函數無法有效解決特征偏移問題. 采用normal損失函數在幾個性能指標值上的中位數偏低, 表明此時特征偏移帶來的類別不平衡問題影響到了分類函數的分類性能.

圖5 采用不同損失函數的模型F1指標對比結果Fig.5 Comparison results of F1 indexes of models with different loss functions

圖6 采用不同損失函數的模型gmean指標對比結果Fig.6 Comparison results of gmean indexes of models with different loss functions

圖7 采用不同損失函數的模型balance指標對比結果Fig.7 Comparison results of balance indexes of models with different loss functions

圖8 采用不同損失函數的模型gmeasure指標對比結果Fig.8 Comparison results of gmeasure indexes of models with different loss functions
綜上所述, 針對MOOC評論數據集中存在的特征偏移問題, 本文設計了一種基于歸一法的特征偏移補償損失函數. 通過與其他常見的損失函數在F1,gmean,balance,gmeasure等評價指標上進行性能對比, 結果表明, 基于歸一法的特征偏移補償損失函數在gmeasure指標上從中位數計算比基類損失函數得到15.40%的性能提升, 并且采用該損失函數的分類模型穩定性較強.