AutoML Natural Language 新手指南

簡介

想像貴公司的網站上有一份聯絡表單。您每一天都會收到大量表單訊息,其中許多訊息是可以處理的,但所有訊息同時湧入,很容易拖慢處理速度,這都是因為要由不同員工負責處理不同訊息類型的緣故。如果能運用自動化系統分類訊息,對正確的處理人員顯示正確的留言,那就太好了。

分類圖片

您需要運用特定系統審視留言,並決定留言性質屬於投訴、稱讚過往服務、有意深入瞭解貴公司、預約時間,抑或是想與公司建立合作關係。

為何機器學習 (ML) 是適合解決這個問題的工具?

傳統程式設計要求程式設計人員為電腦指定逐步操作說明以供遵循,不過這種方法很快就不再適用了。客戶的留言內容廣泛涉及各種字彙與結構,組合之多,難以運用一組簡單的規則進行擷取。如果您嘗試建立手動篩選條件,很快就會發現自己無法將絕大部分的客戶留言分類,因此您需要一個能夠歸納各類留言的系統。在這種一連串特定規則必定會急速擴展的情境中,您需要的是能夠透過樣本進行學習的系統,而機器學習系統恰好非常適合用來解決這個問題。

Natural Language API 或 AutoML Natural Language 是適合我的工具嗎?

Natural Language API 能夠探索文字內容中的語法、實體和情緒,並將文字分類到一組預先定義的類別。如果文字包含您想要分類的新聞文章或其他內容,或者如果您想瞭解樣本的情緒,不妨試試 Natural Language API。不過,若您的文字樣本不太符合 Natural Language API 可用的任何情緒或產業主題分類機制,而您想要改用自己的標籤,則不妨試試自訂敏感內容類別,看看是否符合您的需求。

比較 Natural Language API 與 AutoML Natural Language

嘗試使用 Natural Language API 開始使用 AutoML

AutoML Natural Language 的機器學習包括哪些步驟?

機器學習是指使用資料訓練演算法,從而達到理想的結果。演算法及訓練方法的具體細節因用途而異。機器學習具有許多不同的子類別,分別用來解決不同的問題,同時也必須遵守不同的限制。您可以運用 AutoML Natural Language 執行監督式學習工作,也就是訓練電腦利用加上標籤的資料來辨識模式。我們可以透過監督式學習來訓練自訂模型,使其能夠辨識文字中需要留意的內容。

資料準備

為了運用 AutoML Natural Language 訓練自訂模型,您必須為想要分類的文字項目 (輸入) 類型提供加上標籤的樣本,並且提供您希望機器學習系統預測的類別或標籤 (答案)。

評估用途

統整資料集時,一律從用途的角度出發。您可以從以下問題開始:

  • 您想要達到的成果是什麼?
  • 您需要辨識哪些類別才能達到這項成果?
  • 人類能否辨識這些類別?雖然 AutoML Natural Language 能處理的類別,遠勝過人類在任何時候所能記憶及指派的數量,但如果人類無法辨識某個特定的類別,AutoML Natural Language 也很難辦到。
  • 哪種樣本最符合您的系統將要分類的資料類型與範圍?

以人為本的機器學習技術是 Google 機器學習產品的核心原則,這種方法強調負責任的 AI 做法,公平性也是其中一個考量。每談到種族、收入、性傾向、宗教、性別,以及其他由古至今都與歧視和邊緣化相關的議題時,總不免會出現對於某些人群的不公或偏見,而機器學習公平性的主要目標便是在這樣的不公與偏見影響到演算法系統或演算法輔助的決策制定時,瞭解此現象的成因並加以防範。如需詳細資訊,請參閱我們的指南,以及下列準則中註明「注意公平性」✽ 的地方。逐一參閱說明統整資料集準則時,建議您根據自己的用途思考機器語言的公平性。

取得資料

確認所需資料後,您需要設法找到資料的來源。您可以先考慮貴機構收集的所有資料,或許會發現您本來就在收集訓練模型所需的資料。如果您沒有所需資料,可以手動取得資料或委外由第三方供應商負責。

每種類別應包含足夠的有標籤樣本

AutoML Natural Language 訓練的每個類別/標籤至少需要 10 份文字樣本。每個類別/標籤的優質樣本越多,成功辨識標籤的可能性就越高;一般而言,您在訓練過程中能夠運用的有標籤樣本越多,模型的成效就會越好。每個標籤的目標訂在至少 1000 個樣本。

平均分配每個類別的樣本

每個類別的訓練樣本數量應大致相似,這一點相當重要。即使您擁有某個標籤的大量資料,我們仍然建議您平均分配每個標籤的資料。如要瞭解箇中原因,不妨想像您用來建構模型的客戶留言有 80% 都是估價要求。若標籤分配不均,模型的學習結果很有可能會變成最好一律向您告知客戶留言為估價要求,而不要冒險嘗試預測較少見的標籤。這就像是做所有正確答案幾乎都是「C」的單選測驗題一般:領悟力高的作答者很快就會發現一律回答「C」即可,根本不需要看題目。

我們瞭解不見得每次都能為各個標籤取得數量相當的樣本。部分類別可能很難找到優質且不帶偏見的樣本。在這類的情況中,您可以按照以下經驗法則:在樣本數最少的標籤與樣本數最多的標籤之間,前者的樣本數至少要達到後者的 10%。如果數量最多的標籤有 10,000 個樣本,則數量最少的標籤至少要有 1,000 個樣本。

掌握問題空間的變異性

基於類似的理由,請盡量讓您的資料能夠掌握問題空間的變化與多樣性。如果您能提供較廣泛的樣本,模型歸納新資料的能力就越佳。假設您想按主題分類有關消費性電子產品的文章。您提供的品牌名稱和技術規格越多,模型越容易理解文章的主題,即使文章內容所探討的品牌根本不屬於訓練集的範圍也一樣。您也可以考慮針對不符合任何既定標籤的文件使用「none_of_the_above」標籤來分類,以進一步提升模型效能。

將資料與理想的模型輸出進行比對

文字和輸出

根據您打算進行預測的文字,找出相似樣本。如果您想要分類有關吹製玻璃的社交媒體貼文,卻使用以吹製玻璃資訊網站訓練的模型,則模型的效能可能不甚理想,因為兩者的字彙和風格可能相差懸殊。在理想情況下,訓練樣本應為實際資料且來自您打算使用模型進行分類的資料集。

思考 AutoML Natural Language 如何運用資料集建立自訂模型

您的資料集包含訓練、驗證和測試集。如果不指定組別 (請參閱準備資料),AutoML Natural Language 會自動使用 80% 的內容文件進行訓練、10% 進行驗證,另外 10% 則用於測試。

訓練集、驗證集和測試集

訓練集

絕大多數的資料都該包含在訓練集中。這是您的模型在訓練階段會「看見」的資料:訓練集用於學習模型的參數,也就是神經網路節點之間的連結權重。

驗證集

驗證集又稱為「dev」集,也會在訓練過程中派上用場。模型學習架構在訓練過程的每個疊代作業期間合併資料時,會利用模型處理驗證集的成效來調整模型的超參數,也就是指定模型結構的變數。如果您試著使用訓練集調整超參數,可能會導致模型過度集中在您的訓練資料上,導致難以歸納與模型不完全一致的樣本。使用稍微新穎的資料集微調模型結構可以提升模型的歸納效能。

測試集

訓練過程中並不會用到測試集。在模型完成所有訓練後,我們會將測試集做為全新的考驗來測試模型。模型處理測試集的成效可以讓您充分瞭解模型處理實際資料時的表現如何。

手動拆分

您也可以自行拆分資料集。如要進一步控管整個程序,或是確定要在模型訓練生命週期的某個部分加入特定樣本,那麼以手動的方式拆分資料將會是不錯的做法。

 

準備您要匯入的資料

決定好要手動或自動進行資料分組後,可以透過三種方式在 AutoML Natural Language 中新增資料:

  • 您可以將文字樣本分類,儲存在對應各標籤的資料夾,然後匯入這些資料。
  • 您可以自電腦或 Google Cloud Storage 匯入採用 CSV 格式並內嵌標籤的資料,如資料格式設定指南所述。若要手動進行資料集分組,您必須選擇此選項,並據以設定 CSV 的格式。若要瞭解如何在 CSV 中指定組別,請參閱我們的文件
  • 若您的資料尚未加上標籤,您也可以上傳沒有標籤的文字樣本,再使用 AutoML Natural Language UI 逐一套用標籤。

評估

模型訓練完畢後,會顯示一份模型效能匯總資料。按一下 [evaluate] (評估) 或 [see full evaluation] (查看完整評估),即可瀏覽詳細分析。

開始評估模型之前該注意哪些事項?

模型除錯的重點在於針對資料進行除錯,而非針對模型。在您評估將模型推送至實際工作環境前後的效能時,如果模型開始出現異常行為,請回頭檢查資料,確認是否有需要改進之處。

我可以在 AutoML Natural Language 中執行哪幾種分析?

在 AutoML Natural Language 評估部分,您可以透過模型的測試樣本輸出內容及機器學習一般指標來評估自訂模型的效能。本節將探討以下各個概念的意義。

  • 模型輸出
  • 分數門檻
  • 真陽性、真陰性、偽陽性以及偽陰性
  • 精確度和喚回度
  • 精確度/喚回度曲線
  • 平均精確度

如何解讀模型的輸出資料?

AutoML Natural Language 會從測試資料提取樣本,為您的模型帶來全新考驗。模型會針對每個樣本輸出一串數字,用於表達每個標籤與該樣本的相關程度。數字越大,表示模型判斷標籤適用於該文件的信心就越高。

什麼是分數門檻?

我們可以設定分數門檻,將這些機率轉換成二進位的「開」/「關」值。分數門檻是指模型指定測試項目的類別時必須達到的信賴水準。UI 中的分數門檻滑桿是一種視覺工具,用於測試不同門檻在資料集中能夠發揮的作用。在上述範例中,若將所有類別的分數門檻均設為 0.8,系統會指派「Great Service」(優良服務) 和「Suggestion」(建議),但不會指派「Info Request」(資訊要求)。若您的分數門檻偏低,模型會將更多的文字項目進行分類,但在處理過程中會出現將幾個文字項目分類錯誤的風險。如果分數門檻偏高,模型會將較少的文字項目進行分類,但是將文字項目分類錯誤的風險也較小。您可以在 UI 中調整每個類別的門檻來實驗不同的情況。然而,在實際工作環境使用模型時,則必須採用您認為效能最高的門檻。

可信度門檻

何謂「真陽性」、「真陰性」、「偽陽性」、「偽陰性」?

套用分數門檻後,模型所做的預測分為以下四種類別的其中一種。

可信度類別說明

您可以使用這些類別計算精確度和喚回度,這兩個指標能協助我們衡量模型效益。

什麼是精確度和喚回度?

精確度和喚回度能協助我們理解模型擷取資訊的效能,以及模型遺漏了多少資訊。精確度可以讓我們知道,在所有分配到標籤的測試樣本中,有多少樣本確實需要使用該標籤來分類。喚回度則可讓我們知道,在所有應該分配到該標籤的測試樣本中,有多少樣本確實已分配到該標籤。

進行最佳化時該以精確度還是喚回度為準?

我們建議您按照實際用途來決定該以精確度或喚回度來進行最佳化。我們舉下列兩種用途為例,讓您瞭解可透過什麼樣的方式做出這項決策。

用途:急件

假設您要建立一個能按照緊急程度排列文件優先順序的系統。

在這個情況中,錯標為急件的非急件就是偽陽性。使用者可以取消其緊急標示,然後繼續執行。

在這個情況中,系統未替某個急件加上緊急標記就是偽陰性,問題可能會因此而產生!

此時建議您根據喚回度進行最佳化,這項指標會針對所有已經完成的預測衡量遺漏數量。模型的喚回度越高,越有可能標示相關程度不高的樣本,若類別包含的訓練資料稀少,就非常適合使用喚回度。

用途:篩選垃圾郵件

假設您要建立一個能夠自動篩選垃圾郵件並保留非垃圾郵件的系統。

在此範例中,未篩選出來而仍出現在收件匣中的垃圾郵件就是偽陰性。通常這種情況只是稍微令人厭煩。

同時,若將電子郵件錯標為垃圾郵件,並將其移出收件匣,這種情況就屬於偽陽性。若是重要電子郵件,可能會對使用者不利。

此時建議您依據精確度進行最佳化。這項指標會針對所有已完成的預測衡量其正確程度。模型的精確度越高,只為最相關樣本加上標籤的可能性越高,若您的類別在訓練資料中屬於共同類別,非常適合採用這種方式。

如何使用混淆矩陣?

我們可以使用混淆矩陣比較模型之於每個標籤的效能。在理想模型中,對角線上的所有值都會偏高,而其他值則會偏低。這表示能夠正確識別所需類別。若有其他任何值偏高,我們就能瞭解模型將測試項目分類錯誤的原因。

混淆矩陣

如何解讀精確度-喚回度曲線?

精確度/喚回度曲線

您可以運用分數門檻工具瞭解您所選的分數門檻對精確度和喚回度有何影響。拖曳分數門檻列上的滑桿時,您會看見新的門檻對應到精確度-喚回度取捨曲線上的哪一個位置,也會看見該門檻對精確度和喚回度分別造成什麼樣的影響 (若是多類別模型,圖上的精確度和喚回度代表唯一用於計算精確度和喚回度指標的標籤,在我們傳回的標籤集中是分數最高的標籤)。這可以協助您在偽陽性和偽陰性之間找到良好的平衡點。

選擇模型整體可接受的門檻之後,可以按一下各個標籤,查看門檻落在其標籤精確度-喚回度曲線上的哪一個位置。在某些情況下,可能有少數標籤出現許多不正確的預測,這種情況可以協助您決定選擇根據標籤自訂且以類別為準的門檻。例如,假設您在查看客戶留言資料集,留意到門檻 0.5 用於每一種留言類型都能發揮合理的精確度和喚回度,卻唯獨「Suggestion」(建議) 例外,或許是因為這個類別非常籠統。於是,這個類別就會出現相當多的偽陽性。在此情況下,您可以決定在呼叫預測所用的敏感內容類別時,只有「Suggestion」(建議) 這一項採用 0.8 的門檻。

何謂平均精確度?

精確度和喚回度曲線下面積是相當實用的模型準確率指標。這項指標會衡量模型使用所有分數門檻的執行效益。在 AutoML Natural Language 中,這項指標稱為「平均精確度」。這項分數越接近 1.0,代表模型的測試集表現效能越好;若模型隨機猜測每個標籤,平均精確度大約會是 0.5。

測試模型

AutoML Natural Language 會自動使用 10% 的資料 (如果您自行選擇資料組別,則為任何您選擇使用的百分比) 來測試模型,您可以透過「Evaluate」(評估) 頁面瞭解模型使用該測試資料的效能。不過,假設您想針對模型進行例行性檢查,可以透過幾種方式進行。最簡單的方式是在「Predict」(預測) 頁面的文字方塊中輸入文字樣本,然後查看模型為樣本選擇的標籤。希望結果與您的預期相符。請根據您預期會收到的留言類型,各試幾個樣本看看。

若您想改為在自己的自動化測試中使用模型,一樣可以透過「Predict」(預測) 頁面瞭解如何利用程式輔助呼叫模型。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
AutoML Natural Language
需要協助嗎?請前往我們的支援網頁