論文標題:
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 的交流群裡。