論文閱讀“KNN-BERT: Fine-Tuning Pre-Trained Models with KNN Classifier”

Li L, Song D, Ma R, et al. KNN-BERT: fine-tuning pre-trained models with KNN classifier[J]. arXiv preprint arXiv:2110.02523, 2021.

摘要導(dǎo)讀

預(yù)訓(xùn)練模型被廣泛應(yīng)用于利用交叉熵?fù)p失優(yōu)化的線性分類器來微調(diào)下游任務(wù)房匆,可能會面臨魯棒性和穩(wěn)定性問題习霹。這些問題可以通過學(xué)習(xí)表示來改進(jìn)霸饲,即在做出預(yù)測時(shí)去關(guān)注在同一個(gè)類簇中表示的相似性厂汗,不同類簇之間的差異性旨剥。在本文中簇搅,作者提出將KNN分類器運(yùn)用到預(yù)訓(xùn)練模型的微調(diào)中庄涡。對于該KNN分類器,作者引入了一個(gè)有監(jiān)督的動量對比學(xué)習(xí)框架來學(xué)習(xí)有監(jiān)督的下游任務(wù)的聚類表示题禀。在大規(guī)模數(shù)據(jù)集和小樣本數(shù)據(jù)機(jī)上的文本分類實(shí)驗(yàn)和魯棒性測試都顯示了結(jié)合將KNN結(jié)合到傳統(tǒng)的微調(diào)過程中會得到很大的提升鞋诗。

模型淺析

本文中提出了KNN-BERT膀捷,利用KNN分類器時(shí)迈嘹,使用以BERT為代表的預(yù)訓(xùn)練模型作為文本表示編碼器。下面將從KNN分類器的效用和如何為KNN分類器設(shè)計(jì)文本表示的訓(xùn)練過程兩個(gè)方面進(jìn)行介紹全庸。

  • KNN分類器
    作者將一般的線性分類器與KNN分類器相結(jié)合秀仲,并使用加權(quán)平均logits來作為最終的預(yù)測logits。假設(shè)編碼后的文本表示為q壶笼,其對應(yīng)的標(biāo)簽為Y_q神僵,線性分類器F(\cdot);這里使用由Y_{k_i}標(biāo)記的樣本k_i來代表由余弦相似度選出的K個(gè)近鄰樣本覆劈。
    KNN對應(yīng)的logits是一個(gè)投票結(jié)果保礼,記為KNN(q)。給定權(quán)重比重\phi责语,最終的得分s可以由如下的形式計(jì)算:
    其中炮障,線性分類器F(\cdot)是由傳統(tǒng)的交叉熵?fù)p失進(jìn)行驅(qū)動。KNN的驅(qū)動方式將在下面的章節(jié)中給出其對應(yīng)的對比學(xué)習(xí)框架坤候。
  • 用于KNN的對比學(xué)習(xí)
    為了在預(yù)訓(xùn)練模型的微調(diào)中學(xué)習(xí)適用于KNN的表示胁赢,作者引入了一個(gè)監(jiān)督型對比學(xué)習(xí)框架,該框架使用標(biāo)簽信息來構(gòu)建對比學(xué)習(xí)的正負(fù)例樣本白筹。類似于info-nce損失智末,帶有監(jiān)督信息的對比損失\mathcal{L}_{sc}定義為如下的形式:
    其中,k_{+}表示包含與給定q具有相同標(biāo)簽的M個(gè)樣本的集合徒河,k_{-}則表示來自不同的樣本的集合系馆。這樣的損失函數(shù)可以縮小q和正例樣本之間的差距,并推開q和負(fù)例樣本顽照。
    一般來說它呀,傳統(tǒng)的對比學(xué)習(xí)基本就考慮到這里就可以了。但本文的作者對正例集合的構(gòu)造給出了一種全新的方式。
    考慮到正例樣本的多樣化纵穿,即:他們來自同一個(gè)類簇但通過預(yù)訓(xùn)練模型的編碼他們會擁有不同的語義信息下隧。因此,重要的是要確定哪些正例樣本應(yīng)該用于對比損失的計(jì)算谓媒,否則淆院,學(xué)習(xí)到的表示可能不會得到緊密的類簇。因此句惯,作者提出了兩個(gè)學(xué)習(xí)表示的目標(biāo):1)使得同一個(gè)類簇中的樣本盡可能緊湊土辩;2)將那些不在同一個(gè)類簇中的樣本盡可能推遠(yuǎn)。
    根據(jù)該目標(biāo)抢野,下圖展示了在對比學(xué)習(xí)中需要重點(diǎn)關(guān)注的兩類正例樣本:
    一方面拷淘,足夠相似的正例樣本來保證緊湊的類簇;另一方面指孤,將最不相似的正例樣本拉向錨點(diǎn)樣本q启涯。這部分最不相似的正例樣本又被稱為hard-positives.
    基于這個(gè)出發(fā)點(diǎn),從原始的正例集合中選取M_m個(gè)最相似的正例k_mM_l個(gè)最不相似的正例k_l恃轩,并且只針對這些選好的正例樣本來進(jìn)行表示的更新结洼。作者給出的理由是:計(jì)算所有的正例樣本可能會破壞與分類表示無關(guān)的語義信息;并且可能會影響分類結(jié)果叉跛,因?yàn)轭惔丶墑e的正例樣本表示可能與錨點(diǎn)樣本q有很大的不同松忍。根據(jù)選定的正例樣本,前面的\mathcal{L}_{sc}可以被重寫為:
    注:在類簇學(xué)習(xí)的過程中筷厘,M_mM_l的比例也是一個(gè)非常關(guān)鍵的參數(shù)鸣峭。
  • 動量對比優(yōu)化
    顯然,在對比學(xué)習(xí)訓(xùn)練過程中酥艳,使用大量的負(fù)例樣本可以幫助更好地采樣編碼表示的底層連續(xù)高維空間摊溶。因此,動量對比框架MoCo被用來以基于隊(duì)列更新策略來考慮大規(guī)模的負(fù)例樣本玖雁。在動量對比框架中更扁,包含兩個(gè)獨(dú)立的編碼器:針對查詢(錨點(diǎn))query的編碼器,針對key的編碼器赫冬。query編碼器由來自查詢樣本的梯度下降來更新浓镜,而key編碼器則由一個(gè)動量的過程來進(jìn)行更新:
    這里的\theta_q\theta_k是編碼器,而只有查詢編碼器\theta_q通過反向傳播通過梯度更新劲厌,并以此來驅(qū)動\theta_k的更新膛薛。
    首先將負(fù)例表示壓入循環(huán)隊(duì)列,只有在隊(duì)列末尾的樣本會通過key編碼器進(jìn)行編碼來更新补鼻。(注:這種更新是在key編碼器經(jīng)過動量更新之后執(zhí)行哄啄。)通過動量更新過程雅任,對比學(xué)習(xí)過程可以考慮大量的正負(fù)例樣本,因?yàn)樵撨^程不需要計(jì)算所有正負(fù)例的梯度咨跌。
  • 雙目標(biāo)訓(xùn)練
    在訓(xùn)練的過程中沪么,查詢樣本和其對應(yīng)的正例和負(fù)例的編碼都由BERT中[CLS]token的輸出為對應(yīng)的表示。在微調(diào)的過程中锌半,作者將原始的交叉熵?fù)p失和對比損失結(jié)合到一起進(jìn)行表示學(xué)習(xí)禽车。從這里可以看出,用于分類的交叉熵?fù)p失是對標(biāo)簽信息的直接利用刊殉,而在對比學(xué)習(xí)中殉摔,則是利用標(biāo)簽信息進(jìn)行正負(fù)例的構(gòu)造,使得學(xué)習(xí)到的表示更有利于類簇的劃分记焊。

    最終的訓(xùn)練損失如下:
    其中:
部分實(shí)驗(yàn)

筆者這里主要關(guān)注了最相似正例和最不相似正例選取的數(shù)量以及其對應(yīng)的比例:

可以看出的一點(diǎn)是逸月,不同數(shù)量的hard-positives對性能的影響是非常重要的。這表明遍膜,引入適當(dāng)數(shù)量的hard-positives有利于學(xué)習(xí)更好的表示碗硬。


總體來說,對于基于BERT微調(diào)的分類任務(wù)捌归,作者引入KNN分類器來提供更加魯棒的分類預(yù)測結(jié)果肛响;在該目標(biāo)的驅(qū)動下岭粤,為KNN的有效預(yù)測設(shè)計(jì)了對應(yīng)的對比學(xué)習(xí)過程惜索。在該過程中,提出了基于類別標(biāo)簽的正例選擇方式剃浇,并且定義了兩種值得關(guān)注的正例樣本:與查詢樣本最相似的正例和與查詢樣本最不相似的正例巾兆。接著,引入動量對比框架以構(gòu)造更多的標(biāo)簽級別的正負(fù)例樣本對虎囚。環(huán)環(huán)相扣角塑,最終得到了顯著的性能提高。

其實(shí)筆者對基于隊(duì)列的負(fù)例更新策略不太能get到淘讥。

可能類似這樣圃伶,將所有的樣本都push進(jìn)循環(huán)隊(duì)列,然后根據(jù)樣本標(biāo)簽來判斷哪些是可用負(fù)例蒲列?反正窒朋,key編碼器也不進(jìn)行參數(shù)的更新,一次用多少也不會增加計(jì)算量蝗岖。(:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侥猩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子抵赢,更是在濱河造成了極大的恐慌欺劳,老刑警劉巖唧取,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異划提,居然都是意外死亡枫弟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門鹏往,熙熙樓的掌柜王于貴愁眉苦臉地迎上來媒区,“玉大人,你說我怎么就攤上這事掸犬⊥噤觯” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵湾碎,是天一觀的道長宙攻。 經(jīng)常有香客問我,道長介褥,這世上最難降的妖魔是什么座掘? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮柔滔,結(jié)果婚禮上溢陪,老公的妹妹穿的比我還像新娘。我一直安慰自己睛廊,他們只是感情好形真,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著超全,像睡著了一般咆霜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘶朱,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天蛾坯,我揣著相機(jī)與錄音,去河邊找鬼疏遏。 笑死脉课,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的财异。 我是一名探鬼主播倘零,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宝当!你這毒婦竟也來了视事?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤庆揩,失蹤者是張志新(化名)和其女友劉穎俐东,沒想到半個(gè)月后跌穗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虏辫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年蚌吸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砌庄。...
    茶點(diǎn)故事閱讀 39,745評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羹唠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娄昆,到底是詐尸還是另有隱情佩微,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布萌焰,位于F島的核電站哺眯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扒俯。R本人自食惡果不足惜奶卓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撼玄。 院中可真熱鬧夺姑,春花似錦、人聲如沸掌猛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽留潦。三九已至只盹,卻和暖如春辣往,著一層夾襖步出監(jiān)牢的瞬間兔院,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工站削, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坊萝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓许起,卻偏偏與公主長得像十偶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子园细,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容