CoSENT:特徵式匹配與交互式匹配有多大差距?

語言: CN / TW / HK

©PaperWeekly 原創 · 作者 | 蘇劍林

單位 | 追一科技

研究方向 | NLP、神經網絡

一般來説,文本匹配有交互式(Interaction-based)和特徵式(Representation-based)兩種實現方案,其中交互式是指將兩個文本拼接在一起當成單文本進行分類,而特徵式則是指兩個句子分別由編碼器編碼為句向量後再做簡單的融合處理(算 cos 值或者接一個淺層網絡)。

通常的結論是,交互式由於使得兩個文本能夠進行充分的比較,所以它準確性通常較好,但明顯的缺點是在檢索場景的效率較差;而特徵式則可以提前計算並緩存好句向量,所以它有着較高的效率,但由於句子間的交互程度較淺,所以通常效果不如交互式。

上一篇文章筆者介紹了CoSENT,它本質上也是一種特徵式方案,並且相比以往的特徵式方案效果有所提高。於是筆者的好勝心就上來了:CoSENT 能比得過交互式嗎?特徵式相比交互式的差距有多遠呢?本文就來做個比較。

自動閾值

在文章 《CoSENT:比 Sentence-BERT 更有效的句向量方案》 中,我們評測 CoSENT 所用的指標是 Spearman 係數,它是一個只依賴於預測結果相對順序的指標,不依賴於閾值,比較適合檢索場景的評測。但如果評測指標是 accuracy 或者 F1 這些分類指標,則必須確定一個閾值,將預測結果大於這個數的預測結果視為正、小於則為負,然後才能計算指標。在二分類的場景,我們用二分法就可以有效地確定這個閾值。

然而,搜索閾值確實並非二分類所獨有,一般的多分類任務其實也存在着同樣的需求,所以這裏將這個問題展開來談談。比如對於分類的預測分佈,我們一般是用概率最大的類別,即作為預測類別,但如果是類別不均衡的場景,這樣做其實未必是最優的。我們可以通過驗證集來搜索一個向量,然後用:

作為預測類別,這裏的就相當於是多類別場景下的閾值。

那麼,怎麼搜索出呢?搜索目標自然是指標最大,但 accuracy 或者 F1 這些都是不可導的,因此梯度下降肯定是不考慮了;而又因為待搜索參數是一個多維向量,所以二分法也不大好用。這裏介紹一種名為“Powell 法”的求解方案。

Powell 法的數學細節比較多,這裏不打算展開,簡單來説,Powell 法是一種求解低維無參數優化的算法,它不需要梯度,並且效率也相對較高,這裏低維指的是待優化參數通常不超過 100 個(你總不能指望它去求解神經網絡)。最關鍵是,Powell 法在 Scipy 中有現成實現,在 scipy.optimize.minimize 中指定 method='Powell' 即可調用它。

對於上述問題,參考代碼如下:

import numpy as np
from scipy.optimize import minimize

def loss(t):
    """這裏的y_true.shape=[batch_size],
    y_pred.shape=[batch_size, num_classes]
    """
    t = (np.tanh(t) + 1) / 2
    return -np.mean(y_true == (y_pred * t[None]).argmax(1))

options = {'xtol': 1e-10, 'ftol': 1e-10, 'maxiter': 100000}
result = minimize(
    loss, np.zeros_like(y_pred[:1]), method='Powell', options=options
)
thresholds = (np.tanh(result.x) + 1) / 2

實驗結果

有了自動確定閾值的方法後,我們就可以檢驗分類性能了。筆者在 ATEC、BQ、LCQMC、PAWSX 這 4 個數據集上做了實驗,分別對比了 CoSENT、Sentence-BERT 和交互式(記為 Interact)三種方案的效果。公平起見,每種方法都用 Powell 法在驗證集上確定最優閾值,然後用該閾值報告測試集的效果,哪怕交互式的也是如此。

實驗代碼:

https://github.com/bojone/CoSENT/tree/main/accuracy

實驗結果如下(指標是 accuracy):

實驗結果顯示,從效果上來看,交互式確實是“王者”地位,但是特徵式(CoSENT 和 Sentence-BERT/RoBERTa)的效果差距並沒有筆者想象中大。客觀來説,在 ATEC 和 BQ 兩個任務上,交互式 Interact 與特徵式 CoSENT 並無顯著差異,而在 LCQMC 任務上,交互式 Interact 與特徵式 Sentence-BERT/RoBERTa 並無顯著差異。

唯一拉開明顯差距的是 PAWSX,在 《無監督語義相似度哪家強?我們做了個比較全面的評測》 、《中文任務還是SOTA嗎?我們給SimCSE補充了一些實驗》 [1] 中我們可以發現,幾乎所有無監督句向量方法都在 PAWSX 上失效。為什麼呢?因為 PAWSX 的負樣本幾乎全是“對抗樣本”,就是字面重疊度非常高但語義卻不同的負樣本。所以,對於這種無監督方法“全線崩潰”的“高難”負樣本,哪怕用標註數據去訓練,也自然需要更深層的交互才能更好地識別出來。

理論極限

有些讀者可能會好奇:能否通過理論分析出特徵式方案的理論極限呢?可能讓人意外的是,這個分析其實不難,而答案是:

理論上來説,交互式能做到的效果,特徵式“幾乎”都能做到。

怎麼得到這個結果呢?事實上用本博客以往介紹過的文章就足夠了。首先,我們假定正樣本對的相似度為 1,負樣本的相似度為 0,並且樣本對是無序的,即,那麼如果有個樣本,那麼我們每兩個樣本之間算相似度(不管實際的相似度是怎麼算來的),就得到一個相似度矩陣,它是一個“正定對稱矩陣”。

按照線性代數的結果,正定對稱矩陣的 SVD 分解必然是的形式,其中是正交矩陣而是對角陣,那麼我們有。這就表明了,正定對稱矩陣一定可以分解為的形式,這等價於説,每個樣本可以表示為一個維向量,使得。

至此,所有的結果都是有理論保證並且精確相等的,只不過目前的“維向量”實在是太大了,所以接下來應該往降維角度想。此時,我們去年介紹過的“JL 引理”(參考 《讓人驚歎的 Johnson-Lindenstrauss 引理:理論篇》 )就可以登場了,它告訴我們,別管原來是多少維的,個向量都可以降到維,而保持內積近似不變,在 《讓人驚歎的 Johnson-Lindenstrauss 引理:應用篇》 中我們還近似估計了這個量級應該是左右,所以對於 BERT base 的 768 維向量來説,理論上通過內積來擬合上百萬個樣本的兩兩相似度都不成問題。所以,基於內積的、維度達到幾百維的“特徵式”方案,理論上是可以相當精確地達到交互式效果的。

那為什麼在 PAWSX 這樣的困難數據集上兩者有明顯差異呢?個人認為這是“神經網絡和 cos 指標的連續性”與“文本匹配天然存在的對抗性”之間的矛盾造成的。

神經網絡本身就是一個連續函數,然後編碼器負責將句子壓縮到一個句向量中,其結果的連續性必然是非常好的,這裏的連續性,指的是句子的微小改動,導致句向量的改動也是微小的;同時,cos 的連續性也非常好,即如果比較小,那麼和的差距也很小。所以,總的來説就是“特徵式”的方案連續性會非常好。但問題是,人設計出來的語言天然存在對抗性,即字面上的微小改動能導致標註結果的巨大變化,經典的就是加個“不”字導致所謂的“語義反轉”,説白了就是連續性並不好。

於是,在此類任務之下,連續性非常好的“特徵式”方案要去擬合對抗性明顯的數據集,就會非常困難。當然,前面我們已經分析過理論上是可以擬合的,所以實際上是擬合確實能擬合,但需要訓練比較多的 epoch 來“磨”掉特徵式方案原有的連續性,但比較多的 epoch 也造成了更嚴重的過擬合。

因此,CoSENT 的訓練 loss 也能降到接近於 0(説明擬合能力沒問題),但是驗證集的效果沒有交互式的好。至於交互式,模型一開始就同時接觸到了兩個樣本,在後面的層中模型可以自行擬合和放大差異,從而在交互式方案中連續性與對抗性的矛盾並沒有那麼嚴重,因而效果更好。

文章小結

本文從理論和實驗兩個角度地探討了特徵式匹配與交互式匹配的效果差距,此外還討論了多分類問題中閾值的自動搜索問題。

參考文獻

[1] https://kexue.fm/archives/8348

特別鳴謝

感謝 TCCI 天橋腦科學研究院對於 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。

更多閲讀

# 投 稿 通 道 #

讓你的文字被更多人看到 

如何才能讓更多的優質內容以更短路徑到達讀者羣體,縮短讀者尋找優質內容的成本呢? 答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。 

PaperWeekly 鼓勵高校實驗室或個人,在我們的平台上分享各類優質內容,可以是 最新論文解讀 ,也可以是 學術熱點剖析科研心得競賽經驗講解 等。我們的目的只有一個,讓知識真正流動起來。

:memo:  稿件基本要求:

• 文章確係個人 原創作品 ,未曾在公開渠道發表,如為其他平台已發表或待發表的文章,請明確標註 

• 稿件建議以  markdown 格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題

• PaperWeekly 尊重原作者署名權,並將為每篇被採納的原創首發稿件,提供 業內具有競爭力稿酬 ,具體依據文章閲讀量和文章質量階梯制結算

:mailbox_with_mail:  投稿通道:

• 投稿郵箱: [email protected] 

• 來稿請備註即時聯繫方式(微信),以便我們在稿件選用的第一時間聯繫作者

• 您也可以直接添加小編微信( pwbot02 )快速投稿,備註:姓名-投稿

△長按添加PaperWeekly小編

:mag:

現在,在 「知乎」 也能找到我們了

進入知乎首頁搜索 「PaperWeekly」

點擊 「關注」 訂閲我們的專欄吧

·