文章目錄
- ? 定義:
- 📌 取值范圍:
- 🔍 舉例說明:
- 🧠 應用場景:
- ?? 局限性:
- 💡 擴展概念:
Jaccard 相似度(Jaccard Similarity) 是一種用于衡量兩個集合之間相似程度的指標,廣泛應用于信息檢索、文本挖掘、推薦系統和自然語言處理等領域。
? 定義:
給定兩個集合 AAA 和 BBB,Jaccard 相似度定義為它們的交集大小與并集大小的比值:
Jaccard?Similarity(A,B)=∣A∩B∣∣A∪B∣\text{Jaccard Similarity}(A, B) = \frac{|A \cap B|}{|A \cup B|} Jaccard?Similarity(A,B)=∣A∪B∣∣A∩B∣?
- ∣A∩B∣|A \cap B|∣A∩B∣:集合 AAA 和 BBB 中共同元素的數量
- ∣A∪B∣|A \cup B|∣A∪B∣:集合 AAA 和 BBB 中所有不同元素的總數
📌 取值范圍:
- Jaccard 相似度的取值范圍在 0 到 1 之間:
- 0:表示兩個集合沒有交集,完全不相似;
- 1:表示兩個集合完全相同,完全相似。
🔍 舉例說明:
假設:
- A={apple,banana,orange}A = \{\text{apple}, \text{banana}, \text{orange}\}A={apple,banana,orange}
- B={banana,grape,orange,pear}B = \{\text{banana}, \text{grape}, \text{orange}, \text{pear}\}B={banana,grape,orange,pear}
那么:
- A∩B={banana,orange}A \cap B = \{\text{banana}, \text{orange}\}A∩B={banana,orange} → 大小為 2
- A∪B={apple,banana,orange,grape,pear}A \cup B = \{\text{apple}, \text{banana}, \text{orange}, \text{grape}, \text{pear}\}A∪B={apple,banana,orange,grape,pear} → 大小為 5
計算:
Jaccard?Similarity(A,B)=25=0.4\text{Jaccard Similarity}(A, B) = \frac{2}{5} = 0.4 Jaccard?Similarity(A,B)=52?=0.4
🧠 應用場景:
- 文本相似度比較:將兩段文本視為詞集合,計算它們的 Jaccard 相似度,判斷內容是否相似。
- 關鍵詞匹配:比較兩個文檔或查詢的關鍵詞集合之間的重合度。
- 推薦系統:評估用戶興趣集合之間的相似性。
- 模型輸出分析:如你之前提到的內容中,用來比較 LLM 不同層前后映射出的 top-k token 的變化情況。
- 數據去重/聚類:識別重復或高度相似的數據項。
?? 局限性:
- 不考慮頻率:Jaccard 只關心元素是否存在,不考慮出現次數(即它是基于集合而不是多重集合或多袋模型 bag-of-words)。
- 對大規模集合計算效率低:當集合很大時,計算交集和并集可能較慢。
💡 擴展概念:
-
Jaccard 距離:用來衡量兩個集合的不相似程度,公式為:
Jaccard?Distance=1?Jaccard?Similarity\text{Jaccard Distance} = 1 - \text{Jaccard Similarity} Jaccard?Distance=1?Jaccard?Similarity -
Tanimoto 系數:有時也被稱作 Jaccard 相似度,但通常用于向量空間中的一種擴展形式。