您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何用Siamese和Dual BERT來做多源文本分類,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
使用不同的方式來使用BERT模型。
在NLP中不斷的研究產(chǎn)生了各種各樣的預(yù)訓(xùn)練模型。對(duì)于各種任務(wù),例如文本分類、無監(jiān)督主題建模和問題回答等,不斷的在刷新業(yè)界最佳。其中,最偉大的發(fā)現(xiàn)之一是在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中采用了注意力機(jī)制。這種技術(shù)是所有稱為transformers的網(wǎng)絡(luò)的基礎(chǔ)。他們應(yīng)用注意力機(jī)制來提取關(guān)于給定單詞上下文的信息,然后將其編碼到一個(gè)學(xué)習(xí)到的向量中。
作為數(shù)據(jù)科學(xué)家,我們可以調(diào)用很多transformers架構(gòu),并使用它們對(duì)我們的任務(wù)進(jìn)行預(yù)測(cè)或微調(diào)。在這篇文章中,我們喜歡讀經(jīng)典的BERT,但是同樣的推理也適用于其他所有的transformer結(jié)構(gòu)。我們使用了siamese結(jié)構(gòu),這是一個(gè)雙路BERT,用于多文本輸入的分類。
我們從Kaggle上收集數(shù)據(jù)集。新聞?lì)悇e數(shù)據(jù)集:https://www.kaggle.com/rmisra/news-category-dataset包含從HuffPost上獲得的2012年至2018年的約20萬條新聞標(biāo)題。我們需要根據(jù)兩種不同的文本來源對(duì)新聞文章進(jìn)行分類:標(biāo)題和簡(jiǎn)介。我們總共有40多種不同類型的新聞。為了簡(jiǎn)單起見,考慮到工作流的計(jì)算時(shí)間,我們只使用了8個(gè)類的一個(gè)子組。
我們不應(yīng)用任何預(yù)處理和數(shù)據(jù)清洗,我們讓BERT表演所有的魔法。我們的工作框架是Tensorflow與Huggingface的transformer庫。更詳細(xì)地說,我們使用了原始的Bert模型transformer,它的輸出就是原始的隱藏狀態(tài),沒有任何特定的頭。它可以像Tensorflow模型的子類一樣訪問,并且可以很容易地在我們的網(wǎng)絡(luò)架構(gòu)中進(jìn)行調(diào)優(yōu)。
作為第一個(gè)競(jìng)爭(zhēng)者,我們引入了單個(gè)BERT的結(jié)構(gòu)。它只接收一個(gè)文本輸入,這是兩個(gè)文本源拼接的結(jié)果。這是正常操作:任何模型都可以接收拼接起來的特征作為輸入。對(duì)于transformers,這個(gè)過程將輸入與特殊tokens結(jié)合起來。
BERT期望輸入數(shù)據(jù)以特定的格式:有特殊的tokens來標(biāo)記句子/源文本的開頭([CLS])和結(jié)尾([SEP])。與此同時(shí),tokenization包括將輸入文本拆分為詞匯表中可用的tokens列表。對(duì)詞匯表外的單詞進(jìn)行word-piece的處理,一個(gè)單詞被逐步分解為子單詞,這些子單詞是詞匯表的一部分。該過程可以通過預(yù)先訓(xùn)練好的Huggingface的Tokenizer輕松實(shí)現(xiàn),我們只需要注意填充。
我們最后從源文本的輸入中得到了三個(gè)矩陣(標(biāo)記、掩碼、序列id)。它們是我們的transformers的輸入。在單個(gè)BERT的情況下,我們只有一個(gè)矩陣的元組。這是因?yàn)槲覀兺瑫r(shí)將兩個(gè)文本序列傳遞給我們的tokenizer,這兩個(gè)文本序列被自動(dòng)拼接起來(使用[SEP] token)。
我們的模型結(jié)構(gòu)非常簡(jiǎn)單:transformer直接與我們?cè)谏厦鏄?gòu)建的矩陣相連接。最后,通過平均池操作減少了transformer的最終隱藏狀態(tài)。概率分?jǐn)?shù)是由最終的dense層計(jì)算出來的。
我們的簡(jiǎn)單BERT對(duì)測(cè)試數(shù)據(jù)的準(zhǔn)確率達(dá)到83%。性能報(bào)告在下面的混淆矩陣中。
我們的第二個(gè)結(jié)構(gòu)可以定義為雙路BERT,因?yàn)樗褂昧藘蓚€(gè)不同的transformers。他們有相同的組成,但訓(xùn)練用不同的輸入。第一個(gè)接收新聞標(biāo)題,另一個(gè)接收簡(jiǎn)介。輸入被編碼為兩個(gè)矩陣元組(token, mask, sequence ids),每個(gè)輸入一個(gè)。對(duì)于兩個(gè)數(shù)據(jù)源,我們的transformers的最終隱藏狀態(tài)都使用平均池來聚合。它們被拼接起來,并通過一個(gè)全連接層傳遞。
通過這些設(shè)置,我們可以獲得測(cè)試數(shù)據(jù)84%的準(zhǔn)確度。
我們最后的模型是一種Siamese的結(jié)構(gòu)??梢赃@樣定義它,因?yàn)閮蓚€(gè)不同的數(shù)據(jù)源是在同一個(gè)可訓(xùn)練的transformer結(jié)構(gòu)中同時(shí)傳遞的。輸入矩陣與Siamese BERT的情況相同。對(duì)于這兩個(gè)數(shù)據(jù)源,transformer的最終隱藏狀態(tài)是通過平均操作聚合的。產(chǎn)生的連接在一個(gè)全連接層中傳遞,該層將它們組合在一起并產(chǎn)生概率。
我們的siamese結(jié)構(gòu)在我們的測(cè)試數(shù)據(jù)上達(dá)到82%的準(zhǔn)確度。
我們應(yīng)用BERT結(jié)構(gòu)來執(zhí)行一個(gè)多類分類任務(wù)。我們實(shí)驗(yàn)的附加價(jià)值是使用transformers 以不同的方式處理多個(gè)輸入源。我們從只有一個(gè)源中的所有輸入的經(jīng)典拼接結(jié)構(gòu)開始,并以為模型提供分開的文本輸入作為結(jié)束。雙路BERT和siamese BERT都能夠?qū)崿F(xiàn)良好的性能。由于這個(gè)原因,它們可以被認(rèn)為是經(jīng)典的單變壓器結(jié)構(gòu)的良好替代品。
看完上述內(nèi)容,你們對(duì)如何用Siamese和Dual BERT來做多源文本分類有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。