潘 芳 張會兵 董俊超
1(廣西師范大學職業技術師范學院 廣西 桂林 541004) 2(桂林電子科技大學廣西可信軟件重點實驗室 廣西 桂林 541004)
由于在線課程開放、方便和優質的特點,使得在線學習者數量快速增加[1]。數量龐大、背景各異、層次多樣的學習者對在線課程的管理提出了新的挑戰:實時掌握學習動因、學情/狀態變化以更好地提供個性化教育服務。為適應這一趨勢,在線學習平臺會提供評論、論壇等社區功能,方便學習者、教師和平臺管理方之間的交流互動。在線交互過程中會產生大量的交互文本等非結構化數據,對評論文本進行情感分析可以有效獲取學習者的情感態度、學習體驗等,從而理解學習者的需求變化和“學習痛點”,為個性化服務提供參考。
現有的在線課程評論情感分析主要有情感詞典、機器學習和深度學習三類方法[1-3]。基于情感詞典的方法主要是依據人類先驗知識構建情感詞典,將課程評論分詞后與情感詞典比對計算實現對課程評論的情感分析。該類方法受情感詞典質量的影響較大,不適用于在線課程海量評論信息情感分析的需要[4]。基于機器學習的方法是將從評論文本中抽取的特征值傳入相應模型中進行情感分析[5],此類方法的性能對特征工程依賴較大。隨著在線教育平臺中課程評論數據規模的快速增長,特征工程需要花費的時間、人力急劇增加使得該類方法缺點日益凸顯。近年來,對評論文本進行特征自動抽取的深度學習情感分析模型(如CNN、RNN)在文本情感分類研究中得到了廣泛應用。然而,此類模型中文本嵌入層依賴的one-hot編碼或詞向量編碼并不適用于屬性眾多、語義豐富、句型復雜的課程評論文本。最近,Google提出的BERT模型使用了一種新穎的“MASK”詞向量訓練方法,不僅可以根據詞語在上下文中的含義對其進行編碼,而且可以有效捕捉評論文本中分句間的關系,能較好地適應海量課程評論數據中情感分析的需要,但是由于課程評論語料規模與BERT預訓練模型采用的維基百科語料規模差距甚大,進行課程評論情感分類下游任務時會發生嚴重的過擬合問題。
為此,提出一種激活-池化增強的BERT(RP-BERT)課程評論情感分析模型。該模型采用深度學習方法從課程評論文本中自動抽取特征,解決了傳統課程評論情感分析模型中詞典構建和特征工程需要大量人工參與的問題。從維基百科大規模語料中構建BERT預訓練模型,既能抽取課程評論句內詞語的關鍵語義信息,又能對課程評論文本句子的邏輯關系進行學習。對直接應用BERT模型在課程評論情感分析任務中存在過擬合的問題,增加激活函數層和最大-平均池化層進行改進。突破了以往基于神經網絡模型進行課程評論情感分析中過多依賴數據規模和數據標注質量的局限,為課程評論情感分析提供新方法,以期為學生課程選擇、教師授課內容優化和平臺服務提升等方面提供數據支持。
在線課程評論的情感分析吸引了越來越多的研究者的關注。文獻[6]使用KNN算法對本科生的課程評論文本進行分析以獲得學生的情緒和觀點。吳林靜等[7]在正負情感詞加權的方法的基礎上通過計算正負情感詞的數量差來計算課程評價評論句子的情感傾向。薛耀鋒等[8]結合情感交互和情感計算理論,提出了面向在線課程的多模態情感分析模型,并基于此模型實現了在線學習過程中的情感測量。黃昌勤等[9]針對學習云空間中的“情感缺失”問題,提出一種基于LSTM神經網絡的交互文本動態實時情感分析模型,并且采用貝葉斯網絡進行情感歸因分析,建立情感驅動的個性化學習推薦策略。文獻[10]針對不同課程評論文本蘊含的情感偏差,提出基于遷移學習的CNN-LSTM模型自動識別一個帖子是否表達了困惑,判斷其緊迫性并對情緒極性進行分類。該模型同時考慮每個單詞的特征和長期時間語義關系,顯著提高了情感分析的有效性。Dessì等[11]首先構建適合課程上下文的詞嵌入,通過改進雙向LSTM情感分析模型中嵌入層編碼方式提升情感分析的性能。
上述模型沒有充分考慮課程評論中上下文信息與分句間關系對情感的影響,而BERT模型中基于Transformer的雙向編碼器依據海量無標注語料的上下文對詞進行編碼表征,可以獲得文本中豐富的語義信息,預測兩個分句間的關聯性,只需標注少量課程評論的情感標簽即可實現評論情感分析任務[12-15]。文獻[13]提出一種基于BERT模型將評論轉化為大量知識來回答用戶問題的微調方法,該方法可應用在基于屬性的情緒分析和情緒分類等任務上。Pei等[16]提出DA-BERT模型來解決傳統方法在社交媒體細粒度、短文本情感分類中的計算復雜度和依賴性問題。Yang等[17]將BERT模型用在對話文本的情感檢測上,并實現了對話語境信息的分析。BERT除了單獨用在情感分類任務外,還可與LSTM、Bi-GRU等傳統神經網絡模型組合應用在情感分類任務中的情感屬性標注和情感極性預測任務中[18-19]。然而,經實驗發現直接應用原始BERT模型進行課程評論情感分類任務時會發生嚴重的過擬合問題。
適用于在線課程評論情感分析的RP-BERT模型如圖1所示,其中:E為輸入表征層中每個子層(包括位置、分段、令牌3個子層)所對應的嵌入表示;C為BERT模型中表示開始的特殊令牌[CLS];Tok為BERT模型中的令牌;T為語義抽取層輸出的令牌;Trm為Transformer編碼器結構,語義抽取層包含多個Transformer。輸入表征層對預處理完成后的原始課程評論進行編碼;語義提取層對輸入表征層輸出的評論編碼進行語義提取,并將其輸入到激活函數層進行非線性映射;池化層進一步縮減激活函數層的網絡規模,提取關鍵特征,輸出結果到情感分類層;最后,通過情感分類層對課程評論情感極性進行分類表達。通過在原始BERT模型中新增Leaky ReLU激活函數層、最大-平均池化層和情感極性二分類層,改進原始BERT模型在課程評論情感分析任務中存在的泛化能力不佳和過擬合的問題。

圖1 在線課程評論情緒分析模型框架
RP-BERT模型采用與上下文有關的句向量級編碼的BERT預訓練模型,能夠準確量化課程評論短文本內同一詞在不同語境中的含義,同時能夠對課程長句評論文本中的分句間關系進行編碼,具體流程如下:
(1) 對原始評論數據做預處理:去除重復灌水評論以及與情感表達無關的鏈接、代碼等類型數據;對課程評論中含糊不清的情感字符、數字和英文詞匯等使用語義相同的中文詞匯進行替換。
(2) 使用WordPiece嵌入模型,按照雙字節編碼方式對單個漢字進行編碼,使其更加適用于詞匯數量眾多、含義豐富、結構復雜的在線課程評論文本,相比于傳統詞向量編碼方式大大縮減了評論文本的編碼規模和復雜度[20]。
(3) 按照評論文本語句結構的不同,將其分為短句和長句兩種類型。針對短句評論文本采用遮蔽LM方法構建語言模型,通過隨機遮蓋或者替換評論文本中15%的任意漢字,讓模型通過理解上下文的內容去預測遮蓋或者替換的部分,替換方式包括:80%幾率替換為[MASK],如老師講得非常好—>老師講得非常[MASK];10%的幾率被替換成為另外一個令牌, 如老師講得非常好—>老師講得非常美;10%的幾率保持原本內容不變,如老師講得非常好—>老師講得非常好。針對長句評論文本,在評論文本語義邏輯處添加一些判斷上下句起止位置的特殊令牌[SEP],如圖2輸入所示。按照1∶1的比例將上下文相關和上下文無關的評論文本作為輸入表征層輸入,以便模型理解課程評論文本句子間關系。例如:
輸入=[CLS]老師[MASK]講得好[SEP]我[MASK]愛聽[SEP]
標簽=有下文關系
輸入=[CLS]老師[MASK]講得好[SEP]吃[MASK]晚飯[SEP]
標簽=無下文關系

圖2 輸入表征層
輸入表征層除了輸入和令牌嵌入外,還要隨機初始化一個可訓練的分段嵌入。通過分段嵌入信息使得模型能夠判斷上下句的起止位置以分開上下句,如表1所示。輸入表征層最終輸出為令牌嵌入、分段嵌入、位置嵌入的總和。

表1 分段嵌入示例
圖3中的語義提取層是以Transformer編碼器為基礎單元組成的多層雙向解碼器。Transformer編碼器包括字向量與位置編碼、注意力機制、殘差連接與層標準化和前饋四部分[21],如圖3所示。

圖3 Transformer編碼器結構
(1) 字向量與位置編碼。位置編碼提供課程評論文本中每個字的位置信息給Transformer用來識別字在評論文本中的依賴關系和時序特性。
X=E(X)+PX∈Rbatch-size×seq.len×embed.dim
(1)
P(pos,2i)=sin(pos/1 0002i/dmodel)
(2)
P(pos,2i+1)=sin(pos/1 0002i/dmodel)
(3)
式中:E(·)為字對應的嵌入表示;P為位置編碼;batch-size為輸入課程評論文本數;seq.len為每條課程評論文本的長度;embed.dim為課程評論文本中每個字的嵌入維度;pos為課程評論文本中字的位置;i為字對應的向量維度;dmodel為特定位置向量維度。
(2) 注意力機制。注意力機制保證了每條評論文本中的每個字向量都含有該條課程評論文本中所有字向量的信息。
(4)
式中:Linear(·)表示線性映射;X為課程評論文本向量;WQ、WK、WV為權重。
Xattention=SelfAttention(Q,K,V)=
(5)

(3) 層標準化與殘差連接。層標準化歸一化神經網絡中的隱藏層為標準正態分布,從而加快模型訓練和收斂的速度:
(6)
(7)
(8)

殘差連接可以解決梯度消失和網絡退化問題,如式(9)所示。
X=Xembedding+attention(Q,K,V)LayerNorm(X+subLayer(X))
(9)
式中:LayerNorm(·)為子層的輸出;subLayer(·)為子層本身實現的函數;Xembedding為隱藏層輸出;attention(·)表示計算注意力。
(4) 前饋。前饋由兩層線性映射組成,并用ReLU激活函數激活,輸出課程評論文本經過輸入編碼層和語義提取層處理完成后的隱藏序列,計算公式如下:
Xhidden=ReLU(Linear(Linear(X)))
(10)
其輸出的隱藏層即為課程評論文本的數學表達,其中隱藏層的任一隱藏單元經過Transformer編碼器中的注意力機制之后,均含有評論文本中的所有成分的信息。
在原始BERT模型第一個令牌[CLS]的最終隱藏狀態后新增激活函數層和池化層,以逐步解決課程評論情感分析任務中存在的過擬合問題。激活函數層選用Leaky ReLU函數進行非線性映射,增強原始BERT模型評論文本復雜數據類型的學習能力,提高模型收斂速度[22]。然而,由于BERT模型中預處理模型數據規模極大,模型微調采用的含情感標注信息的課程評論數據與之相差甚大,增加激活函數層后仍然存在過擬合問題。因此,在激活函數層后繼續增加池化層,縮減網絡規模,融合輸出特征,增強特征魯棒性,進一步解決模型過擬合問題。
池化層采用如圖4所示的最大-平均池化方法[23]。最大-平均池化沿著評論文本長度和嵌入維度分別求均值和最大值,然后將均值和最大值級聯為一條向量,實現了隱藏序列到向量的轉換,具體公式如下:
max_pooled=max(Xhidden,dimension=
seq_len)∈Rbatch_size×embedding_dim
(11)
mean_pooled=mean(Xhidden,dimension=seq_len)∈
Rbatch_size×embedding_dim
(12)
max_mean_pooled=concatenate(max_pooled,mean_pooled,dimension=
embedding_dim)∈Rbatch_size×embedding_dim×2
(13)
式中:max_pooled、mean_pooled、max_mean_pooled分別表示最大池化、平均池化、最大-平均池化;Xhidden為隱藏序列;seq_len為課程評論文本長度;dimension為向量維度;concatenate表示向量連接;embedding_dim為嵌入維度;batch_size為課程評論文本數目。

圖4 最大-平均池化層
構建情感分類器來獲取課程評論文本的語義表示Xhidden對于情感標簽的得分向量并輸出最終情感標簽。利用Sigmoid函數對池化層的輸出max_mean_pooled進行相應計算,從而進行課程評論文本情感分類。具體公式如下:

(14)


(15)

RP-BERT在線課程情感分析模型利用輸入表征層進行課程評論文本特性編碼,構建一個含有長句和短句評論的特征向量;然后,對特征向量進行學習,在每個Transformer編碼器單元中進行評論語義信息捕獲;并將抽取的特征輸入到激活函數與池化層中進行語義信息的進一步選擇;最終,輸入情感分類層將課程評論分為積極課程評論和消極課程評論兩類。
(1) 數據集。在線評論情感分析任務中,采用從中國大學MOOC爬取的課程評論正負情感數據各5 000條,數據字段如表2所示。對RP-BERT情感分析模型進行訓練和測試,訓練集與測試集按照7∶3劃分。

表2 中國MOOC課程評論數據集字段說明
(2) 評估指標。根據數據樣本真實情感類別與預測情感類別組合劃分為真正例(TP)、假正例(FP)、真負例(TN)、假負例(FN)四類,并依此計算情感分類正確的樣本數與總樣本數之比的準確率(Accuracy)和表示正例樣本排在負例之前概率的AUC值(Area Under Curve),公式為:
(16)
(17)
(1) 實驗環境。本次實驗環境配置如下:操作系統為Ubuntu 18.04長期服務版,CPU為Intel Xeon Silver 4114@2.20 GHz,GPU為GTX 1080 Ti 11 GB,內存為16 GB,程序語言是Python 3.6,深度學習模型框架采用PyTorch 1.0.0。
(2) 參數設置。利用中文維基百科語料庫訓練原始BERT的預訓練模型[25]。Google提供Base和Large兩種原始BERT預訓練模型,兩者參數不同但網絡結構完全一致。受硬件環境限制,實驗采用Base參數設置:Transformer模塊數為12,隱藏層尺寸為768維,12個自注意力頭部,總共參數大小為110 MB[12]。最大序列長度為300,Batch為32,學習率為5e-5。
(1) RP-BERT模型驗證。將RP-BERT與SVM、條件隨機場、原始BERT進行比較[15,26-27]。為了保證實驗結果的準確和客觀,將四種模型分別在同一訓練和測試數據集上各自運行10次,求得準確率和AUC值的平均值作為模型最終結果,如表3所示。

表3 四種在線課程評論情感分析模型準確率和AUC值
可以看出,BERT 模型和RP-BERT模型的準確率和AUC值在訓練集和測試集中均高于其余兩個模型。一個原因是這兩種模型中的預訓練模型為無須人工參與的大規模語料的無監督訓練,它們的注意力機制能夠準確聯系上下文語義挖掘課程評論文本中準確句意。另一個原因是RP-BERT模型針對課程評論情感分析任務只需少量人工情感標注完成的課程評論數據對模型微調即可,而SVM和條件隨機場過度依賴課程評論文本情感標注質量和數量,實驗采集標注的各5 000條正負情感課程評論對這兩個模型而言較小。此外,與BERT相比可知RP-BERT未發生欠擬合或過擬合問題,驗證了RP-BERT模型對原始BERT模型過擬合問題改進的有效性。
(2) 基于情感分析的課程評論詞云圖。通過課程評論詞云圖對評論語義的可視化,可以直觀地了解學生對課程或者老師的看法,為學習者選課、教師改進教學等提供參考。圖5和圖6分別展示了課程評論情感積極和消極的詞云示例。

圖5 課程評論積極反饋關鍵詞云圖

圖6 課程評論消極反饋關鍵詞云圖
可以看出,學生更加喜歡條理清晰、通俗易懂、生動形象的課程,非常反感照本宣科的課程。此外,實驗結果分析還發現學生對課程字幕和PTT課件比較關注,老師的方言或者口音問題成為課程輟學率上升的主要因素之一。因此在線課程在發布時候不僅要考慮課程本身內容外,課程平臺還應該為在線課程提供對應字幕和課程配套PPT方便學生學習,開課教師應該提高普通話水平避免出現方言和地方口音的問題,做到課程內容豐富、配套資源齊全、老師講解清晰明了,降低在線課程輟學率。
圖7為《高等數學(同濟版)》課程評論文本生成的詞云圖。可以看出,高等數學(同濟版)課程評論反饋整體比較好,課程內容豐富,講解思路清晰、通俗易懂是影響評論積極的關鍵因素,用戶普遍感覺課程講解細致清楚,自己學完課程后有所收獲。

圖7 《高等數學(同濟版)》課程評論詞云圖
RP-BERT通過在原始BERT模型中增加激活函數層和池化層改進了直接應用BERT模型做課程評論情感分析任務時出現過擬合的問題,同時增加了情感分類層對課程評論情感進行分析。相對于傳統課程評論情感分析模型,RP-BERT模型具有精確度高、訓練容易的優點。融合RP-BERT課程評論情感分析模型和詞云圖可以對課程評論反饋的關鍵信息進行分析挖掘和可視化展示,為課程選擇、內容優化和平臺服務提升等提供有益參考。后續將研究融合課程評論文本和評分的在線課程評論情感分析模型,使得情感分析更加準確實用。