Có những phương pháp thống kê nào để giới thiệu một bộ phim như trên Netflix?


13

Tôi đang tìm cách triển khai một mô hình động để giới thiệu phim cho người dùng. Khuyến nghị nên được cập nhật mỗi khi người dùng xem phim hoặc đánh giá nó. Để đơn giản, tôi nghĩ đến việc tính đến hai yếu tố:

  • xếp hạng quá khứ của các bộ phim khác của người dùng
  • thời gian mà người dùng xem một số phim trong quá khứ

Làm thế nào một người sẽ thiết lập một mô hình như vậy, và tài liệu học thuật khuyên gì?

Tôi là người mới trong lĩnh vực này và tôi đoán rằng một mô hình hồi quy tuyến tính có thể mang lại một kết quả tốt, không phải ưa thích với các phương pháp phức tạp hơn để tránh áp đặt sự không chắc chắn không cần thiết trong các ước tính tham số. Nhưng có lẽ đã có những phương pháp đã được thiết lập thường được sử dụng trong thực tế?


3
Tôi không nghĩ rằng điều này là quá rộng để có thể trả lời. Ví dụ, nó có 2 câu trả lời nâng cao.
gung - Phục hồi Monica

2
Hãy thử Bộ dữ liệu khai thác lớn của coursera và cuốn sách miễn phí của nó!
Felipe Gerard

2
Bạn có thể muốn tìm kiếm ma trận và / hoặc hệ số tenxơ.
Marc Claesen

1
@ usεr11852 Câu trả lời của tôi rộng hơn câu hỏi.
Shadowtalker

1
@ usεr11852, tiêu đề câu hỏi, "Có những phương pháp thống kê nào ...?" Câu cuối cùng hỏi liệu có phương pháp nào khác ngoài hồi quy không. Tôi nghĩ rằng một số câu trả lời dưới đây cung cấp loại thông tin này.
gung - Phục hồi Monica

Câu trả lời:


14

Đây thực sự là một vấn đề tương đối nổi tiếng trong lĩnh vực học máy. Trong ~ 2006, Netflix đã cung cấp 1 triệu đô la cho thuật toán cung cấp sự cải thiện hợp lý nhất cho hệ thống đề xuất của họ. Lý thuyết về giải pháp chiến thắng được thảo luận ngắn gọn trong sách giáo khoa Caltech này về học máy giới thiệu.

Về cơ bản, một phương pháp học tập được sử dụng. Cụ thể, một loại pha trộn hoặc xếp chồng đã được sử dụng. Điều này là không cần thiết, nhưng loại trực quan. Để hiểu được trực giác của việc sử dụng các cách tiếp cận thống kê khác nhau một cách hài hòa, hãy xem xét các lý do khác nhau mà những người khác nhau thích cùng một bộ phim: tức là Joe có thể thích Topgun vì anh ấy thích phim hành động thập niên 80, trong khi Jane thích Topgun vì cô ấy thích phim có nhạc phim Kenny Loggins. Vì vậy, việc cả hai khán giả xem (và đánh giá bộ phim rất cao) không nhất thiết có nghĩa là họ sẽ thích những bộ phim khác có xác suất cao. Thuật toán dự đoán lý tưởng sẽ có thể đáp ứng những khác biệt này, ít nhất là trong một số khả năng.

Điều này có thể làm cho giải pháp nghe có vẻ khá đơn giản, nhưng việc cân bằng các thuật toán cạnh tranh và ưu tiên dự đoán tốt nhất cho từng trường hợp chắc chắn không đơn giản. Việc Netflix cung cấp một khoản tiền thưởng lớn như vậy sẽ khiến mức độ thách thức trở nên khá rõ ràng.

Nếu bạn chỉ mới bắt đầu học máy, kiểm tra các tài nguyên trên có thể hữu ích tùy thuộc vào mức độ quan tâm và nền tảng toán học của bạn. Vì vậy, hồi quy có thể sẽ hoạt động tốt đến tốt, nhưng hiệu suất tốt hơn đáng kể là có thể.


2
+1 cho giải thưởng Netflix. Như bạn đã chỉ ra, giải thưởng đó là một chỉ số tốt cho thấy thử thách này lớn đến mức nào.
Cort Ammon - Phục hồi Monica

11

Một nửa thách thức trong những vấn đề này là biết những gì cần tìm kiếm.

Bạn có thể đã thêm thẻ mà không nhận ra, nhưng thực tế bạn đang tìm kiếm thông tin về các hệ thống đề xuất . Bạn có thể muốn bắt đầu với lọc cộng tác , hoặc tốt hơn nhưng các Giới thiệu về Recommender Hệ thống Sổ tay của Ricci, Rokach, và Shapira trích dẫn trên trang đó.


Tôi thực sự đã nhìn sâu hơn vào thẻ và đã bắt gặp hầu hết các ví dụ về lọc cộng tác. Vấn đề mà tôi có với phương pháp đó là nó phụ thuộc vào đầu vào của người dùng khác, nếu tôi hiểu khái niệm này. Tôi đang tìm kiếm các phương thức trong một tình huống của một người dùng, không có dữ liệu nào khác hoặc tùy chọn dữ liệu khác. Sẽ có một cái nhìn vào tài liệu tham khảo khác của bạn.
JohnAndrews

1
@JohnAndrews: Tôi nghĩ rằng ssdecontrol cho bạn lời khuyên phù hợp nhất. Bạn cần xem xét tài liệu hệ thống đề xuất. Có nhiều kỹ thuật liên quan, ví dụ. NNMF , Funk SVD , nhiều biến thể khác nhau của các phân loại lân cận gần nhất , v.v. để đặt tên cho một số biến thể rõ ràng. Cuối cùng, bạn muốn sử dụng tính năng lọc cộng tác nhưng bạn không thể "lặn" mà không có bất kỳ nền tảng nào.
usεr11852 nói Phục hồi Monic

@JohnAndrews CrossValidated thường là một nơi tồi tệ để bắt đầu tìm hiểu về một chủ đề, đặc biệt nếu bạn chỉ tìm kiếm theo thẻ. Thay vào đó, hãy nhìn vào các tài liệu tham khảo mà tôi liên kết? Các bài viết thống kê Wikipedia không phải lúc nào cũng đáng tin cậy, nhưng đây là những bài viết khá hay và trích dẫn nhiều tài liệu tham khảo.
Shadowtalker

6

Bạn nên xem khóa học của Andrew Ng trên Coursera: https://www.coursera.org/learn/machine-learning Nó có một bài học về xây dựng hệ thống đề xuất, dường như là những gì bạn đang tìm kiếm. Về cơ bản, đây là một hình thức hồi quy tuyến tính, học các thuộc tính tổng hợp cho phim từ những người đánh giá phim và sử dụng điều đó để dự đoán các khuyến nghị cho những người không đánh giá / xem phim.


3
Chào mừng đến với trang web của chúng tôi! Cảm ơn vì đã bao gồm một số thông tin tóm tắt nội dung của liên kết, thay vì chỉ cung cấp một liên kết "trần" - chúng tôi đánh giá cao nó.
Cá bạc

4

Trong Thử thách Netflix (tháng 10 năm 2006 - tháng 9 năm 2009), một nhóm nhạc rất lớn (107 mô hình con riêng biệt) cuối cùng đã giành được giải thưởng trị giá 1 triệu đô la, nhưng cần lưu ý rằng các thuật toán đơn giản (không bị xáo trộn) đầu tiên để đánh bại Netflix Cinematch điểm chuẩn được dựa trên một SVD tổng quát (ma trận thưa thớt). Dấu mốc đầu tiên của việc đánh bại Cinematch đã đạt được chỉ 6 ngày sau khi cuộc thi bắt đầu bởi một đội có tên WXYZConsulting.

SVD (Phân tách giá trị số đơn) là thuật toán nhân tố ma trận trong đó bạn bắt đầu với [user, movie]ma trận 2d với xếp hạng (1 đến 5 sao) ở mỗi [u, m]vị trí (*) và chia nó thành 3 ma trận trong đó ma trận giữa là ma trận vuông tương tác tiềm ẩn giữa người dùng và phim ảnh.

Bạn có thể làm cho thứ hạng ma trận vuông nhỏ hơn hoặc lớn hơn để bao gồm nhiều hơn hoặc ít hơn các tương tác yếu tố tiềm ẩn tương ứng.

Có một số phần mềm miễn phí triển khai SVD thưa thớt nhanh / hiệu quả. Ví dụ như redsvd, hoặc vowpal-wợi vì vậy trước khi bạn tự viết, bạn có thể muốn thử chúng.

(*) Hầu hết các mục này đều bằng 0, vì hầu hết người dùng chưa xếp hạng hầu hết các phim. tức là ma trận rất thưa thớt.

Người giới thiệu:


Netflix đã sử dụng cái gì trước đây?
jona

2
Một thuật toán gọi là "Cinematch" không công khai nhưng đã được mô tả là "sự kết hợp tuyến tính của các yếu tố khác nhau được tinh chỉnh qua nhiều năm", ví dụ: đánh giá trung bình toàn cầu (G) + người dùng trung bình có trọng số [u] xếp hạng + phim trung bình có trọng số [m] đánh giá, ... vv
arielf

Cảm ơn câu trả lời công phu. Sẽ đào sâu vào nó. Đối với các kết hợp tuyến tính, không phải là một vấn đề lớn của tham số hóa quá mức đó? Đó sẽ là cách tiếp cận ưa thích của tôi. Nhưng âm thanh SVD đầy hứa hẹn.
JohnAndrews

Không thành vấn đề nếu bạn chỉ thêm các yếu tố cải thiện lỗi tổng quát hóa . Rõ ràng, bạn cần kiểm tra mọi bổ sung như vậy trên dữ liệu chưa xem để có được sự tự tin cần thiết.
thân
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.