Chuyển đến nội dung chính

Các Độ Đo Tương Đồng Và Khoảng Cách Trong Machine Learning

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:

Dp(A, B) = (Σ |Aᵢ − Bᵢ|p)1/p

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:

Manhattan (p=1) Euclidean (p=2) Chebyshev (p→∞)

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:

‖A − B‖² = 2 − 2·cos(θ)  (khi ‖A‖ = ‖B‖ = 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:

J(A, B) = |A ∩ B| / |A ∪ B|

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:

r = Σ(Aᵢ − Ā)(Bᵢ − B̄) / (√Σ(Aᵢ − Ā)² · √Σ(Bᵢ − B̄)²)

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.

© The CS Note · THE CS NOTE

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

Về trang chủ Về đầu bài

Bài Đăng Phổ Biến

Bài toán tháp Hà nội

Trải nghiệm Tháp Hà Nội Kéo thả đĩa hoặc chạm vào các nút bên dưới để di chuyển. Bạn phải chuyển toàn bộ đĩa sang cột ngoài cùng bên phải (Cột 3) mà không đặt đĩa to lên đĩa nhỏ. Cột 1 Cột 2 Cột 3 Điều khiển & Chế độ Số lượng đĩa 4 Tốc độ máy giải ↪ Undo ↻ Chơi lại 🤖 Máy tự giải Thống kê ván chơi Nước đã đi 0 Thời gian 00:00 Tối thiểu cần 15 Kỷ lục của bạn - Lịch sử và Nguồn gốc Truyền thuyết Bài toán Tháp Hà Nội (hay Tháp Brahma) là một trò chơi xếp hình toán học kinh điển được giới thiệu lần đầu vào năm 1883 bởi nhà toán học người Pháp Édouard L...

Bài toán phân tích cảm xúc trong văn bản

Bài toán phân tích cảm xúc (sentiment analysis) là một bài toán NLP nhằm xác định thái độ hoặc cảm xúc được thể hiện trong văn bản. Ví dụ, từ một đánh giá như “Điện thoại đẹp, chạy nhanh nhưng pin hơi yếu”, hệ thống có thể nhận biết rằng người dùng có cả nhận xét tích cực và tiêu cực. Điểm thú vị của bài toán nằm ở khoảng cách giữa cách con người hiểu ngôn ngữ và cách máy tính xử lý dữ liệu. Một hệ thống phân tích cảm xúc cần biến văn bản tự nhiên thành dữ liệu có cấu trúc, học được các mẫu ngôn ngữ từ dữ liệu huấn luyện và đưa ra dự đoán hợp lý trên những câu chưa từng gặp. 1. Bài toán phân tích cảm xúc bắt đầu từ đâu? Hãy tưởng tượng một cửa hàng trực tuyến có hàng nghìn đánh giá mỗi ngày. Con người có thể đọc từng đánh giá để biết khách hàng hài lòng hay không, nhưng việc này nhanh chóng trở nên tốn thời gian khi dữ liệu tăng lên. NLP có thể biến bài toán đó thành một bài toán phân loại. Với mỗi văn bản, hệ thống nhận vào một chuỗi ký...

KAN cho phân đoạn khối u não với bộ BraTS 2020

Kolmogorov-Arnold Network (KAN) mở ra một hướng khác với MLP truyền thống: thay vì chỉ học các trọng số vô hướng trên mỗi kết nối, KAN có thể học những hàm phi tuyến một biến trên các cạnh . Khi đưa ý tưởng này vào kiến trúc encoder-decoder như U-Net, ta có thể sử dụng convolution để giữ cấu trúc không gian của ảnh MRI và dùng KAN để thực hiện các phép biến đổi phi tuyến mạnh hơn trên representation trung gian. Một bài toán phù hợp để nghiên cứu hướng này là phân đoạn u thần kinh đệm trên BraTS 2020 . Dataset cung cấp MRI đa mô thức và yêu cầu xác định các vùng Whole Tumor (WT), Tumor Core (TC) và Enhancing Tumor (ET). Đây là bài toán 3D có sự mất cân bằng voxel lớn, hình dạng khối u rất đa dạng và ranh giới giữa các mô bệnh lý không đơn giản. Lưu ý học thuật quan trọng: U-KAN gốc được công bố cho nhiều benchmark phân đoạn ảnh y tế nhưng không báo cáo kết quả BraTS 2020. Một công trình sau đó đã mở rộng U-KAN sang 3D MRI brain tumor segmentation , nhưng đánh giá trên BraTS 2...

Tách từ trong tiếng Việt Word Segmentation

Tách từ tiếng Việt là bài toán xác định ranh giới giữa các từ trong một chuỗi văn bản. Khó khăn nằm ở chỗ khoảng trắng trong tiếng Việt thường phân cách các âm tiết , nhưng một từ hoàn chỉnh có thể gồm nhiều âm tiết như “sinh viên” , “đại học” , “công nghệ” hay “tự nhiên” . Tách từ đúng giúp các hệ thống NLP dựa trên từ biểu diễn văn bản hợp lý hơn, đặc biệt trong tìm kiếm, TF-IDF, phân loại văn bản, gán nhãn từ loại và một số mô hình ngôn ngữ tiếng Việt. Tuy nhiên, với các Transformer sử dụng tokenizer dưới mức từ như subword hoặc SentencePiece, tách từ thủ công không phải lúc nào cũng là bước bắt buộc . Việc có cần tách từ trước hay không phụ thuộc vào mô hình và pipeline cụ thể. Tóm tắt nội dung Khoảng trắng trong tiếng Việt không phải lúc nào cũng là ranh giới từ ; nhiều từ gồm hai hoặc nhiều âm tiết. Word segmentation và tokenization có liên quan nhưng không hoàn toàn đồng nghĩa. Ba hướng chính gồm dựa trên từ điển, mô hình thống kê và mô hình học sâu . Tron...

KAN là gì? Mạng Kolmogorov-Arnold khác MLP thế nào?

Kolmogorov-Arnold Network (KAN) là một kiến trúc mạng nơ-ron trong đó mỗi cạnh không chỉ chứa một trọng số vô hướng mà mang một hàm một biến có thể học được . Đây là khác biệt cốt lõi so với Multi-Layer Perceptron (MLP), nơi các cạnh chủ yếu thực hiện phép nhân với trọng số còn hàm kích hoạt thường được áp dụng tại các node. KAN được lấy cảm hứng từ định lý biểu diễn Kolmogorov-Arnold và đặc biệt đáng chú ý trong các bài toán xấp xỉ hàm, mô hình hóa khoa học và symbolic regression. Tuy nhiên, KAN không nên được hiểu là kiến trúc đã thay thế MLP trong mọi bài toán Deep Learning; khả năng biểu diễn, chi phí tính toán và mức độ phù hợp của hai kiến trúc khác nhau theo từng nhiệm vụ. Tóm tắt nội dung MLP học chủ yếu trọng số trên các cạnh , còn KAN đặt hàm một biến học được trên từng cạnh . Một KAN layer cộng kết quả của nhiều hàm cạnh để tạo activation của node tiếp theo. KAN gốc sử dụng B-spline để tham số hóa các hàm phi tuyến trên cạnh. KAN có lợi thế đáng chú ý về trực...