深度文本分類綜述

2022-02-03 算法愛好者

(給算法愛好者加星標,修煉編程內功)

作者:何從慶 (本文來自作者投稿)

最近有很多小夥伴想了解深度學習在文本分類的發展,因此,筆者整理最近幾年比較經典的深度文本分類方法,希望幫助小夥伴們了解深度學習在文本分類中的應用。

Convolutional Neural Networks for Sentence Classification (EMNLP 2014)

Kim在EMNLP2014提出的TextCNN方法,在多個數據集上取得了很好的效果。由於其計算速度快以及可並行性,在產業界得到了廣泛使用。TextCNN的模型示意圖如下圖所示。

TextCNN模型首先將文本映射成向量,然後利用多個濾波器來捕捉文本的局部語義信息,接著使用最大池化,捕捉最重要的特徵。最近將這些特徵輸入到全連接層,得到標籤的概率分布。

代碼參考:

1) https://github.com/alexander-rakhlin/CNN-for-Sentence-Classification-in-Keras

2) https://github.com/brightmart/text_classification

圖1:TextCNN模型架構

Document Modeling with Gated Recurrent Neural Network for Sentiment Classification (EMNLP 2015)

Tang等人提出了一種利用GRU對文檔進行建模的情感分類模型。模型如下圖所示。

該模型首先將文本映射為向量,然後利用CNN/LSTM(論文中使用3個濾波器的CNN)進行句子表示。另外,為了捕獲句子的全局語義表徵,將其輸送給平均池化層,再接入tanh激活函數。最後將整個句子的不同寬度卷積核的向量表示接入一個Average層,從而得到句子平均向量表示。

然後將得到的句子表示,輸入到GRU中,得到文檔向量表示。最後將文檔向量輸送給softmax層,得到標籤的概率分布。

圖2:文檔級別情感分類的神經網絡模型

Recurrent Convolutional Neural Networks for Text Classification (AAAI 2015)

Lai等人提出了一種無人工特徵的循環卷積神經網絡分類方法,簡稱RCNN。

RCNN首先利用Bi-RNN來捕捉前後的上下文表徵,然後將其concat起來,接著使用濾波器filter_size=1的卷積層,並使用最大池化操作得到與文檔最相關的向量表徵,最後將這些向量輸入到softmax層,得到標籤的概率表徵。

代碼參考:

1) https://github.com/roomylee/rcnn-text-classification

2) https://github.com/brightmart/text_classification

圖3: RCNN的模型結構示意圖

Recurrent Neural Network for Text Classification with Multi-Task Learning (IJCAI 2016)

Liu等人針對文本多分類任務,提出了基於RNN的三種不同的共享信息機制對具有特定任務和文本進行建模。

模型1(Uniform-Layer Architecture):所有任務共享同一個LSTM層,並在每個特定任務後面拼接一個隨機生成可訓練的向量。LSTM層的最後一個時刻的隱藏層作為輸入傳入到softmax層。

模型2(Coupled-Layer Architecture): 每個任務具有自己獨立的LSTM層,但是每一時刻所有任務的hidden state則會和下一時刻的character一起作為輸入,最後一個時刻的hidden state進行分類。

模型3(Shared-Layer Architecture):除了一個共享的BI-LSTM層用於獲取共享信息,每個任務有自己獨立的LSTM層,LSTM的輸入包括每一時刻的character和BI-LSTM的hidden state。

圖4:三種架構進行多任務學習建模

Hierarchical Attention Networks for Document Classification (NAACL 2016)

Yang等人提出了一種用於文檔分類的層次注意力機制網絡,簡稱HAN。這篇文章和Tang等人都是針對於文檔分類的問題,然而,這篇文章在句子級別以及文檔級別提出了注意力機制,使得模型在構建文檔時是能夠賦予重要內容不同的權重,同時,也可以緩解RNN在捕捉文檔的序列信息產生的梯度消失問題。HAN模型的模型示意圖如下所示。

HAN模型首先利用Bi-GRU捕捉單詞級別的上下文信息。由於句子中的每個單詞對於句子表示並不是同等的貢獻,因此,作者引入注意力機制來提取對句子表示有重要意義的詞彙,並將這些信息詞彙的表徵聚合起來形成句子向量。具體的注意力機制的原理可以參考:

FEED-FORWARD NETWORKS WITH ATTENTION CAN SOLVE SOME LONG-TERM MEMORY PROBLEMS

然後,對於所有的句子向量輸入到Bi-GRU中,捕捉句子級別的上下文信息,得到文檔向量。同樣地,為了獎勵對文檔進行正確分類的線索句,作者再次使用注意力機制,來衡量句子的重要性,得到文檔向量。最後將文檔向量均輸入到softmax層,得到標籤的概率分布。

代碼參考:

1) https://github.com/richliao/textClassifier

2) https://github.com/brightmart/text_classification

圖3: HAN模型結構示意圖

Bag of Tricks for Efficient Text Classification (EACL 2017)

Joulin等人提出了一種簡單而又有效的文本分類模型,簡稱fastText。

fastText模型輸入一個詞序列(一段文本或者一句話),序列中的詞與詞組成特徵向量,然後特徵向量通過線性變換映射到中間層,中間層再映射到標籤。輸出這個詞序列屬於不同類別的概率。其中fastText在預測標籤是使用了非線性激活函數,但在中間層不使用非線性激活函數。

代碼參考:

1) https://github.com/facebookresearch/fastText

2)  https://radimrehurek.com/gensim/models/fasttext.html

圖4:fastText模型結構示意圖

Deep Pyramid Convolutional Neural Networks for Text Categorization (ACL 2017)

Johnson 和Zhang 提出了一種單詞級別的深層CNN模型,來捕捉文本的全局語義表徵,該模型在不增加太多的計算開銷的情況下,通過增加網絡深度可以獲得最佳的性能,簡稱DPCNN。模型結構示意圖如下所示。

DPCNN模型首先利用「text region embedding」,將常用的word embedding 推廣到包含一個或多個單詞的文本區域的embedding,類似於增加一層卷積神經網絡。

然後是卷積快的疊加(兩個卷積層和一個shortcut連接,其中shortcut連接類似於殘差連接),與步長為2的最大池化層進行下採樣。最後使用一個最大池化層,得到每個文檔的文檔向量。

代碼參考:

https://github.com/Cheneng/DPCNN

圖4:DPCNN模型結構示意圖

Using millions of emoji occurrences to learn any-domain representations for detecting sentiment, emotion and sarcasm (EMNLP 2017)

Felbo等人使用數以百萬計的表情符號來學習任何領域的表情符號來檢測情緒、情緒和諷刺,提出了DeepMoji模型,並取得了具有競爭性的效果。同時,DeepMoji模型在文本分類任務上也可以取得不錯的結果。

DeepMoji模型首先使用embedding層將單詞映射成向量,並將每個embedding維度使用雙正切函數映射到[-1,1]。然後,作者使用兩層的Bi-LSTM捕捉上下文特徵。接著作者提出了一種新的注意力機制,分別將embeddding層以及2層的Bi-LSTM作為輸入,得到文檔的向量表徵。最後,將向量輸入到softmax層,得到標籤的概率分布。

代碼參考:

https://github.com/bfelbo/DeepMoji

圖5:DeepMoji模型結構示意圖

Investigating Capsule Networks with Dynamic Routing for Text Classification (EMNLP 2018)

Zhao等人提出了一種基於膠囊網絡的文本分類模型,並改進了Sabour等人提出的動態路由,提出了三種穩定動態路由。模型如下所示:

該模型首先利用標準的卷積網絡,通過多個卷積濾波器提取句子的局部語義表徵。然後將CNN的標量輸出替換為向量輸出膠囊,從而構建Primary Capsule層。接著輸入到作者提出的改進的動態路由(共享機制的動態路由和非共享機制的動態路由),得到卷積膠囊層。最後將卷積膠囊層的膠囊壓平,送入到全連接膠囊層,每個膠囊表示屬於每個類別的概率。

 

代碼參考:

https://github.com/andyweizhao/capsule_text_classification.

 

圖6:文本分類的膠囊網絡體系結構

Sentiment Analysis by Capsules (WWW 2018)

Wang等人提出了一種用於情感分類的RNN膠囊網絡模型,簡稱RNN-Capsule。(這篇文章在可視化方面做的還是不錯的)模型結構示意圖如下所示。

RNN-Capsule首先使用RNN捕捉文本上下文信息,然後將其輸入到capsule結構中,該capsule結構一共由三部分組成:representation module, probability module,和reconstruction module。具體地,首先用注意力機制計算capsule 表徵;然後用capsule表徵計算capsule狀態的概率;最後用capsule表徵以及capsule狀態概率重構實例的表徵。

圖7: RNN-Capsule模型結構示意圖

Graph Convolutional Networks for Text Classification (AAAI 2019)

Yao等人提出了一種基於graph convolutional networks(GCN)進行文本分類。作者構建了一個包含word節點和document節點的大型異構文本圖,顯式地對全局word利用co-occurrence信息進行建模,然後將文本分類問題看作是node分類問題。

代碼參考:

https://github.com/yao8839836/text_gcn

圖7:Text GCN的模型結構

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (NAACL 2019)

Google提出的BERT模型,突破了靜態詞向量無法解決一詞多義的問題。BERT是基於語言模型的動態詞向量,在自然語言處理的多項任務中取得了最優秀的結果。筆者對BERT模型進行微調,在文本分類的多個領域,諸如法律、情感等,取得了非常有競爭性的性能。

BERT的模型架構是一個多層的雙向Transformer編碼器(Transformer的原理及細節可以參考 Attention is all you need)。作者採用兩套參數分別生成BERTBASE模型和BERTLARGE模型(細節描述可以參考原論文),所有下遊任務可以在這兩套模型進行微調。

代碼參考:

https://github.com/google-research/bert

圖8:BERT的Pre-training結構和Fine-Tuning結構

給公號發送 「文本分類論文」  6 個字,即可獲取本文論文的下載連結。


覺得本文有幫助?請分享給更多人

關注「算法愛好者」加星標,修煉編程內功

好文章,我在看❤️

相關焦點

  • 《文本分類大綜述:從淺層到深度學習》最新2020版35頁pdf
    大量的方法、數據集和評價指標已經在文獻中提出,提高了全面和更新綜述的需要。本文通過回顧1961年到2020年的先進方法的現狀來填補這一空白,側重於從淺到深的模型學習。我們根據所涉及的文本和用於特徵提取和分類的模型創建文本分類的分類法。然後我們詳細討論每一個類別,處理支持預測測試的技術發展和基準數據集。本綜述還提供了不同技術之間的綜合比較,以及確定各種評估指標的優缺點。
  • 【NLP】文本分類綜述 (上)
    文本分類綜述A Survey on Text Classification: From Shallow to Deep Learning,2020[1]文本分類是自然語言處理中最基本,也是最重要的任務。由於深度學習的成功,在過去十年裡該領域的相關研究激增。鑑於已有的文獻已經提出了許多方法,數據集和評估指標,因此更加需要對上述內容進行全面的總結。
  • 文本分類綜述 | 邁向NLP大師的第一步(上)
    (文末 下期預告 別錯過)綜述內涉及的所有文本分類必讀論文清單,我們已經為大家整理打包好啦,訂閱號後臺回復『文本分類』即可獲取喔~文本分類綜述A Survey on Text Classification: From Shallow to Deep Learning,2020[1]文本分類是自然語言處理中最基本,也是最重要的任務
  • 【綜述專欄】零樣本文本分類探秘
    在本文中,研究了兩個可用的零樣本文本分類模型,並對它們的性能進行了評估。零樣本和少樣本NLP模型是轉移學習的特例:其目標是在沒有任何標記數據(用於零樣本學習)的情況下進行預測,或者只有少量標記數據的情況下進行預測。最著名的例子無疑是OpenAI的GPT-3,它已經被證明是一個應用廣泛的、非常成功的少樣本學習模型。
  • 用深度學習(CNN RNN Attention)解決大規模文本分類問題 - 綜述和...
    近來在同時做一個應用深度學習解決淘寶商品的類目預測問題的項目,恰好碩士畢業時論文題目便是文本分類問題,趁此機會總結下文本分類領域特別是應用深度學習解決文本分類的相關的思路、做法和部分實踐的經驗。業務問題描述:淘寶商品的一個典型的例子見下圖,圖中商品的標題是「夏裝雪紡條紋短袖t恤女春半袖衣服夏天中長款大碼胖mm顯瘦上衣夏」。
  • 文本分類任務近期發展概況
    自動文本分類方法可分為三類 :基於規則、基於機器學習和深度學習以及混合方法。基於規則的方法使用預先定義的各種規則來進行文本分類,例如「體育」這一類別會把所有包含「足球」、「籃球」或「排球」之類詞語的文本納入其中。基於規則的方法需要對待分類文本所屬的領域有著深入的了解,這就抬高了這種方法的門檻。近年來,機器學習,尤其是深度學習相關的方法開始在文本分類中流行起來。
  • 文本分類六十年
    這裡我們介紹基於機器學習和深度學習的文本分類,主要內容來自北航、伊利諾伊大學等學者聯合發表論文 A Survey on Text Classification: From Shallow to Deep Learning。本文通過回顧文本分類領域自1961年到2020年以來的歷年SOTA模型來填補這類綜述研究的空白,聚焦於從淺層學習到深度學習的各種模型。
  • 乾貨| 深度學習在文本分類中的應用
    作者:llhthinker個人博客:http://www.cnblogs.com/llhthinker/1 文本分類任務介紹文本分類是自然語言處理的一個基本任務,試圖推斷出給定的文本(句子、文檔等)的標籤或標籤集合
  • 一文讀懂深度學習文本分類方法
    最近有很多小夥伴想了解深度學習在文本分類的發展,因此,筆者整理最近幾年比較經典的深度文本分類方法,希望幫助小夥伴們了解深度學習在文本分類中的應用。筆者整理了近些年的相關深度文本分類論文,關注「AI算法之心」,後臺回復「文本分類論文」即可下載。
  • 【長篇乾貨】深度學習在文本分類中的應用
    文本分類是自然語言處理的一個基本任務,試圖推斷出給定的文本(句子、文檔等)的標籤或標籤集合。文本分類的應用非常廣泛。如:1)垃圾郵件分類:二分類問題,判斷郵件是否為垃圾郵件2)情感分析3)新聞主題分類:判斷新聞屬於哪個類別,如財經、體育、娛樂等4)自動問答系統中的問句分類5)社區問答系統中的問題分類:多標籤分類,如知乎看山杯6)更多應用:不同類型的文本分類往往有不同的評價指標,具體如下:
  • 深度學習文本分類|模型&代碼&技巧
    文本分類是NLP的必備入門任務,在搜索、推薦、對話等場景中隨處可見,並有情感分析、新聞分類、標籤分類等成熟的研究分支和數據集。本文主要介紹深度學習文本分類的常用模型原理、優缺點以及技巧。P.S.在最終池化時,max-pooling通常表現更好,因為文本分類經常是主題上的分類,從句子中一兩個主要的詞就可以得到結論,其他大多是噪聲,對分類沒有意義。而到更細粒度的分析時,max-pooling可能又把有用的特徵去掉了,這時便可以用attention進行句子表示的融合:
  • 超詳綜述 | 基於深度學習的命名實體識別
    如果要看前三種方法的綜述可以去看 Nadeau and Sekine 07 年的綜述 A survey of named entity recognition and classification,13 年 Marrero 綜述 Named entity recognition: fallacies, challenges and opportunities
  • 入門 | 獻給新手的深度學習綜述
    機器之心認為,這篇綜述對於剛入門的深度學習新手是一份不錯的參考資料,在形成基本學術界圖景、指導文獻查找等方面都能提供幫助。用準確的話總結就是,深度學習是機器學習的一個子領域,它使用了多層次的非線性信息處理和抽象,用於有監督或無監督的特徵學習、表示、分類和模式識別。深度學習即表徵學習是機器學習的一個分支或子領域,大多數人認為近代深度學習方法是從 2006 開始發展起來的。本文是關於最新的深度學習技術的綜述,主要推薦給即將涉足該領域的研究者。本文包括 DL 的基本思想、主要方法、最新進展以及應用。
  • Facebook 開源文本分類工具,不用深度學習也可以又快又準
    譯者:胡祥傑【新智元導讀】作為最大的社交網站,每天Facebook上,用戶分享的信息超過幾十億。為了利用這些數據,Facebook使用了各種各樣的工具來對文本進行分類。傳統的分類方法,比如深度神經網絡,準確率雖高,但是卻需要較長的訓練時間。今天,Facebook AI實驗室FAIR 宣布將把其研發的文本分析工具fastText進行開源。fastText 既可以用於文本分類,又能用於學習詞彙向量表徵。
  • 深度學習:基於語境的文本分類弱監督學習
    深度學習:基於語境的文本分類弱監督學習 丁磊 發表於 2021-01-18 16:04:27 高成本的人工標籤使得弱監督學習備受關注。seed-driven 是弱監督學習中的一種常見模型。
  • 文本匹配利器:從孿生網絡到Sentence-BERT綜述
    其中最能體現「孿生」的地方,在於網絡具有相同的編碼器(sentence encoder),即將文本轉換為高維向量的部分。網絡隨後對兩段文本的特徵進行交互,最後完成分類/相似預測。輸入的兩個文本拼接成一個序列(中間用特殊符號「SEP」分割),經過12層或24層Transformer模塊編碼後,將輸出層的字向量取平均或者取「CLS」位置的特徵作為句向量,經softmax完成最終分類。
  • BAT面試題42:深度學習解決大規模文本分類問題
    深度學習文本分類方法文章主要引用:https://zhuanlan.zhihu.com/p/25928551深度學習最初在之所以在圖像和語音取得巨大成功,一個很重要的原因是圖像和語音原始數據是連續和稠密的,有局部相關性。
  • 文本分類的14種算法
    這種簡單的文本分類練習,不同算法的性能分層還是比較明顯的。知識總結1.機器學習、集成學習和深度學習:1)機器學習泛指所有的使機器通過建立和調整模型從而實現特定功能的算法。2)深度學習是運用了多層的人工神經網絡(ANN)的機器學習方法。3)集成學習是指通過將多個弱分類器的分類結果進行整合,獲得比單個弱分類器更好效果的機器學習方法。集成學習和深度學習屬於機器學習。2.集成學習的bagging和boosting思想:bagging中的各個弱分類器取值是相互獨立的、無關的,常使用有放回抽樣實現。
  • 今日Paper | COVID-19;深度興趣網絡;COVIDX-NET;場景文本遷移等
    的深度學習分類器框架COVID-NET:一種用於從胸部X光圖像中檢測COVID-19病例的定製深度卷積神經網絡設計用於點擊率預測的深度興趣網絡CVPR 2020 | SwapText: 基於圖像的場景文本遷移論文名稱:Mapping the Landscape of Artificial Intelligence Applications against
  • 一份NLP&ML領域中文綜述總結~
    對初學者而言,綜述類文章可以便於讀者在研究初期儘快掌握該方向的發展趨勢。對綜述類文章的搜索與閱讀也因此成為了初學者進入相關研究領域前面臨的第一個問題。針對這一需要,東北大學自然語言處理實驗室對自然語言處理領域與機器學習領域的中文綜述類文章進行了收集和分類整理。將其按照不同研究領域進行分類,並提供了論文的獲取網址,方便初學者獲取相應領域的綜述文章。