K-có nghĩa là tương tự cosine so với khoảng cách Euclide (LSA)


10

Tôi đang sử dụng phân tích ngữ nghĩa tiềm ẩn để thể hiện một kho tài liệu trong không gian chiều thấp hơn. Tôi muốn phân cụm các tài liệu này thành hai nhóm bằng cách sử dụng phương tiện k.

Cách đây vài năm, tôi đã làm điều này bằng cách sử dụng gensim của Python và viết thuật toán k-mean của riêng tôi. Tôi đã xác định các trọng tâm cụm bằng cách sử dụng khoảng cách Euclide, nhưng sau đó phân cụm từng tài liệu dựa trên độ tương tự cosine với trọng tâm. Nó dường như làm việc khá tốt.

Bây giờ tôi đang cố gắng làm điều này trên một kho tài liệu lớn hơn nhiều. K-nghĩa là không hội tụ và tôi tự hỏi liệu đó có phải là một lỗi trong mã của tôi không. Tôi đọc gần đây rằng bạn không nên phân cụm bằng cách sử dụng độ tương tự cosine, bởi vì k-mean chỉ hoạt động trên khoảng cách Euclide. Mặc dù, như tôi đã đề cập, nó có vẻ hoạt động tốt trong trường hợp thử nghiệm nhỏ hơn của tôi.

Bây giờ tôi bắt gặp điều này trên trang Wikipedia LSA :

Các tài liệu và biểu diễn vectơ có thể được phân cụm bằng các thuật toán phân cụm truyền thống như k-mean sử dụng các biện pháp tương tự như cosine.

Vậy đó là cái gì? Tôi có thể sử dụng tương tự cosine hay không?


Chủ đề đó thực sự kéo dài lâu trên trang web này. Chỉ cần câu hỏi gần đây: stats.stackexchange.com/q/120085 / 3277 (xem thêm các liên kết ở đó). Điều cực kỳ thú vị là cách bạn triển khai k-nghĩa là xử lý các cosin. Nếu bạn mô tả thuật toán của bạn trong câu hỏi của bạn, nó sẽ giúp mọi người trả lời nó.
ttnphns

@ttnphns Tôi thực sự đã tạo ra các cụm sao bằng cách sử dụng khoảng cách Euclide (giá trị trung bình của mỗi thứ nguyên). Tuy nhiên, sau đó tôi đã gán mỗi tài liệu cho một cụm dựa trên độ tương tự cosin, thay vì khoảng cách Euclide.
Jeff

I then assigned each document to a cluster based on cosine similarity- Cosine giữa một doc và một centroid? Và sau khi tất cả các tài liệu được chỉ định, bạn cập nhật centroid theo cách thông thường (Euclide), bởi vì tọa độ của các tài liệu trong không gian đã được biết. Là vậy sao?
ttnphns

1
h

1
Điều tôi bắt đầu nghĩ là bạn có thể đang tìm kiếm phương tiện k được thực hiện trên một quả cầu, không phải trong không gian. Góc k-nghĩa, có thể nói như vậy. Tôi cho rằng nó có thể, nhưng tôi không bao giờ đọc hoặc sử dụng như vậy.
ttnphns

Câu trả lời:


4

Vâng, bạn có thể sử dụng nó. Vấn đề là, sự tương đồng cosin không phải là một khoảng cách, đó là lý do tại sao nó được gọi là tương tự. Tuy nhiên, nó có thể được chuyển đổi thành một khoảng cách như được giải thích ở đây .

Trong thực tế, bạn chỉ có thể sử dụng bất kỳ khoảng cách. Một nghiên cứu rất hay về các tính chất của các hàm khoảng cách trong không gian chiều cao (giống như thường thấy trong truy xuất thông tin) là Về hành vi đáng ngạc nhiên của các số liệu khoảng cách trong không gian chiều cao . Nó không so sánh Euclide với cosine mặc dù.

Tôi đã bắt gặp nghiên cứu này khi họ cho rằng trong không gian nhiều chiều, cả hai khoảng cách có xu hướng hành xử tương tự nhau.


1
Câu trả lời này có thể là một câu hỏi hay nếu nó mô tả như thế nào Yes, you can use it . (Ý tưởng chuyển đổi cosine thành khoảng cách Euclide có giống với câu trả lời của tôi không?)
ttnphns

Sự hiểu biết của tôi về k-nghĩa là khác nhau. Nó không nhất thiết giới hạn ở khoảng cách Euclide ( stat.uni-muenchen.de/~leisch/ con / Leisch-2006.pdf ). Ngoài ra Xem tham chiếu thứ hai của tôi hoặc gói R này ( cran.r-project.org/web/packages/cclust/cclust.pdf ). Tôi có nghĩa là nó thực sự thích trong trang wikipedia. Một chỉ cần một chức năng khoảng cách. Họ gọi nó là "sự tương tự góc cạnh".
jpmuc

1
Có lẽ (và cảm ơn vì đã chia sẻ bài báo!). Nhưng sau đó, tất cả các "sửa đổi" như vậy của phương tiện k khác với phương tiện k ở chỗ chúng xác định centroid không phải là trung bình số học trong không gian Euclide, không nên được gọi là phương tiện k.
ttnphns

1

Khoảng cách Euclide không phù hợp để so sánh các tài liệu hoặc cụm tài liệu. Khi so sánh tài liệu, một vấn đề chính là chuẩn hóa theo độ dài tài liệu. Sự tương tự Cosine đạt được loại bình thường hóa này, nhưng khoảng cách euclide thì không. Hơn nữa, các tài liệu thường được mô hình hóa dưới dạng phân phối xác suất đa quốc gia (nên được gọi là túi từ). Độ tương tự cosine là một xấp xỉ với phân kỳ JS, là một phương pháp hợp lý về mặt thống kê cho sự tương tự. Một vấn đề quan trọng với tài liệu và cosine là người ta nên áp dụng chuẩn hóa tf-idf thích hợp cho số đếm. Nếu bạn đang sử dụng gensim để lấy đại diện LSA, gensim đã làm điều đó.

Một quan sát hữu ích khác cho trường hợp sử dụng của bạn gồm 2 cụm là bạn có thể có được một khởi tạo không ngẫu nhiên tốt vì LSA chỉ là SVD. Bạn làm theo cách sau:

  • Chỉ lấy thành phần đầu tiên của mỗi tài liệu (giả sử thành phần đầu tiên là vectơ số ít trên cùng).
  • Sắp xếp các giá trị đó bằng cách theo dõi id tài liệu cho từng giá trị.
  • cụm 1 = id tài liệu tương ứng với các giá trị hàng đầu, ví dụ 1000 (hoặc nhiều hơn)
  • cụm 2 = id tài liệu tương ứng với các giá trị dưới cùng, ví dụ 1000 (hoặc nhiều hơn)
  • chỉ cần trung bình các vectơ cho mỗi cụm và chuẩn hóa theo chiều dài vectơ.
  • Bây giờ áp dụng k-nghĩa cho khởi tạo này. Điều này có nghĩa là chỉ cần lặp lại (1) gán tài liệu cho trung tâm gần nhất hiện tại và (2) lấy trung bình và chuẩn hóa các centroid mới sau khi gán lại

1

Có, cập nhật centroid tương tự bởi vector trung bình hoạt động.

Xem m = 1 trường hợp trong Mục 2.2 của bài viết này . w là các trọng số và các trọng số đều là 1 cho các thuật toán k-mean cơ sở.

Bài viết sử dụng các thuộc tính của bất đẳng thức Cauchy-Schwartz để thiết lập điều kiện giảm thiểu hàm chi phí cho giá trị trung bình k.

Cũng nên nhớ rằng sự tương tự cosine không phải là một khoảng cách vectơ. Cosine không quen thuộc là. (Đây phải là một thuật ngữ tìm kiếm tốt.) Do đó khi bạn cập nhật phân vùng, bạn đang tìm kiếm arg maxtrái ngược với arg min.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.