跳轉到

6.5 Transformer Text Classification

範例程式:Open In Colab

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 或預訓練語言模型。