Điều bạn cần là thuật toán phân cụm, thuật toán này sẽ tự động nhóm những người dùng tương tự lại với nhau. Khó khăn đầu tiên mà bạn đang phải đối mặt là hầu hết các thuật toán phân cụm mong đợi các mục mà chúng nhóm lại được biểu diễn dưới dạng các điểm trong không gian Euclide. Trong trường hợp của bạn, bạn không có tọa độ của các điểm. Thay vào đó, bạn có thể tính giá trị của hàm "giống nhau" giữa các cặp.
Một khả năng tốt ở đây là sử dụng spectral clustering, cần chính xác những gì bạn có: ma trận tương tự. Nhược điểm là bạn vẫn cần phải tính toán chức năng tương thích của bạn cho mỗi cặp điểm, i. e. thuật toán là O (n^2).
Nếu bạn hoàn toàn cần thuật toán nhanh hơn O (n^2), thì bạn có thể thử phương pháp được gọi là dissimilarity spaces. Ý tưởng rất đơn giản. Bạn đảo ngược chức năng tương thích của bạn (e. G. Bằng cách lấy nghịch đảo của nó) để biến nó thành một thước đo không giống nhau hoặc khoảng cách. Sau đó, bạn so sánh mọi mục (người dùng, trong trường hợp của bạn) với một tập hợp các mục nguyên mẫu và xử lý khoảng cách kết quả dưới dạng tọa độ trong không gian. Ví dụ, nếu bạn có 100 nguyên mẫu, thì mỗi người dùng sẽ được biểu diễn bằng một vectơ gồm 100 phần tử, i. e. bởi một điểm trong không gian 100 chiều.Sau đó, bạn có thể sử dụng bất kỳ thuật toán phân cụm chuẩn nào, chẳng hạn như K-means.
Câu hỏi bây giờ là làm thế nào để bạn chọn nguyên mẫu và số lượng bạn cần. Tuy nhiên, nhiều chẩn đoán khác nhau đã được thử, đây là một số dissertation cho rằng việc chọn nguyên mẫu ngẫu nhiên có thể là đủ. Nó cho thấy các thí nghiệm trong đó sử dụng 100 hoặc 200 nguyên mẫu được lựa chọn ngẫu nhiên tạo ra kết quả tốt. Trong trường hợp của bạn nếu bạn có 1000 người dùng và bạn chọn 200 người trong số họ là nguyên mẫu, thì bạn sẽ cần đánh giá chức năng tương thích của mình 200.000 lần, đây là yếu tố cải thiện 2,5 so với mỗi cặp. Tuy nhiên, lợi thế thực sự là đối với 1.000.000 người dùng, 200 nguyên mẫu sẽ vẫn đủ, và bạn sẽ cần phải thực hiện 200.000 so sánh, thay vì 500.000.000.000 một cải tiến của một hệ số 2500. Điều bạn nhận được là thuật toán O (n), tốt hơn O (n^2), mặc dù có một yếu tố không đổi lớn.
chỉ cần sửa lỗi đánh máy trên hàng xóm (hoặc hàng xóm cho US?) ... – VonC
Nếu bạn nghĩ ra điều gì đó tuyệt vời, bạn có thể giành giải Netflix - http://netflixprize.com/. –