用Siamese和Dual BERT來做多源文本分類


轉載來源:https://mp.weixin.qq.com/s/cyNcVNImoCOmTrsS0QVq4w

導讀:使用不同的方式來使用BERT模型。

alt
在NLP中不斷的研究產生了各種各樣的預訓練模型。對於各種任務,例如文本分類、無監督主題建模和問題回答等,不斷的在刷新業界最佳。其中,最偉大的發現之一是在神經網絡結構中採用了注意力機制。這種技術是所有稱爲transformers的網絡的基礎。他們應用注意力機制來提取關於給定單詞上下文的信息,然後將其編碼到一個學習到的向量中。

作爲數據科學家,我們可以調用很多transformers架構,並使用它們對我們的任務進行預測或微調。在這篇文章中,我們喜歡讀經典的BERT,但是同樣的推理也適用於其他所有的transformer結構。我們使用了siamese結構,這是一個雙路BERT,用於多文本輸入的分類。

數據

我們從Kaggle上收集數據集。新聞類別數據集:https://www.kaggle.com/rmisra/news-category-dataset包含從HuffPost上獲得的2012年至2018年的約20萬條新聞標題。我們需要根據兩種不同的文本來源對新聞文章進行分類:標題和簡介。我們總共有40多種不同類型的新聞。爲了簡單起見,考慮到工作流的計算時間,我們只使用了8個類的一個子組。

我們不應用任何預處理和數據清洗,我們讓BERT表演所有的魔法。我們的工作框架是TensorflowHuggingface的transformer庫。更詳細地說,我們使用了原始的Bert模型transformer,它的輸出就是原始的隱藏狀態,沒有任何特定的頭。它可以像Tensorflow模型的子類一樣訪問,並且可以很容易地在我們的網絡架構中進行調優。

單個BERT

作爲第一個競爭者,我們引入了單個BERT的結構。它只接收一個文本輸入,這是兩個文本源拼接的結果。這是正常操作:任何模型都可以接收拼接起來的特徵作爲輸入。對於transformers,這個過程將輸入與特殊tokens結合起來。

BERT期望輸入數據以特定的格式:有特殊的tokens來標記句子/源文本的開頭([CLS])和結尾([SEP])。與此同時,tokenization包括將輸入文本拆分爲詞彙表中可用的tokens列表。對詞彙表外的單詞進行word-piece的處理,一個單詞被逐步分解爲子單詞,這些子單詞是詞彙表的一部分。該過程可以通過預先訓練好的Huggingface的Tokenizer輕鬆實現,我們只需要注意填充。

我們最後從源文本的輸入中得到了三個矩陣(標記、掩碼、序列id)。它們是我們的transformers的輸入。在單個BERT的情況下,我們只有一個矩陣的元組。這是因爲我們同時將兩個文本序列傳遞給我們的tokenizer,這兩個文本序列被自動拼接起來(使用[SEP] token)。

我們的模型結構非常簡單:transformer直接與我們在上面構建的矩陣相連接。最後,通過平均池操作減少了transformer的最終隱藏狀態。概率分數是由最終的dense層計算出來的。
alt
我們的簡單BERT對測試數據的準確率達到83%。性能報告在下面的混淆矩陣中。
alt

雙路BERT

我們的第二個結構可以定義爲雙路BERT,因爲它使用了兩個不同的transformers。他們有相同的組成,但訓練用不同的輸入。第一個接收新聞標題,另一個接收簡介。輸入被編碼爲兩個矩陣元組(token, mask, sequence ids),每個輸入一個。對於兩個數據源,我們的transformers的最終隱藏狀態都使用平均池來聚合。它們被拼接起來,並通過一個全連接層傳遞。
alt
通過這些設置,我們可以獲得測試數據84%的準確度。
alt

SIAMESE BERT

我們最後的模型是一種Siamese的結構。可以這樣定義它,因爲兩個不同的數據源是在同一個可訓練的transformer結構中同時傳遞的。輸入矩陣與Siamese BERT的情況相同。對於這兩個數據源,transformer的最終隱藏狀態是通過平均操作聚合的。產生的連接在一個全連接層中傳遞,該層將它們組合在一起併產生概率。
alt
我們的siamese結構在我們的測試數據上達到82%的準確度。
alt

總結

在這篇文章中,我們應用BERT結構來執行一個多類分類任務。我們實驗的附加價值是使用transformers 以不同的方式處理多個輸入源。我們從只有一個源中的所有輸入的經典拼接結構開始,並以爲模型提供分開的文本輸入作爲結束。雙路BERT和siamese BERT都能夠實現良好的性能。由於這個原因,它們可以被認爲是經典的單變壓器結構的良好替代品。

英文原文:https://towardsdatascience.com/siamese-and-dual-bert-for-multi-text-classification-c6552d435533

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章