步驟 2.5:選擇模型

目前,我們已組合資料集,並深入介紹了資料的主要特性。接著,根據步驟 2 中收集的指標,您應該思考該使用哪個分類模型。換句話說,我們會詢問「如何將文字資料提供給預期輸入數字的演算法?」 (這個情況稱為「資料預先處理和向量化」、「我們應該使用哪一種模型?」、「我們該使用哪個設定參數進行模型?」等問題。

經過數十年的研究,我們得以大量使用資料預先處理和模型設定選項。不過,我們相當提供一系列可行的選項,大幅增加手邊的複雜度和特定問題的範圍。由於最佳選項可能並不明顯,因此簡單的解決方案,就是嘗試各種可能的選項,透過直覺學修剪部分選項。不過,所耗費的成本相當高。

在本指南中,我們會大幅簡化選取文字分類模型的程序。針對特定資料集,我們的目標是找出可達到最大準確率的演算法,同時盡量縮短訓練所需的運算時間。我們針對不同類型的問題 (尤其是情緒分析和主題分類問題) 進行了大量實驗 (約 45 萬次),使用 12 個資料集,在不同資料預先處理技術和不同模型架構之間為每個資料集交換。這有助於我們找出影響最佳選項的資料集參數。

以下示範模型選擇演算法和流程圖。如果您對這些詞彙的意義尚未瞭解完畢,請不要擔心,本指南中的以下章節會詳細解釋。

資料準備和模型建構的演算法

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

在下方的流程圖中,黃色方塊表示資料和模型準備程序。灰色方塊和綠色方塊代表我們針對各個程序判定的選項。綠色方塊表示每個程序的建議選項。

您可以將這個流程圖當做建構第一個實驗的起點,因為這種做法能以較低的運算成本提供準確的準確度。您可以在後續的疊代作業中持續改善初始模型。

文字分類流程圖

圖 5:文字分類流程圖

這張流程圖回答了兩個重要問題:

  1. 這時應使用哪一種學習演算法或模型?

  2. 我們如何準備資料,才能有效率地瞭解文字和標籤之間的關係?

第二個問題的答案取決於第一個問題的答案;我們處理提供資料模型的方式取決於我們選擇的模型。模型大致可分為兩種類別:使用字詞排序資訊的模型 (序列模型),以及只顯示文字為「袋子」(組合) 的文字 (N 公克模型)。序列模型的類型包括卷積類神經網路 (CNN)、循環類神經網路 (RNN) 及其變體。N 元模型的類型包括邏輯迴歸簡易的多層感知器 (MLP 或完全連結的類神經網路)、漸層增強樹狀結構支援向量機器

我們從實驗中發現,「樣本數量」(S) 與「每個樣本的字詞數」(W) 的比率會與模型成效良好的關聯。

當這個比率的值較小 (<1500) 時,系統會將 n-gram 輸入為小型的多層感知器 (也就是所謂的選項 A) 或依序執行效能較佳的模型。MLP 易於定義及理解,而且運算時間比序列模型少許多。當這個比率的值較大 (>= 1500) 時,請使用序列模型 (Option B)。在以下步驟中,您可以略過此步驟,根據所選範例/字詞/單取樣比例選擇的模型類型 (標示為 AB)。

以我們的 IMDb 審查資料集為例,樣本數量/每個樣本的比率約為 144。也就是說,我們會建立 MLP 模型。