雖然BERT等語言模型有很大的成果,但在對(duì)句子表征方面(sentence embeddings)上表現(xiàn)依然不佳,因?yàn)锽ERT存在 sentence bias 、 anisotropy 問題;
我們發(fā)現(xiàn)prompt,再給定不同的template時(shí)可以生成不同方面的positive pair,且避免embedding bias。
相關(guān)工作
Contrastive Learning(對(duì)比學(xué)習(xí)) 可以利用BERT更好地學(xué)習(xí)句子表征。其重點(diǎn)在于如何尋找正負(fù)樣本。例如,使用inner dropout方法構(gòu)建正樣本。
現(xiàn)有的研究表明,BERT的句向量存在一個(gè) 坍縮現(xiàn)象 ,也就是句向量受到高頻詞的影響,進(jìn)而坍縮在一個(gè)凸錐,也就是各向異性,這個(gè)性質(zhì)導(dǎo)致度量句子相似性的時(shí)候存在一定的問題,這也就是 anisotropy 問題。
發(fā)現(xiàn)
(1)Original BERT layers fail to improve the performance.
對(duì)比兩種不同的sentence embedding方法:
對(duì)BERT的輸入input embedding進(jìn)行平均;
對(duì)BERT的輸出(last layer)進(jìn)行平均
評(píng)價(jià)兩種sentence embedding的效果,采用sentence level anisotropy評(píng)價(jià)指標(biāo):
anisotropy :將corpus里面的sentence,兩兩計(jì)算余弦相似度,求平均。
對(duì)比了不同的語言模型,預(yù)實(shí)驗(yàn)如下所示:
從上表可以看出,貌似anisotropy對(duì)應(yīng)的spearman系數(shù)比較低,說明相關(guān)性不大。比如bert-base-uncased,
可以看出static token embedding的anisotropy很大,但是最終的效果也差不多。
(2)Embedding biases harms the sentence embeddings performance.
token embedding會(huì)同時(shí)受到token frequency和word piece影響
不同的語言模型的token embedding高度受到詞頻、subword的影響;
通過可視化2D圖,高頻詞通常會(huì)聚在一起,低頻詞則會(huì)分散
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在表征句子時(shí)出現(xiàn)上述提到的問題,本文提出使用Prompt來捕捉句子表征。但不同于先前prompt的應(yīng)用(分類或生成),我們并不是獲得句子的標(biāo)簽,而是獲得句子的向量,因此關(guān)于prompt-based sentence embedding,需要考慮兩個(gè)問題:
如何使用prompt表征一個(gè)句子;
如何尋找恰當(dāng)?shù)膒rompt;
本文提出一種基于prompt和對(duì)比學(xué)習(xí)的句子表征學(xué)習(xí)模型。
3.1 如何使用prompt表征一個(gè)句子
本文設(shè)計(jì)一個(gè)template,例如“[X] means [MASK]”,[X] 表示一個(gè)placehoder,對(duì)應(yīng)一個(gè)句子,[MASK]則表示待預(yù)測(cè)的token。給定一個(gè)句子,并轉(zhuǎn)換為prompt后喂入BERT中。有兩種方法獲得該句子embedding:
方法一:直接使用[MASK]對(duì)應(yīng)的隱狀態(tài)向量:;
方法二:使用MLM在[MASK]位置預(yù)測(cè)topK個(gè)詞,根據(jù)每個(gè)詞預(yù)測(cè)的概率,對(duì)每個(gè)詞的word embedding進(jìn)行加權(quán)求和來表示該句子:
方法二將句子使用若干個(gè)MLM生成的token來表示,依然存在bias,因此本文只采用第一種方法
3.2 如何尋找恰當(dāng)?shù)膒rompt
關(guān)于prompt設(shè)計(jì)上,可以采用如下三種方法:
manual design:顯式設(shè)計(jì)離散的template;
使用T5模型生成;
OptiPrompt:將離散的template轉(zhuǎn)換為continuous template;
3.3 訓(xùn)練
采用對(duì)比學(xué)習(xí)方法,對(duì)比學(xué)習(xí)中關(guān)于positive的選擇很重要,一種方法是采用dropout。本文采用prompt方法,為同一個(gè)句子生成多種不同的template,以此可以獲得多個(gè)不同的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本身對(duì)句子產(chǎn)生語義上的偏向。作者采用一種trick:
喂入含有template的句子,獲得[MASK]對(duì)應(yīng)的embedding ;
只喂入template本身,且template的token的position id保留其在原始輸入的位置,此時(shí)獲得[MASK]對(duì)應(yīng)的embeding:
最后套入對(duì)比學(xué)習(xí)loss中進(jìn)行訓(xùn)練:
四、實(shí)驗(yàn)
作者在多個(gè)文本相似度任務(wù)上進(jìn)行了測(cè)試,實(shí)驗(yàn)結(jié)果如圖所示:
驚奇的發(fā)現(xiàn),PromptBERT某些時(shí)候竟然比SimCSE高,作者也提出使用對(duì)比學(xué)習(xí),也許是基于SimCSE之上精細(xì)微調(diào)后的結(jié)果。
審核編輯:劉清
-
語言模型
+關(guān)注
關(guān)注
0文章
492瀏覽量
10229
原文標(biāo)題:Prompt+對(duì)比學(xué)習(xí),更好地學(xué)習(xí)句子表征
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論