雲栖号資訊:【 點選檢視更多行業資訊】
在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!
本文介紹了在模型中插入 Transformer 的不同方法。
人們對自然語言處理的不斷研究催生了各種預訓練模型的發展。在各種任務(如文本分類、無監督的主題模組化和問題解答等)的最新結果方面,通常都有越來越多的改進,這是一個典型的現象。
最大的發現之一是在神經網絡架構中采用了注意力機制(attention mechanics)。這種技術是所有稱為 Transformer 的網絡的基礎。它們應用注意力機制來提取關于給定單詞上下文的資訊,然後将其編碼到學習向量中。
作為資料科學家,我們可以産生并使用許多 Transformer 架構來對我們的任務進行預測或微調。在本文中,我們盡情享受經典的 BERT,但同樣的推理也可以應用到其他所有的 Transformer 架構中。我們的研究範圍是在雙(dual)架構和孿生(siamese)架構中使用 BERT,而不是将其作為多文本輸入分類的單一特征提取器。
資料
我們從 Kaggle 收集了一個資料集: News Category Dataset (新聞分類資料),它包含了 2012 年到 2018 年從 HuffPost 獲得的大約 20 萬條新聞标題。我們的範圍是根據兩種不同的文本來源對新聞文章進行分類:标題和簡短描述。總共有 40 多條不同類型的新聞。為簡單起見,并考慮到我們工作流的計算時間,是以我們隻使用了 8 個類的子組。
我們不應用任何種類的預處理清晰;我們要讓 BERT 來“完成所有的魔法”。我們的工作架構是 TensorFlow 和強大的 Huggingface Transformer 庫。更詳細地說,我們利用“裸”BERT 模型 Transformer,它輸出原始的隐藏狀态,而且上面沒有任何特定頭。它可以像 TensorFlow 模型子類一樣通路,并且可以很容易地将其引入我們的網絡架構中進行微調。
單 BERT
作為第一個競争者,我們引入了一個單 BERT 架構。它隻接受一個文本輸入,這是我們兩個文本源連接配接的結果。這就是常态:任何模型都可以接受連接配接特性的輸入。對于 Transformer 來說,将輸入與特殊特征符(special tokens)相結合提升了這一過程。
BERT 需要特定格式的輸入資料:有特殊的特征符來标記句子 / 文本源的開頭 ([CLS] [SEP])。同時,标記化涉及到将輸入文本分割成詞彙庫中可用的特征符清單。詞彙表外的單詞用 WordPiece 技術進行處理;其中一個單詞被逐漸拆分成屬于詞彙表的子詞。這一過程可以通過 Huggingface 預訓練的詞法分析器(Tokenizer)輕松完成,我們隻需注意做好 padding 即可。
我們以每個文本源的三個矩陣(token、mask、sequence id)結束。它們作為 Transformer 的輸入。在單 BERT 的情況下,我們隻有一個矩陣元祖。這是因為我們同時将兩個文本序列傳遞給詞法分析器,這兩個文本序列會自動連接配接起來 (用 [SEP] 标記)。
我們的模型架構非常簡單:将上面建構的矩陣直接饋入 Transformer。最後,通過平均池操作減少了 Transformer 的最終隐藏狀态。機率分數是由最後緻密層計算出來的。

在我們的測試資料上,我們的單 BERT 達到了 83% 的準确率。性能報告請見下面的混淆矩陣中。
雙 BERT
我們的第二個架構可以定義為雙 BERT,因為它使用了兩個不同的 Transformer。它們有相同的組成,但使用了不同的輸入進行訓練。第一個 Transformer 接收新聞标題,而另一個接受簡短文本描述。輸入被編碼為始終産生兩個矩陣(token、mask 和 sequence id),每個輸入都有一個。對于這兩個資料源,我們的 Transformer 的最終隐藏狀态都是通過平均池來減少的。它們連結在一起,并通過一個完全連接配接層。
孿生 BERT
我們的最後一種模型是一種孿生式架構。它可以這樣定義,因為兩個不同的資料源在同一個可訓練的 Transformer 架構中同時傳遞。輸入矩陣與雙 BERT 的情況相同。對于兩個資料源,我們的 Transformer 的最終隐藏狀态是通過平均操作進行池化的。所得到的的結果,在一個完全連接配接層中傳遞,該層将它們進行組合并産生機率分數。
在我們的測試資料上,孿生式架構達到了 82% 的準确率。
總結
在本文中,我們應用 BERT 架構進行了多類分類任務。我們這個實驗的附加價值在于,它以各種方式使用 Transformer 來處理多個輸入源。我們從一個源中的所有輸入的經典連接配接開始,然後在輸入模型時保持文本輸入的分離。提出的雙 BERT 和孿生變體能夠獲得良好的性能。是以,它們可以被認為是經典單 Transformer 架構的良好替代方案。
參考資料
Kaggle: Two BERTs are better than one
Kaggle: Bert-base TF2.0
作者介紹:
Marco Cerliani,Lutech 統計學家、黑客和資料科學家。
【雲栖号線上課堂】每天都有産品技術專家分享!
課程位址:
https://yqh.aliyun.com/zhibo立即加入社群,與專家面對面,及時了解課程最新動态!
【雲栖号線上課堂 社群】
https://c.tb.cn/F3.Z8gvnK
原文釋出時間:2020-05-28
本文作者: Marco Cerliani
本文來自:“
InfoQ”,了解相關資訊可以關注“
”