6.5 Transformer Text Classification
Transformer 使用 self-attention 同時觀察句子中不同 token 之間的關係。本篇不使用大型預訓練模型,而是從 Keras layer 建立一個小型 Transformer encoder,示範文字分類的核心元件。
1. 學習目標
本篇聚焦如何用 Transformer encoder 做文字分類。它適合用來理解 token embedding、position embedding、multi-head attention 與 feed-forward block 如何組成分類模型。若要追求最佳效果,實務上常會使用預訓練模型;但本篇重點是看懂基本結構。
2. Transformer 分類流程
raw text -> TextVectorization -> token embedding + position embedding
-> Transformer encoder -> pooling -> Dense softmax
Token embedding 表示每個詞,position embedding 補上詞的位置資訊,self-attention 則讓每個 token 可以參考句子中其他 token。
3. 實作流程
Notebook 使用客服訊息三分類資料,先將文字轉成固定長度 token index,再建立小型 Transformer encoder block。模型訓練後會用 test accuracy、confusion matrix、classification report 與新句子預測檢查效果。
4. 如何套用自己的資料?
換成自己的資料時,先確認分類標籤與文字欄位。短句任務可用較小的 output_sequence_length;長文件需要更長序列,但計算成本也會上升。若資料量不大,小型 Transformer 容易過擬合,建議和 LSTM、CNN baseline 一起比較。
5. 小結
Transformer text classification 的核心是 self-attention。從小型 encoder 開始,可以先理解結構與資料流程,再延伸到更完整的 Transformer 或預訓練語言模型。