天天看點

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

作者:羨魚智能

本文為文本分類系列文章的開篇作,《文本分類:由淺到深再到實踐-綜述篇》。

溫馨提示:預計文本分類系列文章中長文大概會有3篇左右,均會收錄在OpenNLP專欄。此為綜述篇,下一篇為實踐篇(項目已經基本完成,主要是工作量比想象中大不少,而且因為時間和算力原因也耽誤了許久),第三篇預計為名額篇(看時間),第四篇為前沿篇(看情況)。

文本分類應該算是NLP領域最經典的問題之一了,當時羨魚入門NLP時的第一個項目就是文本分類,最近整理資料時順帶回看了一下文本分類相關的内容,想着做個總結,也好溫故而知新。文章主要包括五個方面的内容,首先對文本分類的發展現狀進行簡要介紹,然後介紹文本分類的傳統方法,接着引入深度方法,再介紹文本分類的常用資料集和評價名額,最後進行總結與展望。

1. 簡介

文本分類就是将文本映射到預先設定的一個或多個類别上,從類别數來看,可以分為二分類與多分類,從标簽數來看,可以分為單标簽與多标簽。

1.1 詞雲

首先我們來看一下文本分類的詞雲,除了text classification本身以外,還有不少NLPer們應該比較熟悉的詞,比如分詞、詞向量、一些傳統模型、深度學習等等,大體上是比較符合文本分類的發展情況的。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

1.2 應用

然後,我們再來看一下文本分類的主要應用場景,從新聞分類、主題分類、情感分析到問答分類、自然語言推理等,應用非常廣泛。

  • 新聞分類:news classification (NC)
  • 情感分析:sentiment analysis ( SA)
  • 話題标記:topic labeling(TL)
  • 問答系統:question answering(QA)
  • 對話行為分類:dialog act classification (DAC)
  • 自然語言推理:natural language inference (NLD),
  • 關系分類:relation classification (RC)
  • 事件預測:event prediction (EP)

1.3 工作流

接下來,我們介紹一下文本分類的工作流。下圖給出了文本分類一般的工作流程,輸入為文本,經過預處理後,送入淺層模型或者深度模型,經過訓練之後,再進行預測、評估,獲得分類标簽。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

模型及評估的部分後續會有專門的章節進行介紹,這裡先簡單介紹一下預處理部分。文本預處理技術是NLP領域中比較基礎的技術,一般包括文本清洗、格式化、按空白分詞(中文可能還需要專門的分詞步驟)、移除标點和停用詞、統一大小寫、詞幹提取等等。英文領域比較常用的工具如NLTK,中文整體的預處理與英文差不多,最大的差異在于分詞,中文不像英文那樣天然有空格分隔,因而需要專門的分詞器,比如jieba、hanlp等等,可以根據需要使用。注意,随着深度學習方法的演進,預處理技術整體趨勢是逐漸簡化的,在端到端的系統裡,對預處理過程的依賴正在逐漸降低,過多的預處理不一定總是好事,需要根據情況使用,建議的做法是非必要不使用過多的預處理。

1.4 簡史

最後,我們簡單回顧一下文本分類的發展史,大緻可以分為三個階段:基于規則的專家系統-基于傳統淺層模型的機器學習方法-基于深度學習的方法,與AI整體的發展史大體趨勢是一緻的。規則的部分這裡就不再贅述了,我們主要關注由淺入深的過程,下圖給出了文本分類60年來的發展簡史,其中從1960年代到2010年,基于傳統淺層模型的方法在文本分類中占據主導地位,而自2006年深度學習複興以來,特别是2010年之後,文本分類的主流方法已經迅速的從傳統方法過渡到了深度學習方法,最後在bert時代,預訓練模型開始統治包括文本分類在内的諸多NLP領域。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

2. 傳統淺層方法

傳統淺層方法往往需要較多的特征工程,這裡先簡單介紹如何為傳統機器學習方法構造文本特征。

2.1 特征工程

  • 稀疏表示
    • BOW:one-hot-->TF-IDF
    • N-gram
  • 稠密表示(embedding)
    • word2vec
    • Glove

2.1.1 稀疏表示

要表示一個文本,最簡單的方式可能就是one-hot編碼,即假設所有文本共享一個大詞表,文本包含某個詞就在相應詞的位置取1,否則取0,這種方式非常簡單,進一步的,我們可以引入TF-IDF來對詞進行權重。當然了,統計token不局限于詞,也可以用字元或者n-gram,而且除了token考慮出現與否之外,也可以用諸如高頻n-gram的分布來表示文本和類别。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

顯然,稀疏表示存在着高維、稀疏、無法表示相關性等問題,在使用時往往還需要結合其他的特征工程技術,比如降維、标準化、特征選擇等等,本文不對特征工程部分做過多展開,後續會在實踐篇有所涉及。稀疏表示的各種缺陷限制了其在下遊任務上的應用,後面逐漸發展出了稠密表示或者叫embedding技術。

2.1.2 稠密表示

經典的Word embedding技術以word2vec和glove為代表,其中word2vec通過上下文預測任務來學習詞的表示,優化目标為最大似然,而glove在其基礎上又引入了全局統計量,優化目标變成了拟合這些統計量。關于word2vec的細節,可以參考筆者的舊文,這裡就不再贅述了。稠密表示的優勢在于:低維稠密,可以在一定程度上表示語義,可以用來計算相似性。比如,word similarity和Word analogy任務。

原理:https://zhuanlan.zhihu.com/p/99397850

源碼:https://zhuanlan.zhihu.com/p/100141156

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

word2vec的思想還可以擴充到句子和段落層面,比較有代表性的工作是sentence2vec、Doc2vec等,這裡就不贅述了。

sent2vec: https://www.zhihu.com/question/34268273

Doc2vec: https://zhuanlan.zhihu.com/p/36886191

word2vec之後,embedding技術幾乎成為了NLP領域的标配,包括後來大火的Bert模型,隻不過對于word2vec,我們一般取embedding而棄模型,而對于Bert,我們一般拿模型來做微調,并不直接使用其embedding層。

2.1 傳統淺層模型

有了上一節的基礎文本表示/特征之後,下面就可以使用各種經典的分類模型來對文本進行分類。

2.1.1 樸素貝葉斯

貝葉斯分類以貝葉斯定理為基礎,核心思想如下:

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

所謂樸素貝葉斯,樸素一詞是指特征獨立性假設,這樣問題就會變得簡單很多。具體原理可以參考這篇部落格:

[帶你了解樸素貝葉斯分類算法]

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

樸素貝葉斯之于文本分類,優勢在于簡單快速,但特征獨立性假設對于文本分類任務而言并不夠合理,是以上限會受到影響。

2.1.2 邏輯回歸

LR模型可能是大家最常用的分類baseline模型了,容易了解也容易使用,可以直接調用sklearn的API,也可以自己實作或者用pytorch/tensorflow搭一個單層的LR,總之,使用LR可以非常快速的得到一個不錯的baseline。當然了,如果任務或者資料比較複雜,LR的表現可能沒有那麼好,這時候可以很自然的考慮切換到深度模式,LR相當于一個單層的使用sigmoid激活的二分類MLP,可以很自然的将其深度化。

2.1.3 KNN

KNN的原理很簡單,就是k近鄰決策,頂多再用距離加個權。KNN用于文本分類,最大的好處是不用訓練(非參數化),擁有不錯的小樣本表現,但缺陷是存儲和計算成本與訓練集大小成正比。實際使用時,訓練集比較大的話,推理速度真的非常慢,因為每個樣本都要和所有訓練樣本計算距離。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

2.1.4 SVM

在深度學習複興之前,SVM常常被認為是最好的分類器之一,用到文本分類領域效果也很好,但缺陷是計算和存儲成本正比于樣本數的平方,是以不太适合大規模資料。當然了,後來大家對SVM做了很多改進,專門研究怎麼提高SVM在大規模資料上的性能,這裡不展開。僅針對普通的SVM而言,實際用于文本分類時往往可以在小資料集上表現不錯,但對于大規模資料集可能力不從心,因為真的太慢了、太吃記憶體了。

SVM遇上大資料:https://www.zhihu.com/question/19591450

2.1.5 DT

決策樹有着非常良好的可解釋性,可視化之後可以直接看到決策過程,甚至可以基于此來寫規則完成一些簡單的任務,不過很容易過拟合,需要好好調參。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

2.1.6 內建方法

內建方法一般分為Bagging,Boosting以及Stacking,常用的算法如随機森林、AdaBoost、XGBoost、lightGBM等等,常見于各種比賽,尤其是XGBoost+各種內建操作的組合拳堪稱機器學習比賽的大殺器。唯一不太好的地方就是,XGBoost的參數實在是太多了,調參比較講究。

2.1.7 小結

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

3. 深度學習方法

常見的深度學習模型基本都可以用來做文本分類,下面将逐一介紹:

  • ReNN:遞歸神經網絡
  • MLP:多層感覺機
  • RNN:循環神經網絡
  • CNN:卷積神經網絡
  • Attention:注意力機制
  • GNN:圖神經網絡
  • Transformers:bert家族

3.1 ReNN

The Recursive Neural Networ(ReNN),遞歸神經網絡,可以遞歸的學習文本語義和句法樹結構而無須特别的特征設計。具體的,如下圖所示,将輸入文本中的每個單詞作為模型結構的葉節點,然後通過權重矩陣将所有節點作遞歸式的合并,最終所有節點的表示被聚合到根節點作為整個文本的表示并基于此來做分類。注意,權重矩陣在整個模型中共享。相比傳統方法,改善了效果,減少了特征工程的成本。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

ReNN用于文本分類的典型工作有 Recursive AutoEncoder (RAE)、 Matrix-Vector Recursive Neural Network (MV-RNN)、Recursive Neural Tensor Network (RNTN)和Deep Recursive Neural Network (DeepReNN)等,這裡不再贅述。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

3.2 MLP

MLP應該是大家最熟悉的神經網絡之一了,這裡隻簡單介紹一個基于MLP做文本分類或者說文本表示的典型工作, Paragraph Vector (Paragraph-Vec),顧名思義,将word2vec中CBOW的思想遷移到段落的表示中,然後基于段落表示去做分類。與CBOW相比,它增加了一個通過矩陣映射到段落向量的段落token。該模型通過該向量與單詞的三個上下文的連接配接或平均值來預測第四個單詞。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

3.3 RNN

RNN(包括LSTM、GRU等),循環神經網絡,序列依賴的特性天生符合文本資料的特性,是以在NLP領域廣為應用。典型工作如下:

(1)TopicRNN,它通過潛在主題捕獲文檔中單詞的依賴關系,并使用 RNN 捕獲局部依賴關系,使用潛在主題模型捕獲全局語義依賴。

(2)Miyato等人應用對抗訓練和虛拟對抗訓練技術來訓練文本并将擾動應用于詞嵌入而不是原始輸入文本,提高了詞嵌入的品質,并且在訓練過程中不易過拟合。(3)膠囊網絡使用由一層中的一組神經元組成的膠囊之間的動态路由來捕獲特征之間的關系,Wang等人提出了一種用于情感分類任務的具有簡單膠囊結構的RNN-Capsule模型。下面展示了膠囊與傳統神經元的差别,具體的可以參考這篇部落格“Capsule Network膠囊網絡解讀與pytorch代碼實作:https://zhuanlan.zhihu.com/p/130354532” 。

(4)Tree-LSTM 将 LSTM 模型的序列擴充到樹結構,對于Tree-LSTM模型,可以通過LSTM遺忘門機制遺忘對結果影響不大的整棵子樹。

(5)Wang等提出了一個名為雙邊多視角比對(BiMPM)的 NLI 任務模型,通過 BiLSTM 編碼器對輸入句子進行編碼,然後編碼後的句子在兩個方向上進行比對,結果由另一個 BiLSTM 層聚合在固定長度的比對向量中,最後結果接全連接配接層做分類。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

3.4 CNN

CNN,卷積神經網絡,不僅在圖像領域有着廣泛的應用,而且在文本領域也有着不少的應用。2014年Kim的TextCNN是将CNN應用于文本分類任務的奠基性工作,通過一個卷積層來捕捉不同的n-gram特征,然後通過池化層、全連接配接層來做分類,并通過保持詞向量靜态來學習除詞向量之外的超參數。随後為了充分利用無标注資料,有人提出了一種基于雙視圖半監督學習的CNN模型用于文本分類,該模型首先使用未标注資料訓練文本區域的嵌入,然後再在标注資料上進行訓練。但此後較長一段時間内,CNN在文本領域的應用都比較受限,原因在于CNN在文本領域很難将深度做起來,效果不夠好。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

TextCNN太淺了,隻有一層卷積層,表達能力不夠強,而且也無法模組化長距離依賴。那麼如何将文本領域的CNN深度做起來呢?一個很自然的想法是多堆幾層CNN不就行了嗎?然而直接堆深度是行不通的,直到2017年,騰訊的研究人員提出了DPCNN,DP代表深度金字塔,參考了resnet的實作引入了殘差機制,同時使用了pre-activation技術,二者配合終于将深度做了起來。這是第一次在文本領域将CNN的深度做起來。另外,DPCNN還使用了1/2池化做下采樣,讓感受野翻倍,計算量減半,進而呈現一個金字塔結構,這也是模型名字的由來。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

字元級别的表示有助于解決OOV問題,是以也發展出了char-CNN/char-RNN。亞當斯等提出了一個字元級的 CNN 模型,稱為 MGTC,用于對多語言文本進行分類。CNN和RNN各有所長,可以結合起來使用,比如BLSTM-2DCNN 內建了雙向 LSTM(BiLSTM) 與二維最大池化,使用 2D 卷積對矩陣的更有意義的資訊進行采樣,并通過 BiLSTM 更好地了解上下文。MTNA,BiLSTM和CNN層的組合,解決aspect類别分類和aspect term抽取任務。(MTNA: A neural multi-task model for aspect category classification and aspect term extraction on restaurant review)。

3.5 Attention

CNN 和 RNN 在與文本分類相關的任務上提供了出色的結果。然而,這些模型不夠直覺,可解釋性差,尤其是在分類錯誤方面,由于隐藏狀态的不可讀性而無法解釋。 基于注意力的方法成功地用于文本分類。 Bahdanau 等人首先提出了一種可用于機器翻譯的注意力機制。 受此啟發,Yang 等人引入了分層注意力網絡 (HAN),通過使用文本的資訊量極大的成分來獲得更好的可視化效果,如圖 8 所示。HAN 包括兩個編碼器和兩個級别的注意力層。 注意力機制讓模型對特定的輸入給予不同的關注。 它首先将基本詞聚合成句子向量,然後将重要句子向量聚合成文本向量。 通過兩個attention層次,可以了解到每個詞和句子對分類判斷的貢獻有多大,有利于應用和分析。Uw:衡量單詞對句子的重要性,Us:衡量句子對文檔的重要性。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

注意力機制可以提高文本分類的可解釋性,因而廣為流行。 還有一些其他基于注意力的工作。 LSTMN [112] 被提議從左到右逐漸處理文本,并通過記憶和注意力進行淺層推理。 BI-Attention [110] 專為跨語言文本分類而設計,以捕捉雙語長距離依賴關系。 胡等 [191]提出了一種基于類别屬性的注意力機制,用于解決包含小樣本指控的各種指控數量不平衡問題。 HAPN [124] 用于小樣本文本分類。 除了注意力機制以外,還可以引入自注意力機制。為了捕獲長期依賴關系,雙向塊自注意網絡(Bi-BloSAN)[120]對按順序分割的每個塊使用塊内自注意網絡(SAN),對輸出使用塊間SAN。關于自注意力機制,這裡就不再贅述了,可自行查閱transformer/bert等相關文獻。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

方面級的情感分析(ABSA)[31,193]将文本分解為多個方面,并為每個方面配置設定一個情感極性。情感極性可以分為三種類型:積極、中性和消極。在方面級的情感任務中,提出了一些基于注意的模型來識别對特定方面的細粒度意見極性。ATAELSTM[194]通過注意機制,可以根據輸入的資訊關注到每句話的不同部分。MGAN[195]提出了一種細粒度的注意機制,其中帶有粗粒度的注意機制,用于學習上下文和方面之間的詞級互動。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

為了捕捉QA任務中每個問題和候選答案之間複雜的語義關系,Tan等人[196]引入了CNN和RNN,并通過使用受問題上下文影響的簡單單向注意力機制生成答案嵌入。注意力捕捉了問題和答案嵌入之間的依賴關系。抽取式QA可以看作是文本分類任務。它輸入一個問題和多個候選答案,并對每個候選答案進行分類以識别正确答案。此外,具有雙向注意力機制的AP-BILSTM[197]可以學習問題與每個候選答案之間的權重,進而獲得每個候選答案對問題的重要性。

3.6 預訓練+微調

自bert/gpt等大規模預訓練模型出現後,預訓練+微調的兩階段方式迅速席卷NLP領域。早期的預訓練工作有ELMo、GPT和Bert等,後面又逐漸發展出了XLNet、ALBERT、BART、T5、SpanBERT、ERNIE、GPT3、PaLM等模型,這裡不展開介紹,感興趣的朋友可以自行查閱相關文獻。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

在paper with code網站的文本分類的benchmark上,預訓練模型幾乎霸榜,随處可見T5/XLNet/ERNIE/RoBERTa等預訓練模型的身影,有的還會與CNN/GCN等結合。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

3.7 GNN

基于GNN的模型[207,208]通過對句子的句法結構進行編碼,在語義角色标記任務[209]、關系分類任務[210]和機器翻譯任務中,獲得了優異的性能。基于 GNN 的模型可以學習句子的句法結構,是以一些研究人員嘗試使用 GNN 進行文本分類。 DGCNN [153] 是一種将文本轉換為詞圖的graph-CNN,具有使用 CNN 模型學習不同級别語義的優勢。 姚等[155] 提出了文本圖卷積網絡(TextGCN),它為整個資料集建構異構詞文本圖并捕獲全局詞共現資訊。 為了使基于 GNN 的模型能夠支援線上測試,Huang 等人[159] 為具有全局參數共享的每個文本建構圖形,而不是語料庫級别的圖形結構,以幫助儲存全局資訊并減輕負擔。 TextING [162] 為每個文檔建構單獨的圖形,并通過 GNN 學習文本級單詞互動,以有效地為新文本中的晦澀單詞生成嵌入。其他相關工作還包括圖注意力網絡(GAT)、具有雙層注意力機制的異構圖注意力網絡(HGAT)、MAGNET等等。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

選擇性事件預測是一種特殊的文本分類任務,EP中的文本由一系列連續的子事件組成。提取這些子事件之間關系的特征是至關重要的。SGNN[214]通過構造事件圖來更好地利用事件網絡資訊,進而為事件互動模組化并學習更好的事件表示。該模型充分利用密集事件連接配接完成EP任務。

3.8 其他

除了上述的幾個大類以外,還有一些單獨的模型,下面介紹一些典型的工作。

  • 孿生網絡,Siamese Neural Network,常用于語義比對、搜尋、推薦等任務,當然也可以用來做分類。
  • 虛拟對抗訓練,Virtual Adversarial Training (VAT),可以提高模型的魯棒性。
  • 強化學習,在文本分類領域并不常見。
  • 記憶網絡,memory network,補充NN在記憶方面的不足。
  • 将情感分析模組化成QA任務。
  • 引入外部知識、常識,對于事件預測等任務有效果。

3.9 小結

RNN 是順序計算的,不能并行計算,這一缺點使其在目前模型趨于更深、參數更多的趨勢下的應用受到限制。CNN 通過卷積核從文本向量中提取特征,卷積核捕獲的特征數量與其大小有關。如果CNN足夠深,理論上它可以捕獲遠距離的特征。但由于深度網絡的參數優化方法不足,以及池化層導緻的位置資訊丢失,更深層并沒有帶來明顯的提升。不過與RNN相比,CNN具有并行計算能力,對于CNN的改進版本可以有效保留位置資訊。盡管如此,CNN的遠距離特征捕獲能力較弱依然是一個問題。GNN 為文本建構graph,當設計出有效的圖結構時,學習到的表示可以更好地捕獲結構資訊。Transformer 将輸入文本視為一個全連接配接圖,邊上有注意力得分權重。 具有并行計算能力,通過self-attention可以高效提取不同詞間的特征,解決短時記憶問題。 然而,Transformer 中的注意力機制計算量大,尤其是在處理長序列時。 最近出現了一些關于改善 Transformer 計算複雜度的模型 [146、225]。 總的來說,Transformer 是文本分類的更好選擇。 最後我們做一個彙總,表格裡列出了文本分類任務上不同模型的表現,可以看到主要由RNN、CNN、attention和transformers主導,也有不少結合GNN的工作。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述
【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

4. 資料與名額

4.1 資料集

下圖列出了幾十個常見的文本分類資料集,從細分的任務來看,主要包括Sentiment Analysis (SA)、News Classification (NC)、Topic Labeling (TL)、Question Answering (QA)、Natural Language Inference (NLI)和Multi-Label (ML)等;從類别情況來看,主要分為二分類、多分類、多标簽分類,多分類中大部分資料集的類别數在幾十到幾百,但也有少部分資料集的類别數高達數千;從語言來看,大部分為英語,少數中文,極少數多語言。這裡提到的中文資料集非常少,可以關注CLUE中文本分類相關的任務以及各種中文文本分類的比賽。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

4.2 評價名額

在評估文本分類模型方面,準确性和F1分數是最常用于評估文本分類方法的方法。 後來,随着分類任務難度的增加或某些特定任務的存在,評估名額得到了改進。 例如,@ 和 − 1 等評估名額用于評估多标簽文本分類性能,而 MRR 通常用于評估 QA 任務的性能。 在表 3 中,我們給出了評估名額中使用的符号。注意:分類任務的評價名額并不是個簡單的話題,二分類、多分類、多标簽分類的評價名額各有異同,後續可能會單獨發文介紹,這裡就不再贅述了。

【OpenNLP】文本分類系列01:由淺入深的文本分類綜述

5. 總結與展望

5.1 總結

本文主要介紹了已有的文本分類模型,從傳統模型到深度學習。首先,我們介紹了一些主要的傳統模型和深度學習模型,并給出了一個總結表。傳統的文本分類模型主要通過改進特征提取方案和分類器設計來提高文本分類性能。相比之下,深度學習模型通過改進表示學習方法、模型結構以及附加資料和知識來提高性能。然後,我們介紹了帶有彙總表的資料集以及單标簽和多标簽任務的評估名額。在此基礎上,給出了經典文本分類資料集在不同應用情況下,主要模型在彙總表中的量化結果。最後,總結了文本分類未來可能面臨的研究挑戰。

5.2 展望

未來文本分類的研究主要面臨着資料、模型和性能等方面的難點和痛點,既是挑戰也是機遇。

資料層面的挑戰:

  • Zero-shot/Few-shot learning:比如prompt-tuning,few-shot/in-context learning等。
  • The external knowledge:引入知識圖譜等外部知識,典型工作如ERNIE。
  • Special domain with many terminologies:特殊領域的文本分類,比如法律、醫療等;領域預訓練。是以,如何在訓練過程中減少層次語義的損失,保留豐富複雜的文檔語義資訊,仍然是一個有待解決的問題。
  • The multi-label text classification task:多标簽文本分類一直是領域内的難點。多标簽文本分類需要充分考慮标簽之間的語義關系,模型的嵌入和編碼是一個有損壓縮的過程。

模型層面的挑戰:

  • Text representation:尋求更好的文本表示。
  • Model integration:傳統方法、CNN/RNN/transformers等模型各有優劣,探索內建之道!
  • Model efficiency:效率和效果的平衡。

性能層面的挑戰:

  • The semantic robustness of the model:對抗訓練是提高模型魯棒性的重要方法。
  • The interpretability of the model:深度學習的老問題了,attention機制和GNN可以提供一些幫助,但還遠遠不夠。

參考資料

https://arxiv.org/abs/2008.00364

https://dl.acm.org/doi/abs/10.1145/3439726

https://zhuanlan.zhihu.com/p/436429409

https://zhuanlan.zhihu.com/p/35457093

https://www.zhihu.com/question/50888062

https://zhuanlan.zhihu.com/p/54165155

https://aclanthology.org/D16-1058.pdf

https://zhuanlan.zhihu.com/p/130354532

https://zhuanlan.zhihu.com/p/527510640

https://zhuanlan.zhihu.com/p/385475273

https://zhuanlan.zhihu.com/p/39535198

https://www.kaggle.com/code/kmkarakaya/multi-label-model-evaluation

https://zhuanlan.zhihu.com/p/32965521

繼續閱讀