16. Hệ thống Recommender¶
** Shuai Zhang** (Amazon), Aston Zhang (Amazon), và Yi Tay (Google)
Các hệ thống giới thiệu được sử dụng rộng rãi trong ngành công nghiệp và có mặt khắp nơi trong cuộc sống hàng ngày của chúng ta. Các hệ thống này được sử dụng trong một số lĩnh vực như các trang mua sắm trực tuyến (ví dụ: amazon.com), trang web dịch vụ âm nhạc/phim (ví dụ: Netflix và Spotify), cửa hàng ứng dụng di động (ví dụ: cửa hàng ứng dụng IOS và google play), quảng cáo trực tuyến, chỉ để đặt tên một vài.
Mục tiêu chính của các hệ thống giới thiệu là giúp người dùng khám phá các mặt hàng có liên quan như phim để xem, nhắn tin để đọc hoặc sản phẩm để mua, để tạo ra trải nghiệm người dùng thú vị. Hơn nữa, các hệ thống giới thiệu là một trong những hệ thống máy học mạnh nhất mà các nhà bán lẻ trực tuyến thực hiện để thúc đẩy doanh thu gia tăng. Hệ thống giới thiệu là thay thế các công cụ tìm kiếm bằng cách giảm những nỗ lực trong các tìm kiếm chủ động và người dùng đáng ngạc nhiên với các ưu đãi mà họ không bao giờ tìm kiếm. Nhiều công ty quản lý để định vị mình trước các đối thủ cạnh tranh của họ với sự trợ giúp của các hệ thống giới thiệu hiệu quả hơn. Như vậy, các hệ thống giới thiệu là trọng tâm của không chỉ cuộc sống hàng ngày của chúng ta mà còn rất không thể thiếu trong một số ngành công nghiệp.
Trong chương này, chúng tôi sẽ đề cập đến các nguyên tắc cơ bản và tiến bộ của các hệ thống giới thiệu, cùng với việc khám phá một số kỹ thuật cơ bản phổ biến để xây dựng các hệ thống giới thiệu với các nguồn dữ liệu khác nhau có sẵn và triển khai chúng. Cụ thể, bạn sẽ tìm hiểu cách dự đoán xếp hạng mà người dùng có thể cung cấp cho một mục tiềm năng, cách tạo danh sách đề xuất các mục và cách dự đoán tỷ lệ nhấp từ các tính năng phong phú. Những nhiệm vụ này là phổ biến trong các ứng dụng trong thế giới thực. Bằng cách nghiên cứu chương này, bạn sẽ nhận được kinh nghiệm thực hành liên quan đến việc giải quyết các vấn đề đề xuất thế giới thực với không chỉ các phương pháp cổ điển mà còn các mô hình dựa trên học tập sâu tiên tiến hơn.
- 16.1. Tổng quan về hệ thống Recommender
- 16.2. Bộ dữ liệu MovieLens
- 16.3. Matrận Factorization
- 16.4. AutoRec: Dự đoán xếp hạng với Autoencoders
- 16.5. Xếp hạng được cá nhân hóa cho hệ thống giới thiệu
- 16.6. Lọc hợp tác thần kinh để xếp hạng cá nhân hóa
- 16.6.1. Mô hình NeuMF
- 16.6.2. Mô hình triển khai Mã sau đây thực hiện mô hình NeuMF. Nó bao gồm một mô hình factorization ma trận tổng quát và một MLP với các vectơ nhúng người dùng và mục khác nhau. Cấu trúc của MLP được điều khiển với tham số
nums_hiddens
. ReLU được sử dụng làm chức năng kích hoạt mặc định. - 16.6.3. Bộ dữ liệu tùy chỉnh với lấy mẫu tiêu cực
- 16.6.4. Người đánh giá Trong phần này, chúng tôi áp dụng việc tách theo chiến lược thời gian để xây dựng các bộ đào tạo và kiểm tra. Hai biện pháp đánh giá bao gồm tỷ lệ hit ở mức cắt giảm \(\ell\) (\(\ text {Hit} @\ ell\)) and area under the ROC curve (AUC) are used to assess the model effectiveness. Hit rate at given position \(\ ell\) cho mỗi người dùng chỉ ra rằng liệu mục được đề xuất có nằm trong danh sách xếp hạng \(\ell\) hàng đầu hay không. Định nghĩa chính thức như sau:
- 16.6.5. Đào tạo và đánh giá mô hình
- 16.6.6. Tóm tắt
- 16.6.7. Bài tập
- 16.7. Hệ thống khuyến cáo Sequence-Aware
- 16.7.1. Model Architectures
- 16.7.2. Model Implementation Code sau đây thực hiện mô hình Caser. Nó bao gồm một lớp phức tạp dọc, một lớp ghép ngang và một lớp kết nối đầy đủ.
- 16.7.3. Sequential Dataset with Negative Sampling Để xử lý dữ liệu tương tác tuần tự, chúng ta cần thực hiện lại class Dataset. Đoạn code sau đây tạo ra một lớp tập dữ liệu mới có tên là
SeqDataset
. Trong mỗi mẫu, nó xuất ra danh tính người dùng, \(L\) trước đó của anh ấy đã tương tác các mục như một chuỗi và mục tiếp theo mà anh ta tương tác như mục tiêu. Hình dưới đây cho thấy quá trình tải dữ liệu cho một người dùng. Giả sử rằng người dùng này thích 9 bộ phim, chúng tôi sắp xếp chín bộ phim này theo thứ tự thời gian. Bộ phim mới nhất bị bỏ lại như là mục thử nghiệm. Đối với tám bộ phim còn lại, chúng ta có thể nhận được ba mẫu đào tạo, với mỗi mẫu chứa một chuỗi năm (\(L=5\)) phim và mục tiếp theo của nó làm mục tiêu. Các mẫu âm cũng được bao gồm trong tập dữ liệu tùy chỉnh. - 16.7.4. Tải tập dữ liệu MovieLens 100K
- 16.7.5. Đào tạo mô hình ngay bây giờ, chúng ta hãy đào tạo mô hình. Chúng tôi sử dụng cài đặt tương tự như NeuMF, bao gồm tốc độ học tập, trình tối ưu hóa và \(k\), trong phần cuối để kết quả có thể so sánh được.
- 16.7.6. Tóm tắt * Suy ra lợi ích ngắn hạn và dài hạn của người dùng có thể đưa ra dự đoán về mục tiếp theo mà anh ta ưa thích hiệu quả hơn* Mạng thần kinh phức tạp có thể được sử dụng để thu hút lợi ích ngắn hạn của người dùng từ các tương tác tuần tự.
- 16.7.7. Bài tập
- 16.8. Hệ thống giới thiệu giàu tính năng
- 16.8.1. Một bộ dữ liệu quảng cáo trực tuyến
- 16.8.2. Gói dữ liệu
- 16.8.3. Tóm tắt * Tỷ lệ nhấp chuột là một số liệu quan trọng được sử dụng để đo lường hiệu quả của hệ thống quảng cáo và hệ thống giới thiệu. Mục tiêu là dự đoán xem quảng cáo/mục sẽ được nhấp hay không dựa trên các tính năng đã cho.
- 16.8.4. Bài tập
- 16.9. Máy Factorization
- 16.9.1. 2-Way Factorization Máy móc
- 16.9.2. Một tiêu chí tối ưu hóa hiệu quả
- 16.9.3. Mô hình triển khai Mã sau đây thực hiện các máy tính factorization. Rõ ràng là thấy rằng FM bao gồm một khối hồi quy tuyến tính và một khối tương tác tính năng hiệu quả. Chúng tôi áp dụng một hàm sigmoid trên điểm số cuối cùng vì chúng tôi coi dự đoán CTR như một nhiệm vụ phân loại.
- 16.9.4. Tải tập dữ liệu quảng cáo Chúng tôi sử dụng trình bao bọc dữ liệu CTR từ phần cuối để tải tập dữ liệu quảng cáo trực tuyến.
- 16.9.5. Đào tạo mô hình Sau đó, chúng tôi đào tạo mô hình. Tỷ lệ học tập được đặt thành 0,02 và kích thước nhúng được đặt thành 20 theo mặc định. Trình tối ưu hóa
Adam
và tổn thấtSigmoidBinaryCrossEntropyLoss
được sử dụng để đào tạo mô hình. - 16.9.6. Tóm tắt
- 16.9.7. Bài tập
- 16.10. Sâu Factorization Máy móc
- 16.10.1. Model Architectures
- 16.10.2. Implemenation của DeepFM Việc thực hiện DeepFM tương tự như FM. Chúng tôi giữ phần FM không thay đổi và sử dụng khối MLP với
relu
làm chức năng kích hoạt. Dropout cũng được sử dụng để thường xuyên hóa mô hình. Số lượng tế bào thần kinh của MLP có thể được điều chỉnh với siêu tham sốmlp_dims
. - 16.10.3. Đào tạo và Đánh giá mô hình Quá trình tải dữ liệu giống như của FM. Chúng tôi đặt thành phần MLP của DeepFM thành một mạng dày đặc ba lớp với cấu trúc kim tự tháp (30-20-10). Tất cả các siêu tham số khác vẫn giống như FM.
- 16.10.4. Tóm tắt
- 16.10.5. Bài tập