擁抱Transformer,圖解NLP處理流程四部曲

一、Transformer簡介       

        Transformer是google團隊在2017年提出來的,它的問世刷新了一系列NLP競賽的結果,現在也成爲各大NLP愛好者的首選結構,諸如ELMO、Bert等超牛的model都是在transform的思想上實現的。

        Transformer的基本結構如下圖所示,詳情可以參考我的另一篇博客

二、NLP四部曲

        (1)embedding - 詞嵌入

        詞嵌入,是對詞彙粒度的操作,即將詞彙轉化爲詞向量作爲網絡結構的輸入大部分神經網絡模型首先都會把輸入文本切分成若干個詞語,然後將詞語都用詞向量表示。另一些模型用其它信息擴展了詞向量表示。比如,除了詞語的ID之外,還會輸入一串標籤。然後可以學習得到標籤向量,加入位置信息得到位置向量,將標籤向量和位置向量等拼接爲詞向量。這可以讓你將一些位置敏感的信息加入到詞向量表示中。然而,有一個更強大的方式來使詞語表示呈現出語境相關。

        (2)encoder - 編碼層

        編碼層是句子粒度的操作,假設得到了詞向量的序列,編碼這一步是將其轉化爲句子矩陣,矩陣的每一行表示每個詞在上下文中所表達的意思。

        這一步用到了雙向RNN模型。LSTM和GRU結構的模型效果都不錯。每一行向量通過兩部分計算得到:第一部分是正向計算,第二部分是逆向計算,然後拼接兩部分得到完整的向量。

        (3)attention - 注意力機制

        這一步是將上一步的矩陣表示壓縮爲一個向量表示,因此可以被送入標準的前饋神經網絡進行預測。注意力機制對於其它壓縮方法的優勢在於它輸入一個輔助的上下文向量。

        Yang等人在2016年發表的論文提出了一種注意力機制,輸入一個矩陣,輸出一個向量。區別於從輸入內容中提取一個上下文向量,該機制的上下文向量是被當做模型的參數學習得到。這使得注意機制變成一個純粹的壓縮操作,可以替換任何的池化步驟。attention的更詳細的介紹,也可以參考我的博客

        (4)predict - 預測

        文本內容被壓縮成一個向量之後,我們可以學習最終的目標表達 —— 一種類別標籤、一個實數值或是一個向量等等。我們也可以將網絡模型看做是狀態機的控制器,如一個基於轉移的解析器,來做結構化預測。

        通常我們會在網絡結構的最後一層接入softmax作爲預測的網絡結構。

 

 

 

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