張恩偉,胡 凱, 卓俊杰,陳志立
(1. 南京信息工程大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210044;2. 上海傳英信息技術(shù)有限公司 AI技術(shù)部,上海 201203;3. 江蘇省大氣環(huán)境與裝備技術(shù)協(xié)同創(chuàng)新中心,江蘇 南京 210044)
如今隨著互聯(lián)網(wǎng)的不斷普及,網(wǎng)絡(luò)搜索技術(shù)已經(jīng)主導(dǎo)了最近的網(wǎng)絡(luò)研究和開(kāi)發(fā)活動(dòng)。然而,從計(jì)算機(jī)科學(xué)和用戶(hù)角度上來(lái)看,一個(gè)非常重要的問(wèn)題頻頻出現(xiàn)在眼前——搜索引擎返回的結(jié)果是有意義的嗎?判斷搜索結(jié)果是否有意義是處理網(wǎng)頁(yè)中大量信息的初級(jí)階段,為信息過(guò)濾、情感分析、信息抽取、搜索引擎優(yōu)化等任務(wù)提供了基礎(chǔ)[1-4]。例如,通過(guò)判斷查詢(xún)的結(jié)果是否有意義,可以過(guò)濾掉低質(zhì)量的關(guān)鍵字查詢(xún)。通過(guò)判斷返回的結(jié)果是否有意義,可以對(duì)網(wǎng)站進(jìn)行優(yōu)化,提升排名和質(zhì)量[5]。通過(guò)初步判斷過(guò)濾掉無(wú)意義的返回結(jié)果,可以避免在信息抽取過(guò)程中抽取到低質(zhì)量的信息。
在所有的搜索引擎中,自1998年谷歌公司成立以來(lái),谷歌搜索引擎逐漸占據(jù)主導(dǎo)地位。根據(jù)研究,當(dāng)前網(wǎng)絡(luò)上有75%的網(wǎng)絡(luò)搜索都是由谷歌搜索引擎直接或者間接處理的[6]。所以在本文中,我們選擇谷歌搜索返回的結(jié)果作為我們的訓(xùn)練數(shù)據(jù)。
對(duì)文本數(shù)據(jù)進(jìn)行特定類(lèi)別的劃分稱(chēng)為文本分類(lèi),其是從海量的文本數(shù)據(jù)中提取有用信息的重要手段,對(duì)谷歌搜索結(jié)果的判定屬于文本分類(lèi)的領(lǐng)域。傳統(tǒng)的基于機(jī)器學(xué)習(xí)的分類(lèi)方法包括樸素貝葉斯分類(lèi)器[7]、決策樹(shù)分類(lèi)器[8]、支持向量機(jī)[9]等。其中,樸素貝葉斯分類(lèi)器基于文本中詞語(yǔ)出現(xiàn)的概率和分類(lèi)先驗(yàn)條件,計(jì)算給定文本屬于某類(lèi)別的概率,計(jì)算速度快,對(duì)高維數(shù)據(jù)表現(xiàn)良好,但是對(duì)輸入數(shù)據(jù)的特征分布要求很高,由于該模型是一個(gè)詞袋模型,所以它容易受到停用詞等非信息詞的影響,影響分類(lèi)準(zhǔn)確性;決策樹(shù)分類(lèi)器采用一種基于樹(shù)形結(jié)構(gòu)的文本分類(lèi)方法,但不適用于高維的大規(guī)模文本數(shù)據(jù);支持向量機(jī)在處理高維度、高稀疏的數(shù)據(jù)時(shí)表現(xiàn)優(yōu)異,但是容易受到輸入噪聲的干擾,并且對(duì)大規(guī)模的數(shù)據(jù)處理速度較慢。
上述基于機(jī)器學(xué)習(xí)的方法大多依賴(lài)于先驗(yàn)知識(shí),無(wú)法處理較為復(fù)雜的問(wèn)題。近年來(lái),深度學(xué)習(xí)的迅速發(fā)展使得其在不同的領(lǐng)域都取得了成功,與傳統(tǒng)方法不同,深度學(xué)習(xí)方法是通過(guò)學(xué)習(xí)一組非線(xiàn)性轉(zhuǎn)換,將特征工程集成到模型擬合過(guò)程中,從而將特征直接映射到輸出。如今,以卷積神經(jīng)網(wǎng)絡(luò)(CNN)[10]。循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[11]、長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)[12]為基礎(chǔ)的深度神經(jīng)網(wǎng)絡(luò)模型在自然語(yǔ)言處理領(lǐng)域被廣泛應(yīng)用。例如,黃磊等人[13]研究了基于長(zhǎng)短時(shí)記憶(LSTM)和門(mén)控遞歸單元(GRU)計(jì)算節(jié)點(diǎn)的雙向遞歸神經(jīng)網(wǎng)絡(luò)在文本分類(lèi)中的應(yīng)用,在計(jì)算過(guò)程中保留了原文本中語(yǔ)義組合的方式,緩解了傳統(tǒng)文本分類(lèi)方法無(wú)法關(guān)注文本內(nèi)部語(yǔ)義特征之間關(guān)系的不足。曾經(jīng),許多研究者通過(guò)改進(jìn)CNN、RNN和融入注意力等方法來(lái)提高不同任務(wù)下的文本分類(lèi)性能[14-16],直到后來(lái)BERT的出現(xiàn),成為文本分類(lèi)和其他自然語(yǔ)言處理技術(shù)發(fā)展的一個(gè)重要的轉(zhuǎn)折點(diǎn),眾多的研究者研究了基于BERT[17]的文本分類(lèi)模型,該模型在包括文本分類(lèi)在內(nèi)的多個(gè)NLP任務(wù)中都取得了比上述模型更優(yōu)的性能[18-19]。然而,由于谷歌搜索返回的結(jié)果復(fù)雜多樣,其中不僅僅包含文本信息,還包含有圖片、結(jié)果數(shù)量等一系列因素,單一的文本模型已經(jīng)無(wú)法滿(mǎn)足任務(wù)的需求。所以如何從返回結(jié)果中有選擇地提取出模型需要的輸入特征顯得至關(guān)重要。
上述研究雖然在文本分類(lèi)領(lǐng)域取得了不錯(cuò)的成績(jī),但是對(duì)于谷歌搜索結(jié)果的判定這種特定任務(wù)的研究卻顯得不足。針對(duì)以上問(wèn)題,本文研究了谷歌搜索返回的結(jié)果,主要貢獻(xiàn)如下:
(1) 為了方便研究,構(gòu)建了一個(gè)適用于谷歌搜索結(jié)果判定的數(shù)據(jù)集(GSD)(1)GSD數(shù)據(jù)集可以從以下鏈接獲取(由于query字段涉及到個(gè)人隱私,將這一部分進(jìn)行了馬賽克處理): https://github.com/DHASJ/web_search,用于模型性能的檢驗(yàn)。
(2) 提出了一種將BERT和CNN結(jié)合起來(lái)的雙通道模型(DCFE),用于實(shí)現(xiàn)對(duì)谷歌搜索結(jié)果的判定,填補(bǔ)了當(dāng)前這類(lèi)任務(wù)上的空白。
(3) 通過(guò)基于真實(shí)數(shù)據(jù)下自建的數(shù)據(jù)集對(duì)提出的模型進(jìn)行了性能評(píng)估,證明了本文提出的模型的有效性。
在過(guò)去的工作中,研究者們大都使用機(jī)器學(xué)習(xí)的方法進(jìn)行分類(lèi),后來(lái)深度學(xué)習(xí)的興起使得研究者們將目光投向了這一技術(shù)。當(dāng)前在文本分類(lèi)任務(wù)中使用較多的模型有卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、門(mén)控神經(jīng)網(wǎng)絡(luò)(GRU)[20],長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)、基于注意力機(jī)制的網(wǎng)絡(luò)等。
卷積神經(jīng)網(wǎng)絡(luò)起初主要被應(yīng)用于視覺(jué)領(lǐng)域[21-23],然而后來(lái)一些研究者發(fā)現(xiàn)將其用于自然語(yǔ)言處理中也可以產(chǎn)生較好的效果。CNN通過(guò)使用連續(xù)的卷積層和池化層對(duì)圖像或文本進(jìn)行分類(lèi),其中池化操作能夠識(shí)別顯著特征并大大降低卷積操作帶來(lái)的計(jì)算復(fù)雜度。Chen等人[24]提出了一種基于TextCNN的文本信息提取模型,對(duì)檢查文本中涉及的電力設(shè)備的風(fēng)險(xiǎn)等級(jí)進(jìn)行分類(lèi),用于局部電力設(shè)備狀態(tài)的評(píng)估。Zhang等人[25]對(duì)字符級(jí)卷積神經(jīng)網(wǎng)絡(luò)(ConvNets)在文本分類(lèi)中的應(yīng)用進(jìn)行了研究。Liu等人[26]首次嘗試將CNN應(yīng)用于極端多標(biāo)簽分類(lèi)(XMTC)問(wèn)題中,結(jié)果證明了在極其嚴(yán)重的數(shù)據(jù)稀疏性和可伸縮性下,CNN可以取得不錯(cuò)的成績(jī)。劉龍飛等人[27]將字級(jí)別詞向量和詞級(jí)別詞向量作為原始特征,利用卷積神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)微博中的情感傾向進(jìn)行分析。卷積可以通過(guò)滑動(dòng)窗口的方式在文本中尋找不同的特征模式,能夠有效地捕捉不同類(lèi)型的局部特征。然而,由于卷積只能捕捉到局部信息,對(duì)長(zhǎng)距離地上下文依賴(lài)關(guān)系的關(guān)注度不夠,在較為復(fù)雜的任務(wù)中無(wú)法滿(mǎn)足任務(wù)需求。
RNN通過(guò)將文本視為單詞序列,其隱藏層能夠捕獲單詞之間的依賴(lài)關(guān)系和文本結(jié)構(gòu),實(shí)現(xiàn)上下文的理解和表示。Liu等人[28]曾基于RNN提出了三種不同的信息共享機(jī)制,以特定的共享層來(lái)建模文本,目的是跨多個(gè)任務(wù)來(lái)進(jìn)行聯(lián)合學(xué)習(xí)。然而,RNN在訓(xùn)練過(guò)程中容易出現(xiàn)梯度消失和梯度爆炸的問(wèn)題,導(dǎo)致長(zhǎng)期依賴(lài)信息無(wú)法被有效處理,對(duì)長(zhǎng)文本不太友好。正是由于這些原因,后來(lái)GRU、LSTM等網(wǎng)絡(luò)才相繼被提出。
GRU和LSTM通過(guò)引入門(mén)控機(jī)制和記憶單元來(lái)控制和保留長(zhǎng)期依賴(lài)信息,解決了之前RNN出現(xiàn)的梯度爆炸和消失的問(wèn)題,提高了模型的訓(xùn)練速度,同時(shí)減少了模型過(guò)擬合的風(fēng)險(xiǎn)。Johnson等人[29]利用LSTM研究了一種更加復(fù)雜的區(qū)域嵌入方法,將區(qū)域嵌入以L(fǎng)STM和卷積層的形式結(jié)合在未標(biāo)記數(shù)據(jù)上訓(xùn)練,可以得到較好的結(jié)果。Tai等人[30]提出了一種Tree-LSTM模型,通過(guò)將LSTM推廣到樹(shù)狀結(jié)構(gòu)的網(wǎng)絡(luò)模型來(lái)學(xué)習(xí)豐富的語(yǔ)義表示。然而,由于GRU和LSTM復(fù)雜的結(jié)構(gòu)和門(mén)控機(jī)制,導(dǎo)致訓(xùn)練和推理速度較慢,相對(duì)于注意力機(jī)制的網(wǎng)絡(luò)來(lái)說(shuō),模型的輸出不夠直觀(guān),并缺少可解釋性。
注意力機(jī)制被證明在識(shí)別文本中的相關(guān)詞方面是有效的,并且如今已經(jīng)成為了深度學(xué)習(xí)模型中被普遍使用的方法[31]。在語(yǔ)言模型中,注意力可以被認(rèn)為是重要性權(quán)重的向量,可以用于估計(jì)其與其他單詞之間的相關(guān)性或者“關(guān)注”程度。Alshubaily[32]在TextCNN中融入注意力機(jī)制來(lái)提高網(wǎng)絡(luò)的性能,并且提出了一種新的詞匯選擇方式來(lái)減少網(wǎng)絡(luò)的嵌入?yún)?shù),通過(guò)以最小的精度損失來(lái)加速模型訓(xùn)練。Yang等人[33]在單詞和句子層面使用兩層注意力機(jī)制,構(gòu)造了一種用于文本分類(lèi)的分層注意力網(wǎng)絡(luò),能夠在構(gòu)建文檔表示時(shí)區(qū)別關(guān)注重要和不重要的內(nèi)容。注意力機(jī)制在文本分類(lèi)任務(wù)中起到了重要的作用,可幫助模型更好地理解和利用輸入特征,建立長(zhǎng)距離的依賴(lài)關(guān)系,為模型提供更加靈活、精細(xì)的方式來(lái)處理文本數(shù)據(jù),如今在文本任務(wù)中被普遍應(yīng)用。
本文提出的DCFE模型的整體結(jié)構(gòu)如圖1所示,該模型接受兩條通道的輸入特征,左邊通道用于提取文本內(nèi)容中的語(yǔ)義特征,該通道的輸入是輸入查詢(xún)和搜索返回的結(jié)果;右邊通道作為輔助通道,對(duì)搜索頁(yè)面的參數(shù)信息進(jìn)行特征提取,該通道的輸入是搜索返回結(jié)果中的各種參數(shù)。該模型一共包含三個(gè)部分:
圖1 DCFE的整體結(jié)構(gòu)圖
語(yǔ)義信息提取模塊: 利用基于預(yù)訓(xùn)練的BERT模型對(duì)搜索頁(yè)面返回的結(jié)果進(jìn)行文本信息的語(yǔ)義提取,并且通過(guò)提取輸入查詢(xún)和返回結(jié)果之間的關(guān)聯(lián)信息,為接下來(lái)的分類(lèi)過(guò)程提供語(yǔ)義信息的參考。
參數(shù)特征提取模塊: 用于對(duì)搜索返回結(jié)果中的量化信息進(jìn)行編碼和特征的提取,用于指導(dǎo)對(duì)語(yǔ)義信息的分類(lèi)
多尺度特征注意力TextCNN:對(duì)已經(jīng)得到的語(yǔ)義信息和參數(shù)特征信息融合后進(jìn)行二次特征的提取,并且生成最終的分類(lèi)結(jié)果。
針對(duì)本文所應(yīng)用的特定的任務(wù),本文基于預(yù)訓(xùn)練的BERT模型進(jìn)行改進(jìn)與優(yōu)化,并且提出了一種新的網(wǎng)絡(luò)結(jié)構(gòu)(DCFE),用于對(duì)谷歌搜索返回結(jié)果是否有意義的判定。
BERT是一種強(qiáng)大的語(yǔ)言表示模型,以往的研究表明它在不同的語(yǔ)言理解基準(zhǔn)中表現(xiàn)出強(qiáng)大的優(yōu)勢(shì),并且具有捕獲語(yǔ)言結(jié)構(gòu)信息的可能性。Jawahar 等人[34]研究了BERT模型在學(xué)習(xí)英文語(yǔ)言結(jié)構(gòu)時(shí)在不同的網(wǎng)絡(luò)層次中都學(xué)習(xí)到了什么。由于BERT在不同的層次中提取的信息互不相同,同樣的信息并不會(huì)出現(xiàn)在不同的層中,例如來(lái)自低層的短語(yǔ)級(jí)信息在高層中會(huì)被逐漸稀釋,所以單一地使用最后一層的偏向于語(yǔ)法粒度的特征是不充分的。本文將提取到的不同層的特征進(jìn)行融合,實(shí)現(xiàn)了在保留文本中語(yǔ)義屬性的情況下, 對(duì)輸入特征進(jìn)行不同層次的信息提取的過(guò)程,從而解決了在提取文本信息過(guò)程中產(chǎn)生的信息丟失的問(wèn)題。
在具體實(shí)現(xiàn)過(guò)程中,本文使用了基于預(yù)訓(xùn)練的24層BERT模型,在語(yǔ)義信息提取模塊中返回每一層的特征表達(dá),并且將其進(jìn)行拼接用于后續(xù)的處理,如式(1)、式(2)所示。
其中,Hi表示前一層隱藏層的輸出,Hi+1表示當(dāng)前層的輸出,i∈[1,2,3],TransformerEncoder(·)表示BERT中的每一層隱藏層,Concate(·)表示拼接操作。
在谷歌搜索返回的量化信息中,經(jīng)過(guò)處理是一串長(zhǎng)序列S={x1,x2,…,xn}。其中每一個(gè)元素都包含不同的信息,首先需要對(duì)它們進(jìn)行編碼操作,所以我們使用詞嵌入層(Embedding)將其編碼為一個(gè)低維的向量,同時(shí)保留其實(shí)際含義。將每一個(gè)元素進(jìn)行單獨(dú)的編碼之后,我們可以得到多個(gè)長(zhǎng)序列,每個(gè)序列的表示Y如式(3)所示。
其中,Y∈Rn×d,n表示序列長(zhǎng)度,d表示詞向量的維度。
由于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)可以表征序列數(shù)據(jù)的內(nèi)部關(guān)聯(lián),在層之間的神經(jīng)元也可以建立權(quán)連接。在這里,我們利用RNN再次對(duì)輸出的長(zhǎng)序列進(jìn)行輔助特征的提取。RNN內(nèi)部的計(jì)算可以通過(guò)式(4)表示。
其中,St-1是前一層隱藏層的輸出,St是當(dāng)前隱藏層的輸出,Xt表示t時(shí)刻的輸入,U和W表示權(quán)重參數(shù)。經(jīng)過(guò)RNN的過(guò)濾,編碼之后的序列內(nèi)部關(guān)聯(lián)更加合理,接下來(lái)與語(yǔ)義信息提取模塊的信息進(jìn)行融合后,可以有效地指導(dǎo)其分類(lèi)。
對(duì)于一個(gè)分類(lèi)任務(wù)來(lái)說(shuō),文本序列中的關(guān)鍵詞短語(yǔ)對(duì)最終的分類(lèi)結(jié)果顯得十分重要,關(guān)鍵詞或者短語(yǔ)通常由較短的文本形式出現(xiàn),所以對(duì)其中局部特征的提取能力十分重要。卷積神經(jīng)網(wǎng)絡(luò)(CNN)所具有的稀疏交互和參數(shù)共享能力,使得其擁有強(qiáng)大的局部信息提取能力,通常被應(yīng)用于計(jì)算機(jī)視覺(jué)領(lǐng)域。然而,TextCNN的出現(xiàn)表明CNN在自然語(yǔ)言處理領(lǐng)域中被應(yīng)用的可能性,TextCNN在掌握序列上下文意義的過(guò)程中同時(shí)收集信息,通過(guò)不同大小的卷積核可以有效地捕捉不同長(zhǎng)度的關(guān)鍵詞和短語(yǔ),得到不同尺度的特征表示,這種多尺度的融合操作有利于捕獲不同粒度的語(yǔ)義信息,并且由于采用了卷積的結(jié)構(gòu),大大降低了模型的參數(shù)量,適合作為本文模型最終的分類(lèi)器使用。
這里,本文提出了一種改進(jìn)的多尺度特征注意力TextCNN,在TextCNN原來(lái)的基礎(chǔ)上對(duì)其進(jìn)行改進(jìn),圖2展示了本文提出的多尺度特征注意力TextCNN的內(nèi)部結(jié)構(gòu)。
圖2 多尺度特征注意力TextCNN的整體結(jié)構(gòu)
如圖2所示,本文利用不同大小的卷積核進(jìn)行不同尺度的特征提取,并且在其中融入注意力機(jī)制。其中,不同大小的卷積核用于提取不同尺度的特征權(quán)重, 采用卷積核高度為1的卷積對(duì)原始序列進(jìn)行維度的調(diào)整,接著將得到的不同尺度的特征權(quán)重與調(diào)整后的序列進(jìn)行乘積運(yùn)算,得到計(jì)算過(guò)后的特征序列。定義卷積核大小分別是w∈Rn×k,其中n是卷積核的高度,表示提取長(zhǎng)度為n的局部特征,k表示詞向量的維度。卷積過(guò)程的計(jì)算如式(5)所示。
其中,X表示輸入序列,Y表示輸出序列,b表示偏置項(xiàng),F(·)表示非線(xiàn)性激活函數(shù),本文使用的是ReLu激活函數(shù),其計(jì)算如式(6)所示。
在經(jīng)過(guò)卷積注意力權(quán)重的計(jì)算后,會(huì)得到新的特征序列:S={x1,x2,x3},接著使用最大池化層對(duì)得到的特征序列進(jìn)行處理,保留全局的序列信息,即C′=MAX(C)。接著,我們將得到的帶有不同尺度特征的序列進(jìn)行拼接,最終生成包含多尺度信息的長(zhǎng)序列,這里還引入了一個(gè)可學(xué)習(xí)的參數(shù)Parms,用于對(duì)結(jié)果的微調(diào)。最后,將得到的長(zhǎng)序列向量經(jīng)過(guò)一個(gè)三層的多層感知機(jī)(MLP)分類(lèi)器輸出最終的分類(lèi)標(biāo)簽。整個(gè)模塊的計(jì)算過(guò)程如式(7)~式(9)所示。
其中,X表示輸入序列,wi表示不同的卷積層的權(quán)重,bi表示偏置項(xiàng),F(·)表示非線(xiàn)性激活函數(shù),Concate(·)表示拼接操作,M(·)表示最大池化層,P是一個(gè)可學(xué)習(xí)的參數(shù),MLP(·)表示多層感知機(jī)。多層感知機(jī)的內(nèi)部結(jié)構(gòu)如式(10)所示。
其中,i作為上一層神經(jīng)元的下標(biāo),即輸入層節(jié)點(diǎn);j作為當(dāng)前層神經(jīng)元的下標(biāo),即隱藏層神經(jīng)元;k作為下一層神經(jīng)元的下標(biāo),即輸出層神經(jīng)元。xij表示當(dāng)前層各神經(jīng)元的輸入,即前一層的輸出值;wij表示上一層各神經(jīng)元到當(dāng)前神經(jīng)元的權(quán)重,也就是當(dāng)前層神經(jīng)元的權(quán)重。g(·)代表激活函數(shù),hj表示當(dāng)前層所有節(jié)點(diǎn)的輸入權(quán)重之和,yj=xjk表示當(dāng)前層各神經(jīng)元的輸出,即下一層各神經(jīng)元的輸入。
對(duì)谷歌搜索返回結(jié)果是否有意義的判定是一個(gè)文本二分類(lèi)的任務(wù),其中對(duì)模型輸入特征的選取尤其重要,本文提出了一個(gè)用于此任務(wù)的數(shù)據(jù)集,并且將提出的模型應(yīng)用于此數(shù)據(jù)集上進(jìn)行訓(xùn)練,判斷所查詢(xún)的問(wèn)題通過(guò)谷歌搜索返回的結(jié)果是否具有意義。
GSD數(shù)據(jù)集是我們自建的一個(gè)數(shù)據(jù)集,用于谷歌搜索返回結(jié)果是否有意義的判定,判斷搜索返回的結(jié)果是否有意義取決于用戶(hù)是否能夠從搜索結(jié)果中獲取查詢(xún)問(wèn)題所需的信息。
表1展示了數(shù)據(jù)集中所包含的各類(lèi)特征及其說(shuō)明。由于谷歌搜索返回的結(jié)果多且復(fù)雜,我們?cè)谝獾氖枪雀枳匀凰阉鹘Y(jié)果中所包含的標(biāo)題、摘要、問(wèn)題和結(jié)果的關(guān)聯(lián)等信息,但是自然結(jié)果中往往包含地圖、圖片等不相關(guān)的信息。所以,需要對(duì)返回的結(jié)果進(jìn)行篩選,將無(wú)用的特征進(jìn)行剔除,最終我們選擇進(jìn)入到模型之中的特征信息如表1所示。
表1 GSD數(shù)據(jù)集特征說(shuō)明
在整個(gè)數(shù)據(jù)集中,本文共標(biāo)注了6 508條數(shù)據(jù),查詢(xún)問(wèn)題來(lái)自于人們的日常提問(wèn),其中搜索返回的結(jié)果有意義的問(wèn)題共有2 358條。搜索返回的結(jié)果無(wú)意義的問(wèn)題共有4 150條,將所有數(shù)據(jù)按照8∶2的比例將其隨機(jī)分為訓(xùn)練集和驗(yàn)證集。同時(shí),整理了1 000條沒(méi)有進(jìn)行標(biāo)注的數(shù)據(jù)作為測(cè)試集。
在返回的結(jié)果中,由于result_count特征的分布差異較大,所以需要首先對(duì)其進(jìn)行預(yù)處理才能送入模型中進(jìn)行訓(xùn)練。圖3顯示了所有的result_count特征的分布范圍,其中橫坐標(biāo)result_count表示返回的結(jié)果總數(shù),縱坐標(biāo)表示查詢(xún)問(wèn)題的序號(hào)。從圖中可以看出,大部分的result_count處于0~0.5 區(qū)間內(nèi),隨著值增大,分布變得越來(lái)越稀疏。所以本文首先對(duì)其按照集中性進(jìn)行區(qū)間劃分,再將其作為輸入,表2是其劃分的規(guī)則。
表2 result_count區(qū)間劃分規(guī)則
圖3 result_count特征分布
3.2.1 評(píng)價(jià)指標(biāo)
本文中使用準(zhǔn)確率(Acc)和F1-measure(F1)來(lái)評(píng)估模型的性能,其計(jì)算如式(11)~式(14)所示,其中準(zhǔn)確率表示預(yù)測(cè)正確的樣本數(shù)占總樣本數(shù)的比例,精確率(P)表示在所有預(yù)測(cè)為真的樣本中預(yù)測(cè)正確的比例,召回率(R)表示在所有的正樣本中預(yù)測(cè)正確的比例,F1-measure是一個(gè)綜合指標(biāo),綜合了精確率和召回率之后的分?jǐn)?shù)。
在上式中,TP表示被預(yù)測(cè)為真的正樣本數(shù),FN表示被預(yù)測(cè)為假的正樣本數(shù),TN表示被預(yù)測(cè)為假的負(fù)樣本數(shù),FP表示被預(yù)測(cè)為真的負(fù)樣本數(shù)。
3.2.2 實(shí)驗(yàn)設(shè)置
本文實(shí)驗(yàn)基于Pytorch深度學(xué)習(xí)框架,版本號(hào)為1.12.1,Python版本為3.8.12。硬件環(huán)境包括NVIDIA系列顯卡,顯卡型號(hào)為NVIDIA GeForce RTX 3090,顯存為24GB。在訓(xùn)練過(guò)程中,本文采用交叉熵?fù)p失函數(shù),對(duì)于二分類(lèi)任務(wù),其計(jì)算如式(15)所示。
表3 實(shí)驗(yàn)參數(shù)設(shè)置
在這一節(jié)中,將本文提出的模型與其他模型在GSD數(shù)據(jù)集上進(jìn)行了對(duì)比實(shí)驗(yàn),這里共選取了11種不同類(lèi)型的模型作為對(duì)比模型,包括機(jī)器學(xué)習(xí)方法與深度學(xué)習(xí)方法。由于對(duì)比模型大多只有一個(gè)輸入通道,無(wú)法使用輔助支路進(jìn)行特征提取,所以在本文的對(duì)比實(shí)驗(yàn)中,對(duì)比模型僅僅使用數(shù)據(jù)集中的文本信息作為輸入。將文本內(nèi)容經(jīng)過(guò)相同的分詞方式和編碼方式后送入模型中進(jìn)行訓(xùn)練。
MultinomialNB[7]: 多項(xiàng)式樸素貝葉斯是基于原始的貝葉斯理論,通過(guò)特征計(jì)算分類(lèi)的概率,然后選取最大的情況進(jìn)行分類(lèi),這是一種基于概率論的機(jī)器學(xué)習(xí)分類(lèi)方法。
DecisionTree[8]: 決策樹(shù)(Decision Tree)是一種基于實(shí)例的歸納學(xué)習(xí)算法,包括兩個(gè)階段: 歸納和剪枝。決策樹(shù)的歸納可以從給定的數(shù)據(jù)樣本中提煉出樹(shù)狀的分類(lèi)模型。樹(shù)中的每個(gè)非葉子節(jié)點(diǎn)記錄了使用哪個(gè)特征來(lái)進(jìn)行類(lèi)別的判斷,每個(gè)葉子節(jié)點(diǎn)則表示最后的判斷類(lèi)別。而決策樹(shù)的剪枝是使其停止分裂的方法,對(duì)已經(jīng)生成的樹(shù)進(jìn)行自下而上的剪枝操作,將樹(shù)變得簡(jiǎn)單,從而使其擁有更好的泛化能力。
吳赫,韓國(guó)音樂(lè)人,獨(dú)立樂(lè)隊(duì)hyukoh主唱兼吉他手,曾在中國(guó)生活,大學(xué)時(shí)期返回韓國(guó),喜歡有境界、不過(guò)于刻意,且同時(shí)具有光明與黑暗面的東西,他認(rèn)為“音樂(lè)人不只是做音樂(lè)就好,包括專(zhuān)輯設(shè)計(jì)、MV、造型等整體風(fēng)格都須相當(dāng)契合”。
RandomForest[35]: 隨機(jī)森林(Random Forest)是通過(guò)集成學(xué)習(xí)的思想將多棵樹(shù)集成的一種算法,能夠有效地運(yùn)行在大數(shù)據(jù)集上,有效地處理高維特征,無(wú)需降維操作。
SVC[9]: 支持向量機(jī)(SVC)是一種二分類(lèi)算法,其基本模型是一個(gè)特征空間上的間隔最大的線(xiàn)性分類(lèi)器,通過(guò)尋求結(jié)構(gòu)化風(fēng)險(xiǎn)最小來(lái)提高學(xué)習(xí)機(jī)泛化能力,實(shí)現(xiàn)經(jīng)驗(yàn)風(fēng)險(xiǎn)和置信范圍的最小化,從而達(dá)到在統(tǒng)計(jì)樣本量較少的情況下,亦能獲得良好統(tǒng)計(jì)規(guī)律的目的。
KNeighbors[36]: K近鄰算法(KNN)采用投票機(jī)制,通過(guò)計(jì)算測(cè)試樣本和所有訓(xùn)練樣本的距離,根據(jù)最近的K個(gè)訓(xùn)練樣本的類(lèi)別,使用多數(shù)投票的方式進(jìn)行預(yù)測(cè)。
MLP[37]: 多層感知機(jī)(MLP)算法也被稱(chēng)為前饋神經(jīng)網(wǎng)絡(luò),是一種最簡(jiǎn)單的深度學(xué)習(xí)模型。MLP在訓(xùn)練時(shí)將特征值傳入隱藏層當(dāng)中,通過(guò)帶有結(jié)果的數(shù)據(jù)來(lái)訓(xùn)練其參數(shù),接著使用帶有權(quán)重參數(shù)的模型即可用于任務(wù)的分類(lèi)。
TextCNN[38]: 將卷積神經(jīng)網(wǎng)絡(luò)CNN應(yīng)用于文本分類(lèi)任務(wù),利用多個(gè)不同尺寸的卷積核來(lái)提取句子中的關(guān)鍵信息,從而更好地捕捉局部相關(guān)性。
Bi-LSTM[12]: 雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Bi-LSTM)使用了兩層方向相反的長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)模型,結(jié)合了輸入序列在前向和后向兩個(gè)方向上的信息,不僅可以關(guān)注到上文的信息,還可以考慮到下文的信息,大大增強(qiáng)了模型對(duì)上下文信息的理解程度。
BERT[17]: 在文本分類(lèi)領(lǐng)域中,利用BERT模型進(jìn)行分類(lèi)是最常見(jiàn)的,這得益于其擁有多種基于大樣本的預(yù)訓(xùn)練權(quán)重,使得研究者只需要在下游任務(wù)中進(jìn)行很小的微調(diào)訓(xùn)練就可以得到不錯(cuò)的效果。
VGCN-BERT[40]: 該模型將BERT和詞匯圖卷積網(wǎng)絡(luò) (VGCN)相結(jié)合,使局部信息和全局信息通過(guò)BERT的不同層進(jìn)行交互來(lái)表示最終的分類(lèi)。
對(duì)比實(shí)驗(yàn)結(jié)果如表4所示。這里使用Acc和F1作為評(píng)價(jià)指標(biāo)來(lái)評(píng)估不同方法的性能。從表中可以看出,采用機(jī)器學(xué)習(xí)的算法進(jìn)行預(yù)測(cè)的結(jié)果普遍較差,例如Decision Tree[8]算法,這是因?yàn)楣雀杷阉鞣祷氐慕Y(jié)果中通常包含許多復(fù)雜的內(nèi)容,變量與變量之間的相關(guān)性無(wú)法得到保障,這對(duì)Decision Tree算法是及其不利的。同時(shí)Decision Tree對(duì)噪聲的變化十分敏感,具有極大的不穩(wěn)定性,所以其最終獲得了極低的分類(lèi)準(zhǔn)確率,Acc和F1值僅有0.69和0.81。
表4 不同方法的實(shí)驗(yàn)結(jié)果對(duì)比
RandomForest[35]在GSD數(shù)據(jù)集上的效果略好于Decision Tree算法,其主要原因是RandomForest采用將多個(gè)決策樹(shù)進(jìn)行集成的方式,通過(guò)結(jié)合內(nèi)部不同的樹(shù)的選擇來(lái)綜合評(píng)判提取的特征。這樣緩解了單個(gè)樹(shù)進(jìn)行預(yù)測(cè)所出現(xiàn)的不穩(wěn)定性,可以平衡數(shù)據(jù)內(nèi)部的誤差,在特征很多的數(shù)據(jù)上效果要優(yōu)于DecisionTree算法。RandomForest在GSD數(shù)據(jù)集上表現(xiàn)出優(yōu)于其他機(jī)器學(xué)習(xí)算法的性能,最終準(zhǔn)確率達(dá)到0.76。然而,由于RandomForest在噪聲非常大的分類(lèi)問(wèn)題上仍然會(huì)過(guò)擬合,對(duì)于有不同取值屬性的數(shù)據(jù),取值劃分較多的屬性仍然會(huì)對(duì)其產(chǎn)生較大的影響,所以其最終的準(zhǔn)確率仍遠(yuǎn)遠(yuǎn)低于本文提出的算法。
對(duì)于其他基于機(jī)器學(xué)習(xí)的算法,各有自身的優(yōu)缺點(diǎn),所以最終預(yù)測(cè)的準(zhǔn)確率表現(xiàn)得較為相近。由于基于機(jī)器學(xué)習(xí)的算法較為簡(jiǎn)單,對(duì)文本的深層特征的提取不充分,并且容易缺失其中的語(yǔ)義信息。
MLP[37]是最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),這里只含有一個(gè)隱藏層,整體是一個(gè)三層的結(jié)構(gòu),由于結(jié)構(gòu)過(guò)于簡(jiǎn)單,無(wú)法提取文本向量更深層的特征,并且沒(méi)有利用到上下文信息,所以最終的結(jié)果十分糟糕,僅僅適用于一些簡(jiǎn)單的任務(wù)。所以MLP在本文的任務(wù)中表現(xiàn)出最差的性能,最終的預(yù)測(cè)準(zhǔn)確率僅有0.67。
TextCNN[38]和Bi-LSTM[12]采用兩種不同的方式來(lái)對(duì)輸入序列中的特征進(jìn)行提取,卷積更多地關(guān)注局部信息,然后利用最大池化獲得最重要的影響因子,這對(duì)于保留重要的特征、提高模型效率是有利的。而B(niǎo)i-LSTM是由兩層方向相反的LSTM組合而成,更多地是考慮文本的上下文信息,能夠更多地獲得上下文信息之間的關(guān)聯(lián)。最終TextCNN和Bi-LSTM在本文的任務(wù)中便顯出相近的效果,兩者的分類(lèi)準(zhǔn)確率分別是0.81和0.80。
BERT[17]和VGCN-BERT[40]在所有的方法中表現(xiàn)出僅次于本文方法的性能,這主要得益于其使用了強(qiáng)大的自注意力機(jī)制,BERT中有多個(gè)Transformer模塊[41],通過(guò)自注意力機(jī)制實(shí)現(xiàn)快速并行,能夠關(guān)注到文本序列中重要的信息,并且其強(qiáng)大的全局信息提取能力也是卷積無(wú)法比擬的。而VGCN-BERT通過(guò)將詞嵌入模塊和BERT結(jié)合,接著將不同類(lèi)型的信息通過(guò)注意力機(jī)制層進(jìn)行交互,從而提高性能,最終表現(xiàn)出僅次于本文模型的準(zhǔn)確率。從表中可以看出,這兩個(gè)模型最終的分類(lèi)準(zhǔn)確率都達(dá)到了0.83。
本文首先使用BERT強(qiáng)大的全局信息提取能力來(lái)提取文本序列中的全局語(yǔ)義信息,通過(guò)RNN來(lái)提取編碼后的量化信息作為輔助特征,雙通道的結(jié)構(gòu)使模型可以對(duì)搜索頁(yè)面包含的信息擁有一個(gè)更加全面的把控。接著將BERT提取到的不同層次的信息與輔助特征進(jìn)行融合后送入多尺度特征注意力TextCNN中進(jìn)行局部特征的強(qiáng)化,最終輸出預(yù)測(cè)類(lèi)別。由于BERT在較低的層中對(duì)短語(yǔ)級(jí)信息的提取能力十分優(yōu)秀,中間層編碼了豐富的語(yǔ)言學(xué)特征,高層中包含有大量的語(yǔ)義信息特征。本文將不同層的特征進(jìn)行融合,大大增強(qiáng)了模型對(duì)不同特征的提取能力,有利于模型把握不同層次的語(yǔ)義特征。
本文提出的方法結(jié)合了Transformer與卷積的特性,彌補(bǔ)了當(dāng)前方法只關(guān)注全局或者局部特征的缺點(diǎn),能夠同時(shí)關(guān)注全局上下文特征和局部信息,關(guān)注到深層語(yǔ)義信息,所以最終實(shí)現(xiàn)了最高的分類(lèi)準(zhǔn)確率。本文提出的模型最終在GSD數(shù)據(jù)集中的分類(lèi)準(zhǔn)確率和F1分?jǐn)?shù)分別為0.85和0.91。
為了研究本文提出的模型中不同模塊的實(shí)際效果,本文對(duì)其進(jìn)行了消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表5所示。
表5 消融實(shí)驗(yàn)結(jié)果
組合1: 在完整模型的基礎(chǔ)上去掉參數(shù)特征提取模塊和多尺度特征注意力TextCNN,僅僅使用BERT作為語(yǔ)義信息提取模塊提取查詢(xún)問(wèn)題和返回結(jié)果中的語(yǔ)義信息。由于組合1只能獲取文本之間的語(yǔ)義關(guān)聯(lián)等內(nèi)容,缺少對(duì)關(guān)鍵詞的關(guān)注,所以最終的準(zhǔn)確率是最低的,僅有0.834。
組合2: 在組合1的基礎(chǔ)上加入輔助支路,即參數(shù)特征提取模塊,將兩條支路的特征進(jìn)行融合后經(jīng)過(guò)分類(lèi)器的作用進(jìn)行輸出,此時(shí)由于有更多參考信息輸入,對(duì)主干支路提供了一定的指導(dǎo)作用,最終的準(zhǔn)確率有了一定的提升,為0.841。
組合3: 在組合2的基礎(chǔ)上加入多尺度特征注意力TextCNN,即最終完整的模型結(jié)構(gòu)。多尺度特征注意力TextCNN的加入,使得模型擁有了更加全面的能力,不僅能夠提取文本信息中的語(yǔ)義特征,還能抓取其中的關(guān)鍵詞和短語(yǔ),平衡全局特征和局部特征之間的關(guān)系,有助于模型實(shí)現(xiàn)更好的精度。
本文針對(duì)目前缺少用于判定搜索返回結(jié)果的數(shù)據(jù),采用谷歌搜索引擎制作了一個(gè)數(shù)據(jù)集(GSD),用于對(duì)谷歌搜索返回結(jié)果是否有意義的判定,填補(bǔ)了目前業(yè)界此類(lèi)數(shù)據(jù)集的空缺,為信息過(guò)濾、信息抽取、搜索引擎優(yōu)化等任務(wù)奠定了基礎(chǔ)。同時(shí),本文基于預(yù)訓(xùn)練模型設(shè)計(jì)了一種雙通道模型DCFE來(lái)實(shí)現(xiàn)對(duì)谷歌搜索返回結(jié)果的自動(dòng)判定,利用預(yù)訓(xùn)練語(yǔ)言模型的全局信息感知能力以及卷積結(jié)構(gòu)的局部信息提取能力,將兩者充分結(jié)合,彌補(bǔ)了單一方法的局限性。文中,利用預(yù)訓(xùn)練語(yǔ)言模型BERT提取返回結(jié)果中的不同層次的全局語(yǔ)義信息,利用RNN對(duì)返回結(jié)果中存在的量化信息進(jìn)行編碼以及特征提取來(lái)輔助模型的分類(lèi),最終使用一個(gè)改進(jìn)的多尺度特征注意力TextCNN提取融合后的特征中的局部關(guān)聯(lián)作為分類(lèi)器,輸出最終的判定結(jié)果。實(shí)驗(yàn)結(jié)果表明,本文提出的模型在對(duì)搜索結(jié)果的判定任務(wù)中表現(xiàn)出優(yōu)秀的性能,最終的分類(lèi)準(zhǔn)確率達(dá)到85.74%,有效地證明了本文提出的方法的合理性以及科學(xué)性。
未來(lái)工作中,我們將繼續(xù)致力于網(wǎng)絡(luò)信息的探索。結(jié)合當(dāng)前的研究成果繼續(xù)深入研究,對(duì)搜索引擎返回的大量信息進(jìn)行分析,并且對(duì)模型進(jìn)一步優(yōu)化,使之能夠適應(yīng)多種任務(wù)的需要。