8

Tôi đang nghĩ đến việc viết một ứng dụng để phân loại phim trong HTPC dựa trên những gì các thành viên trong gia đình thích.Thuật toán để tìm nội dung mà người dùng muốn dựa trên những người dùng khác thích

Tôi không biết thống kê hoặc AI, nhưng nội dung here trông rất ngon ngọt. Tôi không biết bắt đầu từ đâu.

Dưới đây là những gì tôi muốn đạt được:

  1. Soạn một tập hợp các mẫu từ mỗi người dùng thích, rating thuộc tính mỗi mẫu riêng biệt. Ví dụ, có thể một người dùng thích phim phương Tây rất nhiều, vì vậy thể loại phương Tây sẽ mang trọng lượng hơn một chút cho người dùng đó (và cứ thế cho các thuộc tính khác, như diễn viên, đạo diễn, v.v.).

  2. Người dùng có thể nhận đề xuất dựa trên lượt thích của những người dùng khác. Ví dụ, nếu cả người dùng A và B giống như Spielberg (kết nối giữa người dùng) và người dùng B yêu Batman Begins, nhưng người dùng A ghê tởm Katie Holmes, cân nhắc phim cho người dùng A cho phù hợp (một lần nữa, mỗi thuộc tính riêng biệt, ví dụ, có thể người dùng A không thích phim hành động quá nhiều, do đó, hãy hạ xếp hạng xuống một chút và vì Katie Holmes không phải là ngôi sao chính, không tính đến điều đó nhiều như các thuộc tính khác).

Về cơ bản, so sánh bộ từ người dùng A tương tự như bộ từ người dùng B, và đưa ra một đánh giá cho người dùng A.

Tôi có một ý tưởng thô về làm thế nào để thực hiện điều này, nhưng tôi một số tâm trí tươi sáng đã nghĩ về một giải pháp tốt hơn nhiều rồi, vậy ... bất cứ đề nghị nào?

Thực ra, sau một nghiên cứu nhanh, có vẻ như bộ lọc Bayesian sẽ hoạt động. Nếu vậy, đây có phải là cách tiếp cận tốt hơn không? Nó sẽ đơn giản như chỉ là "bình thường hóa" dữ liệu phim, đào tạo một phân loại cho mỗi người dùng, và sau đó chỉ phân loại mỗi bộ phim?

Nếu đề xuất của bạn bao gồm một số khái niệm nóng chảy não (tôi không có kinh nghiệm về các chủ đề này, đặc biệt trong AI), tôi cũng đánh giá cao nếu bạn đưa vào danh sách một số điều cơ bản để nghiên cứu trước khi đi sâu vào thịt đồ đạc.

Cảm ơn!

+1

Duplicate http://stackoverflow.com/questions/626220/how-do-recommendation-systems-work – cletus

+0

Cảm ơn bạn đã tham khảo. Tôi đang tìm một câu trả lời cụ thể hơn, dựa trên các ví dụ của tôi. Trong khi nó sẽ là thú vị để đọc tất cả tôi có thể về hệ thống khuyến nghị, tôi muốn được hướng vào đúng hướng đầu tiên :) – Ivan

Trả lời

2

Có một vài thuật toán có lợi cho việc này:

ARTMAP: nhóm thông qua xác suất với nhau (điều này không nhanh nhưng điều tốt nhất cho vấn đề của bạn IMO)

ARTMAP giữ một nhóm các thuộc tính phổ biến và xác định khả năng mô phỏng thông qua tỷ lệ phần trăm. ARTMAP

KMeans: Đây seperates ra các vectơ bằng khoảng cách mà họ đến từ nhau KMeans: Wikipedia

PCA: sẽ tách tỷ lệ trung bình của tất cả các giá trị từ các bit varing.Đây là những gì bạn sẽ sử dụng để phát hiện khuôn mặt, và phép trừ nền trong Computer Vision. PCA

+0

Cảm ơn. Khi đọc về ARTMAP, nó có vẻ giống như một ứng cử viên tốt. Vì tôi hiểu mã tốt hơn các bài báo khoa học, tôi đã tìm thấy http://users.visualserver.org/xhudik/art/doc/index.html này và sinh ra luồng ngăn xếp http: // này.com/questions/1609296/artmap-adaptive-resonance-theory-implementatios-basics ... Quốc gia cũng có vẻ thú vị, nhưng mỗi lần một lần :) – Ivan

+0

Cuốn sách này có hướng dẫn giới thiệu thật dễ dàng ... http: // www .amazon.com/AI-Application-Programming-Tim-Jones/dp/1584502789 Tuy nhiên, IRC xác suất Fn có lỗi trong đó. – monksy

4
+0

Có một số công cụ rất thú vị ở đó, cộng với một số khuyến nghị đọc tôi sẽ làm theo. Cảm ơn rất nhiều! – Ivan

2

Thuật toán lân cận gần nhất của K có thể nằm ngay trên hẻm của bạn.

+0

Điều đó có vẻ đơn giản, đủ để tôi thử và thực hiện bản thân mình. Một tài nguyên học tập tốt, cảm ơn! – Ivan

4

Điều này tương tự như this question nơi OP muốn xây dựng hệ thống đề xuất. Tóm lại, chúng tôi được cung cấp một tập hợp dữ liệu đào tạo bao gồm xếp hạng của người dùng cho phim (ví dụ: xếp hạng 1-5 sao) và tập hợp các thuộc tính cho mỗi phim (năm, thể loại, diễn viên, ..). Chúng tôi muốn xây dựng một recommender để nó sẽ xuất ra cho các bộ phim không nhìn thấy một đánh giá có thể. Vì vậy, các dữ liệu INPT trông giống như:

user movie year genre ... | rating 
--------------------------------------------- 
    1 1  2006 action   | 5 
    3 2  2008 drama   | 3.5 
    ... 

và cho một bộ phim X Unrated:

10 20  2009 drama ? 

chúng ta muốn dự đoán một đánh giá. Làm điều này cho tất cả các bộ phim không nhìn thấy sau đó phân loại theo đánh giá phim dự đoán và xuất 10 đầu trang cung cấp cho bạn một hệ thống đề xuất.

Cách tiếp cận đơn giản nhất là sử dụng thuật toán k-nearest neighbor. Trong số các phim được xếp hạng, tìm kiếm phim "gần nhất" với phim X và kết hợp xếp hạng của họ để đưa ra dự đoán. Cách tiếp cận này có lợi thế là rất đơn giản để dễ dàng thực hiện từ đầu.

Các phương pháp tiếp cận tinh vi khác tồn tại. Ví dụ: bạn có thể tạo một decision tree, phù hợp với một bộ quy tắc về dữ liệu đào tạo. Bạn cũng có thể sử dụng Bayesian networks, artificial neural networks, support vector machines, trong số nhiều mục đích khác ... Việc thực hiện từng điều này sẽ không dễ dàng đối với một người không có nền tảng phù hợp. Tuy nhiên, tôi hy vọng bạn sẽ sử dụng một công cụ/thư viện bên ngoài. Bây giờ bạn dường như đã quen thuộc với mạng Bayesian, do đó, một bayes ngây thơ đơn giản net, có thể trong thực tế là rất mạnh mẽ. Một lợi thế là nó cho phép dự đoán theo dữ liệu bị thiếu.

Ý tưởng chính sẽ hơi giống nhau; lấy dữ liệu đầu vào bạn có, đào tạo một mô hình, sau đó sử dụng nó để dự đoán lớp các cá thể mới.

Nếu bạn muốn chơi với các thuật toán khác nhau trong gói trực quan đơn giản không yêu cầu lập trình, tôi khuyên bạn hãy xem Weka (lựa chọn thứ nhất), Orange hoặc RapidMiner. Phần khó nhất là chuẩn bị tập dữ liệu theo định dạng được yêu cầu. Phần còn lại là dễ dàng như việc chọn thuật toán nào và áp dụng nó (tất cả chỉ trong vài cú nhấp chuột!)

Tôi đoán ai đó không tìm kiếm chi tiết quá nhiều, tôi khuyên bạn nên sử dụng phương pháp lân cận gần nhất và dễ thực hiện .. Vẫn còn tùy chọn sử dụng Weka (hoặc một trong các công cụ khác) đáng để xem xét.

+0

Câu trả lời hay, cảm ơn. Tôi sẽ đi sâu vào Weka vào cuối tuần này và xem những gì tôi nghĩ ra. – Ivan

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