性能媲美BERT,參數量僅爲1/300,這是谷歌最新的NLP模型

  機器之心編輯部html

  

在最新的博客文章中,谷歌公佈了一個新的 NLP 模型,在文本分類任務上能夠達到 BERT 級別的性能,但參數量僅爲 BERT 的 1/300。

  

  在過去的十年中,深度神經網絡從根本上變革了天然語言處理(NLP)領域的發展,但移動端有限的內存和處理能力對模型提出了更高的要求。人們但願它們能夠變得更小,但性能不打折扣。git

  去年,谷歌發佈了一種被稱爲 PRADO 的神經架構,該架構當時在許多文本分類問題上都實現了 SOTA 性能,而且參數量少於 200K。大多數模型對每一個 token 使用固定數目的參數,而 PRADO 模型使用的網絡結構只須要不多的參數便可學習與任務最相關或最有用的 token。github

  

  論文連接:https://www.aclweb.org/anthology/D19-1506.pdfweb

  在最新的博客文章中,谷歌的研究者宣佈它們改進了 PRADO,並將改進後的模型稱爲 pQRNN。新模型以最小的模型尺寸達到了 NLP 任務的新 SOTA。pQRNN 的新穎之處在於,它將簡單的投影運算與 quasi-RNN 編碼器相結合,以進行快速、並行的處理。該研究代表,pQRNN 模型可以在文本分類任務上實現 BERT 級別的性能,但參數量僅爲原來的 1/300網絡

  PRADO 的工做原理架構

  在一年前開發該模型時,PRADO 在文本分割上充分利用特定領域的 NLP 知識,以下降模型大小和提高模型性能。一般來講,首先經過將文本分割成與預約義通用詞典中的值相對應的 token,將 NLP 模型的文本輸入處理成適用於神經網絡的形式。而後,神經網絡使用可訓練參數向量(包括嵌入表)來惟一識別每一個文本片斷。可是,文本分割的方式對模型性能、大小和延遲都有顯著的影響。函數

  下圖展現了 NLP 社區使用的各類文本分割方法及其相應的優缺點:性能

  

  因爲文本片斷的數量是影響模型性能和壓縮的重要參數,所以引出了一個問題,即 NLP 模型是否須要可以清楚地識別每一個可能的文本片斷。爲了回答這個問題,研究者探索了 NLP 任務的固有複雜性。學習

  只有語言建模和機器翻譯等少數 NLP 任務須要了解文本片斷之間的細微差別,所以可能須要惟一識別全部可能的文本片斷。其餘大多數任務僅經過了解這些文本片斷的子集便可解決。此外,任務相關的文本片斷子集並不必定是頻率最高的部分,由於可能很大一部分是專用的冠詞,如 a、an 和 the,而這些對不少任務來講並不重要。google

  因此,容許網絡決定給定任務的最相關片斷能夠實現更好的性能。而且,網絡不須要惟一識別這些文本片斷,只須要識別出文本片斷的聚類便可。舉例而言,情感分類器只須要了解與文本中的情感強相關的片斷聚類就好了。

  

  基於此,PRADO 被設計成從詞(word)中學習文本片斷的聚類,而不是 word piece 或字符,從而使它可以在低複雜度 NLP 任務中實現良好的性能。因爲 word unit 更有意義,並且與大多數任務最相關的詞並很少,因此學習相關詞聚類的簡化子集所須要的模型參數就少了不少。

  改進 PRADO

  谷歌研究者在 PRADO 的基礎上開發了一個更強的 NLP 模型——pQRNN。該模型由三個構建塊組成——一個是將文本中的 token 轉化爲三元向量序列的投影算子、一個密集 bottleneck 層和若干 QRNN 編碼器

  pQRNN 中投影層的實現與 PRADO 中所用到的一致,幫助模型學習相關性最強的 token,但沒有一組固定的參數來定義這些 token。它首先對文本中的 token 進行識別,而後使用一個簡單的映射函數將其轉換爲三元特徵向量。這將產生一個三元向量序列,該序列具備平衡對稱分佈,用來表示文本。這種表示沒有直接用途,由於它不包含解決感興趣任務所需的任何信息,並且網絡沒法控制這種表示。

  研究者將其與一個密集 bottleneck 層結合在一塊兒,以使網絡能夠學習到一個與手頭任務相關的逐詞表示。bottleneck 層產生的表示仍然沒有考慮到詞的上下文。所以,研究者利用若干雙向 QRNN 編碼器學習了一個上下文表示。這樣能夠獲得一個僅從文本輸入就能學到上下文表示的網絡,而且無需任何預處理。

  

  pQRNN 的性能

  研究者在 civil_comments 數據集上評估了 pQRNN,並將其與 BERT 模型在相同的任務中進行了比較。模型的大小與其參數量成正比,所以 pQRNN 比 BERT 小得多

  此外,pQRNN 還進行了量化處理(quantized),所以模型體積進一步縮小到原來的 1/4。公開訓練的 BERT 在本文的任務中表現很差,所以拿來對比的 BERT 實際上是在幾個不一樣的相關多語言數據源上進行預訓練獲得的,以使其達到最好的表現。

  

  在實驗中,研究者獲得了兩個模型的 AUC 信息。在沒有任何預訓練、只在監督數據訓練的狀況下,pQRNN 的 AUC 是 0.963,用到了 130 萬個量化(8-bit)參數。在幾個不一樣數據源進行預訓練並在監督數據上進行微調以後,BERT 模型獲得的 AUC 是 0.976,用到了 1.1 億個浮點參數。

  爲了鼓勵社區在谷歌研究成果的基礎上作出進一步改進,谷歌還開源了 PRADO 模型。

  項目地址:https://github.com/tensorflow/models/tree/master/research/sequence_projection

  博客連接:https://ai.googleblog.com/2020/09/advancing-nlp-with-efficient-projection.html

相關文章
相關標籤/搜索