BERT也懂人話?NLP模型的可解釋性簡易指南

什麼是BERT?BERT是Google團隊在2018年提出的預訓練語言模型,並在自然語言處理(Nature Language Processing, NLP)領域中掀起一陣炫風。本篇文章將針對BERT的機制、如何應用BERT解決NLP問題、BERT的模型可解釋性三大部分進行介紹。

BERT全名為Bidirectional Encoder Representations from Transformers,是透過約33億字的英文小說及英文維基百科文本所提煉出,具有一定自然語言理解(Nature Language Understanding, NLU)能力的模型。

BERT的機制

BERT模型的結構主要為Transformer這個經典NLP模型中的編碼器(Encoder),透過雙向(Bidirectional)設計讓模型能夠考慮文本字詞的前後關係,以增強模型對文本的理解,最後將理解的結果透過文字表徵(Representation)的方式輸出。

整體而言,BERT的機制可分為三大部分:模型輸入、Encoder、最終輸出。

在模型輸入部分,BERT先將文本的句子利用斷詞,將字詞拆分成小單位(以下稱token);接著,分別在句首及句子間加入『開頭token(CLS)』與『分句token(SEP)』,最後,將這些token的字典中ID編號、句中出現順序、所屬句子編號投影到高維度空間(Embedding)中並加總,以作為模型輸入,使得模型的輸入具備三者的特徵。

Encoder則是將輸入依序經過以下四層結構並輸出:Multi-Head Attention、Add&Norm1、Feed Forward、Add&Norm2。在Multi-Head Attention中,輸入的每個token會考慮彼此間的注意力權重,形成一種注意力模式(Attention Pattern),並考慮多種注意力模式後,用一個全連接層將結果轉換成新的token表徵傳遞到Add&Nom1。

在Add&Norm1中,Encoder的輸入及Multi-Head Attention的輸出token會分別進行加總,再對token間進行歸一化(即Layer Normalization),歸一化後的新token表徵會傳遞到Feed Forward。在Feed Forward中,token會經過兩個全連接層進行彼此間的線性組合,並在第一層加入RELU非線性轉換,讓token之間可以更多的考慮彼此間的線性、非線性關係,並將結果的新token表徵傳遞到Add&Norm2。在Add&Nom2中,Feed Forward的結果和Add&Norm1的結果token會進行和Add&Norm1一樣的加總與歸一化步驟,最後新的token表徵會作為一個Encoder的輸出。

在最終輸出部分,BERT會將模型輸入放入12或24層(對應到BERT-Base版及BERT-Large版)串連的Encoder中,下一個Encoder的輸入為上一個Encoder的輸出,而最後一層的Encoder輸出即為BERT的最終輸出。輸出的每個token表徵為模型對於該token的理解,可以用在後續的NLP任務當中。因此,將BERT應用在NLP的整個流程大致為:

  1. 將新任務的文本資料輸入BERT
  2. 將BERT輸出的token表徵放入一個分類器當中
  3. 透過分類器判斷token表徵的類別

如何應用BERT解決NLP問題

在實際任務類型上,我們可以先認識以下三種類型:單一句子分類任務、單一句子標注任務、成對句子分類任務

  • 單一句子分類任務:

    將最後輸出的句首CLS token表徵,視為BERT對整個句子的理解結果,並以此分類句子的類別。例如判斷語句的情緒為正面或負面;或是語句是否符合文法。

  • 單一句子標注任務:

    將最後輸出的每個token表徵,視為BERT對每個token在句中的意義,並分出每個token的類別。例如判斷每個單詞的詞性或是標籤分類,如人物、動物、建築。

  • 成對句子分類任務:

    一次考慮兩個句子間的關係,並將最後輸出的句首CLS token表徵視為BERT對句子間關係的理解結果,並對句子間的關係進行分類。例如用來區分兩句話是否相似或矛盾,也可應用於判斷問答句之間是否匹配。

不過,由於訓練BERT模型需花費的時間、金錢、資料量成本十分龐大,目前作法多半是將已經訓練好權重的預訓練模型,透過遷移學習的技巧微調權重以符合任務資料。但如果任務資料與訓練模型時所使用的小說、維基百科文本差異太大,如法律、醫療文件,仍很可能需要從頭訓練一個BERT模型。

模型是如何做出判斷的?了解BERT的模型可解釋性

為了解釋複雜的模型是如何做出判斷的,學者們提出過許多方法,例如SHAP value及注意力模式。SHAP value是基於合作博弈論,所開發出的解釋方法,主要是將簡單可解釋的線性迴歸模型與BERT的預測結果盡量貼近,利用線性迴歸模型的特徵係數,間接地解釋特徵對模型決策所帶來的貢獻。在線性迴歸模型中,BERT對資料集預測_結果的平均值通常會被設為常數項,以此當做基準值,並考慮所有輸入特徵依次加入的順序後,觀察加入特徵的係數,最後將各特徵依不同順序所獲得係數的平均數,當作各特徵的貢獻,以此貢獻值進一步進行解釋。至於更多細節或是其他變形需要再進一步閱讀文獻。

注意力模式則是基於自我注意力機制,輔助判斷模型是否正確理解文本。作法是將BERT中的Multi-Head Attention權重取出,觀察BERT判斷某個文本時,各層Encoder中,所有注意力模式的樣貌,是否符合正確自然語言理解的模式?以及是否正確抓到判斷結果的重要字詞模式?

雖然BERT的模型目前仍像個黑盒子,大多時候,我們很難了解模型是如何做出判斷,但無論是為了安全、避免偏誤或歧視等原因,我們依然需要模型解釋,以說服使用者能更相信模型判斷的結果。

完整BERT介紹: