AI產(chǎn)品經(jīng)理基礎(五)-NLP領(lǐng)軍模型BERT

什么是BERT

BERT是谷歌最新提出的語言模型,在處理NLP的各項任務上,這個通用模型基本完爆所有模型??梢哉f是未來NLP的領(lǐng)軍人物了。這個是谷歌在超大規(guī)模的語料上訓練出的,完全可以作為預訓練接入自己的任務中提高自身業(yè)務效果。

BERT的模型結(jié)構(gòu)

在BERT之前,通常我們處理NLP時用到的是RNN、LSTM以及注意力機制、CNN等。但是這些模型在設計本身會有無法并行計算的問題(RNN是按照序列處理的,計算會有順序無法并行計算),以及在長文本上表現(xiàn)不那么好的問題;

而BERT的模型建立在自注意力機制上,序列上的考慮沒有像RNN那樣。這樣的設計使得BERT對上下文的理解更為深刻,下圖為自注意力機制的原理;


自注意力模型

1、輸入語言序列【X1,X2,X3,X4】,通過某種線性變換,每個輸入X會有三個向量【q、k、v】,可以理解為把輸入X復制了三份
2、這時我們可以通過q與k通過某種復雜的計算求得不同輸入之間的關(guān)系a,a其實就是注意力的權(quán)重,關(guān)系越強,權(quán)重越高
3、將a與v相乘即某個輸入對另一個輸入的注意力,將這些注意力加起來即b。上圖所述b1是輸入X1通過注意力處理后得到的輸出,這個b1此時會帶有上下文的信息,是對x注意力加權(quán)求和的結(jié)果
4、將同樣的方式應用在各個輸入x上最終會得到輸出矩陣b

上圖就是一個自注意力模型的過程,很明顯在空間設計上輸入與輸入之間距離都一樣的,這樣的注意力處理方式表現(xiàn)會更好。另外上圖是一個注意力模型,在BERT實際運用中用到的是8個這樣的模型并聯(lián),最終的8個輸出b拼接為一個向量Z作為接下來的輸入處理。這就是多頭注意力模型。各個頭的注意力聚焦可能會不同,有的聚焦附近有的聚焦長距離,各司其職;

最后,語言本身還是有序列的,所以在自注意力模型中還是會有序列的刻畫,通常在a上加一個位置向量來表征輸入X的序列


序列刻畫

以自注意力模型為基礎,通過歸一化以及多層NN網(wǎng)絡處理后得到的Z就是我們對輸入X的編碼(語義映射)。將這樣的BERT模型作為輸入的預處理并且插入任務網(wǎng)絡中就會獲得當前最好的模型效果~~


BERT

BERT訓練

BERT是通過大規(guī)模語料無監(jiān)督訓練的,主要通過下面兩種方式
1、遮住語料中的部分詞(mask就是被遮住的部分),通過bert處理后,輸入X【MASK】的輸出就是BERT語言模型對這個位置詞語的預測編碼,編碼通過一個簡單的分類模型得到該詞的原始編碼。訓練目標就是讓預測逼近實際語料。


猜字訓練

2、通過連續(xù)的語句訓練:從語料中抽出相連的句子或者不相連的句子,然后輸出一個分類 yes or no;從而習得語言規(guī)律
(SEP:分隔句子 CLS:輸出位置為分類)


上下句訓練

BERT 的應用例子

分類問題

應用在情感分類或者文章分類上; 因為分類問題比較成熟,所以bert的提高不會很顯著


分類

Chatbot 中的意圖分類以及槽填充 多輪對話

1、可以通過bert做意圖分類以及每個詞的序列標注(槽位識別),兩個分類問題可以一同解決,效果會略好與其他模型
2、由于多輪對話中會涉及長距離的語義理解,比如一些代詞,BERT在這方面的改善可能會比較大;


意圖識別與序列標注

自然語言推理

輸入兩個句子-問句與回答,輸出對回答的判斷是正確、錯誤還是不清楚


NLP推理

信息檢索、搜索、QA

Q(問題) d(文章)喂給bert,將文章的編碼向量點乘橘色向量與藍色向量(起始與終止向量、也是通過訓練學習的),經(jīng)過softmax層分別得到開始s與結(jié)束e的位置數(shù)字;

Bert在搜索與閱讀理解的處理上會比以往的方式更優(yōu)異,更多在一種長距離的語義理解上;這樣的特性使得對模型對1篇文章、一段對話會有深刻的理解而不是詞語上的匹配,從而性能大幅度提高


閱讀理解

BERT具體在做什么?

之前CNN模型我們能看到不同層對特征的抽取,在bert中其實也有這樣的過程

我們之前處理NLP的過程可能包含:詞法、句法分析、語義分析等低維特征到高維特征的多個過程
而bert整個網(wǎng)絡可能就包含這些處理過程:淺層的bert可能在處理的是詞性標注等一些低層次的特征,而更深的層可能在處理一些語義上的特征。這可能側(cè)面說明bert為啥在多個NLP任務中作為通用模型使用的原因


BERT不同層的傾向

說了這么多,其實就是要明白NLP出現(xiàn)了一個里程碑式的通用模型,用它就推動了產(chǎn)業(yè)界一個整體的進步!對于大多數(shù)公司來講可能沒有能力訓練這種規(guī)模的網(wǎng)絡,但是受益于開源文化,訓練好的模型下載來作為預訓練的模型嵌入我們的業(yè)務模型中。未來的人工智能產(chǎn)業(yè)會更傾向于這種方式,底層的模型就應該像電一樣使用,創(chuàng)新點立足于業(yè)務本身

(筆者正尋求NLP、人機對話方向產(chǎn)品職位 微信:cheng390552021)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容