日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

不讲武德,只用标签名就能做文本分类

發(fā)布時間:2024/7/5 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不讲武德,只用标签名就能做文本分类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文 | 誰動了我的煉丹爐
編 | 兔子醬

今天給大家介紹一篇微軟研究院在EMNLP2020上發(fā)表的論文,主題是弱監(jiān)督文本分類。看到標題的你可能會和我剛開始一樣震驚,只是知道標簽名怎么給文本分類呢?是的,雖然聽起來不可思議,但看完下面的解讀你會發(fā)現(xiàn)論文的思路是如此簡單和精妙。

論文題目:
Text Classi?cation Using Label Names Only: A Language Model Self-Training Approach

論文鏈接:
https://arxiv.org/pdf/2010.07245

Github:
https://github.com/yumeng5/LOTClass

Arxiv訪問慢的小伙伴也可以在 【夕小瑤的賣萌屋】訂閱號后臺回復關鍵詞 【0120】 下載論文PDF~

方法

首先,概括一下這篇論文的核心思想,簡單來說,就是先通過人的先驗知識來為每個類別設定幾個代表性的關鍵詞,也就是論文中說的Label Names,你沒看錯,只需要知道有哪些類別和每個類別有哪些關鍵詞,而不需要知道每條樣本的標簽!!然后通過基于預訓練模型的方法來篩選掉一些低質量的語料,用剩余的精挑細選的語料來支撐后面的語言模型任務;最后通過自訓練的方法充分利用大量不含關鍵詞的樣本,提高模型性能。下面我們再詳細介紹這種方法的各個步驟。

設定關鍵詞

事先給每一個類別選一些你認為對目標類別重要的一些代表性的關鍵詞。比如通過文本判斷描述的是什么動物,對于目標類別“鼠”,我們可以提出一系列關鍵詞,“耗子”、“老鼠”。通過關鍵詞匹配,我們可能會得到下面的語料。(1) 老鼠是哺乳綱、嚙齒目的動物。(2) 耗子的體型較小,體型小,繁殖快。(3) 年輕人耗子尾汁。這一步在論文中并沒有特別強調,但其實這是至關重要的一步,因為正是這一步為后面提供了一批粗糙的數(shù)據(jù)。

篩選正確的樣本

可以看到,經(jīng)過關鍵詞匹配的樣本中可能包含大量的錯誤樣本,比如上面的(3),那怎么過濾掉這種樣本呢?作者提出了一種方法,流程如下:首先創(chuàng)建一個類別詞庫,即根據(jù)每一個類別的類別名選出該類別的關鍵詞表。建立類別詞庫要用到預訓練語言模型BERT,利用關鍵詞位置的上下文embedding向量預測整個詞庫各個單詞的概率分布。

對于(2)中關鍵詞“耗子”,可能排在前面的是“耗子”、“鼠科”、“老鼠”。但對于(3)中關鍵詞“耗子”,排在前面的就可能是“武德”、“大力士”、“大E”。

很顯然,(3)的目標類別就不是“鼠”,但這種詞也是少數(shù),畢竟我們在選關鍵詞的時候肯定會選擇能代表目標類別的詞。如果文本中出現(xiàn)類別名,利于預訓練模型的通用知識預測該類別名位置的可能出現(xiàn)的詞,選出概率最高的top50的詞作為候選詞,然后選擇頻次排名前100的詞來組成該類別的關鍵詞庫(注意這其中不能有停止詞,也不能有同時屬于多個類別的詞)。

構建好了類別詞庫之后,我們就能用它來篩選掉一些含關鍵詞的錯誤樣本,做法也很簡單。如圖所示,對于樣本中某個關鍵詞,將其上下文embedding向量傳進MLM head,得到預測出來的單詞分布,如果top50里有20個以上的單詞出現(xiàn)在類別詞庫中,就算是正確樣本(這里的超參可以根據(jù)酌情調整,來控制約束力度)。

我們對(3)使用這種方法,發(fā)現(xiàn)top50的關聯(lián)詞里一個出現(xiàn)在類別詞庫的詞都沒有,因此(3)不是屬于目標類別的樣本;文中把能指代目標類別含義的關鍵詞稱為類別提示詞(category-indicative)

Masked Category Prediction

通過上一步,我們已經(jīng)得到了一批精挑細選的帶類別提示詞的樣本,如何利用這些樣本呢?本文提出了一個MCP任務用于 fine tuning 我們的模型。

如圖所示,這里跟前面預測單詞分布一樣,將類別提示詞的上下文embedding向量傳進MCP head(全連接+softmax),來預測類別提示詞的目標類別。注意,這里需要先Mask掉類別提示詞然后進行預測。為什么這里需要Mask但前面卻不用呢?道理很簡單。如果不Mask掉類別提示詞那么任務就太簡單了,而我們希望模型能學習到更多的上下文信息。前面在構建類別詞庫的時候不需要Mask,是因為那只是一個預測過程,只用關注預測結果的正確性。

自訓練

我們很容易能發(fā)現(xiàn),被關鍵詞匹配到的樣本畢竟還是少數(shù),大量無關鍵詞的樣本也不能就這樣浪費啊。因此作者還使用自訓練的方法在無關鍵詞樣本上訓練,自訓練的目標函數(shù)可以用KL散度來表示。

K代表類別數(shù)量,這里的q是類別概率的目標分布,p是預測分布。q的取值有兩種選擇:(1) Hard Labeling:概率最大的類別取1,其他為0;(2) Soft Labeling :

實驗下來(2)的效果更好。由于自訓練是通過[CLS]的embedding向量來進行預測的,因此它不僅讓大量的無關鍵詞數(shù)據(jù)得到利用,還彌補了MCP任務沒有用到[CLS]進行訓練的短板。

實驗結果

從表中我們可以看到,本文提出的方法在四個數(shù)據(jù)集上相比其他弱監(jiān)督方法有很大的提升,并且自訓練的作用看來也是非常顯著,比不使用自訓練提升了約5個點。并且論文的第5節(jié)還提到,所用的方法還有進一步提升的手段。包括使用更先進的預訓練模型,為每個類別設置更多關鍵詞(文中每個類別對應3個關鍵詞),以及使用數(shù)據(jù)增強。

思考和小結

看完上面的文字,明白了作者提出的方法是屬于弱監(jiān)督學習中的不準確監(jiān)督學習,使用BERT預訓練模型構建類別詞庫的方法來找出錯誤樣本。同時還用到了自訓練的方法利用無標注樣本,讓模型的性能得到進一步提升。整套流程還是很系統(tǒng)的,有參考的價值。

后臺回復關鍵詞【入群

加入賣萌屋NLP/IR/Rec與求職討論群

后臺回復關鍵詞【頂會

獲取ACL、CIKM等各大頂會論文集!

?

[1]Y Meng,Y Zhang,J Huang,C Xiong,J Han. 2020. Text Classification Using Label Names Only: A Language Model Self-Training Approach. In Proceedings of EMNLP.

[2]Junyuan Xie, Ross B. Girshick, and Ali Farhadi. 2016. Unsupervised deep embedding for clustering analysis. In ICML.

總結

以上是生活随笔為你收集整理的不讲武德,只用标签名就能做文本分类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。