国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于改進(jìn)的BERT-CNN模型的新聞文本分類研究

2021-09-08 10:10:32張小為邵劍飛
電視技術(shù) 2021年7期
關(guān)鍵詞:標(biāo)簽卷積向量

張小為,邵劍飛

(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650031)

0 引 言

互聯(lián)網(wǎng)上的數(shù)字文本日益增多,從應(yīng)用程序到擁有數(shù)百萬數(shù)據(jù)的網(wǎng)站,都存在大量計算機(jī)難以甄別的文本數(shù)據(jù)。由于數(shù)據(jù)量大且文本語義錯綜復(fù)雜,導(dǎo)致文本分類成為一項難題。因此,如何使計算機(jī)對大量文本數(shù)據(jù)進(jìn)行分類,正成為研究者感興趣的話題。一般來說,文本分類任務(wù)只有很少的類。當(dāng)分類任務(wù)有大量的類時,傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(Rerrent Neural Network,RNN)[1](如 LSTM 和GRU)算法準(zhǔn)確率表現(xiàn)不佳,因此本文引用谷歌大腦發(fā)布的基于transformer的來自變換器的雙向編碼器表征量(Bidirectional Encoder Representations from Transformers,BERT)[2]模型來對中文新聞文本進(jìn)行分類,數(shù)據(jù)集采用新浪新聞RSS訂閱頻道2005年至2011年間的歷史數(shù)據(jù)篩選過濾生成的THUCNews中文文本分類數(shù)據(jù)集,共有金融、房產(chǎn)、股票、教育、科技、社會、時政、體育、游戲及娛樂10個類別。

1 相關(guān)研究

深度神經(jīng)網(wǎng)絡(luò)由于其強(qiáng)大的表達(dá)能力和較少的實(shí)用技術(shù)要求,正成為文本分類的常用任務(wù)。盡管神經(jīng)文本識別模型很有吸引力,但在許多應(yīng)用中,神經(jīng)文本識別模型缺乏訓(xùn)練數(shù)據(jù)。近年來,人們提出了多種中文文本分類方法。由于中文文本本身的特點(diǎn),與英語等其他語言相比,中文文本分類比較困難。為了提高中文文本分類的質(zhì)量,Liu等人[3]提出了一種分層模型結(jié)構(gòu),可以從中文文本中按順序提取上下文和信息,這種方法是LSTM和時間卷積網(wǎng)絡(luò)的組合。而LSTM用于提取文檔的上下文和序列特征。Shao等人[4]提出了一種大規(guī)模多標(biāo)簽文本分類的新方法。首先將文本轉(zhuǎn)換為圖形結(jié)構(gòu),然后使用注意機(jī)制來表示文本的全部功能。他們還使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取。與最新的方法相比,該方法顯示了良好的結(jié)果,并且使用了4個數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。在CRTEXT數(shù)據(jù)集上進(jìn)行的結(jié)果表明,與其他數(shù)據(jù)集相比,他們的模型取得了最好的結(jié)果。本文利用BERT自注意力的優(yōu)點(diǎn),將BERT當(dāng)做embedding[5]層接入到其他主流模型,并在同一個新聞數(shù)據(jù)集進(jìn)行訓(xùn)練和驗(yàn)證。最后將各個模型與BERT拼接的模型進(jìn)行比較。

2 研究方法

2.1 BERT

2.1.1 BERT的基礎(chǔ)架構(gòu)

BERT使用的是transformer的encoder的部分,是由多個encoder堆疊在一起的。6個encoder組成編碼端,6個decoder組成解碼端。一個encoder具有輸入、注意力機(jī)制以及前饋神經(jīng)網(wǎng)絡(luò)3個部分。BERT的基礎(chǔ)結(jié)構(gòu)如圖1所示。

圖1 BERT的基礎(chǔ)結(jié)構(gòu)

BERT編碼器需要一個token序列。處理和轉(zhuǎn)換token的過程如圖2所示。[CLS]是插入在第一句開頭的特殊標(biāo)記。[SEP]插入在每個句子的末尾。通過添加“A”或“B”區(qū)分句子來創(chuàng)建embedding。另一方面,還在序列中添加每個標(biāo)記的位置來進(jìn)行位置嵌入。

圖2中,3個embedding的總和就是BERT編碼器的最終輸入。當(dāng)一個輸入序列輸入到BERT時,它會一直向上移動堆棧。在每一個塊中,它會首先通過一個自我注意層再到一個前饋神經(jīng)網(wǎng)絡(luò)之后再被傳遞到下一個編碼器。最后,每個位置將輸出一個大小為hidden_size(BERT_Base=768)的向量。

圖2 token轉(zhuǎn)換過程

2.1.2 掩碼語言模型(Masked Language Model,MLM)

在新聞文本序列中,通過標(biāo)記[MASK]來替換它們隨機(jī)屏蔽一定百分比的單詞。在本文中屏蔽了15%的輸入詞,然后訓(xùn)練剩下的輸入詞,最后讓解碼器來預(yù)測被屏蔽的輸入詞。例如:

調(diào)查顯示:29.5%的人不滿意當(dāng)年所選高考專業(yè)

調(diào)查顯示:29.5%的人不滿意當(dāng)年所選[MASK]專業(yè)

這里的一個問題是預(yù)訓(xùn)練模型將會有15%的掩碼標(biāo)記,但是當(dāng)微調(diào)預(yù)訓(xùn)練模型并傳遞輸入時,不會傳遞掩碼標(biāo)記。為了解決這個問題,將用于屏蔽的15%的token中的80%替換為token[MASK],然后將10%的時間token替換為隨機(jī)token,其余的保持不變。

由于BERT在預(yù)訓(xùn)練的時候使用的是大量無標(biāo)注的語料,因此要使用無監(jiān)督(無標(biāo)簽)的方法,本文采用的無監(jiān)督目標(biāo)函數(shù)是AE自編碼模型。它可以從損壞的輸入數(shù)據(jù)進(jìn)行預(yù)測并重建原始數(shù)據(jù),也就是利用上下文信息的特點(diǎn)來進(jìn)行重組。另外一種無監(jiān)督目標(biāo)函數(shù)是AR自回歸模型。下面從一個句子(我喜歡小狗)來比較兩種無監(jiān)督模型。

AR:

由式(1)可知,AR自回歸模型只用到了文本的單側(cè)信息,且依賴于兩個相鄰詞的依賴關(guān)系。

AE:

由式(2)可知,AE用mask掩蓋掉某些詞,優(yōu)化目標(biāo)是:在“我mask小狗”的條件下出現(xiàn)“我喜歡小狗”的概率,而這個概率等于在“我小狗”的條件下,mask=“喜歡”的概率,據(jù)此預(yù)測出mask的詞。對比AR自回歸模型,AE自編碼模型的優(yōu)點(diǎn)很明顯:充分利用了上下文詞與詞的關(guān)系而不依賴于相鄰的兩個詞的關(guān)系。因此本文BERT采用AE自編碼模型。

2.1.3 NSP(下一個句子預(yù)測)

在BERT訓(xùn)練過程中,模型接收成對的句子作為輸入,并學(xué)習(xí)預(yù)測成對中的第二個句子是否是原始文檔中的后續(xù)句子。在訓(xùn)練期間,50%的輸入是一對,其中第二個句子是原始文檔中的后續(xù)句子,而另外50%的輸入是從語料庫中隨機(jī)選擇的一個句子作為第二個句子。為了幫助模型區(qū)分訓(xùn)練中的兩個句子(正樣本和負(fù)樣本),輸入在進(jìn)入模型之前先按以下方式處理。

(1)在第一個句子的開頭插入一個[CLS]標(biāo)記,在每個句子的末尾插入一個[SEP]標(biāo)記。

(2)將表示句子A或句子B的sentenceembedding添加到每個token中。

(3)將Positional embedding[6]添加到每個embedding以表示其在序列中的位置。

為了預(yù)測第二個句子是否確實(shí)與第一個句子相關(guān)聯(lián),按照以下步驟進(jìn)行預(yù)測。

(1)整個輸入序列經(jīng)過Transformer模型。

(2)[CLS]標(biāo)記的輸出使用簡單的分類層(權(quán)重和偏差的學(xué)習(xí)矩陣)轉(zhuǎn)換為2×1形狀的向量。

(3)用softmax[7]計算IsNextSequence的概率。

在訓(xùn)練BERT模型時,MLM和NSP是一起訓(xùn)練的,目標(biāo)是最小化兩種策略的組合損失函數(shù)。

2.2 TextCNN

CNN首次被提出是被用在圖像處理上的,而后YoonKim提出的用于句子分類的卷積神經(jīng)網(wǎng)絡(luò)使得其對于句子分類更加有效。TextCNN[8]模型主要使用一維的卷積核以及時序最大池化層。如果輸入的新聞文本序列由k個詞組成,而每個詞的詞向量為n維,那么輸入的樣本寬度等于輸入的句子序列詞個數(shù)k,高為1,輸入的通道數(shù)等于每個詞的詞向量n。以下是TextCNN的主要計算步驟。

(1)先定義多個一維的卷積核,再通過這些卷積核對輸入分別進(jìn)行卷積計算。不同寬度的卷積核會得到個數(shù)不同的相鄰詞之間的相關(guān)性[9]。

(2)對所有輸出部分的通道一一進(jìn)行時序最大池化操作,再將池化后的結(jié)果連接為向量。

(3)使用全連接層將第2步連接好的向量變換為有關(guān)各個標(biāo)簽(本文使用的數(shù)據(jù)集標(biāo)簽一共有10個)的輸出。為了防止出現(xiàn)過擬合,本文還在這一步驟使用了丟棄層[10]。

下面用一個例子解釋TextCNN的原理。采用本文所用的數(shù)據(jù)集中的一個樣本:“某公司收費(fèi)遭投訴引關(guān)注,用戶抱怨賬單不明”,分詞結(jié)果為“某公司收費(fèi)遭投訴引關(guān)注用戶抱怨賬單不明”,詞數(shù)為11,每個詞的詞向量設(shè)置為6。因此輸入的序列寬度為11,輸出的通道數(shù)為6。然后設(shè)置2個一維的卷積核,卷積核尺寸為2*4,設(shè)置輸出通道分別為5和4。因此,經(jīng)過一維卷積核計算后,5個輸出通道的寬為11-4+1=8,4個輸出通道的寬為11-2+1=10。接著對各個通道進(jìn)行時序最大池化操作,并將9個池化后的輸出連接成一個9維的向量。最后,通過全連接層將9維向量轉(zhuǎn)化為10維輸出,也就是新聞文本類別的標(biāo)簽個數(shù)。具體過程如圖3所示。

圖3 TextCNN原理

3 實(shí)驗(yàn)與結(jié)果

3.1 實(shí)驗(yàn)數(shù)據(jù)集

在監(jiān)督學(xué)習(xí)中,模型的性能主要依賴于數(shù)據(jù)集。神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)也依賴于數(shù)據(jù)集,如果數(shù)據(jù)集的數(shù)量較少,學(xué)習(xí)就會不足。為了為模型訓(xùn)練和模型結(jié)果評估提供合適的數(shù)據(jù)集,本文使用一個名為THUCNews的大型新聞?wù)Z料庫。這個數(shù)據(jù)集主要爬取2005-2011年間新浪新聞的RSS訂閱頻道新聞標(biāo)題,一共有74萬篇新聞文檔(2.19 GB),均為UTF-8純文本格式。該語料庫已在Github上公開。本文主要抽取其中的20萬條新聞標(biāo)題,一共有10個類別:金融、房產(chǎn)、股票、教育、科技、社會、時政、體育、游戲及娛樂。每個類別有2萬條,平均文本字符長度為20~30。采用其中的18萬條作為訓(xùn)練集,1萬條用來做驗(yàn)證集,剩下的1萬條做測試集。

3.2 實(shí)驗(yàn)環(huán)境設(shè)置

本實(shí)驗(yàn)采用的計算機(jī)處理器為AMD R5 3600六核十二線程CPU,顯卡為NVIDIA GTX 1060(6 GB),基于python3.8,深度學(xué)習(xí)框架主要用的是pytorch1.9.0+cu102 GPU版本,運(yùn)行內(nèi)存16 GB。由于顯存容量限制,batch_size設(shè)置為16,Epoch設(shè)置為3。編程軟件使用的是pycharm社區(qū)版。

本次實(shí)驗(yàn)采用的是BERT在Github的公開開源版本,并通過新聞數(shù)據(jù)集的特點(diǎn)微調(diào)BERT,以提升BERT的下游任務(wù)的效果。然后將BERT作為embedding輸入到CNN、RNN模型,最后進(jìn)行BERT、BERT-CNN、BERT-RNN的效果對比。

3.3 評價指標(biāo)

為了評估各個模型的性能,本實(shí)驗(yàn)使用“提前停止(earlystopping)”技術(shù)(一旦訓(xùn)練效果停止改善,立即自動停止訓(xùn)練過程),這可以更好地避免過擬合問題。主要采用3種常用的評估指標(biāo):Precision精準(zhǔn)率、Recall召回率以及F1。最后使用測試準(zhǔn)確率Test_accuracy進(jìn)行比較。3種指標(biāo)的計算方法為:

式中:TP表示預(yù)測10個標(biāo)簽(0~9)當(dāng)中的指定標(biāo)簽被正確預(yù)測的個數(shù);FP表示預(yù)測為指定標(biāo)簽但實(shí)際上是其他標(biāo)簽的個數(shù);FN表示預(yù)測為其他標(biāo)簽但實(shí)際上是指定標(biāo)簽的個數(shù)。

3.4 實(shí)驗(yàn)結(jié)果與分析

3.4.1 實(shí)驗(yàn)結(jié)果

BERT、BERT-CNN、BERT-RNN的試驗(yàn)結(jié)果分別如表1、表2及表3所示。平均Test_accuracy實(shí)驗(yàn)結(jié)果如表4所示。3個模型在1萬條測試數(shù)據(jù)中的表現(xiàn)如圖4所示。

圖4 3個模型在1萬條測試數(shù)據(jù)中的表現(xiàn)

表1 BERT實(shí)驗(yàn)結(jié)果

表2 BERT-CNN實(shí)驗(yàn)結(jié)果

表3 BERT-RNN實(shí)驗(yàn)結(jié)果

表4 平均Test_accuracy實(shí)驗(yàn)結(jié)果

3.4.2 結(jié)果分析

從表1、2、3可以得出:識別的標(biāo)簽不同,各個模型的評價體系得分也不同。10個標(biāo)簽共30個評分項,BERT-CNN一共有17個得分最高項,BERT有8個得分最高項,BERT-RNN有5個得分最高項。其中,BERT-CNN所有標(biāo)簽平均得分為0.941,BERT所有標(biāo)簽平均得分為0.938,BERT-RNN所有標(biāo)簽平均得分為0.936。可見BERT-CNN表現(xiàn)最佳。

從表4和圖4可以看出,BERT-CNN無論是在平均測試準(zhǔn)確率還是測試準(zhǔn)確率的表現(xiàn)都要優(yōu)于BERT和BERT-RNN。

實(shí)驗(yàn)結(jié)果證明,本文提出的基于改進(jìn)的BERTCNN模型在新聞文本測試的表現(xiàn),測試精度94.06%比原來的BERT模型高出了0.31%,且更為穩(wěn)定。

4 結(jié) 語

本文的模型主要運(yùn)用于文本的多分類場景中,未來可以嘗試在電影影評進(jìn)行分類(二分類,積極或消極),各個模型的表現(xiàn)可能會不盡相同,且在相同條件下可以考慮運(yùn)行時間的長短,將其添加進(jìn)模型的評級體系。

目前在文本分類問題中,通過各大閱讀理解競賽榜單可以看到,深度學(xué)習(xí)的成績已經(jīng)超過人類閱讀理解的能力,但是各個模型量都過于龐大,訓(xùn)練周期時間長,且對硬件的限制較大。希望未來研究者能夠提出一種輕量級的、能夠運(yùn)用于各個文本分類器的語言模型。

猜你喜歡
標(biāo)簽卷積向量
向量的分解
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實(shí)現(xiàn)
聚焦“向量與三角”創(chuàng)新題
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
無懼標(biāo)簽 Alfa Romeo Giulia 200HP
車迷(2018年11期)2018-08-30 03:20:32
不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
海峽姐妹(2018年3期)2018-05-09 08:21:02
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
標(biāo)簽化傷害了誰
向量垂直在解析幾何中的應(yīng)用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
社旗县| 方山县| 岱山县| 土默特左旗| 大埔区| 罗甸县| 乐东| 周口市| 定安县| 华池县| 汽车| 博客| 锡林郭勒盟| 永州市| 肥城市| 翁源县| 石门县| 长垣县| 朔州市| 敦煌市| 酒泉市| 宜黄县| 合水县| 高密市| 报价| 诸城市| 平山县| 政和县| 壶关县| 鹿邑县| 会泽县| 宝坻区| 盐亭县| 泽州县| 莱芜市| 绵竹市| 西充县| 花垣县| 青州市| 巴彦淖尔市| 寿宁县|