Cosine similarity là gì
Show
注册 无法处理你的请求此请求遇到了问题。我们会尽快将它修复。
Meta © 2022 Thuật toán thần thánh!Dành một chút thời gian cho anh em nào đam mê #DeepLearning hay #DataMining nhỉ. Cosine Similarity dùng để tìm độ tương đồng giữa hai vector và thật may mắn là chúng ta đều có thể quy đổi mọi thứ thành vector N chiều (ôi đau đầu quá). Vì thế chúng ta có thể sử dụng Cosine Similarity để loại bỏ các dữ liệu giống nhau cho giai đoạn tiền xử lý dữ liệu trước khi #DeepLearning, hoặc tìm ra các dữ liệu giống nhau để làm gì đấy với #DataMining (ví dụ để tìm ra các khách hàng có hành vi giống nhau chẳng hạn) Cosine Similarity mặc dù rất đơn giản nhưng lại có vai trò rất quan trọng trong nhiều lĩnh vực. Mình đã từng làm #elasticsearch plugin cho 1 khác hàng Nhật Bản, nó thực sự đáng để lưu tâm. Code tham khảo nhé mọi người: Cosine Similarity
Mar 30, 2021 Như mọi người đã biết, Euclidean distance và cosine similarity được sử dụng rất nhiều trong các bài toán Machine Learning. Chúng được sự dụng ở cả trong các bài toán xử lý ảnh và xử lý ngôn ngữ tự nhiên để tính toán sự tương đồng giữa các đại lượng nào đó trong không gian vector. Trong bài viết này, chúng ta sẽ đi tìm hiểu về Euclidean distance, cosine similarity và mối liên hệ của chúng. Euclidean distanceEuclidean distance giữa 2 điểm chính là khoảng cách của chúng trong không gian vector. Nó được tính dựa trên định lý Py-ta-go (Pythagorean), vậy nên đôi khi chúng còn được gọi là Pythagorean distance. Công thức tính Euclidean distance giữa 2 điểm $x$ và $x'$: Ví dụ:
Cosine SimilarityCosine similarity sẽ so sánh sự tương đồng giữa 2 vector khác 0. Nó được tính toán bằng cách tính cosine của góc được tạo bởi 2 vector đó. Công thức tính cosine similarity giữa 2 vector x và x': Ví dụ:
Mối quan hệ giữa Euclidean distance và cosine similarityTrước khi đi vào mối quan hệ giữa Euclidean distance và cosine similarity, chúng ta cần tìm hiểu về L2-Norm: Sau khi normalize thì ta sẽ có tổng của các phần tử trong vector đó bằng 1. Lúc này ta sẽ có: Bây giờ, ta sẽ cùng quay trở lại với Euclidean distance: Và cosine similarity: Trường hợp x và x' đã normalize thì ta sẽ có: Thay vào phương trình cosine similarity: Thay vào phương trình Euclidean distance: Vậy nên, ta có kết quả: Nhìn vào kết quả đã chứng minh ở trên, mình nghĩ răng chỉ có khoảng 30% người đọc có thể hiểu được nó. Nhưng đơn giản đây chỉ là công thức mà ta có thể biến đổi giữa Euclidean distance và cosine similarity. Để đơn giản hơn, hãy nhìn vào hình vẽ bên dưới nhé: Nhìn vào hình vẽ ta có thể thấy được, các điểm dữ liệu sau khi được normalize theo L2 thì sẽ tạo thành đường tròn có bán kính R = 1. Lúc này 2 điểm dữ liệu bất kỳ cùng với góc tọa độ sẽ tạo thành 1 tam giác cân với cạnh bên có độ dài bằng R. Do đó khi có Euclidean distance thì có thể biến đổi chúng sang cosine similarity và ngược lại. Bây giờ, chắc hẳn một số bạn cũng đang thắc mắc chúng ta cần phải chuyển đổi giữa Euclidean distance và cosine similarity để làm gì? Trong một vài trường hợp, các thuật toán sẽ được tính toán dựa trên Euclidean distance, nhưng đại lượng mà ta cần tính lại là cosine similarity, thì ta có thể chuyển đổi chúng dựa trên công thức mà ta đã chứng mình được. Hoặc trong một vài trường hợp, để tối ưu tốc độ tính toán , khi chúng ta cần tính toán cả 2 đại lượng thì ta có thể tính 1 trong 2 đại lượng và sử dụng công thức để chuyển đổi về đại lượng còn lại, nhờ vậy mà có thể tối ưu được tốc độ tính toán. Vậy là mình hoàn thành và xin phép được kết thúc bài viết tại đây. Mọi người ai có thắc mắc gì để lại bình luận bên dưới cho mình nhé. Cảm ơn mọi người! Tài liệu tham khảo: Euclidean Distance vs Cosine Similarity | Baeldung on Computer Science Study two important measures of distance between points in vector spaces: the Euclidean distance and the cosine similarity. Is cosine similarity identical to l2-normalized euclidean distance? Identical meaning, that it will produce identical results for a similarity ranking between a vector u and a set of vectors V. I have a vector space model which has distance measure (euclidean dis... Cross ValidatedArneSubscribe to our newsletterGet the latest posts delivered right to your inbox.
Now check your inbox and click the link to confirm your subscription. Please enter a valid email address Oops! There was an error sending the email, please try later. Phong ĐàoIt's never too late to start again! |