結構化預測是什麼?逐詞標註跟分類有什麼不同?
某企業規劃導入 AI 技術支援多項資料分析任務中,下列何種屬於結構化預測(Structured Prediction)問題?
一家企業規劃導入 AI 技術,評估多項資料分析任務,想找出哪一種屬於結構化預測(Structured Prediction)問題。
問你:下面哪一種資料分析任務屬於結構化預測問題?
一句話總結
結構化預測的輸出是「有內部結構的序列」,逐詞標註輸入一個句子、輸出每個詞的標籤序列,各標籤間相互依賴,是最典型的結構化預測問題。
先感受問題:一個問題一個答案 vs. 一個句子一排答案
想像你是「語音科技」公司的 AI 規劃師。你們的語音轉文字系統產出了一段文字:「台積電昨天在台北宣布了新的投資計畫。」
現在你有幾個任務可以對這段文字做 AI 分析:
- 任務 A:這段文字是「正面新聞」還是「負面新聞」?→ 輸出一個類別
- 任務 B:這段文字說的事件發生在哪一年?→ 輸出一個數值
- 任務 C:這段文字裡,每一個字是什麼詞性、屬於哪個實體類別?→ 輸出跟輸入等長的標籤序列
任務 C 的輸出長這樣:「台積電 = 公司名稱 / 昨天 = 時間 / 在 = 介系詞 / 台北 = 地名 / 宣布 = 動詞 / 了 = 助詞 / 新的 = 形容詞 / 投資計畫 = 名詞」。
一個句子 8 個詞,輸出 8 個標籤,而且標籤之間有關聯(「昨天」後面接「在台北」,所以「昨天」是時間而不是形容詞)。這就是結構化預測。
為什麼傳統分類不夠用的五個原因
- 輸出長度不固定:分類模型輸出固定個類別,但詞性標注要輸出跟輸入一樣長的序列,長度隨輸入變化
- 輸出各位置相互依賴:「昨天」的標籤受到「在台北」的影響,傳統分類對每個位置獨立預測,無法捕捉這種上下文關係
- 輸出需要全局一致性:整個句子的標籤序列要在語法上合理,不能「台積電」和「台北」都標為「公司名稱」
- 評估方式不同:分類只看「對幾個」,結構化輸出要看「整個序列是否正確」,評估維度更複雜
- 解碼(Decoding)問題:在所有可能的輸出序列中找最好的那個,搜索空間是指數級的,需要專門的解碼算法(如 Viterbi)
「語音科技」的初版系統用普通分類器對每個詞獨立預測詞性,結果很多語法上不合理的標籤序列(例如連續三個動詞),客戶很不滿意。
結構化預測如何看待輸出
結構化預測的核心思維是:把「整個輸出序列」當作一個整體來優化,而不是對每個位置獨立預測。
對「語音科技」的詞性標注任務,結構化預測模型(如 CRF 或 Bi-LSTM-CRF)在預測「昨天」的標籤時,同時考慮左邊「台積電」(公司名稱,後面通常跟時間或地點)和右邊「在台北」(地名前面通常是時間),因此才給出正確的「時間」標籤。
輸出是完整的序列,每個標籤不只是「最高機率的類別」,而是「在整個序列上最合理的組合」。這讓系統輸出的標注在語法上總是一致的。
這就是選項 D 講的:為語音內容轉換後的文字進行逐詞標註。輸入一個詞序列,輸出一個標籤序列,標籤間有結構性依賴,是結構化預測的典型形式。
技術版:結構化預測在 NLP 中的位置與應用
結構化預測(Structured Prediction)是機器學習的一個分支,專門處理「輸出有複雜內部結構」的問題,與普通的分類(輸出單一類別)和迴歸(輸出單一數值)相對。
典型的結構化預測任務:
- 詞性標注(Part-of-Speech Tagging):為每個詞標上名詞/動詞/形容詞等
- 命名實體識別(Named Entity Recognition, NER):標記人名、地名、機構名
- 句法分析(Parsing):輸出整個句子的語法樹結構
- 機器翻譯(Machine Translation):輸入英文序列,輸出中文序列
- 影像分割(Image Segmentation):為每個像素預測所屬類別
為什麼逐詞標注是結構化預測:一個 10 字的句子,每個字有 50 種可能標籤,所有可能的輸出組合是 50 的 10 次方。結構化預測不是對 50^10 個可能一一評分,而是用動態規劃(Dynamic Programming)高效找出整體最優的序列。
實務誰在用:法律文件中標記條文和實體、醫療病歷中標記藥物名稱和症狀、新聞中標記人名和地名,都是結構化預測的實際應用。
為什麼出題者要考這題:AI 應用規劃師需要能區分不同 AI 任務的輸出型態。選對模型架構的前提是正確識別任務類型:分類、迴歸、序列生成、還是結構化預測,每種需要不同的建模方式和評估指標。
為什麼其他選項是錯的
A判斷一封電子郵件是否為垃圾郵件
輸入一封郵件,輸出「垃圾」或「非垃圾」的判斷結果。
這是二元分類(Binary Classification)問題,輸出是一個單一的類別標籤(是/否),不是具有內部結構的輸出。輸入整封郵件,輸出一個決定,屬於典型的監督式分類任務。
不清楚「結構化」這個詞指的是輸出結構,而不是任務場景結構的人。結構化預測的「結構」是指輸出的形式(序列、樹、圖),不是說任務描述有多複雜。
B預測未來一週的產品需求量
輸入歷史銷售資料,輸出未來 7 天每天的需求數字。
這是時序預測(Time Series Forecasting)或迴歸(Regression)問題。雖然輸出是一個序列(7 個數值),但這 7 個數值是獨立的時間點預測,不涉及輸出各元素之間的標籤依賴結構。結構化預測強調的是輸出中各元素的「語法一致性約束」,時序預測沒有這種約束。
看到「一週 7 天 = 序列」就以為是結構化預測的人。時序預測的輸出也是序列,但每個時間點可以獨立預測,不需要考慮輸出元素之間的結構依賴。
C預測客戶是否可能流失
輸入顧客的行為資料,輸出「會流失」或「不會流失」的概率或類別。
這是二元分類問題,輸出是單一的類別標籤或機率值。顧客流失預測的輸出「0.87 的機率會流失」是一個數字,不是具有內部結構的序列輸出。
把「複雜的輸入特徵」誤解成「結構化輸出」的人。顧客流失模型的輸入可能包含幾百個特徵(使用次數、消費金額、投訴次數……),但輸出只是一個機率,輸入複雜不等於輸出是結構化的。
同個考點下次怎麼變形
命名實體識別(NER)和情感分析,哪個是結構化預測?
兩個都是 NLP 任務,應該差不多?
命名實體識別(NER)是結構化預測:輸入「台積電在台北發布新產品」,輸出每個詞的實體類別(台積電=公司、台北=地名、新產品=非實體),輸出序列長度等於輸入,各標籤間有依賴。情感分析是普通分類:輸入整段文字,輸出「正面/負面/中性」一個類別,是單一輸出。
機器翻譯(把英文翻成中文)屬於哪種 AI 任務類型?
輸入英文輸出中文,感覺是分類?
機器翻譯屬於序列到序列(Seq2Seq)任務,也是結構化預測的一種。輸出是一個中文序列,輸出長度不固定(不一定跟輸入一樣長),且輸出中每個詞的選擇都受到前後文影響。這是比詞性標注更複雜的結構化輸出。
影像語義分割(Semantic Segmentation)和影像分類(Image Classification)哪個是結構化預測?
都是影像任務,有什麼不同?
影像語義分割是結構化預測:輸入一張圖片,輸出每個像素的類別標籤(這個像素是「車子」「行人」還是「馬路」),輸出的結構跟輸入圖片完全對應。影像分類是普通分類:輸入一張圖,輸出「貓/狗/鳥」一個類別,是單一輸出。
語音辨識(把語音轉成文字)屬於結構化預測嗎?
輸入語音,輸出文字,輸出是序列,應該是?
是的,語音辨識屬於序列到序列的結構化預測問題。輸入是語音的聲學特徵序列,輸出是文字序列,輸出長度不固定,每個字的輸出受前後音節影響。現代語音辨識系統(如 Whisper)就是用 Seq2Seq Transformer 架構處理這個結構化輸出問題。
結構化預測和普通分類在評估指標上有什麼不同?
都用準確率嗎?
普通分類用準確率(Accuracy)、F1 Score 等。結構化預測需要額外考慮序列整體的正確性:詞性標注用 Token-level F1(每個詞標對的比例);機器翻譯用 BLEU Score(衡量輸出序列和參考翻譯的相似度);NER 用 Entity-level F1(整個實體片段都對才算對)。序列越長、結構越複雜,評估指標也越複雜。
想再往下看,這 5 個
- 命名實體識別(Named Entity Recognition)在文本中標注人名、地名、機構名等實體,是逐詞輸出標籤序列的典型結構化預測任務
- 詞性標注(Part-of-Speech Tagging)為每個詞標記名詞、動詞等語法角色,輸出序列與輸入等長且各標籤相互依賴
- 序列到序列模型(Seq2Seq)輸入一個序列輸出另一序列的架構,機器翻譯和語音辨識的核心,是結構化預測的進階形式
- 影像分割(Image Segmentation)為每個像素預測所屬類別,輸出結構對應輸入圖片空間,是電腦視覺中的結構化預測
- 自然語言處理(Natural Language Processing)NLP 涵蓋詞性標注、NER、機器翻譯等大量結構化預測子任務,是此考點的應用領域