2009-06-28 38 views
18

Tôi chỉ đọc làm thế nào nhóm BellKor’s Pragmatic Chaos là winning the Netflix Challenge trên Wired và tôi rất tò mò về cách loại thuật toán này thường hoạt động. Tôi biết giải pháp của nhóm Bellkor phải là một giải pháp sáng tạo trên thực địa .. nhưng trường này thường hoạt động như thế nào? Nó chỉ là một cơ sở dữ liệu thực sự chi tiết với chuỗi Markov được chạy trên một lần nữa và một lần nữa hoặc những gì?Thuật toán đề xuất tự động thường hoạt động như thế nào?

Trả lời

11

nhưng trường này thường hoạt động như thế nào?

Đó là kỹ thuật Khai phá dữ liệu. Khai thác dữ liệu được sử dụng như một phần của Business Intelligence (Data Warehouse và như vậy) cố gắng tìm các mối quan hệ và thông tin trong một lượng lớn dữ liệu. Đó là một lĩnh vực khoa học máy tính, giao dịch cũng với học máy nói chung, ví dụ: nhận dạng mẫu. Đề xuất tự động được nhận bởi Association Mining. Liên kết với mức hỗ trợ cao được hiển thị dưới dạng đề xuất. Thuật toán k-lân cận gần nhất chỉ là một trong nhiều thuật toán được sử dụng bởi những người học máy/khai thác dữ liệu.

Nếu bạn quan tâm đến lý thuyết cơ bản, tôi khuyên bạn nên Data Mining: Practical Machine Learning Tools and Techniques bởi Ian H. Witten.

Đối với Java, có một gói học máy tuyệt vời, WEKA có thể thực hiện association mining. Ian Witten cũng là một trong những tác giả của WEKA.

11

Hãy xem bài viết trên Wikipedia này: Euclidean Distance.

Ý tưởng cơ bản là bạn sử dụng số liệu khoảng cách (như số liệu Euclide ở trên) để so sánh mọi người hoặc mọi thứ với nhau.

Cuốn sách O'Reilly mới, Programming Collective Intelligence: Building Smart Web 2.0 Applications có một chương tuyệt vời về chủ đề này rất.

+0

Cách tiếp cận khác là khoảng cách manhattan (hoặc hình học Taxicab) (nhanh hơn để tính toán, ít chính xác hơn sau đó Euclide) – adhg

2

Tôi đã tìm thấy this previous article trên Wired, trong đó đề cập ngắn gọn về k-nearest-neighbor algorithm, được sử dụng trong quá khứ bởi Bellkor và Cinematch.

Các quan sát được thực hiện bởi nhà tâm lý học về cách tìm thấy thiên vị cũng thú vị.

5

Hầu hết những người tham gia Cuộc thi Netflix đã sử dụng các biến thể trên Singular Value Decomposition. Thuật toán này hoạt động bằng cách lấy một ma trận lớn và đơn giản hóa nó xuống một ma trận 2x2 gần đúng. Ma trận 2x2 này sau đó có thể được vẽ trên một không gian 2 chiều, nơi các điểm gần nhau chia sẻ mối quan hệ với nhau trong ma trận ban đầu. Vì vậy, trong trường hợp của Netflix, bạn có thể tạo ma trận với các phim là các cột và người dùng là các hàng mà bất kỳ giá trị nào [i, j] là xếp hạng mà người dùng i đã cung cấp cho phim j. Đây là một ma trận rất lớn mà sau đó có thể có một SVD được áp dụng cho nó để tạo ra một ma trận hai chiều phục vụ như là một xấp xỉ của ma trận lớn hơn. Người dùng ở gần nhau khi được vẽ trên máy bay này có cùng xếp hạng tương tự, vì vậy nếu một người dùng không nhìn thấy một bộ phim mà người dùng khác đã thấy gần với máy bay này thì đó có thể là đề xuất cho người dùng mới.

Giải pháp chiến thắng thiết kế biến thể của thuật toán SVD thẳng được gọi là SVD ++ và pha trộn cùng với các trường hợp cạnh khác để thử và tạo thuật toán vượt quá 10% cải tiến cần thiết để nhận giải thưởng.

Các vấn đề liên quan