?

基于多核支持向量機的句子分類算法

2023-11-29 04:20肖開研
關鍵詞:向量分類樣本

肖開研,廉 潔

(上海師范大學 信息與機電工程學院,上海 201418)

0 引 言

句子分類是一種對評價、意見、情感等各種文本進行分類的任務,是當下自然語言處理領域熱門的研究方向之一.句子分類算法在情感分析、信息過濾、智能聊天等方面[1-2]有著廣泛的應用,對輿情了解、政策制定、企業營銷決策等都起著重要的作用.

目前,句子分類算法主要包括基于深度學習的分類算法和傳統分類算法.基于深度學習的分類算法包括卷積神經網絡(convolutional neural networks,CNN)[3]、長短期記憶網絡(long short-term memory,LSTM)[4]和BERT(bidirectional encoder representations from transformer)模型[5]等.其中,基于CNN 的句子分類算法在實驗中取得了優異表現,但是,即使是簡單的CNN 也要求在訓練前精確設計網絡的結構,并設置相應的超參數,導致該算法對實踐者要求較高[3];LSTM 的門控機制可處理長期依賴、梯度消失等問題,但是由于缺乏對文本的并行處理能力導致訓練耗時過長[4];BERT 模型采用Transformer 作為編碼器[6],擁有對文本的強大編碼能力,卻因參數量過大無法在普通設備上訓練、加載[7].可見,深度學習模型不僅對硬件要求較高,且其存在著參數量大、容易過擬合等問題.

傳統分類算法包括樸素貝葉斯分類器(naive Bayes classifier)[8]和支持向量機(support vector machine,SVM)[9]等.早期的分類算法通過詞袋(bag of words,BOW)模型[10]、TF-IDF(term frequency–inverse document frequency)[11]模型構造基于詞頻的文本特征,忽略了文本間的結構關聯,導致分類效果不佳[12].但隨著Word2Vec[13]、GloVe(global vectors for word representation)[14]、FastText[15]等詞向量模型的提出,使詞向量的表達包含了上下文信息,有效解決了早期詞向量存在的維度高、稀疏且缺少關聯等問題.BERT 模型生成的詞向量表示不僅包含上下文信息,并且能有效提取單詞在特定語境下的含義.利用這些詞向量表示,對文本中的單詞進行簡單的加權求和,可以輕松得到文本的向量表示,傳統的支持向量機算法可以在這些文本表示上進行訓練.支持向量機在全局上將句子分類問題轉化為二次規劃問題,不用大量的標記樣本就能訓練出分類性能較好的模型,因此,結合詞向量和支持向量機對文本進行分類不僅可以利用到詞向量語義信息豐富和SVM 易訓練的優點,而且能有效避免深度學習算法中存在的結構復雜、參數量大、容易過擬合等問題.然而目前基于支持向量機的句子分類算法只利用了單一的詞向量模型,即用單一核函數映射、提取文本的向量特征表示,因此存在對文本信息提取不全面、映射能力差的問題[16].

如今,多核學習(multi-kernel learning,MKL)在多個領域都得到了成功的推廣,各種理論和應用也證明了多核學習相較于單核學習的優越性能[17].為了探析多核學習在句子分類中的應用效果,本文采用4 種主流的詞向量表示模型: Word2Vec、GloVe、FastText 和BERT,將多核支持向量機應用于句子分類,并設計了新的核函數系數尋優方法,以更加準確地提取文本特征,從而提升句子分類的準確率.

1 相關工作

1.1 詞向量表示模型

1.1.1 Word2Vec 模型

Word2Vec[13,18]是一種使用神經網絡概率語言模型來訓練詞向量的方法,其包含通過上下文預測目標單詞的CBOW(continues bag of words)模型和通過目標單詞預測上下文的Skip-gram 模型.Word2Vec 采用了層次softmax(hierarchical softmax)和負采樣(negative sampling)等優化技巧,將單詞轉化為詞向量,同時所得詞向量在空間的余弦距離的大小代表了單詞之間語義和語法關系的相似度.

1.1.2 GloVe 模型

GloVe[14]是基于全局詞頻統計的詞向量模型.GloVe 模型先計算詞共現矩陣,再利用詞向量與詞共現矩陣之間的近似關系構建損失函數,最后通過學習得到較低維度的詞向量表示.GloVe 模型中詞與詞之間的相似性也可以通過詞向量間的距離大小來衡量,而且相較于Word2Vec,GloVe 模型包含了文本的全局信息,對多義詞的處理能力更強.

1.1.3 FastText 模型

FastText[15]是將整個文本作為特征輸入來預測文本類別的模型.其中FastText 通過n-grams 方法字符級別地表示一個單詞,這樣不僅對低頻詞生成的詞向量效果更好,而且對于語料庫之外的單詞可以通過疊加字符向量來構建相對應的詞向量.

1.1.4 BERT 模型

BERT[5]通過雙向Transformer 編碼器構造基于上下文的詞向量.與Word2Vec 不同的是,BERT根據上下文變化,動態地生成詞向量,即重復單詞會因上下文不同而產生不同的詞向量,這讓BERT 可以捕捉單詞在特定語境中的含義,使其在自然語言處理任務中表現優異.

1.2 支持向量機

文獻[9]基于統計學習理論首次提出了支持向量機(SVM)算法.SVM 算法基于VC 維(vapnikchervonenkis dimension)理論和結構風險最小原理,通過構造最大超平面對樣本進行分類.早期,線性SVM 難以對線性不可分樣本進行分類[19].后來,核函數的使用將線性SVM 推廣至非線性SVM,使SVM 的適用范圍和分類準確性均得到明顯提升.相對于線性SVM 而言,非線性SVM 通過核函數將低維特征空間里的線性不可分樣本,映射到更高維甚至無限維的特征空間中,并在高維空間中計算最大超平面對樣本進行分類.

近期,很多基于SVM 的不同變體被提出,例如,Sun 等[20]提出的基于Fenchel-Legendre 共軛變換的稀疏半監督學習框架,為稀疏多視圖SVM 提供了有效的訓練方法;Ji 等[21]提出了一種基于正則化函數最小化的多任務多類別SVM,讓多任務多類別學習能有效提取不同類別、不同任務間的內在聯系;Sun 等[22]利用多視圖正則化項對廣義特征值最接近SVM 進行優化,將復雜的優化問題轉化為廣義特征值問題.此外,有關切線空間本征流行正則化技術的引入[23],包含局部主成分分析所得的局部切空間表示和使相鄰切線空間相關的聯系,讓SVM 可以有效考慮切空間本征流行正則化,以解決半監督學習問題.

1.3 多核支持向量機

核函數的出現讓許多問題可由線性推廣至非線性情況[22,24],同時,基于單核學習的SVM 已經在許多領域得到成功應用.但是當樣本數量龐大[25]、樣本數據在高維特征空間非平坦分布[26]或樣本特征所含信息具有異構性時[27],采用單核方法對所有樣本以相同的方式進行映射的效果并不理想.針對單核學習的不足,眾多研究[25-27]聚焦于多核學習,以此來提高決策函數的可解釋性,獲得更優的分類效果.多核學習主要分為核融合、多尺度核、無限核等方法.本文聚焦于核融合方法,主要思想是將不同特性的核函數進行組合來獲得更優的映射性能.然而在實現多核融合時,每個核函數系數的設置直接影響最后的融合效果.因此核系數的尋優方法至關重要,當系數數量較少時常用網格搜索(grid search,GS)[28]、隨機搜索(randomized search,RS)[29]等方法.通常,核系數的可行域為[0,1]且求和為1.GS 在可行域中設置一定步長進行網格搜索,步長較短會導致訓練非常耗時,步長較長則會導致核融合效果差.RS 在可行域中隨機采樣,該方法的效果和GS 類似,需要設置較大的采樣次數才能獲得較好的模型效果.針對這些問題,本文提出的基于參數空間分割與廣度優先搜索的系數尋優方法,在訓練次數較少的情況下也能獲得較好的分類效果.

2 模型構建

本文基于多核SVM,提出了新的系數尋優方法實現多核融合,將融合所得的混合核嵌入傳統SVM,從而實現句子分類.

2.1 模型框

基于多核SVM 的句子分類算法框架如圖1 所示.該算法主要分為兩個階段: 訓練階段和測試階段.在訓練階段,首先對輸入文本進行文本預處理,包括分詞、去除停用詞、提取詞干、還原詞形、轉化為小寫;隨后,分別選用Word2Vec、GloVe、FastText 以及BERT 詞向量表示模型,將訓練集文本中的單詞表示為詞向量,并將句子中所有單詞的詞向量相加后求均值,作為句子的向量表示;之后將句子向量利用核函數進行映射,從而得到核矩陣,再按照尋優所得的核函數系數,將這4 種詞向量表示模型所得的核矩陣線性組合,從而得到混合核,實現訓練集文本的多核學習;最后,采用支持向量機方法訓練出分類器.在測試階段,對測試集文本同樣進行文本預處理、特征提取、核融合后,導入訓練所得的SVM 分類器,從而實現句子分類.

圖1 模型框架Fig.1 Model framework

2.2 多核支持向量機

假設某一數據集中含有n個樣本,每個樣本有M種詞向量表示,表示第i個樣本的第m個詞向量表示,其樣本的類標簽為yi {1,-1}.多核SVM 主要解決了優化問題

式(1)中:W()m、φ()m、βm分別表示第m個詞向量表示的超平面法向量、核函數和核函數系數;ξi、C分別表示第i個樣本的損失值和懲罰因子.與傳統SVM 的思想一致,可將多核SVM 優化問題轉化為對偶形式

約束條件

在實驗中,本文利用Word2Vec、GloVe、FastText 以及BERT 這4 種詞向量表示模型來計算4 種核函數,然后進行核融合,具體細節詳見圖2.由圖2 所示的熱力圖及其圖例可知,不同詞向量表示模型所提取的特征不同(熱力圖中顏色越藍的點代表該點數值越接近–0.20,顏色越紅的點代表該點數值越接近0.20).

圖2 多核融合過程Fig.2 Illustration of multi-kernel fusing

2.3 核函數系數尋優方法

圖3 參數空間Fig.3 Parameter space

在目標函數不可導的情況下,假設目標函數存在多個局部最優解,且當βWord2Vec、βGloVe與βBERT變化無限小時,目標函數連續.本文提出的系數尋優方法具體步驟如下.

步驟一: 參數空間為三棱錐體,不斷連接參數空間中的最長邊中點與其不相鄰的2 個頂點將參數空間分割為 2s個三棱錐體區域.

步驟二:(βWord2Vec,βGloVe,βBERT)依次取值為每個區域的重心坐標值并進行 2s次訓練.

步驟三: 對步驟二所得的 2s個訓練結果進行排序,選擇分類效果最優的h個區域作為新的參數空間.

步驟四: 重復步驟一、步驟二、步驟三,達到預設的參數空間分割次數,不斷逼近βWord2Vec、βGloVe和βBERT的局部最優值.

以上步驟中涉及的s為預設的分割次數,其分割方式如圖4 所示,其中深色區域為下一輪進行分割的區域.該分割方式通過參數空間的分割,快速逼近目標函數的多個局部最優解,最終選取驗證集上訓練效果最佳的局部最優解作為核函數系數.

圖4 參數空間分割Fig.4 Parameter space segmentation

3 對比實驗

3.1 實驗數據

為了檢驗本文所提出模型的分類性能,采用以下數據集進行實驗.

● SST(Stanford sentiment treebank)-1 數據集: 斯坦福大學情感分類語料庫數據集,包含 very positive、positive、neutral、negative 和very negative 這5 個類別標簽.①http://nlp.stanford.edu/sentiment/

● SST-2: 在SST-1 基礎上僅保留了positive 和negative 這2 個類別標簽.

● Subj(subjectivity): 主觀性數據集,包含subjective 和objective 這2 個類別標簽.②https://www.cs.cornell.edu/people/pabo/movie-review-data/

● TREC(text retrieval conference): 問題數據集,包含abbreviation、entity、description、human、location 和numeric 這6 個類別標簽.③http://cogcomp.cs.illinois.edu/Data/QA/QC/

● CR(customer review): 顧客產品評價數據集,包含positive和negative 這2 個類別標簽.④https://huggingface.co/datasets/SetFit/CR

● MPQA(multi-perspective question answering): MPQA 意見極性檢測子任務數據集,包含2 個類別標簽.⑤https://www.mpqa.cs.pitt.edu/

● CT(coronavirus tweets): Covid-19 情感分類數據集,包含positive、neutral 和negative 這3 個類別標簽.⑥https://www.kaggle.com/datasets/datatattle/covid-19-nlp-text-classification

數據集詳細信息匯總于表1,其中,詞庫大小是指數據集中共有多少個不同的單詞,平均句長是指數據集中每個句子平均單詞個數.數據集中部分數據集已預劃分訓練集、驗證集、測試集,對于未預劃分的數據集采用十折交叉驗證(cross-validation,CV),按照0.8∶0.1∶0.1 的比例隨機劃分訓練集、驗證集、測試集.

表1 標記數據集統計匯總Tab.1 Summary statistics of the datasets after tokenization

3.2 超參數設置

實驗使用預訓練的谷歌Word2Vec 詞向量文件、斯坦福GloVe 詞向量文件、臉書FastText 詞向量文件(此3 種詞向量維度為300),以及BERT 的詞向量(其維度為768)對文本進行映射.若文本中存在不屬于Word2Vec、GloVe、FastText 詞向量文件中的單詞,則采用隨機函數生成300 個處于[–0.25,0.25]的隨機數組成其詞向量.實驗選用高斯核函數

其中,高斯核函數的參數γ和SVM 的懲罰因子C的尋優空間分別為[1,0.1,0.01,0.001]、[0.1,1,10,100,1 000].GS 設置步長為 0 .1,在系數尋優空間中總共可以采樣 84 個樣本點.為了公平比較GS 和RS,RS 方法在系數尋優空間中同樣隨機采樣 84 個樣本點.在本文提出的尋優系數方法中,將樣本空間分割為 32 個區域,選取訓練效果最好的兩個區域進行二次分割;二次分割中每塊區域分割為16塊區域,共選取 64 個樣本點進行 64 次訓練.

3.3 實驗結果

本文共選取了6 種文本表示模型進行對比實驗,包括經典的BOW、TF-IDF 算法,以及基于Word2Vec、GloVe、FastText 和BERT 的詞向量的文本表示算法,并對比了3 種核函數系數尋優方法.實驗使用準確率作為分類器的分類性能評估指標,結果如表2 所示,其中,MKL 表示通過Word2Vec、GloVe、FastText 和BERT 進行多核學習.表2 中數據為10 次實驗結果的均值.

表2 模型分類準確率對比結果Tab.2 Comparison of model classification accuracies

實驗結果表明,多核學習相較于早期詞向量模型BOW、TF-IDF 提升幅度明顯,在數據集SST-1、CR 上分別提升了9.2%、7%.在所有數據集中,基于多核支持向量機模型的分類準確率,相較于單核學習中的最好結果都有一定提升,其中在數據集TREC 上準確率提升了2.7%,提升幅度最大.尋優方法中,GS 和RS 訓練效果相近,RS 在參數空間隨機采樣,返回的參數相比于GS 精度更高;但在訓練次數少的情況下,隨機采樣導致了訓練結果波動較大,而本文提出的方法通過空間分割的方式不斷逼近核系數局部最優值,即使訓練次數少于GS 和RS,也取得了更好且更穩定的分類結果.單核學習和多核學習在數據集SST-2 上的ROC(receiver operating characteristic)曲線如圖5 所示,其中,縱軸是真陽性率(true positive rate,TPR),橫軸是假陽性率(false positive rate,FPR).從其圖像和AUC值(ROC 曲線下面積,area under the curve,AUC)可以看出多核學習模型的分類能力更強.

圖5 SST-2 數據集上MKL*與單核學習的ROC 曲線Fig.5 ROC curve of MKL* and single-kernel learning on SST-2 dataset

此外,當γ和C的尋優范圍分別為[1,0.1,0.01,0.001]、[0.1,1,10,100,1000]時,3 種核系數尋優方法訓練次數和訓練耗時如表3 所示.從表3 中可以看出,參數空間分割的尋優方法得益于訓練次數少,從而使訓練耗時大幅度降低.

表3 參數尋優方法訓練耗時對比Tab.3 Comparison of training times for parameter optimization methods

4 結束語

在句子分類任務中,過去的研究側重于單核學習,主要是改進句子分類算法中的詞向量表示模型,這類方法往往被其運用的詞向量表示模型的缺陷所約束.本文首次將多核學習運用到句子分類任務中,多核學習的思想融合了不同詞向量表示模型的優點,讓句子分類結果更加精確.此外,針對傳統系數尋優方法的不足,本文提出了一種基于參數空間分割的系數尋優方法.在系數尋優過程中,該方法有效減少了訓練次數和訓練結果的隨機性,并獲得了更優的分類準確率.

目前,本文實驗采用了4 種詞向量表示模型進行多核學習,導致多核學習的潛力沒有完全開發.當今還有許多優秀的文本表示模型,如ALBERT(a lite BERT)、ELMo(embeddings from language models)、GPT2(generative pre-trained transformer 2)和GPT3 模型等,都可以獲得文本的向量表示.考慮到本文所提出的系數尋優方法能自然地擴展至高維空間中,因此,下一步工作將采用更多的模型進行多核學習,進一步提升句子分類準確率.

猜你喜歡
向量分類樣本
向量的分解
分類算一算
用樣本估計總體復習點撥
聚焦“向量與三角”創新題
分類討論求坐標
推動醫改的“直銷樣本”
數據分析中的分類討論
教你一招:數的分類
隨機微分方程的樣本Lyapunov二次型估計
向量垂直在解析幾何中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合