Tóm tắt nội dung
- Độ đo tương đồng (similarity) và khoảng cách (distance) là hai mặt của cùng một bài toán, nhưng không phải lúc nào cũng chuyển đổi tuyến tính cho nhau.
- Mỗi độ đo (Euclidean, Manhattan, Minkowski, Cosine, Jaccard, Pearson) mã hóa một giả định hình học hoặc thống kê khác nhau về dữ liệu.
- Chọn sai độ đo không làm thuật toán báo lỗi — nó âm thầm làm mô hình học sai cấu trúc dữ liệu.
- Không có độ đo "tốt nhất" tuyệt đối; lựa chọn phụ thuộc vào loại dữ liệu, chiều không gian và ý nghĩa mà "giống nhau" cần biểu diễn.
Cosine similarity chỉ là một điểm trong một không gian lớn các độ đo tương đồng và khoảng cách. Mỗi độ đo phản ánh một cách hiểu khác nhau về khái niệm "giống nhau", và việc chọn sai có thể khiến mô hình clustering, k-NN hay recommendation system hoạt động sai mà không hề báo lỗi.
Khoảng cách và tương đồng: hai mặt của cùng một khái niệm
Về mặt toán học, một hàm khoảng cách (distance function) d(A, B) là một metric nếu thỏa bốn tiên đề: không âm, d(A,B)=0 khi và chỉ khi A=B, đối xứng d(A,B)=d(B,A), và bất đẳng thức tam giác d(A,C) ≤ d(A,B) + d(B,C). Độ tương đồng (similarity) thường được định nghĩa nghịch với khoảng cách, nhưng không phải phép biến đổi nào cũng giữ được tính chất metric.
Đây là điểm nhiều người bỏ qua: Cosine Similarity không phải là một metric theo nghĩa toán học chặt chẽ, vì nó không thỏa trực tiếp bất đẳng thức tam giác khi áp dụng ngược lại thành khoảng cách mà không chuẩn hóa đúng cách. Đây là lý do vì sao một số thuật toán clustering như DBSCAN yêu cầu metric thực sự, trong khi cosine similarity phù hợp hơn với các bài toán ranking.
Họ khoảng cách Minkowski: Euclidean và Manhattan là hai trường hợp riêng
Nhiều độ đo quen thuộc thực chất là trường hợp đặc biệt của một công thức tổng quát gọi là khoảng cách Minkowski:
Khi p = 2, ta có Euclidean Distance — khoảng cách đường thẳng quen thuộc trong không gian hình học. Khi p = 1, ta có Manhattan Distance (còn gọi là taxicab distance) — tổng khoảng cách theo từng trục, giống như di chuyển trên lưới ô vuông của thành phố. Khi p tiến tới vô cực, công thức hội tụ về Chebyshev Distance, chỉ lấy độ lệch lớn nhất trên một trục duy nhất.
Sự khác biệt không chỉ là con số. Với p nhỏ (như Manhattan), độ đo ít nhạy với outlier trên một chiều đơn lẻ vì không có phép bình phương khuếch đại sai lệch. Với p lớn (như Euclidean), một chiều lệch nhiều sẽ chi phối toàn bộ khoảng cách do phép bình phương.
Hình dưới minh họa "hình dạng" của một đơn vị khoảng cách (unit ball) theo từng p — đây là cách trực quan nhất để hiểu bản chất hình học khác nhau giữa các độ đo:
Khi hướng quan trọng hơn độ lớn: Cosine trong bối cảnh rộng hơn
Như đã phân tích ở bài trước, Cosine Similarity đo góc chứ không đo khoảng cách tuyệt đối. Về bản chất toán học, nó liên hệ chặt với Euclidean Distance khi vector đã được chuẩn hóa (normalize) về độ dài 1:
Đây là một điểm quan trọng về mặt khoa học: khi vector đã được chuẩn hóa L2, việc dùng Euclidean Distance hay Cosine Similarity để xếp hạng (ranking) kết quả sẽ cho thứ tự giống hệt nhau. Nhiều hệ thống semantic search tận dụng tính chất này để tăng tốc độ tính toán bằng cấu trúc dữ liệu tối ưu cho Euclidean (như FAISS với chỉ mục L2) mà vẫn giữ ngữ nghĩa của cosine.
Đo tương đồng giữa các tập hợp: Jaccard Similarity
Khi dữ liệu không phải vector số mà là tập hợp (set) — ví dụ tập từ khóa xuất hiện trong hai văn bản, hoặc tập sản phẩm hai khách hàng đã mua — Jaccard Similarity là lựa chọn tự nhiên hơn cosine:
Khác với cosine (đo hướng trong không gian liên tục), Jaccard đo tỷ lệ phần trùng lặp trên tổng số phần tử duy nhất. Nó phù hợp với dữ liệu nhị phân (binary) hoặc rời rạc, như so sánh tập tag, tập gene biểu hiện, hay phát hiện trùng lặp near-duplicate giữa các tài liệu dựa trên n-gram.
Một hạn chế quan trọng: Jaccard không phân biệt được tần suất xuất hiện — một từ lặp lại 10 lần và 1 lần được xem như nhau nếu chỉ xét tập hợp. Đây chính là lý do TF-IDF kết hợp với cosine thường được ưu tiên hơn khi tần suất từ mang thông tin quan trọng.
Đo tương đồng theo tương quan thống kê: Pearson Correlation
Trong hệ thống gợi ý (recommendation system) dựa trên đánh giá người dùng, Pearson Correlation Coefficient thường được ưu tiên hơn cosine thuần túy vì nó loại bỏ độ lệch trung bình (bias) của từng người dùng:
Về bản chất, Pearson Correlation chính là Cosine Similarity được tính trên vector đã căn giữa (mean-centered) — trừ đi giá trị trung bình trước khi tính góc. Sự khác biệt tưởng nhỏ này rất quan trọng: nếu một người dùng luôn chấm điểm cao cho mọi sản phẩm (thiên vị hệ thống), cosine thuần túy sẽ đánh giá sai mức độ tương đồng sở thích, trong khi Pearson khắc phục được vấn đề này.
Cài đặt và so sánh trực tiếp bằng Python
Đoạn code dưới đây tính đồng thời bốn độ đo trên cùng một cặp vector để thấy rõ chúng phản ứng khác nhau như thế nào:
import numpy as np
from scipy.stats import pearsonr
a = np.array([5, 3, 0, 1])
b = np.array([4, 2, 0, 1])
# Euclidean
euclidean = np.linalg.norm(a - b)
# Manhattan
manhattan = np.sum(np.abs(a - b))
# Cosine similarity
cosine = np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
# Pearson correlation
pearson, _ = pearsonr(a, b)
print(f"Euclidean: {euclidean:.3f}")
print(f"Manhattan: {manhattan:.3f}")
print(f"Cosine: {cosine:.3f}")
print(f"Pearson: {pearson:.3f}")
Với hai vector gần giống hệt nhau về mẫu hình (pattern) nhưng khác biên độ, cosine và pearson sẽ cho điểm số cao gần 1, trong khi Euclidean và Manhattan vẫn ghi nhận một khoảng cách khác 0 đáng kể do chênh lệch giá trị tuyệt đối. Đây chính là minh chứng thực nghiệm cho sự khác biệt triết lý giữa "đo hướng/mẫu hình" và "đo khoảng cách tuyệt đối".
Hiện tượng curse of dimensionality và hệ quả với việc chọn độ đo
Một vấn đề khoa học quan trọng thường bị bỏ qua: khi số chiều (dimension) của vector tăng lên rất lớn, khoảng cách Euclidean giữa các điểm ngẫu nhiên có xu hướng hội tụ về cùng một giá trị — hiện tượng gọi là curse of dimensionality. Điều này làm giảm khả năng phân biệt "gần" và "xa" của các độ đo dựa trên L2.
Trong không gian embedding hàng trăm đến hàng nghìn chiều (như BERT, các mô hình ngôn ngữ lớn), cosine similarity thường ổn định hơn Euclidean vì nó chuẩn hóa độ lớn, giảm bớt ảnh hưởng của nhiễu tích lũy trên nhiều chiều. Đây là lý do phần lớn hệ thống semantic search hiện đại chọn cosine hoặc dot product đã chuẩn hóa thay vì Euclidean thô.
Bảng so sánh và nguyên tắc lựa chọn
| Độ đo | Loại dữ liệu phù hợp | Nhạy với magnitude? | Là metric chuẩn? |
|---|---|---|---|
| Euclidean | Vector số liên tục, ít chiều | Có | Có |
| Manhattan | Dữ liệu thưa, nhiều outlier | Có | Có |
| Cosine | Embedding, văn bản, high-dimensional | Không | Không (chặt chẽ) |
| Jaccard | Tập hợp, dữ liệu nhị phân | Không | Có (dạng khoảng cách) |
| Pearson | Rating, dữ liệu có bias hệ thống | Không | Không |
Kết luận
Không tồn tại một độ đo tương đồng "đúng" cho mọi bài toán — mỗi độ đo mã hóa một giả định khác nhau về ý nghĩa của "giống nhau": khoảng cách tuyệt đối, hướng ngữ nghĩa, mức độ trùng lặp tập hợp, hay tương quan sau khi loại bỏ bias. Việc chọn đúng độ đo, dựa trên bản chất dữ liệu và số chiều của không gian vector, thường quan trọng hơn việc tinh chỉnh thuật toán học máy phía sau nó.
Tài liệu tham khảo
[1] C. D. Manning, P. Raghavan, and H. Schütze, Introduction to Information Retrieval. Cambridge, U.K.: Cambridge Univ. Press, 2008.
[2] P. Jaccard, "The Distribution of the Flora in the Alpine Zone," New Phytologist, vol. 11, no. 2, pp. 37–50, 1912.
[3] C. C. Aggarwal, A. Hinneburg, and D. A. Keim, "On the Surprising Behavior of Distance Metrics in High Dimensional Space," in Proc. Int. Conf. Database Theory (ICDT), 2001, pp. 420–434.
Nội dung gốc thuộc tác giả. Vui lòng không đăng lại toàn văn khi chưa được phép, trừ trường hợp pháp luật hoặc giấy phép áp dụng cho phép. Nội dung của bên thứ ba tuân theo quyền và giấy phép tương ứng.
Nguồn gốc: Các Độ Đo Tương Đồng Và Khoảng Cách Trong Machine Learning