文本分類的一個大型“真香現場”來了:JayJay的推文《超強文本半監督MixText》中告訴大家不要浪費沒有標注過的數據,但還是需要有標注數據的!但今天介紹的這篇paper,文本分類居然不需要任何標注數據啦!哇,真香!
當前的文本分類任務需要利用眾多標注數據,標注成本是昂貴的。而半監督文本分類雖然減少了對標注數據的依賴,但還是需要領域專家手動進行標注,特別是在類別數目很大的情況下。
試想一下,我們人類是如何對新聞文本進行分類的?其實,我們不要任何標注樣本,只需要利用和分類類別相關的少數詞匯就可以啦,這些詞匯也就是我們常說的關鍵詞。
BUT!我們之前獲取分類關鍵詞的方式,大多還是需要靠人工標注數據、或者人工積累關鍵詞表的;而就算積累了某些關鍵詞,關鍵詞在不同上下文中也會代表不同類別。
那么,有沒有一種方式,可以讓文本分類不再需要任何標注數據呢?
本文JayJay就介紹一篇來自「伊利諾伊大學香檳分校韓家煒老師課題組」的EMNLP20論文《Text Classification Using Label Names Only: A Language Model Self-Training Approach》。
這篇論文的最大亮點就是:不需要任何標注數據,只需利用標簽名稱,就在四個分類數據上獲得了近90%的準確率!
為此,論文提出一種LOTClass模型,即Label-name-OnlyTextClassification,LOTClass模型的主要亮點有:
不需要任何標注數據,只需要標簽名稱!只依賴預訓練語言模型(LM),不需要其他依賴!
提出了類別指示詞匯獲取方法和基于上下文的單詞類別預測任務,經過如此訓練的LM進一步對未標注語料進行自訓練后,可以很好泛化!
在四個分類數據集上,LOTClass明顯優于各弱監督模型,并具有與強半監督和監督模型相當的性能。
本文的組織結構為:
LOTClass總體流程
LOTClass將BERT作為其backbone模型,其總體實施流程分為以下三個步驟:
標簽名稱替換:利用并理解標簽名稱,通過MLM生成類別詞匯;
類別預測:通過MLM獲取類別指示詞匯集合,并構建基于上下文的單詞類別預測任務,訓練LM模型;
自訓練:基于上述LM模型,進一步對未標注語料進行自訓練后,以更好泛化!
下面我們就詳細介紹上述過程。
第一步:標簽名稱替換
在做文本分類的時候,我們可以根據標簽名稱聯想到與之相關聯的其他關鍵詞,這些關鍵詞代表其類別。當然,這就需要我們從一個蘊含常識的模型去理解每個標簽的語義。很明顯,BERT等預訓練LM模型就是一個首選!
論文采取的方法很直接:對于含標簽名稱的文本,通過MLM來預測其可以替換的其他相似詞匯。
如上圖展示了AG新聞語料(體育新聞)中,對于標簽名稱“sports”,可通過MLM預測出替換「sports」的相似詞匯。
具體地,每一個標簽名稱位置通過MLM預測出TOP-50最相似的替換詞,然后再整體對每一個類別的標簽名稱(Label Name)根據詞頻大小、結合停用詞共選取TOP-100,最終構建類型詞匯表(Category Vocabulary)。
通過上述方式找出了AG新聞語料每一個類別-標簽名稱對應的類別詞匯表,如上圖所示。
第二步:類別預測
像人類如何進行分類一樣,一種直接的方法是:利用上述得到的類型詞匯表,然后統計語料中類別詞匯出現的次數。但這種方式存在2個缺陷:
不同詞匯在不同的上下文中代表不同意思,不是所有在語料中出現的類型詞匯都指示該類型。在第一幅圖中,我們就可以清晰發現:單詞「sports」在第2個句子并不代表體育主題。
類型詞匯表的覆蓋范圍有限:在特定上下文中,某些詞匯與類別關鍵詞具有相似的含義,但不包含在類別詞匯表中。
為了解決上述缺陷,論文構建了一個新的MCP任務——基于MASK的類別預測任務(Masked Category Prediction,MCP),如下圖所示:
MCP任務共分為兩步:
獲取類別指示詞:上述已經提到,類別詞匯表中不同的詞匯在不同上下文會指代不同類別。論文建立了一種獲取類別詞匯指示的方法(如上圖左邊所示):對于當前詞匯,首先通過BERT的MLM任務預測當前詞匯可替代的TOP50相似詞,然后TOP50相似詞與每個類別詞匯表進行比對,如果有超過20個詞在當前類別詞匯表中,則選取當前詞匯作為該類別下的「類別指示詞」。
進行遮蔽類別預測:通過上一步,遍歷語料中的每一個詞匯,我們就可得到類別指示詞集合和詞匯所對應的標簽。對于類別指示詞集合中每一個的單詞,我們將其替換為「MASK」然后對當前位置進行標簽分類訓練。
值得注意的是:MASK類別指示詞、進行類別預測至關重要,因為這會迫使模型根據單詞上下文來推斷類別,而不是簡單地記住無上下文的類別關鍵字。通過MCP任務,BERT將更好編碼類別判斷信息。
第三步:自訓練
論文將通過MCP任務訓練好的BERT模型,又對未標注語料進行了自訓練。這樣做的原因為:
仍有大規模語料未被MCP任務利用,畢竟不是每一個語料樣本含有類別指示詞。
MCP任務進行類別預測不是在「CLS」位置,「CLS」位置更利于編碼全局信息并進行分類任務。
論文采取的自訓練方式很簡單,如上圖所示,每50個batch通過軟標簽方式更新一次標簽類別。
LOTClass表現如何?
為了驗證LOTClass的效果,論文在4個分類數據集上與監督、半監督和弱監督進行了對比。
對于弱監督方法,則將整個訓練集作為未標注數據;對于半監督方法,每個類別選舉10個樣本作為標注數據;對于監督方法,則全部訓練集就是標注數據。
如上圖所示,沒有自訓練的LOTClass方法就超過了一眾弱監督方法,而利用自訓練方法后LOTClass甚至在AG-News上可以與半監督學習的SOTA——谷歌提出的UDA相媲美了,與有監督的char-CNN方法也相差不多啦!自訓練self-trainng為何如此強大?我們將在接下來的推文中會進一步介紹。
也許你還會問:LOTClass相當于使用多少標注數據呢?
如上圖,論文給出了答案,那就是:LOTClass效果相當于 每個類別使用48個標注文檔的有監督BERT模型!
總結與展望:利用標簽名稱,真香!
首先對本文總結一下:本文提出的LOTClass模型僅僅利用標簽名稱,無需任務標注數據!在四個分類數據上獲得了近90%的準確率,與相關半監督、有監督方法相媲美!LOTClass模型總體實施流程分三個步驟:標簽名稱替換,MASK類別預測,自訓練。
本文提出的LOTClass模型只是基于BERT,并沒有采取更NB的LM模型,每個類別最多使用3個單詞作為標簽名稱,沒有依賴其他工具(如回譯方式)。我們可以預測:隨著LM模型的升級,數據增強技術的使用,指標性能會更好!
利用標簽名稱,我們是不是還可以暢想一些“真香現場”呢?例如:
應用于NER任務:發現實體類別下的更多指示詞,如「PERSON」類別;嗯嗯,再好好想象怎么把那套MCP任務嵌入到NER任務中吧~
與半監督學習更好協作:1)沒有標注數據時,可以通過LOTClass構建初始標注數據再進行半監督流程;2)將MCP任務設為半監督學習的輔助任務。
原文標題:韓家煒課題組重磅發文:文本分類只需標簽名稱,不需要任何標注數據!
文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
數據
+關注
關注
8文章
6898瀏覽量
88836 -
人工智能
+關注
關注
1791文章
46872瀏覽量
237598
原文標題:韓家煒課題組重磅發文:文本分類只需標簽名稱,不需要任何標注數據!
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論