再谈对比学习:更好的对比样本选择,更好的对比效果
?PaperWeekly 原創 ·?作者 | 張琨
學校 | 中國科學技術大學博士生
研究方向?|?自然語言處理
在之前的介紹中,我們對自監督學習(SSL)中的對比學習(CL)進行了簡單介紹,然后針對對比學習中的采樣方式進行詳細的分析。由于對比學習的核心思想是在向量表征空間中將正樣本(positive example)與錨點樣本(anchor example)之間的距離拉近,將負樣本(negative example)與錨點樣本(anchor example)之間的距離拉遠,因此,所選取的正負樣本的質量直接決定了整個方法的效果。為此,有很多研究工作集中在對比學習的采樣方法中,本文針對這些方法繼續進行深挖,希望能夠讓大家對對比學習有更深入的認識,為大家帶來一些微小的啟發。
在接下來的介紹中,本文首先介紹了一個在自然語言中更巧妙使用數據增強的方法,避免了在 NLP 使用數據增強面臨的數據質量的問題。接下來針對對比學習中的采樣方式,分別從效率,假負樣本更充分的利用,以及負樣本難度的選擇是如何影響模型效果的這幾個方面進行簡單介紹。
更好的自然語言處理樣本生成(ConSERT )[1]
在具體介紹針對正樣本或者負樣本的采樣之前,首先介紹一個在自然語言處理中進行更好的數據增強的工作。該工作通過選擇更合適的自然語言數據增強方法坍縮了 BERT 原生句子表示在表征空間存在的“坍縮”現象,同時也是一個標準的將對比學習應用在自然語言語義表征中的框架。
1.1 亮點
通過分析指出原生的 BERT 模型在句子語義表征中存在“坍縮”現象,即傾向于編碼到一個較小的空間區域內,使大多數的句子對都具有較高的相似度分數,影響表征結果在具體下游任務中的表現
基于 BERT 模型提出了一種更好的對比學習方法,用于句子語義的表征
在監督實驗,無監督實驗,小樣本實驗中進行了充分的模型驗證
1.2 方法
整體的模型框架圖如下,相對于 BERT 模型而言思路非常簡單,就是在輸入到 encoder 的時候加了一個數據增強層。但作者進行了非常全面的考慮,例如為了避免直接從文本層面進行數據增強導致的語義變化問題,以及效率問題。作者提出直接在 embedding 層隱式生成數據增強樣本,從而一方面避免以上問題,另一方面能夠生成高質量的數據增強樣本。
而在數據增強上,由于是在 embedding 層直接進行數據增強的,因此在這里作者選擇了以下四種增強方式:
對抗攻擊:通過梯度回傳生成對抗擾動,將該擾動加到原本的 embedding 矩陣上
詞序打亂:這個非常有意思,由于在 BERT 中是通過 position embedding 的方式顯式指定位置的,因此直接將 position id 進行 shuffle 即可
裁剪:這部分分為兩個粒度:a. 對某個 token 進行裁剪,直接將對應的 embedding 置為 0 即可,b. 對某些特征進行裁剪,即將 embedding 矩陣中對應列置為 0
dropout:這個就是非常簡單有效的方法了,直接利用 BERT 的結構進行 dropout 操作即可
由于這些方法是直接面向 embedding 矩陣的,因此相對于顯示生成增強文本的方法更為高效。針對本文的具體技術細節可以參考作者自己的解讀。
1.3 實驗
本文的實驗也是非常充分的,作者處理利用對比學習框架進行無監督訓練之外,還考慮了融合監督信號進行的增強訓練,并提出了聯合訓練:有監督損失和無監督損失進行加權聯合訓練;現有監督在無監督:先用有監督損失訓練模型,在利用無監督方法進行表示遷移;聯合訓練再無監督:先用聯合損失訓練模型,在無監督遷移。
以下展示了部分實驗結果,從實驗結果中可以看出模型的效果還是非常好的
個人認為本文最大的亮點就是對數據增強方法的利用,相對于 CV 領域的增強方法,NLP 領域的數據增強一直存在高質量的數據增強與原始語義的保證之間的矛盾。
本文通過直接在 embedding 矩陣上進行處理,一方面能夠緩解以上矛盾,另一方面能夠以一種更高效的方法進行,從而實現了 NLP 中更好的對比學習。這部分還可以參考 Mixup 這個工作,能夠為這種方法提供更好的數據增強操作。
對比學習效率問題(Inefficiency of Self-supervised Representation Learning)[2]
在傳統對比學習中,我們主要是通過以下方式進行對比,輸入樣本為錨點樣本,數據增強樣本為正樣本,同一個 batch 中的其他樣本默認為負樣本。這種方法的好處是能夠簡單實現 1 個正樣本 v.s. 多個負樣本的學習,但問題也同樣存在,這種方法本質上是一種實例級別的對比學習(Contrastive instance discrimination,或者 Instance-level contrastive learning),即每個樣本都單獨的一類。
本文通過實驗發現,目前的這些方法效率比較低,比如需要 10 倍的 epoches 才能和監督學習有相似的效果。為了解決這種低效率的問題,作者開展了這個工作。
2.1 亮點
作者通過實驗證明現有的對比學習方法效率低的原因有兩個,under-clustering 和 over-clustering,前者是說在負樣本數量不充足的時候很難學習到類別之間的不相似性;后者是說在實例級別的對比學習很難實現同一類樣本的類內特征學習。
為了解決這種問題,作者提出了一種新的損失函數,將 infoNCE 替換為 triplet loss,以實現更多的負樣本學習以及類內公共特征學習
2.2 方法
最主要的,作者提出了一種 Median Triplet Loss,在 triplet loss 的基礎上進行了修正,以提升對比學習的效率和性能。以下是 median triplet loss 的一個直觀圖示:
首先普通的 triplet loss 可以表示為如下形式:
而為了提升 triplet loss 的效果,在實際應用中,一般會借鑒 SVM 的思想,直接選擇最難的樣本作為負樣本進行損失計算,也即可以用如下形式表示:
也就是說將 InfoNCE 損失替換為 triplet loss,并使用最難的樣本進行計算的話,就可以解決 under-clustering 問題,因為最難的負樣本都已經滿足這個條件了,那其他所有的負樣本也都會滿足這個條件。
但這又會引出另一個問題,over-clustering 問題并沒有得到解決,因為最難的樣本是和錨點樣本具有最大的語義相似度(負樣本中),那么就有可能是假負樣本,而這個假負樣本性又是因為現在做的是實例級別的對比造成的。為了解決這個問題,作者想出來一個非常簡單的方法,相對于對最難的樣本做一個退化。
具體而言,既然最難的樣本會造成 over-clustering 問題,但又想盡可能大的是使用決策邊界,那是否可以降低一下難度呢?作者沒有去解決假負樣本的問題,而是說通過計算所有的負樣本的難度,然后進行排序,選擇中間的作為 triplet loss 的計算目標,這樣一方面盡可能提升了負樣本的難度(增大決策邊界),另一方面緩解了 over-clustering 問題,因為使用的不是最難的負樣本,這樣,損失函數就變成了如下形式:
在計算難度的時候,作者選擇了比較簡單的余弦相似度去直接計算語義相似性。這部分作者并沒有進行充分的研究分析。
2.3 實驗
同樣的,該方法也是一種通用的對比學習方法,為了驗證其效果,作者在多個對比學習框架上進行了效果的驗證,同時還對模型的效率進行了對比實驗,從而驗證模型提出的方法的有效性。部分實驗結果如下圖所示:
這篇文章最有意思的地方在于又使用回了 triplet loss,而且為了解決假負樣本的問題,選擇了一種非常簡單的退化方法。思路非常簡單,但實驗結果證明了它非常有效。非常值得學習。
增量式負樣本學習(Incremental False Negative)[3]
基于對比學習的基本思想,傳統的對比學習大多是實例級別的對比,即每一個樣本都是一類。這種方法在前一個工作中已經證明了效率非常低,在本文中,作者通過實驗證明,這種方式忽略了不同樣本之間的語義關系,而且采到的負樣本對整個模型的影響還是很大的,為此。作者提出了一種增量式的假負樣本檢測識別方法。
3.1 亮點
作者通過實驗分析證明假負樣本對整個對比學習的影響還是很大的,尤其是在大規模數據集上(數據量大,標簽數量多)
本文提出了一種增量式的假負樣本檢測方法,按照置信度從高到低逐步移出假負樣本,緩解假負樣本對整個對比學習模型的影響。
3.2 方法
下圖是整個模型的算法框架圖,作者通過以一種增量學習的方式識別負樣本采樣中的假負樣本,首先刪除簡單的假負樣本,然后隨著模型性能的提升,逐步刪除難的假負樣本,從而實現模型效果的提升
首先回顧一下傳統對比學習的損失函數:
其中最主要的就是如何得到正確的正樣本和負樣本。在這里,作者主要關注于假負樣本的檢測。之前的方法,例如 DeepCluster,PCL 等大多是通過一次性的聚類得到偽標簽,而這種方式是有些粗糙的。因為在剛開始的時候模型的建模能力是比較弱的,得到的輸入表征的可信度也沒有那么高。如果將這點考慮進來,就能夠實現更好的假負樣本檢測。
為此,作者認為樣本的標簽應該滿足一下條件:將樣本賦予某一類別應該滿足對應的表征不僅與對應的類別中心點近,而且應該和其他類別的中心點遠。為此,作者提出了如下的置信度計算方法用于確定輸入數據的偽標簽:
利用該計算公式,就能夠為每一個負樣本的偽標簽添加上置信度,這樣就可以設定接受閾值,當大于閾值時才會認為是真負樣本,而且該置信度是利用學習到的表征進行計算的,因此它是和模型的性能直接相關的。因此能夠動態的進行選擇。
有了識別真負樣本和假負樣本的方法,作者針對損失函數進行了相對應的調整。一種是比較簡單,直接將對應的假負樣本刪除即可,另一種是充分利用假負樣本,既然是假負樣本,那么它就是真正樣本。將其加入到模型中進行對比學習,從而進一步提升對比學習的性能。兩種損失函數的計算方法如下:
3.3 實驗
由于作者提出的方法是一種通用的采樣和對比學習方法, 作者在多個方法上進行了模型效果的驗證,同時還驗證了假負樣本對整個模型的影響,相關實驗結果如下:
除此之外,作者還進行了不同刪除策略的效果對比,進一步說明作者所提出的方法的有效性。
這個工作最吸引人的地方在于作者不再是通過一次聚類直接找到偽標簽,然后進行假負樣本的刪除,而是設計了一個置信度計算方法,通過置信度逐步合理的刪除假負樣本,保證假負樣本刪除的正確性。同時作者巧妙的將置信度計算和模型的性能結合起來,有點課程學習的感覺。還是很有意思的。
負樣本質量分析(are all negative equal)[4]
在之前的工作中,都是集中于選擇更好的正樣本或者更好的負樣本,但是否簡單的負樣本就沒有用?負樣本的難度是否越難越好?為了回答這個問題,Facebook進行了關于負樣本質量分析的工作,對整個對比學習中的樣本選擇工作進行了總結,同時也給了我們一些未來研究的啟發。
4.1 亮點
本文針對負樣本的質量對整個模型的影響進行了定量分析。
4.2 方法
由于這是一個定量分析的工作,本文作者并沒有提出具體的方法,而是直接以 Moco v2 為基準模型,然后分析在不同難度的條件下模型的表現,最后總結出相關的結論。
作者首先定義了負樣本難度的計算方式:錨點樣本和負樣本在隱式對比空間中的表征向量的點積。在此基礎上,作者對負樣本進行排序,然后在相同條件下進行 Moco v2 的訓練。并通過刪除模型中特定難度范圍的樣本來分析這些樣本對整個模型性能的影響。最后作者發現了一些有意思的結論。首先,作者將整個結果總結成了一個圖:
從圖中可以得到以下結論:
最簡單的 95% 的負樣本是不必須的,對整個模型的影響非常小。最難的5%的負樣本對整個模型的影響是巨大的,因此這些樣本是必須的,而且這樣的負樣本數量也是足夠的。僅在這些樣本上進行訓練就能夠提升非常高。
最難的 0.1% 的負樣本是不必要的,有時候甚至會對模型造成損害
通過對負樣本的分析,難的負樣本在類別上和錨點樣本之間更相似(和簡單樣本相比),因此,在抽象語義上擁有更多的相似度對模型的影響更大一些。
作者還展示了一些具體的實驗結果,如下圖:
同時,作者也在未來工作中指出通過課程學習,逐步增加負樣本的難度,有助于更好的對比學習。當然,本文的基礎是基于圖像分類的,也就是說所得到的負樣本和正樣本的質量是有保證的。那在更難的自然語言處理中,會不會有更有意思的發現呢?這個也是一個值得研究的地方。
總結
本文對對比學習中的采樣策略進行了進一步的介紹,不再是如何選擇更難的樣本。而是考慮更全面的內容,如何解決 NLP 中的增強數據質量問題,如何提升對比學習的效率,如何在合適的時機選擇恰當難度的樣本提升對比學習的性能以及針對樣本難度對模型性能整體定量分析。
從這些工作中可以看出,在對比學習中更好的采樣不僅僅是指采集到更高質量的樣本,同時還可以考慮在什么地方使用,在什么時候使用,以及如何使用。最后一個工作也指出了既然需要考慮樣本難度,那么是否能將對比學習和課程學習有機結合起來,以更合理的方式實現對采集樣本的利用,進一步提升模型的性能。這些都是非常有意思,有價值的研究方向。
參考文獻
[1] Yan Y, Li R, Wang S, et al. ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer[J]. arXiv preprint arXiv:2105.11741, 2021.?
[2] Wang G, Wang K, Wang G, et al. Towards Solving Inefficiency of Self-supervised Representation Learning[J]. arXiv preprint arXiv:2104.08760, 2021.?
[3]?Chen T S, Hung W C, Tseng H Y, et al. Incremental False Negative Detection for Contrastive Learning[J]. arXiv preprint arXiv:2106.03719, 2021..?
[4] Cai T T, Frankle J, Schwab D J, et al. Are all negatives created equal in contrastive instance discrimination?[J]. arXiv preprint arXiv:2010.06682, 2020.
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
·
總結
以上是生活随笔為你收集整理的再谈对比学习:更好的对比样本选择,更好的对比效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开炸鸡店容易赚钱吗 利润真的是非常高
- 下一篇: win7网络连接没了怎么办 Win7电脑