機(jī)器之心報(bào)道

機(jī)器之心編輯部

好不容易找了把尺子,結(jié)果尺子會(huì)隨機(jī)伸縮。

在機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)領(lǐng)域,余弦相似度長期以來一直是衡量高維對(duì)象之間語義相似度的首選指標(biāo)。余弦相似度已廣泛應(yīng)用于從推薦系統(tǒng)到自然語言處理的各種應(yīng)用中。它的流行源于人們相信它捕獲了嵌入向量之間的方向?qū)R,提供了比簡單點(diǎn)積更有意義的相似性度量。

然而,Netflix 和康奈爾大學(xué)的一項(xiàng)研究挑戰(zhàn)了我們對(duì)這種流行方法的理解:余弦相似度可能導(dǎo)致任意且毫無意義的結(jié)果。

打開網(wǎng)易新聞 查看精彩圖片

論文地址:https://arxiv.org/pdf/2403.05440v1

余弦相似度通過測(cè)量兩個(gè)向量的夾角的余弦值來度量它們之間的相似性,機(jī)器學(xué)習(xí)研究常常通過將余弦相似性應(yīng)用于學(xué)得的低維特征嵌入來量化高維對(duì)象之間的語義相似性。但在實(shí)踐中,這可能比嵌入向量之間的非標(biāo)準(zhǔn)化點(diǎn)積效果更好,但有時(shí)也更糟糕。

打開網(wǎng)易新聞 查看精彩圖片

圖源:https://www.shaped.ai/blog/cosine-similarity-not-the-silver-bullet-we-thought-it-was

為了深入了解這一經(jīng)驗(yàn)觀察,Netflix 和康奈爾大學(xué)的研究團(tuán)隊(duì)研究了從正則化線性模型派生的嵌入,通過分析得出結(jié)論:對(duì)于某些線性模型來說,相似度甚至不是唯一的,而對(duì)于其他模型來說,它們是由正則化隱式控制的。

該研究討論了線性模型之外的情況:學(xué)習(xí)深度模型時(shí)采用不同正則化的組合,當(dāng)對(duì)結(jié)果嵌入進(jìn)行余弦相似度計(jì)算時(shí),會(huì)產(chǎn)生隱式和意想不到的效果,使結(jié)果變得不透明并且可能是任意的?;谶@些見解,研究團(tuán)隊(duì)得出結(jié)論:不要盲目使用余弦相似度,并概述了替代方案。

最近,這篇論文在機(jī)器學(xué)習(xí)社區(qū)再度引起熱議,一篇題為《Cosine Similarity: Not the Silver Bullet We Thought It Was(余弦相似度:不是我們想象的靈丹妙藥)》的博客概述了研究內(nèi)容。

打開網(wǎng)易新聞 查看精彩圖片

博客地址:https://www.shaped.ai/blog/cosine-similarity-not-the-silver-bullet-we-thought-it-was

有網(wǎng)友表示:「問題沒那么嚴(yán)重,相似度指標(biāo)需要根據(jù)嵌入空間進(jìn)行量身定制,需要測(cè)試不同的指標(biāo)來建立定性評(píng)估。」

打開網(wǎng)易新聞 查看精彩圖片

網(wǎng)友認(rèn)為余弦相似度應(yīng)該是一個(gè)足夠好的方法。畢竟,「根據(jù) OpenAI 關(guān)于嵌入的文檔,他們還在代碼片段中使用了余弦相似度?!?/p>

打開網(wǎng)易新聞 查看精彩圖片

這個(gè)結(jié)論是怎么得出來的呢?讓我們一起看看這篇論文的主要內(nèi)容,一探究竟。

研究簡介

研究團(tuán)隊(duì)發(fā)現(xiàn)了一個(gè)重要問題:在特定場(chǎng)景下,余弦相似度會(huì)隨意產(chǎn)生結(jié)果,這使得該度量方法變得不可靠。

研究著重分析了線性矩陣模型。這類模型能夠得到封閉形式的解與理論分析,在推薦系統(tǒng)等應(yīng)用中被廣泛用于學(xué)習(xí)離散實(shí)體的低維嵌入表示。

研究分析了 MF 模型的兩個(gè)常用訓(xùn)練目標(biāo):

打開網(wǎng)易新聞 查看精彩圖片

其中 X 是輸入數(shù)據(jù)矩陣,A 和 B 是學(xué)習(xí)到的嵌入矩陣,λ 是正則化參數(shù)。

問題根源:正則化與自由度

研究人員發(fā)現(xiàn),第一個(gè)優(yōu)化目標(biāo)(等同于使用去噪或 dropout 的學(xué)習(xí)方式)在學(xué)習(xí)到的嵌入中引入了一個(gè)關(guān)鍵的自由度。這種自由度允許對(duì)嵌入維度進(jìn)行任意縮放,卻不會(huì)影響模型的預(yù)測(cè)結(jié)果。

從數(shù)學(xué)角度來看,如果 ? 和 B? 是第一個(gè)目標(biāo)的解,那么對(duì)于任意對(duì)角矩陣 D,?D 和 B?D^(-1) 也是解。這種縮放會(huì)影響學(xué)習(xí)到的嵌入的歸一化,從而影響它們之間的余弦相似度。

打開網(wǎng)易新聞 查看精彩圖片

來自論文:《Is Cosine-Similarity of Embeddings Really About Similarity? 》

舉兩個(gè)隨意產(chǎn)生結(jié)果的例子:

1. 在全秩 MF 模型中,通過適當(dāng)選擇 D,item-item 余弦相似度可以等于單位矩陣。這個(gè)奇怪的結(jié)果表明每個(gè) item 只與自己相似,而與所有其他 item 完全不相似。

2. 通過選擇不同的 D,user-user 余弦相似度可以簡化為 ΩA?X?X^T?ΩA,其中 X 是原始數(shù)據(jù)矩陣。這意味著相似度僅基于原始數(shù)據(jù),完全沒有利用到學(xué)習(xí)的嵌入。

線性模型之外

除了線性模型,類似的問題在更復(fù)雜的場(chǎng)景中也存在:

1. 深度學(xué)習(xí)模型通常會(huì)同時(shí)使用多種不同的正則化技術(shù),這可能會(huì)對(duì)最終嵌入的余弦相似度產(chǎn)生意想不到的影響。

2. 在通過點(diǎn)積優(yōu)化來學(xué)習(xí)嵌入時(shí),如果直接使用余弦相似度,可能會(huì)得到難以解釋且沒有實(shí)際意義的結(jié)果。

研究人員提出了幾種解決這些問題的方法:

  1. 直接針對(duì)余弦相似度訓(xùn)練模型,可能需要借助層歸一化等技術(shù)。
  2. 完全避免在嵌入空間中工作。相反,在應(yīng)用余弦相似度之前,先將嵌入投影回原始空間。
  3. 在學(xué)習(xí)過程中或之前應(yīng)用歸一化或減少流行度偏差,而不是像余弦相似度那樣僅在學(xué)習(xí)后進(jìn)行歸一化。

語義分析中余弦相似度的替代方案

在論文的基礎(chǔ)上,博客作者 Amarpreet Kaur 歸納了一些可以替換余弦相似度的備選項(xiàng):

  • 歐幾里得距離:雖然由于對(duì)向量大小敏感而在文本數(shù)據(jù)中不太流行,但在嵌入經(jīng)過適當(dāng)歸一化時(shí)可以發(fā)揮作用。
  • 點(diǎn)積:在某些應(yīng)用中,嵌入向量之間的非歸一化點(diǎn)積被發(fā)現(xiàn)優(yōu)于余弦相似度,特別是在密集段落檢索和問答任務(wù)中。
  • 軟余弦相似度:這種方法除了考慮向量表示外,還考慮了單個(gè)詞之間的相似度,可能提供更細(xì)致的比較。

打開網(wǎng)易新聞 查看精彩圖片

圖源:https://www.machinelearningplus.com/nlp/cosine-similarity/

  • 語義文本相似度(STS)預(yù)測(cè):專門為語義相似度任務(wù)訓(xùn)練的微調(diào)模型 (如 STSScore) 有望提供更穩(wěn)健和和更可解釋的相似度度量。
  • 歸一化嵌入與余弦相似度:在使用余弦相似度之前,應(yīng)用層歸一化等歸一化技術(shù)能有效提升相似度計(jì)算的準(zhǔn)確性。

在選擇替代方案時(shí),必須考慮任務(wù)的具體要求、數(shù)據(jù)的性質(zhì)以及所使用的模型架構(gòu)。通常需要在特定領(lǐng)域的數(shù)據(jù)集上進(jìn)行實(shí)證評(píng)估,以確定最適合特定應(yīng)用的相似度。

我們經(jīng)常用「余弦相似度」來計(jì)算用戶或物品之間的相似程度。這就像是測(cè)量兩個(gè)向量之間的夾角,夾角越小,相似度越高。論文中的實(shí)驗(yàn)結(jié)果也表明,余弦相似度給出的答案經(jīng)常與實(shí)際情況不符。

在比較簡單的線性模型上都已經(jīng)如此隨機(jī),在更復(fù)雜的深度學(xué)習(xí)模型中,這個(gè)問題可能會(huì)更嚴(yán)重。因?yàn)樯疃葘W(xué)習(xí)模型通常使用更多復(fù)雜的數(shù)學(xué)技巧來優(yōu)化結(jié)果,這些技巧會(huì)影響模型內(nèi)部的數(shù)值大小,從而影響余弦相似度的計(jì)算。

這就像是把一個(gè)本來就不太準(zhǔn)的測(cè)量工具放在一個(gè)更復(fù)雜的環(huán)境中使用,結(jié)果可能會(huì)更不可靠。因此,需要尋找更好的方法,比如使用其他相似度計(jì)算方式,或者研究正則化技術(shù)對(duì)語義的影響。這提醒大家:在開發(fā) AI 系統(tǒng)時(shí),要多思考、多測(cè)試,確保工具真的好用。

對(duì)于這項(xiàng)研究的結(jié)論,你怎么看?