ICML 2020 | 基於類別描述的文本分類模型

2021-02-20 PaperWeekly

論文標題:

Description Based Text Classification with Reinforcement Learning

論文作者:

Duo Chai, Wei Wu, Qinghong Han, Fei Wu and Jiwei Li

論文連結:

https://arxiv.org/pdf/2002.03067.pdf

收錄情況:

ICML 2020

一般來說,模型越深效果越好。但是同時,模型越深也更難訓練——即無法收斂到訓練集上一個好的值。

今天,我們給大家介紹近期香儂科技被ICML2020接受的的一篇文章基於類別描述的文本分類模型

該模型的主要思想是:通過顯式地引入對分類標籤的描述提高文本分類的效果。我們提出了三種方法引入這種描述:

使用這種技術,我們能夠在單標籤文本分類、多標籤文本分類和多角度情感分析任務的10個數據集上取得顯著更好的效果

文本分類是自然語言處理中非常重要的一項任務,它要求模型判斷輸入文本的類別,如情感、評分、類型等。

從分類數量上說,分為單標籤分類和多標籤分類,前者指每個文本只有一個標籤類,後者指每個文本可以有多個標籤類。

從任務類型講,可以分為文檔分類、情感分析等,前者指對整個輸入文本分類(可以是單標籤或多標籤),後者指對文本的多種情感判斷類別。

經典的文本分類方法是把待分類標籤視為簡單的下標。如當前的輸入文本是「這個電影真好看」,需要分類的標籤是{1:積極,0:消極},模型接受文本之後,輸出的是0或者1,代表分類結果。

顯然,用這種分類方法,模型完全無視了「積極」和「消極」的語義,對更複雜標籤,這無疑是一種「語義浪費」。我們想要把標籤提供的信息利用起來。

鑑於此,我們提出在輸入文本的同時,也輸入對標籤本身的描述,比如牛津詞典對「positive」的定義(描述)是:「full of hope and confidence, or giving cause for hope and confidence」。

把這個描述和原始文本拼接在一起,送入模型,模型輸出一個概率值,代表當前文本具有該標籤類的可能性。如此,我們就能充分利用標籤本身提供的語義。

但是如果待分類文本的標籤數很多(甚至上百個標籤),一個一個為他們人工構造描述也是件麻煩的事情,況且人工構造的也不一定「準確」。

為此,我們期望模型能動態地、根據輸入句子的不同自動構造出一個描述來。

因而,我們又提出了兩種方法:抽取文本中的一段作為描述,和使用一個語言模型從頭生成一段描述。這兩種方法都可以使用強化學習得以實現。

這三種方法的一個例子如下。對當前輸入的文本,我們現在要去判斷它是否屬於「car」這個標籤,而「car」的模板描述、抽取描述和生成描述分別如圖所示。

這種基於標籤描述的方法有以下好處:

融入了標籤語義,而不僅僅是簡單的下標,使得模型更好地進行分類;

可以很輕鬆地進行多分類,只需要一個一個判斷標籤即可;

得到標籤描述具有一定的靈活性,不限於人工定義的標籤描述。

用這種方法,我們能夠在單標籤分類數據集AGNews, 20news, DBPedia, Yahoo, YelpP,IMDB,多標籤分類數據集Reuters,AAPD,和多方面情感分析數據集BeerAdvocate,TripAdvisor取得顯著更好的效果。

下面的問題是:對每個標籤和每個輸入,如何得到該標籤的描述。模板法(Tem.)不必多說,我們簡單使用維基百科的定義作為模板。

由於我們沒有顯式提供每個標籤應該抽取或生成怎樣的描述,我們自然想到使用強化學習。

 | 抽取式模型(Ext.)

首先我們來看如何從文本中抽取一段作為標籤描述。設輸入文本是,對每個標籤,我們要構造一個描述,這個描述是輸入文本中的一段,記為。這就等價於選取一個初始下標和一個終止下標,可以參數化為:

就是對標籤,從文本中選取下標作為起始下標的概率;而就是選取為終止下標的概率。這樣,把這兩個相乘,就得到了選取整個文本段作為描述的概率:

在選取了描述之後,就把描述和文本拼接起來一起送入模型,讓模型輸出一個概率值,判斷文本是否具有該標籤,這就可以作為強化學習中的獎勵(Reward),記為。如此一來,我們就可以用REINFORCE算法去更新參數:

 | 生成式模型(Abs.)

同樣地,生成式模型使用一個序列到序列的模型去從頭生成描述,而不是從輸入文本中選取下標。

具體地說,對每個標籤,我們使用一個公有的序列到序列模型生成它的描述:

對不同的,我們在編碼端和解碼端的每一步額外添加一個標籤表示向量。

和抽取式模型不同,生成式模型每次的 行為(Action) 是從詞表中選取一個詞,而詞表往往非常大,這就可能導致方差變大,使得訓練不穩定。

為此,我們使用REGS——Reward for Every Generation Step去緩解這個問題。

在REINFORCE裡,一個句子的reward在生成結束之後才能得到,換句話說,對解碼端的每一步,它們收到的reward是相同的。

而在REGS裡,我們使用一個判別器,對每一步賦予不同的reward:

序列到序列模型使用標籤模板初始化(即將文本作為輸入,將標籤模板作為輸出)。

為了驗證該方法的有效性,我們在三類文本分類任務上實驗:單標籤分類、多標籤分類和多方面情感分析。

單標籤分類指每個輸入文本只有一個標籤。數據集有AGNews, 20newsgroups, DBPedia, YahooAnswers, YelpReviewPolarity, IMDB。

多標籤分類指每個輸入文本可能有多個標籤。數據集有Reuters, AAPD。

多方面情感分析指輸入文本可能涉及多個方面,每個方面需要分類各自的標籤。數據集有BeerAdvocate和TripAdvisor。

我們的基線模型主要有LSTM和BERT-base。我們同樣使用BERT-base作為主幹模型。

下表是在單標籤分類任務上的結果(錯誤率,越小越好)。首先可以看到,基於標籤描述的方法都優於BERT-base;其次,抽取式和生成式的描述生成方法平均優於基於模板的方法。

下表是多標籤分類任務上的結果,基於標籤描述的方法具有顯著更小的F1錯誤率。

然後是多方面情感分析任務的結果。和BERT-base相比,我們的方法可以取得大幅度的提高,這是因為我們能從若干的情感方面中針對每個不同的方面,從文本中提取關於它的最重要信息,而不是一次性考慮所有的方面。

接下來看看如果我們把模板法中的模板替換會有怎樣的變化。

具體地,我們嘗試了四種不同的模板:下標(類似最傳統的方法,把每個標籤視為一個字符串似的數字,如"one","two")、關鍵詞(把每個標籤描述為單個關鍵詞)、關鍵詞拓展(把每個標籤用多個近義的關鍵詞描述)和維基百科定義(本文的方法)。

結果如下表所示:

顯然,下標模板和傳統方法沒有區別,而其他方法都有所提升;多個關鍵詞好於單個關鍵詞,而更完備的描述(如維基百科定義)會提供更豐富的標籤語義信息,故得到最好的效果。

下面再來看看文本長度、訓練集大小和收斂速度的影響。如下圖所示,我們不難得到以下結論:

隨著文本長度的增加,原始方法(BERT)的效果迅速下降,而使用標籤描述的方法由於標籤本身具有的語義,模型的效果比BERT顯著更好;

訓練集越小,各模型效果越差,但相比BERT,基於標籤描述的方法具有更好的小樣本表現,這說明基於標籤描述的方法在小樣本上有更好的泛化能力;

模板法由於提供的是靜態的標籤描述,故模型能夠快速收斂,相比之下,生成式模型需要去學習如何生成標籤描述,故開始訓練時效果並不好,但隨著訓練的進行,它最終也能夠收斂並取得更好的結果。

最後來探究不同初始化方法的影響。眾所周知,強化學習難以訓練和收斂,所以一個號的初始化可以極大加快收斂。

我們在Yahoo和AAPD兩個數據集上,對抽取式和生成式模型進行不同的初始化,然後用強化學習訓練。

對抽取式(Ext),我們探究三種初始化方法:dummy Init是以選擇dummy token的方法初始化模型,ROUGE-L Init是選擇和模板描述相比得到最大的ROUGE-L得分的文段,random Init是隨機初始化。

對生成式(Abs),template Init是用模板作為要生成的描述去初始化模型。結果如下圖所示。

可以看到,幾種初始化方法對抽取式而言差別不是很大,即使是隨機初始化也可以實現可以接受的準確率,但是對生成式而言,隨機初始化無法使模型收斂。

這是因為抽取式模型的搜索空間更小,因為它只需要選擇文段,而生成式模型的搜索空間是所有可能的句子,隨機初始化無法導致收斂。

我們提出了基於標籤描述的文本分類方法,該方法為每個標籤提供一段文本描述,或是由模板得到,或是文本中的一段,或者是動態生成的一個句子。

我們使用強化學習訓練標籤描述生成模型,然後把生成的標籤和文本拼接在一起,讓模型判斷文本是否具有該標籤。

實驗表明,這種方法能夠在單標籤分類、多標籤分類和多方面情感分析任務上取得顯著的效果,尤其是對複雜的標籤(如多方面情感分析)體系,該方法具有突出的優勢。

實際上,這種方法可以看作是一種廣義的問答(QA),Question就是標籤描述,Document就是輸入文本,Answer就是輸出概率。從這個角度講,其他許多任務都可以統一到這種框架下。

🔍

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報導人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。

相關焦點

  • 基於Text-CNN模型的中文文本分類實戰
    本文介紹NLP中文本分類任務中核心流程進行了系統的介紹,文末給出一個基於Text-CNN模型在搜狗新聞數據集上二分類的Demo。文本分類是自然語言處理領域最活躍的研究方向之一,從樣本數據的分類標籤是否互斥上來說,可以分為文本多分類與文本多標籤分類。
  • 深度學習:基於語境的文本分類弱監督學習
    深度學習:基於語境的文本分類弱監督學習 丁磊 發表於 2021-01-18 16:04:27 高成本的人工標籤使得弱監督學習備受關注。seed-driven 是弱監督學習中的一種常見模型。
  • 機器學習自動文本分類
    正如 Jeff Bezos 在給股東的年度公開信中所說:在過去的幾十年中,計算機已將程式設計師可以用清晰的規則和算法來描述的任務自動化。而對於精確描述規則困難得多的任務,現代機器學習技術同樣可以自動化。說到自動化文本分類,我們寫過文章介紹它背後的技術及其應用。在這裡,我們改進一下文本分類器。在這篇文章中,我們將討論與自動化文本分類 API 相關的技術、應用、定製和細分。
  • 近期必讀的六篇 ICML 2020【對比學習】相關論文
    代碼: https://github.com/google-research/simclr網址:https://proceedings.icml.cc/paper/2020/hash/36452e720502e4da486d2f9f6b48a7bb
  • 文本分類六十年
    本文通過回顧文本分類領域自1961年到2020年以來的歷年SOTA模型來填補這類綜述研究的空白,聚焦於從淺層學習到深度學習的各種模型。根據文本分類任務所涉及的文本數據來源、特徵提取的方法以及分類模型的不同進行分類對比研究。隨後,將討論每一個類別的詳細情況,其中涉及到給預測和測試提供可信支撐的技術變遷以及基準數據集。
  • 基於 Python 的文本分類簡介
    機器學習是一種從數據中學習表示的方法,因此我們可以用它來提取知識或基於它來預測標籤。其中的一個常見應用是文本分類。文本分類是將文本按照其所屬類別進行分類的一項工作。在機器學習成為一種趨勢之前,這項工作大多是由幾個注釋者手工完成的。這在將來會成為一個問題,因為數據會變得更大,而且僅僅因為這樣做就會花費大量的時間。因此,我們應該自動化的任務,同時也獲得更高的準確性。
  • 李偉:輿情事件等級評估及基於語義理解實現文本精細化分類
    請人民網輿情專家就36個輿情事件(類別基本平衡)進行了評級,充分利用了專家知識,通過這些打了標記樣本訓練參數。把不同類別案例得分區間理想狀態下沒有交叉,(如「一般」類別的最高分要 lt; 臨近的「敏感」類型的最低分),而且各類別得分間隔要大致相等作為損失函數,得到的多分類模型具有相當不錯準確性。當前使用這個監督學習方法是可行的。
  • 多標籤文本分類模型總結
    什麼是多標籤文本分類學術上常用的說法有兩個,一個是ExtremeMulti-label Learning, 簡稱XML,另一個是Extreme Multi-label Text Classification,簡稱XMTC,本質上都是對文本進行多標籤分類,即對於一個給定的文本,可能有多個標籤,我們需要設計一個模型預測其標籤。
  • 基於關鍵詞的文本內容過濾算法的研究與應用
    在國外文本過濾相關技術研究方面,Belkin和Croft提出了用戶特徵過濾對文本過濾系統的影響和積極意義;Lam等人對個人興趣飄逸探測算法進行研究;Yang和Chute基於實例和最小平方利益的線性模型改進了文本分類器;Mosafa構造了智能信息過濾的多層次分解模型。
  • 基於Bert和通用句子編碼的Spark-NLP文本分類
    如果你正在構建聊天機器人、搜索專利資料庫、將患者與臨床試驗相匹配、對客戶服務或銷售電話進行分級、從財務報告中提取摘要,你必須從文本中提取準確的信息。文本分類是現代自然語言處理的主要任務之一,它是為句子或文檔指定一個合適的類別的任務。類別取決於所選的數據集,並且可以從主題開始。
  • CNN與RNN中文文本分類-基於TensorFlow 實現
    摘要:本文是基於TensorFlow在中文數據集上的簡化實現,使用了字符級CNN和RNN對中文文本進行分類,達到了較好的效果。
  • 超越SOTA Transformer模型,哈佛、FAIR提出基於殘差能量模型的文本...
    機器之心報導機器之心編輯部在本文中,來自哈佛大學、Facebook AI 研究院的研究者提出了一種基於殘差能量模型的文本生成方法,效果超過 state-of-the-art 的 transformer 語言模型。
  • 【ICML2020】基於圖感知邏輯回歸和搶佔式查詢候選集生成的屬性圖上主動學習策略
    右圖: GEEM vs PreGEEM 對於下一個打標籤節點risk預估值對比.對於(含節點屬性)圖網絡中的節點分類問題是分類問題中的一項重要任務,但通常獲取節點標籤較為困難或昂貴,在有限可標註數據的預算下通常通過主動學習可以提高分類性能。在圖網絡結構數據中最好的現有方法是基於圖神經網絡,但是它們通常表現不佳除非有大量可用的標記節點作為驗證集以選擇一組合適的超參數。
  • 基於Kaggle數據的詞袋模型文本分類教程
    有一個Kaggle的訓練比賽,你可以嘗試進行文本分類,特別是電影評論。沒有其他的數據——這是使用文本分類做一些實驗的絕佳機會。Kaggle有一個關於本次比賽的tutorial,它會帶你走進流行的詞袋方法以及word2vec。本教程幾乎代表了最佳實踐,最有可能讓參賽選手的優化變得很容易。而這正是我們要做的。
  • ICML 2020 大陸論文量居前三,各獎項出爐!
    該方法的核心部分是開發一個用於自動搜索參數的策略網絡,該網絡能夠通過混合無模型和基於模型的深度強化學習來高效地學習參數。研究人員通過數值和視覺實驗表明,該方法學到的策略能夠為不同的狀態定製不同的參數,並且比現有的手動調參更加高效。
  • 手把手教你如何用TensorFlow實現基於DNN的文本分類
    在本文中,我們將利用 TensorFlow 實現一個基於深度神經網絡(DNN)的文本分類模型,希望對各位初學者有所幫助。大體流程如下圖所示:在本例中,我們將要構建的模型需要根據輸入文本,輸出相應的類別,即完成文本分類的工作。因此這裡的輸入應該是文本(text),輸出是類別(category)。更具體地說,本例中我們已經事先獲取了標記數據(即一些已經標明了類別的文本段),然後用這些數據對算法進行訓練,最後再用訓練好的模型對新文本分類。
  • 數據挖掘之文本分類技術,最詳細的原理解讀
    二、文本分類過程分類問題包括學習和分類兩個過程,學習過程的目標是根據已知的訓練數據構建分類模型,得到分類器;分類過程的任務是利用學習得到的分類器,預測新數據實例的類標號。圖 1 是分類問題的描述圖。2 文本表示模型 若使用計算機對自然語言的文本內容進行處理和分類,需要首先將文本表示為數值的形式,並對其進行描述。
  • 基於TorchText的PyTorch文本分類
    文本分類是自然語言處理的重要應用之一。在機器學習中有多種方法可以對文本進行分類。但是這些分類技術大多需要大量的預處理和大量的計算資源。在這篇文章中,我們使用PyTorch來進行多類文本分類,因為它有如下優點:PyTorch提供了一種強大的方法來實現複雜的模型體系結構和算法,其預處理量相對較少,計算資源(包括執行時間)的消耗也較少。
  • 基於Conditional Layer Normalization的條件文本生成
    比如控制文本的類別,按類別隨機生成文本,也就是 Conditional Language Model;又比如傳入一副圖像,來生成一段相關的文本描述,也就是 Image Caption。,不過這本質還是跟 GPT 一樣的語言模型,只能以文字輸入為條件;而最近的論文 Plug and Play Language Models: a Simple Approach to Controlled Text Generation [3] 將 p(x|y) 轉化為 p(x)p(y|x) 來探究基於預訓練模型的條件生成。
  • textCNN論文與原理——短文本分類(基於pytorch和torchtext)
    前言之前書寫了使用pytorch進行短文本分類,其中的數據處理方式比較簡單粗暴。自然語言處理領域包含很多任務,很多的數據向之前那樣處理的話未免有點繁瑣和耗時。在pytorch中眾所周知的數據處理包是處理圖片的torchvision,而處理文本的少有提及,快速處理文本數據的包也是有的,那就是torchtext[1]。