SimCSE 对比学习句向量
摘要
本文介紹了簡單的對比學習框架SimCSE,一種無監督方法,使用一個輸入句子,在一個對比目標中預測自己,只使用標準的dropout作為噪聲,效果與監督學習相當。刪除dropout(數據增強方式)會導致表示崩潰。
本文提出了一種有監督的方法,將NLP推理數據集中的注釋對納入對比學習框架,集成對為正樣本,對立對為負樣本。實驗表明對比學習將預先訓練的嵌入的各向異性空間正則化,使其更加均勻,當有監督可用時能更好地處理。
介紹
SimCSE,一種簡易對比句向量框架,可從未標注數據中產生好的句向量。
無監督的SimCSE預測輸入句子本身,只有dropout作為噪聲,即將同一個句子傳遞給預先訓練的編碼器兩次,兩次應用標準dropout,獲得兩個不同的嵌入作為正例。使用同一批次中其它句子作為負樣本,模型預測負樣本中的正樣本。
有監督的SimCSE建立在近期成功使用NLI數據集進行句嵌入的基礎上,將注釋句對納入對比學習,為一個3-way分類任務(蘊涵、中性和矛盾),使用蘊涵對可作為正樣例。添加對應的矛盾對作為硬否定進一步提高性能。
為更好理解SimCSE,采用語義相關正對之間的對齊和整個表示空間的均勻性衡量學習到的向量的質量。
無監督SimCSE提高了均勻性,避免了dropout噪聲退化對齊,提高了表示的表現力。NLI訓練信號可進一步改善正對之間的對齊,產生更好的句向量。
背景
對比學習的目的是通過將語義上相近的鄰居拉到一起,非鄰居推開以學習有效的表示。假設一個成對的樣本,其中xi和xi+ 語義相關。使用對比框架和批內負樣本交叉熵目標函數;
用 h 表征 x,使用含有 N 對的最小批量 x 訓練目標函數。
τ是溫度超參數,sim(h1, h2)為余弦相似度。
使用BERT或RoBERTa編碼輸入的語句,使用對比學習(上述公式)調參。
對比學習中的一個關鍵問題是如何構建正樣本對。視覺表示中,一種有效的解決方案是將同一圖像的兩種隨機變換(例如,裁剪、翻轉、扭曲和旋轉)作為xi和xi+ 。語言表示可類似的方法,通過應用增強技術,如單詞刪除、重新排序和替換。但由于NLP的離散特性,數據增強在自然語言處理中具有固有的困難。
使用対齊性和均勻量表征質量。
給定正樣本對的分布式表征,対齊性是計算向量對的預期距離。
?均勻性衡量的是嵌入均勻分布的程度:
無監督SimCSE
無監督SimCSE很單:取一個句子集合,關鍵是對正樣本對通過使用獨立采樣的dropout掩碼; Transformer模型匯總包含dropout層,使用不同比率,獲得編碼,對于大小為N的一批數據,其目標函數為,h編碼后的x;
?Dropout噪音用于數據擴增:正樣本對是相同句子使用不同dropout表征的向量
有監督SimCSE
增加dropout噪音可保持正樣本對較好的対齊性。
使用NLI數據集預測句子間的關系:有繼承性、中性或對立關系。
訓練詳情
使用BERT或RoBERTa預訓練模型的CLS作為句向量,從英文維基百科隨機抽取10^6個句子樣本做無監督訓練,
結論
本文提出了一個簡單的對比學習框架SimCSE,提高了語義文本相似任務中句向量的表征。可使用NLI數據集預測輸入句子本身的無監督和有監督方法。
無監督的對比目標,可在NLP中廣泛應用,為文本輸入的數據增強提供了新視角,可以擴展到其他連續表示,集成到語言模型預訓練中。
參考:
原文:https://arxiv.org/abs/2104.08821v3
NLP論文閱讀:最新對比學習方法 SimCSE_嗶哩嗶哩_bilibili
GitHub - princeton-nlp/SimCSE: EMNLP'2021: SimCSE: Simple Contrastive Learning of Sentence Embeddings https://arxiv.org/abs/2104.08821
simcse實踐使用_programerchen的博客-CSDN博客
總結
以上是生活随笔為你收集整理的SimCSE 对比学习句向量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成绩查询福建计算机一级应用基础,福建计算
- 下一篇: metaRTC纯C版webrtc编程指南