Độ tương đồng cosine là gì?
Độ tương đồng cosine đo mức độ giống nhau giữa hai vector dựa trên góc giữa chúng thay vì độ lớn. Kết quả nằm trong khoảng từ −1 đến 1: giá trị 1 nghĩa là hai vector cùng hướng hoàn toàn, 0 nghĩa là chúng vuông góc (không liên quan), còn −1 nghĩa là chúng hướng ngược nhau. Phương pháp này được dùng rất phổ biến trong khai phá văn bản, hệ thống gợi ý, truy hồi thông tin và học máy để so sánh tài liệu, vector embedding hay vector đặc trưng.
Cách sử dụng công cụ
Bạn hãy nhập các thành phần của Vector A và Vector B dưới dạng các số cách nhau bằng dấu phẩy. Hai vector cần có cùng số chiều (nếu khác nhau, công cụ sẽ lấy theo độ dài của vector ngắn hơn). Nhấn nút tính toán để xem độ tương đồng cosine, tích vô hướng, độ lớn của từng vector và góc giữa hai vector tính theo độ.
Giải thích công thức
Độ tương đồng cosine bằng tích vô hướng của hai vector chia cho tích các chuẩn Euclid (độ lớn) của chúng:
$$\cos\theta = \frac{\vec{A} \cdot \vec{B}}{\lVert \vec{A} \rVert \, \lVert \vec{B} \rVert} = \frac{\sum_{i=1}^{n} A_i B_i}{\sqrt{\sum_{i=1}^{n} A_i^{2}} \; \sqrt{\sum_{i=1}^{n} B_i^{2}}}$$
Tích vô hướng \(\vec{A} \cdot \vec{B}\) là tổng các tích của từng cặp phần tử tương ứng. Độ lớn \(\lVert \vec{A} \rVert\) là căn bậc hai của tổng bình phương các thành phần. Việc chia cho độ lớn giúp chuẩn hóa kết quả, để nó chỉ phụ thuộc vào hướng chứ không phụ thuộc vào độ dài.
Ví dụ minh họa
Giả sử A = [1, 2, 3] và B = [4, 5, 6]. Tích vô hướng là \(1\cdot4 + 2\cdot5 + 3\cdot6 = 4 + 10 + 18 = 32\). Độ lớn của A là \(\sqrt{1+4+9} = \sqrt{14} \approx 3{,}7417\), còn của B là \(\sqrt{16+25+36} = \sqrt{77} \approx 8{,}7750\). Vậy $$\cos\theta = \frac{32}{3{,}7417 \times 8{,}7750} \approx \frac{32}{32{,}8329} \approx 0{,}9746,$$ tương ứng với góc khoảng 12,93°.
Câu hỏi thường gặp
Kết quả có thể âm không? Có. Nếu hai vector hướng gần như ngược nhau thì độ tương đồng cosine sẽ âm, và đạt −1 khi chúng ngược chiều hoàn toàn.
Nếu hai vector có số chiều khác nhau thì sao? Công cụ chỉ so sánh phần các chiều trùng nhau (theo độ dài của vector ngắn hơn). Để có kết quả có ý nghĩa, bạn nên dùng các vector cùng số chiều.
Độ tương đồng cosine khác gì so với khoảng cách Euclid? Độ tương đồng cosine bỏ qua độ lớn và chỉ quan tâm đến hướng, nên hai vector cùng hướng vẫn được coi là hoàn toàn giống nhau dù một vector dài hơn nhiều.