最強NLP模型BERT可視化學習

摘要: 最強NLP模型谷歌BERT狂破11項紀錄,全面超越人類,本文通過可視化帶你直觀瞭解它。

2018年是自然語言處理(Natural Language Processing, NLP)領域的轉折點,一系列深度學習模型在智能問答及情感分類等NLP任務中均取得了最先進的成果。近期,谷歌提出了BERT模型,在各種任務上表現卓越,有人稱其爲“一個解決所有問題的模型”。

BERT模型的核心思想有兩點,對推動NLP的發展有着重要的作用:(1)Transformer結構;(2)無監督的預訓練。Transformer是一個只基於注意力(Attention)機制的序列模型,《Attention is all you need》一文中指出,它摒棄了固有的定式,沒有采用RNN的結構。BERT模型同時需要預訓練,從兩個無監督任務中獲取權重:語言建模(給定左右上下文,預測丟失的單詞)以及下一個句子預測(預測一個句子是否跟在另一個句子後面)。

BERT是個“多頭怪”

BERT與傳統的注意力模型有所不同,它並非在RNN的隱藏狀態上直接連接注意力機制。BERT擁有多層注意力結構(12層或24層,取決於模型),並且在每個層(12層或16層)中都包含有多個“頭”。由於模型的權重不在層與層之間共享,一個BERT模型相當於擁有24×16=384種不同的注意力機制。

BERT可視化

BERT模型較爲複雜,難以直接理解它學習的權重的含義。深度學習模型的可解釋性通常不強,但我們可以通過一些可視化工具對其進行理解。Tensor2Tensor提供了出色的工具對注意力進行可視化,我結合PyTorch對BERT進行了可視化。點擊查看詳情

該工具將注意力可視化爲連接被更新位置(左)和被關注位置(右)之間的連線。不同的顏色對應不同的“注意力頭”,線段寬度反映注意力值的大小。在該工具的頂部,用戶可以選擇模型層,以及一個或者多個“注意力頭”(通過點擊頂部顏色切換,一共包含12個不同的“頭”)

BERT到底學習什麼?

該工具能用於探索預先訓練的BERT模型的各個層以及頭部的注意模式。以下列輸入值爲例進行詳解:

句子A:I went to the store.
句子B:At the store, I bought fresh strawberries.

BERT採用WordPiece tokenization對原始句子進行解析,並使用[CLS]對token進行分類以及[SEP]對token進行分隔,則輸入的句子變爲:[CLS] i went to the store. [SEP] at the store, i bought fresh straw ##berries. [SEP]

接下來我將確定6個關鍵模式,並展示每個模式特定層/頭的可視化效果。

模式1:下一個單詞的注意力(Attention to next word)

在該模式下,特定單詞的大部分注意力都集中在序列中該單詞的下一個token處。如下圖所示,我們以第二層的head 0爲例(所選頭部由頂部顏色欄中突出顯示的正方形表示)。左邊圖中展示了所有token的注意力,右邊則顯示了特定token(“i”)的注意力。“i”幾乎所有的注意力都集中在它的下一個token,即“went”處。

左圖中,[SEP]指向了[CLS],而非“at”,也就是說,指向下一個單詞的這種模式只在句子中起作用,而在句子間的效果較弱。該模式類似於RNN中的backward,狀態從右往左依次更新。

模式2:前一個單詞的注意力(Attention to previous word)

在該模式下,特定單詞的大部分注意力都集中在序列中該單詞的前一個token處。本例中,“went”的大部分注意力集中於它的前一個單詞“i”。模式2不如模式1明顯,特定的單詞注意力有所分散。該過程與RNN中的forward類似。

模式3:相同/相關單詞的注意力(Attention to identical/related words)

在該模式下,特定單詞的大部分注意力集中於與其相同或者相關的單詞,包括該單詞本身。下圖中,“store”的大部分注意力集中在它本身。由於注意力有所分散,該模式也不明顯。

模式4:其它句子中相同/相關單詞的注意力(Attention to identical/related words in other sentence)

在該模式中,注意力集中在其它句子中與指定單詞相同或者相似的單詞。如下圖,第二個句子中的“store”與第一個句子中的“store”關聯最強。這對於下一個句子預測任務非常有幫助,它能夠幫助識別句子之間的關係。

模式5:預測單詞的注意力(Attention)

在該模式下,注意力集中於其它可以預測源單詞的單詞上,且不包括源單詞本身。如下圖,“straw”的注意力主要集中於“##berries”,而“##berries”的注意力主要集中於“straw”。

模式6:分隔符標記的注意力(Attention to delimiter tokens)

在該模式下,特定單詞的注意力主要集中於分隔符,[CLS]或[SEP]中。如下圖,大多數的注意力都集中在兩個[SEP]中,這或許是模型將語句級別狀態傳遞到各個token中的一種方法。



本文作者:【方向】

閱讀原文

本文爲雲棲社區原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章