說來慚愧,之前寫了一篇對向量召回的總結(jié)(前沿重器[28] | 前沿的向量召回都是怎么做的),萬萬沒想到現(xiàn)在就來寫新文章了,而且上面的總結(jié)還沒提到,大家當做擴展和補充吧。
眾所周知,在語義相似度上,交互式方案總會比非交互方案更容易獲得較好的效果,然而在召回上,非交互式方案(也就是表征式)具有得天獨厚的優(yōu)勢,我們最終使用的,又不得不是非交互的方案,因此我們會嘗試進一步優(yōu)化非交互方案。
最近開始發(fā)現(xiàn)一些從交互式蒸餾到交互的方案,例如21年年末美團提出的VIRT(VIRT: Improving Representation-based Models for Text Matching through Virtual Interaction),今天我們來聊的是百度在22年5月份提出的方案,我認為這篇論文是這個領域內(nèi)目前比較有代表性的,主要有這幾個原因:
整理了一些比較好的蒸餾思路和方向。
對這些蒸餾方案做了一些消融實驗。
試驗了一些前處理的方案,甚至包括一些furture pretrain。
論文和有關(guān)資料放這里:
原論文:ERNIE-Search: Bridging Cross-Encoder with Dual-Encoder via Self On-the-fly Distillation for Dense Passage Retrieval
文章講解:
https://zhuanlan.zhihu.com/p/522301876
https://blog.csdn.net/moxibingdao/article/details/125713542
https://zhuanlan.zhihu.com/p/518577648
表征式能逼近交互式嗎
之所以想先聊這個,是因為想說一下這兩者之間存在的可能性,即表征式是否可以達到交互式的效果,從蘇神有關(guān)這塊的推理來看(https://spaces.ac.cn/archives/8860),其實是可行的,雖然這塊的推理并不算嚴格,但是這個推理已經(jīng)相對可靠了,換言之,我們可能可以找到更好的學習方法,找到這樣一組參數(shù),使表征式能達到交互式效果的這個理論高度。
ERNIE-Search模型結(jié)構(gòu)
模型結(jié)構(gòu),我比較想從損失函數(shù)開始講,其實從損失函數(shù)看就能看出本文很大部分的貢獻:
這個損失的內(nèi)容非常多,我把他分為兩個部分,一個是獨立訓練的部分(不帶箭頭的),另一個是蒸餾部分(帶箭頭的)。首先是獨立訓練的部分,這部分主要是直接針對標簽進行訓練的,無論是teacher模型還是student模型,其實都是需要這個部分的。
:cross-encoder,交互式的方案,在這篇論文里,使用的是ERNIE2.0(4.1.3中提到)。
:late-interaction,延遲交互方案,這里是指介于交互式和表征式之間的方案,開頭是雙塔,后續(xù)的交互式并非cos而是更復雜的交互方式,如ColBERT(ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT)。
:Dual-encoder,表征式方案,就是常說的雙塔,本文用的是同樣是ERNIE2.0(4.1.3中提到)。
另一部分則是蒸餾部分,這里的蒸餾部分作者是做了很多的心血進行分析的,構(gòu)造了好幾個損失函數(shù),分別是這些,這里的幾個蒸餾損失函數(shù)用的都是KL散度:
:交互方案蒸餾到延遲交互方案。
:延遲交互方案蒸餾到表征式方案(和共同形成級聯(lián)蒸餾)。
:交互方案蒸餾到表征式方案。
:最特別的一個。實質(zhì)上是一個token級別的交互損失,旨在希望延遲交互得到的attn矩陣和交互式的attn矩陣盡可能接近。
回到損失函數(shù)本身,其實會發(fā)現(xiàn)這個損失函數(shù)是由多個損失函數(shù)組合起來的,敏銳的我們可以發(fā)現(xiàn),這里的幾個損失之間的權(quán)重是完全一樣的,估計調(diào)整下可能還有些空間吧,不過也考慮到損失函數(shù)實在夠多了,調(diào)起來真的不容易。
說起效果,這點作者是做了消融實驗的:
損失函數(shù)消融實驗
從實驗結(jié)果來看,其中貢獻最大的是,也就是交互方案蒸餾到延遲交互方案,其二是(我感覺就是),這個也挺符合直覺的吧,但是比較神奇的是去掉了比較多以后,就是#6的實驗,好像最終對結(jié)果的損失反而會變少,這個有些神奇,有待進一步實驗和探索吧,當然,我感覺這里可能和權(quán)重也有關(guān)。
訓練策略
還需要提一個關(guān)鍵點就是文章在4.1.3中提到的訓練策略,這個特別的訓練策略為最終的結(jié)果貢獻度不少(可以參考消融實驗),因此展開說一下:
使用對應語料對預訓練模型(應該就是ERNIR2.0)進行繼續(xù)預訓練,這個階段在文中也被稱為post-train。
對QA任務,使用交互式蒸餾到表征式的方案,訓練表征式模型。
對QA任務,再使用上面的級聯(lián)蒸餾方案,訓練表征式模型,和上一條被聯(lián)合稱為finetune階段。
另外,在3.4中,有提到一個訓練策略叫Dual Regularization(DualReg),其實我感覺這個和r-dropout很相似(前沿重器[15] | R-Dropout——一次不行就兩次),用兩個不同隨機種子的dropout對表征式進行前向訓推理,得到兩個表征結(jié)果,用KL散度進行學習,而因為雙塔,實際上要對q1和q2都這么做一次,所以實際上會多兩個損失函數(shù)。
訓練策略消融實驗
這些訓練策略的效果,在4.3.1中有進行消融實驗,如上圖所示,直觀地,從這個表其實可以發(fā)現(xiàn)幾個信息:
ID'(也就是交互式蒸餾)具有一定的優(yōu)勢,尤其是在Finetuning階段,但是在Post-train中的收益似乎不那么明顯。
DualReg似乎是有些效果的,但是不清楚為什么要把CB(RocketQA中的提到的跨batch負采樣策略)也放一起,就感覺這個東西和本文的創(chuàng)新點沒啥關(guān)系,讓我們并不知道是CB的貢獻,還是DualReg的貢獻了。
但是感覺做的有一些馬虎,主要是為了證明這個ID'(也就是交互式整流)的方案比較厲害,但是從這個表來看收效沒有想象的大額,不過有一說一,前面的繼續(xù)預訓練還是非常值得我們學習和嘗試的,這點我在(前沿重器[26] | 預訓練模型的領域適配問題)中有提到過。
小結(jié)
總結(jié)下來,這篇文章最大的特點是把“通過學習交互式,來讓表征式效果進一步提升”這個思路發(fā)揮很極致,讓我們知道了這個方案的潛力,這個是有些實驗和落地價值的。
除此之外,這篇文章在初讀的時候,其實發(fā)現(xiàn)了不少新的概念(可能也是我有些匱乏吧),所以挖了不少坑,論文里的下面這張表其實都值得我好好讀一下,當然也包括introduction里面的。
對比實驗
審核編輯 :李倩
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4327瀏覽量
62573 -
模型
+關(guān)注
關(guān)注
1文章
3229瀏覽量
48810
原文標題:ERNIE-Search:向交互式學習的表征式語義匹配代表作
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論