雖然BERT等語言模型有很大的成果,但在對句子表征方面(sentence embeddings)上表現依然不佳,因為BERT存在 sentence bias 、 anisotropy 問題;
我們發現prompt,再給定不同的template時可以生成不同方面的positive pair,且避免embedding bias。
相關工作
Contrastive Learning(對比學習) 可以利用BERT更好地學習句子表征。其重點在于如何尋找正負樣本。例如,使用inner dropout方法構建正樣本。
現有的研究表明,BERT的句向量存在一個 坍縮現象 ,也就是句向量受到高頻詞的影響,進而坍縮在一個凸錐,也就是各向異性,這個性質導致度量句子相似性的時候存在一定的問題,這也就是 anisotropy 問題。
發現
(1)Original BERT layers fail to improve the performance.
對比兩種不同的sentence embedding方法:
對BERT的輸入input embedding進行平均;
對BERT的輸出(last layer)進行平均
評價兩種sentence embedding的效果,采用sentence level anisotropy評價指標:
anisotropy :將corpus里面的sentence,兩兩計算余弦相似度,求平均。
對比了不同的語言模型,預實驗如下所示:
從上表可以看出,貌似anisotropy對應的spearman系數比較低,說明相關性不大。比如bert-base-uncased,
可以看出static token embedding的anisotropy很大,但是最終的效果也差不多。
(2)Embedding biases harms the sentence embeddings performance.
token embedding會同時受到token frequency和word piece影響
不同的語言模型的token embedding高度受到詞頻、subword的影響;
通過可視化2D圖,高頻詞通常會聚在一起,低頻詞則會分散
For frequency bias, we can observe that high fre- quency tokens are clustered, while low frequency tokens are dispersed sparsely in all models (Yan et al., 2021). The begin-of-word tokens are more vulnerable to frequency than subword tokens in BERT. However, the subword tokens are more vul- nerable in RoBERTa.
三、方法
如何避免BERT在表征句子時出現上述提到的問題,本文提出使用Prompt來捕捉句子表征。但不同于先前prompt的應用(分類或生成),我們并不是獲得句子的標簽,而是獲得句子的向量,因此關于prompt-based sentence embedding,需要考慮兩個問題:
如何使用prompt表征一個句子;
如何尋找恰當的prompt;
本文提出一種基于prompt和對比學習的句子表征學習模型。
3.1 如何使用prompt表征一個句子
本文設計一個template,例如“[X] means [MASK]”,[X] 表示一個placehoder,對應一個句子,[MASK]則表示待預測的token。給定一個句子,并轉換為prompt后喂入BERT中。有兩種方法獲得該句子embedding:
方法一:直接使用[MASK]對應的隱狀態向量:;
方法二:使用MLM在[MASK]位置預測topK個詞,根據每個詞預測的概率,對每個詞的word embedding進行加權求和來表示該句子:
方法二將句子使用若干個MLM生成的token來表示,依然存在bias,因此本文只采用第一種方法
3.2 如何尋找恰當的prompt
關于prompt設計上,可以采用如下三種方法:
manual design:顯式設計離散的template;
使用T5模型生成;
OptiPrompt:將離散的template轉換為continuous template;
3.3 訓練
采用對比學習方法,對比學習中關于positive的選擇很重要,一種方法是采用dropout。本文采用prompt方法,為同一個句子生成多種不同的template,以此可以獲得多個不同的positive embedding。
The idea is using the different templates to repre- sent the same sentence as different points of view, which helps model to produce more reasonable pos- itive pairs.
為了避免template本身對句子產生語義上的偏向。作者采用一種trick:
喂入含有template的句子,獲得[MASK]對應的embedding ;
只喂入template本身,且template的token的position id保留其在原始輸入的位置,此時獲得[MASK]對應的embeding:
最后套入對比學習loss中進行訓練:
四、實驗
作者在多個文本相似度任務上進行了測試,實驗結果如圖所示:
驚奇的發現,PromptBERT某些時候竟然比SimCSE高,作者也提出使用對比學習,也許是基于SimCSE之上精細微調后的結果。
審核編輯:劉清
-
語言模型
+關注
關注
0文章
506瀏覽量
10245
原文標題:Prompt+對比學習,更好地學習句子表征
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論