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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

丹琦女神新作:对比学习,简单到只需要Dropout两下

發(fā)布時(shí)間:2024/7/5 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 丹琦女神新作:对比学习,简单到只需要Dropout两下 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文 | 花小花Posy

上周把 《對(duì)比學(xué)習(xí)有多火?文本聚類都被刷爆了...》分享到賣萌屋的群里后,遭到了群友們一波嫌棄安利。

小伙伴們表示,插入替換的數(shù)據(jù)增強(qiáng)方式已經(jīng)Out了,SimCSE才是現(xiàn)在的靚仔。

snowfloating說:看完Danqi Chen組里的SimCSE,再看這篇感覺就沒什么驚喜了。

蘇神: 直接用dropout,居然work了。真見鬼了......

奧多多奧多多:這篇有說法的。

抱著一顆好奇的心,想看看這篇SimCSE到底有什么說法,又哪里見鬼了?小花認(rèn)認(rèn)真真拜讀了原文,今天跟大家分享分享SimCSE用的什么神奇招數(shù)。

看完你可能不信,但它真的很神奇!

SimCSE的全稱是 Simple Contrastive Learning of Sentence Embeddings,S代表Simple。文中的方法完全對(duì)得起題目,它是真的簡(jiǎn)單!簡(jiǎn)單在哪兒呢?

  • 它簡(jiǎn)單地用dropout替換了傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法,將同一個(gè)輸入dropout兩次作為對(duì)比學(xué)習(xí)的正例,而且效果甚好。

  • 它簡(jiǎn)單地將NLI的數(shù)據(jù)用于監(jiān)督對(duì)比學(xué)習(xí),效果也甚好。

  • 這么簡(jiǎn)單的方法,真的work!?WHY?

    下面我們一起領(lǐng)略一下這篇文章的風(fēng)騷吧!

    論文題目:
    SimCSE: Simple Contrastive Learning of Sentence Embeddings

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

    SimCSE開篇討論的問題是:對(duì)比學(xué)習(xí)為何work?寫上一篇文的時(shí)候,我就在想對(duì)比學(xué)習(xí)為什么work呢?今天看到本文給出了很好的解釋。

    對(duì)比學(xué)習(xí)為何work?

    原來 ICML2020 專門有一篇文章[1]研究了對(duì)比學(xué)習(xí)為什么work。[1]中指出,對(duì)比表示學(xué)習(xí)有用,主要是因?yàn)樗鼉?yōu)化了兩個(gè)目標(biāo):

  • 正例之間表示保持較近距離

  • 隨機(jī)樣例的表示應(yīng)分散在超球面上。

  • 并提出這兩個(gè)目標(biāo)分別可以用指標(biāo)alignmentuniformity來衡量。

    下圖可以直觀理解這兩個(gè)目標(biāo):

    alignment計(jì)算正例對(duì)之間的向量距離的期望

    越相似的樣例之間的alignment程度越高。因?yàn)閍lignment使用距離來衡量,所以距離越小,表示alignment的程度越高。

    uniformity評(píng)估所有數(shù)據(jù)的向量均勻分布的程度,越均勻,保留的信息越多

    可以想象任意從表示空間中采樣兩個(gè)數(shù)據(jù)和, 希望他們的距離比較遠(yuǎn)。他們的距離越遠(yuǎn),證明空間分布越uniform。所以u(píng)niformity的值也是越低越好。

    SimCSE也采用這兩個(gè)指標(biāo)來衡量生成的句子向量,并證明了文本的語(yǔ)義空間也滿足:alignment值越低且uniformity值越低,向量表示的質(zhì)量越高,在STS任務(wù)上的Spearman相關(guān)系數(shù)越高。

    SimCSE

    SimCSE有兩個(gè)變體:Unsupervised SimCSESupervised SimCSE,主要不同在于對(duì)比學(xué)習(xí)的正負(fù)例的構(gòu)造。下面詳細(xì)介紹下他們的構(gòu)造方式。

    無監(jiān)督SimCSE

    Unsupervised SimCSE 引入dropout給輸入加噪聲,假設(shè)加噪后的輸入仍與原始輸入在語(yǔ)義空間距離相近。其正負(fù)例的構(gòu)造方式如下:

    正例:給定輸入,用預(yù)訓(xùn)練語(yǔ)言模型編碼兩次得到的兩個(gè)向量和作為正例對(duì)。

    負(fù)例:使用in-batch negatives的方式,即隨機(jī)采樣一個(gè)batch中另一個(gè)輸入作為的負(fù)例。

    訓(xùn)練目標(biāo)函數(shù):

    下圖展示了Unsupervised SimCSE的樣例:

    如何生成dropout mask?

    對(duì)于Unsupervised SimCSE,核心在于如何生成dropout mask。剛開始讀完一遍的時(shí)候,驚嘆原來dropout可以這么用,效果提升還挺大。后來細(xì)想,仍舊有些困惑兩次dropout mask的生成過程是怎樣的呢?仔細(xì)讀了下,原文說:

    In other words, we pass the same input sentence to the pre-trained encoder twice and obtain two embeddings as “positive pairs”, by applying independently sampled dropout masks。

    還是不太清楚。后來看了作者在GitHub的issue里面的回復(fù)才懂了。因?yàn)锽ERT內(nèi)部每次dropout都隨機(jī)會(huì)生成一個(gè)不同的dropout mask。所以SimCSL不需要改變?cè)糂ERT,只需要將同一個(gè)句子喂給模型兩次,得到的兩個(gè)向量就是應(yīng)用兩次不同dropout mask的結(jié)果。然后將兩個(gè)向量作為正例對(duì)。(真的simple)

    有監(jiān)督SimCSE

    本文還提出Supervised SimCSE,利用標(biāo)注數(shù)據(jù)來構(gòu)造對(duì)比學(xué)習(xí)的正負(fù)例子。為探究哪種標(biāo)注數(shù)據(jù)更有利于句子向量的學(xué)習(xí),文中在多種數(shù)據(jù)集上做了實(shí)驗(yàn),最后發(fā)現(xiàn)NLI數(shù)據(jù)最有利于學(xué)習(xí)句子表示。下面以NLI數(shù)據(jù)為例介紹Supervised SimCSE的流程。

    Supervised SimCSE 引入了NLI任務(wù)來監(jiān)督對(duì)比學(xué)習(xí)過程。該模型假設(shè)如果兩個(gè)句子存在蘊(yùn)含關(guān)系,那么它們之間的句子向量距離應(yīng)該較近;如果兩個(gè)句子存在矛盾關(guān)系,那么它們的距離應(yīng)該較遠(yuǎn)。因此NLI中的蘊(yùn)含句對(duì)和矛盾句對(duì)分別對(duì)應(yīng)對(duì)比學(xué)習(xí)中的正例對(duì)和負(fù)例對(duì)。所以在Supervised SimCSE中,正負(fù)例的構(gòu)造方式如下:

    正例:NLI中entailment關(guān)系樣例對(duì)。負(fù)例:a) in-batch negatives b)NLI中關(guān)系為contradiction的樣例對(duì)。

    訓(xùn)練目標(biāo):

    實(shí)驗(yàn)結(jié)果

    Dropout優(yōu)于傳統(tǒng)數(shù)據(jù)增強(qiáng)?

    下圖中對(duì)比了使用Unsupervised SimCSE (第一行None)和常見的數(shù)據(jù)增強(qiáng)方法在STS-B驗(yàn)證集上的Spearman's Correlation。

    其中crop k%表示隨機(jī)減掉k%長(zhǎng)度的span,word deletion表示隨機(jī)刪除k%的詞,delete one word只刪除一個(gè)詞,MLM 15%表示用隨機(jī)替換掉15%的詞。上表中所有dropout的方法的dropout的比例都是0.1。(因?yàn)槲闹袑?duì)比了不同比例的dropout,p=0.1效果最好。)

    實(shí)驗(yàn)結(jié)果很明顯的可以看出,SimCSE是遠(yuǎn)超其余數(shù)據(jù)增強(qiáng)方法的。小花的理解是傳統(tǒng)數(shù)據(jù)增強(qiáng)的方法是對(duì)原始輸入直接進(jìn)行改變,在編碼后,增強(qiáng)的數(shù)據(jù)與原始數(shù)據(jù)在語(yǔ)義空間的距離是不是要比直接用dropout的方式要遠(yuǎn)。

    Dropout與對(duì)比學(xué)習(xí)的關(guān)系

    為了理解dropout為什么work,作者可視化了不同方法下alignment和uniformity在訓(xùn)練過程中的變化趨勢(shì)。

    上圖中對(duì)比了在不同數(shù)據(jù)增強(qiáng)/dropout方式下,和在訓(xùn)練過程中的變化方向(每訓(xùn)練10步采樣一次)。Fix 0.1表示p=0.1時(shí),兩次使用相同dropout mask。對(duì)于Fixed 0.1和No dropout來講,正例對(duì)的句子表示是完全相同的,

    可以看到隨著訓(xùn)練步數(shù)增加,Unsup. SimCSE的平穩(wěn)地遞減。雖然降低的趨勢(shì)卻不明顯,但其初始化的值就相對(duì)較低。上圖進(jìn)一步驗(yàn)證了SimCSE有效的原因是,它可以讓alingnment和uniformity的值逐漸降低。

    小花在這里有一個(gè)問題請(qǐng)教:使用Fixed 0.1和No dropout與另外兩種方式相比較,是不是不太公平?因?yàn)楫?dāng)正例對(duì)兩個(gè)向量完全相同時(shí),其實(shí)是缺失了一些變體的對(duì)比信息在里面的。還有既然兩個(gè)向量完全相同,為什么會(huì)上升呢?還望理解的小伙伴留言討論下呀!(?▽?)

    語(yǔ)義文本相似效果如何?

    SimCSE在STS(語(yǔ)義文本相似)任務(wù)上進(jìn)行了評(píng)估。評(píng)價(jià)指標(biāo)是 Spearman’s correlation。表格中對(duì)比了各種建模句子向量的方法,包括簡(jiǎn)單的對(duì)Glove向量取平均,到前不久的SOTA:BERT-Flow和BERT-Whitening。可以看到,在各種編碼器和有無監(jiān)督模式下,SimCSE都取得了顯著的提升。比如無監(jiān)督時(shí),和與BERT-Whitening相比,Avg. 分別提升了7.96%和14.77%。

    此外,作者還對(duì)比了不同句子表示模型下 和與他們?cè)赟TS任務(wù)上的結(jié)果:可以看出:

    • Avg.BERT模型的較低,但較高;

    • 相反,對(duì)BERT表示進(jìn)行后處理的BERT-flow和BERT-whitening的較低,但是卻很高;

    • Unsup.SimCSE和SimCSE的兩個(gè)值都是較低的,他們的STS的結(jié)果也更好。

    說明和需要結(jié)合使用,只有當(dāng)二者的值都比較低時(shí),模型學(xué)習(xí)到的句子向量表示才最適合STS任務(wù)。

    遷移學(xué)習(xí)效果

    除了STS任務(wù)上的評(píng)估外,本文還將訓(xùn)練好的句子向量遷移到7個(gè)任務(wù)上。

    遷移學(xué)習(xí)上的SimCSE并沒有展現(xiàn)出明顯的優(yōu)勢(shì)。作者的解釋是句子級(jí)別的訓(xùn)練目標(biāo)并不能直接有利于遷移學(xué)習(xí)。為了讓遷移學(xué)習(xí)效果更好,文中還是嘗試將MLM損失和對(duì)比學(xué)習(xí)損失一起訓(xùn)練,取得了少量的提升(上表中標(biāo)有w/MLM的行)。

    有開源嘛?

    有的! 4月23號(hào)剛開源的代碼。

    GitHub鏈接:
    https://github.com/princeton-nlp/SimCSE

    文中的預(yù)訓(xùn)練語(yǔ)言模型已經(jīng)整合到了HuggingFace中,可以像BERT模型那樣,直接通過API調(diào)用模型。

    from?transformers?import?AutoModel,?AutoTokenizertokenizer?=?AutoTokenizer.from_pretrained("princeton-nlp/sup-simcse-bert-base-uncased") model?=?AutoModel.from_pretrained("princeton-nlp/sup-simcse-bert-base-uncased")

    想動(dòng)手試試的小伙伴們趕緊GitHub看看吧...

    小結(jié)

    本文提出了一個(gè)簡(jiǎn)單的對(duì)比學(xué)習(xí)的框架,SimCSE,用于學(xué)習(xí)句子表示。文中提出dropout+對(duì)比學(xué)習(xí)和NLI+對(duì)比學(xué)習(xí),都非常有利于句子表示的學(xué)習(xí)。SimCSE大幅刷新STS任務(wù)榜單,取得了新一輪的SOTA。

    這篇文章讓小花很愛的一點(diǎn)是,明明是我們習(xí)以為常的dropuout和早就熟悉透了的的NLI數(shù)據(jù),但是本文的作者們卻能從一個(gè)全新的角度看待它們,將它們與比學(xué)習(xí)建立聯(lián)系,取得非常顯著的提升,并合理地解釋為什么work。

    尋求報(bào)道、約稿、文案投放:
    添加微信xixiaoyao-1,備注“商務(wù)合作”

    后臺(tái)回復(fù)關(guān)鍵詞【入群

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

    后臺(tái)回復(fù)關(guān)鍵詞【頂會(huì)

    獲取ACL、CIKM等各大頂會(huì)論文集!

    ?

    [1] Wang, T., & Isola, P. (2020). Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere. ICML. https://arxiv.org/pdf/2005.10242.pdf

    總結(jié)

    以上是生活随笔為你收集整理的丹琦女神新作:对比学习,简单到只需要Dropout两下的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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