久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

NLP與對比學習的巧妙融合,簡單暴力效果顯著,!

 520jefferson 2021-04-30

NewBeeNLP公眾號原創(chuàng)出品         

公眾號專欄作者 @Maple小七       

北京郵電大學·模式識別與智能系統(tǒng)

今天和大家來看看最近討論度非常高的SimCSE,,據(jù)說簡單暴力還效果顯著

圖片

  • 論文:SimCSE: Simple Contrastive Learning of Sentence Embeddings[1]
  • 代碼: princeton-nlp/SimCSE[2]
  • Demo: https://gradio.app/g/AK391/SimCSE

本文將對比學習的思想引入了sentence embedding,,刷爆了無監(jiān)督與有監(jiān)督語義相似度計算任務(wù)SOTA,,是一篇非常難得的高水平論文。

寫在前面

學習自然語言的通用語義表示一直是NLP的基礎(chǔ)任務(wù)之一,,然而當2019年的SBERT出現(xiàn)之后,,語義相似度計算和語義匹配模型似乎就沒有什么突破性進展了,2020年出現(xiàn)的BERT-flow和BERT-whitening主要是對無監(jiān)督語義匹配的改進,,而有監(jiān)督語義匹配的SOTA一直是SBERT,。

SBERT本身并不復雜,僅僅是一個基于BERT的孿生網(wǎng)絡(luò)而已,,想要在SBERT的基礎(chǔ)上改進指標,,只能從訓練目標下手,而本篇論文就將對比學習的思想引入了SBERT,,大幅刷新了有監(jiān)督和無監(jiān)督語義匹配SOTA,,更讓人驚嘆的是,無監(jiān)督SimCSE的表現(xiàn)在STS基準任務(wù)上甚至超越了包括SBERT在內(nèi)的所有有監(jiān)督模型,。

圖片

對比學習

對比學習的思想說起來很簡單,,即拉近相似的樣本,推開不相似的樣本,,一種常用的對比損失是基于批內(nèi)負樣本的交叉熵損失,,假設(shè)我們有一個數(shù)據(jù)集 ,其中 是語義相關(guān)的,,則在大小為 的mini batch內(nèi),, 的訓練目標為

其中 的編碼表示,, 為softmax的溫度超參,。

正樣本

使用對比損失最關(guān)鍵的問題是如何構(gòu)造 ,對比學習最早起源于CV領(lǐng)域的原因之一就是圖像的 非常容易構(gòu)造,,裁剪,、翻轉(zhuǎn)、扭曲和旋轉(zhuǎn)都不影響人類對圖像語義的理解,,而結(jié)構(gòu)高度離散的自然語言則很難構(gòu)造語義一致的 ,,前人采用了一些數(shù)據(jù)增強方法來構(gòu)造 ,,比如同義詞替換,刪除不重要的單詞,,語序重排等,,但這些方法都是離散的操作,很難把控,,容易引入負面噪聲,,模型也很難通過對比學習的方式從這樣的樣本中捕捉到語義信息,性能提升有限,。

兩個指標

對比學習的目標是從數(shù)據(jù)中學習到一個優(yōu)質(zhì)的語義表示空間,,那么如何評價這個表示空間的質(zhì)量呢?Wang and Isola (2020)[3]提出了衡量對比學習質(zhì)量的兩個指標:alignmentuniformity,,其中alignment計算 的平均距離:

圖片

而uniformity計算向量整體分布的均勻程度:

圖片

我們希望這兩個指標都盡可能低,,也就是一方面希望正樣本要挨得足夠近,另一方面語義向量要盡可能地均勻分布在超球面上,。

因為均勻分布信息熵最高,,分布越均勻則保留的信息越多,“拉近正樣本,,推開負樣本”實際上就是在優(yōu)化這兩個指標,。在后文中,作者將會使用這兩個指標來評價模型,。

無監(jiān)督版 SimCSE

圖片

眾所周知,,直接用BERT句向量做無監(jiān)督語義相似度計算效果會很差,任意兩個句子的BERT句向量的相似度都相當高,,其中一個原因是向量分布的非線性和奇異性,。

前不久的BERT-flow通過normalizing flow將向量分布映射到規(guī)整的高斯分布上,更近一點的BERT-whitening對向量分布做了PCA降維消除冗余信息,,但是標準化流的表達能力太差,,而白化操作又沒法解決非線性的問題,有更好的方法提升表示空間的質(zhì)量嗎,?

正好,,對比學習的目標之一就是學習到分布均勻的向量表示,因此我們可以借助對比學習間接達到規(guī)整表示空間的效果,,這又回到了正樣本構(gòu)建的問題上來,,而本文的創(chuàng)新點之一正是無監(jiān)督條件下的正樣本構(gòu)建,。

本文作者提出可以通過隨機采樣dropout mask來生成 ,。回想一下,,在標準的Transformer中,,dropout mask被放置在全連接層和注意力求和操作上,,設(shè) ,其中 是隨機生成的dropout mask,,由于dropout mask是隨機生成的,,所以在訓練階段,將同一個樣本分兩次輸入到同一個編碼器中,,我們會得到兩個不同的表示向量 ,,將 作為正樣本,則模型的訓練目標為

這種通過改變dropout mask生成正樣本的方法可以看作是「數(shù)據(jù)增強」的最小形式,,因為原樣本和生成的正樣本的語義是完全一致的(注意語義一致和語義相關(guān)的區(qū)別),,只是生成的embedding不同而已。

Dropout 用于數(shù)據(jù)增強

那么這種簡單的正樣本生成方式和其他顯式的數(shù)據(jù)增強方式有明顯的優(yōu)勢嗎,?作者從維基百科中隨機抽取十萬個句子來微調(diào)BERT模型,,并在STS-B開發(fā)集上測試,實驗結(jié)果如下表所示:

圖片

其中None是作者提出的隨機dropout mask方法,,其余方法均是在None的基礎(chǔ)上改變 的輸入,。可以看到,,追加顯式的數(shù)據(jù)增強方法都會大幅降低性能,。

作者也對比了這樣的自監(jiān)督方式和NSP目標的訓練結(jié)果,如下表所示,,將NSP作為正樣本的構(gòu)建方式明顯很不科學,,另外,做語義相似度計算一定要共享編碼器,。

圖片

Why does it work?

為什么這樣的對比訓練目標能work得這么好呢,?作者首先嘗試改變了dropout rate,發(fā)現(xiàn)默認的 性能是最好的,,去掉dropout或者固定dropout mask后模型性能都會出現(xiàn)大幅的下降,,因為這時候 就和 一模一樣,模型幾乎什么都學不到,。

圖片

之前提到了衡量對比學習質(zhì)量的指標:alignment和uniformity,,作者用這兩個指標測試了不同模型訓練過程中保存的checkpoints,可視化結(jié)果如下圖所示,。

圖片

可以發(fā)現(xiàn)所有模型的uniformity都有所改進,,表明預(yù)訓練BERT的語義向量分布的奇異性被逐步減弱;而與fix dropout和no dropout相比,,SimCSE能在規(guī)整分布的同時保持正樣本的對齊,,與Delete one word相比,雖然alignment比不上delete one word,,但由于其分布更加均勻,,因此SimCSE總體性能更高,。另外,這幅圖其實還有很多可以探討的問題,,這里不再細說,。

有監(jiān)督版 SimCSE

圖片

上面論述了SimCSE在無監(jiān)督語義相似度任務(wù)上的優(yōu)秀表現(xiàn),在有監(jiān)督的條件下,,SimCSE是否能夠超越SBERT呢,?

在SBERT原文中,作者將NLI數(shù)據(jù)集作為一個三分類任務(wù)來訓練,,這種方式忽略了正樣本與負樣本之間的交互(實際上SBERT文檔中早已引入了對比損失,,只是沒有在原文中發(fā)表),而對比損失則可以讓模型學習到更豐富的細粒度語義信息,。

首先我們來考慮怎么構(gòu)造訓練目標,,其實很簡單,直接將數(shù)據(jù)集中的正負樣本拿過來用就可以了,,將NLI(SNLI+MNLI)數(shù)據(jù)集中的entailment作為正樣本,,conradiction作為負樣本,加上原樣本premise一起組合為 ,,并將損失函數(shù)改進為

這里的 可以被看作是hard negatives,。另外,作者分別嘗試在不同的語義匹配數(shù)據(jù)集上(QQP,、Flickr,、ParaNMT)訓練模型,并在STS-B上測試模型,,結(jié)果如下表所示,,其中sample列表示采樣相等樣本量訓練的結(jié)果,作者發(fā)現(xiàn)NLI訓練出來的模型性能是最好的,,這是因為NLI數(shù)據(jù)集的質(zhì)量本身很高,,正樣本詞匯重合度非常小(39%)且負樣本足夠困難,而QQP和ParaNMT數(shù)據(jù)集的正樣本詞匯重合度分別達到了60%和55%,。

圖片

Connection to Anisotropy

近幾年不少研究都提到了語言模型生成的語義向量分布存在「各向異性」的問題,,這極大地限制了語義向量的表達能力。緩解這個問題的一種簡單方法是加入后處理步驟,,比如BERT-flow和BERT-whitening將向量映射到各向同性的分布上,,而本文作者證明了對比學習的訓練目標可以隱式地壓低分布的奇異值,提高uniformity,。

Wang and Isola (2020)[4]證明了當負樣本數(shù)量趨于無窮大時,,對比學習的訓練目標可以漸近表示為

其中第一項表示拉近正樣本,第二項表示推開負樣本,當 是均勻分布時,,設(shè) ,我們可以借助Jensen不等式進一步推導第二項的下界:

設(shè) 對應(yīng)的句子嵌入矩陣,,即 的第 行是 ,,忽略常數(shù)項時,優(yōu)化第二項等價于最小化 的上界,,即 ,,我們假設(shè) 已經(jīng)被標準化,此時 的對角元素全為1,, 為特征值之和,,根據(jù)Merikoski (1984)[5]的結(jié)論,如果 的所有元素均為正值,,則 最大特征值的上界,,因此,當我們最小化損失的第二項時,,我們其實是在間接最小化 的最大特征值,,也就是隱式地壓平了嵌入空間的奇異譜。

綜上所述,,對比學習可以潛在地解決表示退化的問題,,提升表示向量分布的uniformity,之前的BERT-flow和BERT-whitening僅僅致力于尋找各向同性的表示分布,,而在優(yōu)化對比損失時,,對比損失的第二項能夠達到同樣的規(guī)整分布的效果,同時,,對比損失的第一項還能確保正樣本的對齊,,這兩項起到了相互制約和促進的作用,最終使得SimCSE在BERT和BERT-flow之間找到了平衡點,,這也是SimCSE如此有效的關(guān)鍵之處,。

圖片

實驗

作者借助SentEval在多個數(shù)據(jù)集上評估了SimCSE的性能,如下表所示,,可以發(fā)現(xiàn),,在STS系列任務(wù)上,SimCSE在無監(jiān)督和有監(jiān)督的條件下均大幅超越了之前的SOTA模型,,而在遷移任務(wù)上,,SimCSE也有著可觀的性能提升,具體的實驗細節(jié)可參考原文,。

值得說明的是,,在遷移任務(wù)上,作者嘗試了加入MLM損失的trick:,直觀上這緩解了模型對token級別信息的災(zāi)難性遺忘,,實驗結(jié)果表明這一額外損失能夠提升模型遷移任務(wù)上的表現(xiàn),,但對STS任務(wù)沒有明顯幫助。

另外,,作者沒有比較BERT-flow和BERT-whitening,,因為作者發(fā)現(xiàn)這些基于后處理的模型在遷移任務(wù)上表現(xiàn)還不如BERT,主要原因是這些任務(wù)的主要目標并不是學習可用于聚類的語義向量,。

圖片

圖片

下面是一個關(guān)于池化層和MLM的ablation study,,可以發(fā)現(xiàn)MLM損失對STS任務(wù)有負面作用,而對遷移任務(wù)有正面作用,,但是作者并沒有詳細解釋這其中的原因,。

圖片

分析

最后作者測試了現(xiàn)有模型的alignment和uniformity,如下圖所示,??梢园l(fā)現(xiàn)性能更優(yōu)的模型通常有著更好的alignment和uniformity,BERT雖然有很好的alignment,,但uniformity太差,,而基于后處理的BERT-flow和BERT-whitening又恰恰走向了另一個極端,本文提出的SimCSE則是對這兩個指標的一個很好的平衡,,加入監(jiān)督訓練后,,SimCSE的兩個指標會同時提升,這個結(jié)果和上面的理論證明完全吻合,。

圖片

我們可以將上面提到的這三類模型的預(yù)測分布做一個可視化,,如下圖所示,我們可以發(fā)現(xiàn)BERT的區(qū)分度很差,,幾乎所有句子對的相似度都在0.7以上,,而加上whitening雖然更有區(qū)分性,但又增大了整體分布的方差,,而SimCSE正是這兩者的平衡點,,在保持區(qū)分度的同時又保持整體分布的集中度。

圖片

尾巴

語義相似度計算和語義匹配其實是對比學習在NLP中的一個很好的應(yīng)用場景,,本文提出的random dropout mask為NLP中的對比學習提供了一個全新的視角,。由于對比學習是無監(jiān)督的,所以如何將對比的思想用到無監(jiān)督的預(yù)訓練的階段,,學習到更優(yōu)質(zhì)的上下文表示,,其實是一個值得期待的新方向。

一起交流

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約