Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 83 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
83
Dung lượng
2,17 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: PHÁT TRIỂN VÀ ĐÁNH GIÁ CÁC MƠ HÌNH HỌC MÁY TRONG HỆ THỐNG GỢI Ý Sinh viên thực hiện: HOÀNG ANH Lớp ĐT10 – K64 Giảng viên hướng dẫn: TS DƯƠNG TẤN NGHĨA Hà Nội, 8-2023 ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: PHÁT TRIỂN VÀ ĐÁNH GIÁ CÁC MƠ HÌNH HỌC MÁY TRONG HỆ THỐNG GỢI Ý Sinh viên thực hiện: HOÀNG ANH Lớp ĐT10 – K64 Giảng viên hướng dẫn: TS DƯƠNG TẤN NGHĨA Cán phản biện: Hà Nội, 8-2023 ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP (Dùng cho cán phản biện) Giảng viên đánh giá: Họ tên sinh viên: MSSV: Tên đồ án: Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có kết hợp lý thuyết thực hành (20) Nêu rõ tính cấp thiết quan trọng đề tài, vấn đề giả thuyết (bao gồm mục đích tính phù hợp) phạm vi ứng dụng đồ án Cập nhật kết nghiên cứu gần (trong nước/quốc tế) Nêu rõ chi tiết phương pháp nghiên cứu/giải vấn đề Có kết mơ phỏng/thưc nghiệm trình bày rõ ràng kết đạt Có khả phân tích đánh giá kết (15) Kế hoạch làm việc rõ ràng bao gồm mục tiêu phương pháp thực dựa kết nghiên cứu lý thuyết cách có hệ thống Kết trình bày cách logic dễ hiểu, tất kết phân tích đánh giá thỏa đáng Trong phần kết luận, tác giả rõ khác biệt (nếu có) kết đạt mục tiêu ban đầu đề đồng thời cung cấp lập luận để đề xuất hướng giải thực tương lai Kỹ viết đồ án (10) Đồ án trình bày mẫu quy định với cấu trúc chương logic đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, đánh số thứ tự giải thích hay đề cập đến đồ án, có lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương kết luận chương, có liệt kê tài liệu tham khảo có trích dẫn quy định Kỹ viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic có sở, từ vựng sử dụng phù hợp v.v.) Thành tựu nghiên cứu khoa học (5) (chọn trường hợp) Có báo khoa học đăng chấp nhận đăng/đạt giải SVNC khoa 10a học giải cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước) từ giải trở lên/ Có đăng ký phát minh sáng chế Được báo cáo hội đồng cấp Viện hội nghị sinh viên nghiên cứu 10b khoa học không đạt giải từ giải trở lên/Đạt giải khuyến khích kỳ thi quốc gia quốc tế khác chuyên ngành TI contest 10c Khơng có thành tích nghiên cứu khoa học Điểm tổng Điểm tổng quy đổi thang 10 1 2 3 4 5 5 5 5 /50 Nhận xét khác cán phản biện Ngày: … / … / 20… Người nhận xét (Ký ghi rõ họ tên) LỜI NÓI ĐẦU Sau khóa luận tốt nghiệp Hồng Anh – 20192682, lớp Điện tử 10 – K64 Với đề tài “Phát triển đánh giá mơ hình học máy hệ thống gợi ý” với mục đích nghiên cứu, tìm hiểu, phát triển, đánh giá mơ hình toán “Recommendation System” – RS Em xin chân thành cảm ơn thầy cô giáo trường Điện - Điện Tử Viện Điện Tử - Viễn Thông truyền thụ em kiến thức, giúp em có sở lý thuyết vững vàng tạo nhiều điều kiện giúp em suốt trình học tập Và đặc biệt em xin gửi lời cảm ơn chân thành đến TS Dương Tấn Nghĩa trường Điện - Điện tử người trực tiếp hướng dẫn em suốt q trình làm khố luận Do thời gian làm khóa luận hạn chế, khả thân cịn nhiều thiếu sót Kính mong thầy lượng thứ góp ý để em hồn thành tốt khóa luận tốt nghiệp LỜI CAM ĐOAN Tơi Hoàng Anh, mã số sinh viên 20192682, sinh viên lớp Điện tử 10, khóa 64 Người hướng dẫn TS Dương Tấn Nghĩa Tơi xin cam đoan tồn nội dung trình bày đồ án Phát triển đánh giá mơ hình học máy hệ thống gợi ý kết trình tìm hiểu nghiên cứu Các liệu nêu đồ án hoàn toàn trung thực, phản ánh kết đo đạc thực tế Mọi thông tin trích dẫn tuân thủ quy định sở hữu trí tuệ; tài liệu tham khảo liệt kê rõ ràng Tơi xin chịu hồn tồn trách nhiệm với nội dung viết đồ án Hà nội, ngày 01 tháng 08 năm 2023 Người cam đoan Hoàng Anh MỤC LỤC DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT ii DANH MỤC HÌNH VẼ iv DANH MỤC BẢNG BIỂU v CHƯƠNG TỔNG QUAN VỀ HỆ THỐNG GỢI Ý 1.1 Hệ thống gợi ý 1.1.1 Các khái niệm chung 1.1.2 Xây dựng hệ thống gợi ý 1.1.3 Khó khăn việc xây dựng hệ thống gợi ý 1.1.4 Hai dạng toán chủ yếu RS 1.2 Các kỹ thuật RS 1.2.1 Kỹ thuật lọc dựa nội dung (Content-based Filtering) 1.2.2 Kỹ thuật lọc cộng tác (CF) 12 1.2.3 Kỹ thuật Phân rã Ma trận (MF) 14 1.2.4 Kỹ thuật phân cụm K-Nearest Neighbors (kNN) 15 1.2.5 Kỹ thuật hệ thống gợi ý lai (Hybrid Recommendation Systems) 18 1.2.6 Kỹ thuật không cá nhân hóa (non-personalization) 20 1.3 Các kiến trúc học sâu (Deep Learning) hệ thống gợi ý 21 1.3.1 Tổng quan DL 21 1.3.2 Mô hình Restricted Bolzmann Machine (RBM) 22 1.3.3 Mơ hình Auto-Encoder 24 1.4 Giải toán Dữ liệu lớn (Big Data) 26 1.4.1 Hadoop 26 1.4.2 Apache Spark 28 1.4.3 So sánh Spark Hadoop 31 CHƯƠNG ÁP DỤNG CÁC THUẬT TOÁN 32 2.1 Bộ liệu 32 2.1.1 Bộ liệu Movielens 100k 32 2.1.2 Bộ liệu Movielens 1M 33 2.2 Thông số đánh giá 34 2.2.1 RMSE MAE 34 2.2.2 Hit Rate (HR) 34 2.2.3 Average Reciprocal Hit Rate (ARHR) 34 2.2.4 Cumulative Hit Rate (cHR) 35 2.2.5 Coverage 35 2.2.6 Diversity 35 2.3 Thực nghiệm 36 2.3.1 Môi trường 36 2.3.2 Đối tượng đánh giá 36 2.4 Các mơ hình thực nghiệm 38 2.4.1 kNN 38 2.4.2 SVD SVD++ 44 2.4.3 RBM 48 2.4.4 Auto-Encoder cho RS 51 2.4.5 Hybrid RS 53 2.5 Đánh giá kết 55 2.5.1 Đánh giá thuật toán 55 2.5.2 Đánh giá tổng hợp 58 2.6 Thực nghiệm Pyspark 61 KẾT LUẬN 64 Kết luận chung 64 Hướng phát triển 64 TÀI LIỆU THAM KHẢO 65 DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT Ký hiệu chữ viết tắt Chữ viết đầy đủ RS Recommendation Systems/Recommender System CF Collaborative Filtering kNN K-Nearest Neighbors MF Matrix Factorization DL Deep Learning ML Machine Learning RBM Restricted Boltzmann Machine ANN Artificial Neural Network SVD Singular Value Decomposition SVD++ Singular Value Decomposition Plus Plus HDFS Hadoop Distributed File System YARN Yet-Another-Resource-Negotiator SQL Structured Query Language RDD Resilient Distributed Datasets RMSE Root Mean Squared Error MAE Mean Absolute Error HR Hit Rate ARHR Average Reciprocal Hit Rate cHR Cumulative Hit Rate ALS Alternating Least Square ii Bảng 2.20 Top-10 phim gợi ý từ thuật toán Auto-Encoder Movielens 100k Horton Hears a Who! (2008) Movielens 1M Ben-Hur (1959) Spacehunter: Adventures in the Forbidden Snow White and the Seven Zone (1983) Dwarfs (1937) Empire of Dreams: The Story of the ‘Star Beauty and the Beast (1991) Wars’ Trilogy (2004) Gigi (1958) Top-10 Sleepers (1996) Miracle on 34th Street (1947) phim The Deer Hunter (1978) The Sound of Music (1965) gợi ý Ben-Hur (1959) Airplane! (1980) Grandhi (1982) Tarzan (1999) Cape Fear (1991) Bambi (1942) Beavis and Butt-Head Do America (1996) 10 Big (1988) 10 Tron (1982) 2.4.5 Hybrid RS Để vận hành mơ hình kết hợp ta phải đưa lựa chọn hợp lý với trọng số thuật toán để kết hợp với Kết hợp thuật toán RBM với thuật toán Content-Based kNN tinh thần kết hợp thông tin dựa hành vi (behaviorbased) ngữ nghĩa (sematic-based) với thành hệ thống Với việc gọi từ thư viện Surprise hàm AlgoBase, ta truyền vào hàm AlgoBase với tham số thuật tốn cần để thực sau lấy tồn trọng số mà thuật tốn ta cần kết hợp lại Ở ta lấy thuật toán Content-based kNN RBM trọng số hai thuật tốn Tiếp theo hàm tính tốn thơng số hai loại thuật tốn ta tính giá trị trung bình chạy toàn tập liệu sau cho toàn liệu huấn luyện qua hai thuật toán này, không lấy giá trị đánh giá thuật toán riêng lẻ Tuy nhiên, việc kết hợp cần thêm trọng số cân hai loại thuật toán với số [0,5;0,5] để đảm bảo mơ hình ổn định suốt q trình huấn luyện 53 không gây số trạng thái lỗi q trình chạy máy tính xung đột lớp mơ hình học sâu RBM Bảng 2.21 Các thơng số đánh giá thuật tốn Hybrid RS RMSE MAE HR cHR ARHR 100k 0.9950 0.8121 NaN NaN 0.00001 0.4411 0.0752 451.448463 0.0012 0.5823 0.0335 900.581751 1M 1.0517 0.8747 0.0012 0.0012 Coverage Diversity Thời gian(s) Bảng 2.22 Top-10 phim gợi ý từ thuật toán Hybrid RS 100k 1M True Grit (2010) Dracula (1931) Bowling for Columbine (2002) Frankenstein (1931) Fahrenheit 9/11 (2004) Nosferatu (Nosferatu, eine The White Stripes Under Great White Symphonie des Grauens) (1922) Northen Lights (2009) Bride of Frankenstein (1935) Top-10 Roger & Me (1989) phim Step Into Liquid (2002) gợi ý Inside Job (2010) The Invisible Man (1933) The Birds (1963) Crumb (1994) Invasion of the Body Snatchers (1956) Hoop Dreams (1994) The Blob (1958) 10 The War Room (1993) The Creature From the Black Lagoon (1954) 10 The Fly (1958) 54 2.5 Đánh giá kết 2.5.1 Đánh giá thuật toán 2.5.1.1 Thuật toán User_kNN Với ý tưởng với thuật toán kNN để phân cụm liệu, kết hợp với giá trị tương đồng người dùng với tạo nên thuật toán User_kNN Với lượng người dùng 943 người dùng liệu Movielens 100k 6040 người dùng liệu Movielesn 1M ta thấy tốc độ phân tính tốn cụm có chênh lệch rõ rệt việc tăng lượng giá trị cần phân cụm nhiều yêu cầu lượng thời gian lớn rõ rệt (gấp tận 160 lần ) Tuy nhiên điều dễ thấy nhiều thông số chuyên dùng để đánh giá top-10 phim gợi ý từ thuật toán bao gồm: HR, cHR, ARHR, Coverage Diveristy sau phân thành cụm để tính tốn mang tính dựa giá trị tương đồng lân cận người dùng nên bao phủ - tham số Coverage (~1) tính đa dạng lớn – tham số Diveristy (~0.9) số ARHR (~0.000001) phản ánh liệu top-10 phim đề xuất mang tính dàn trải hầu hết nội dung thể loại phim mà người dùng quan tâm (bảng top-10 phim gợi ý) 2.5.1.2 Thuật toán Item_kNN Ý tưởng thuật toán kNN phân cụm liệu kết hợp với tính tốn giá trị tương đồng phim đánh giá tạo nên thuật tốn Item_kNN Thơng qua cặp thơng số đánh giá (RMSE; MAE) qua hai tập liệu Movielens 100k 1M (0.995; 0.779) (0.997; 0.780) ta thấy với thuật tốn triển khai không tạo kết mong đợi Bên cạnh thơng số khác HR, cHR, Coverage, Diveristy hay thời gian có xu hướng khơng tốt thuật toán User_kNN Tuy nhiên với ý tưởng so sánh tương đồng phim với nhau, ý tưởng tốt để cải thiện việc triển khai thuật toán dạng kết hợp khác đem lại kết khả quan nghiên cứu sau 55 2.5.1.3 Thuật tốn ContentBassed_kNN Với ý tưởng lấy tính tốn phim tương đồng với phim mà người dùng xem để gợi ý phim cho người dùng kết hợp với phân cụm thuật toán kNN tạo thuật toán ContentBased_kNN Với kết thu thấy đặc biệt khác liệu Movielens 100k 1M thời gian thực thi, thời gian thực thi liệu Movielens 100k lại dài liệu 1M tốc độ phân nhóm liệu diễn dài hơn, phức tạp đòi hỏi nhiều bước tính tốn độ tương đồng để gom nhóm hợp lý Hơn nữa, tốc độ hội tụ lâu bị ảnh hưởng độ thưa thớt liệu, thật vậy, số lượng lẫn độ bao phủ tập liệu 100k nhiều so với liệu 1M Khắc phục mặt tốc độ cải thiện chất lượng liệu cho nghiên cứu sau 2.5.1.4 Thuật toán SVD/SVD-Tuned Thuật toán SVD xây dựng dưa ý tưởng muốn tách ma trận thành tích ba ma trận khác mang đến nhiều lợi ích giảm chiều liệu, nén liệu, tìm hiểu đặc tính liệu, giải hệ tuyến tính, phân nhóm, … Việc sử dụng ý tưởng giúp khai phá nhiều nhân tố bên liệu tốt hơn, dẫn đến kết thu khả quan thuật tốn đề cấp trước Thật vậy, kết thu thể tối ưu thời gian thực thi (0.65 giây liệu Movielens 100k 5.65 giây Movielens 1M), bên cạnh thơng số RMSE, MAE cải thiện đáng kể (xuống cịn xấp xỉ 0.9,0.87); cịn nữa, thơng số đánh giá top-10 phim gợi ý khả qua HR, cHR, ARHR phản ánh có phim tương đồng với phim đánh giá trước người dùng, đặc biệt độ bao phủ cao độ đa dạng kết thấp, chứng tỏ thuật toán tập trung vào gợi ý cụ thể vào phim liên quan đến sở thích người dùng cá nhân hóa mạnh mẽ 2.5.1.5 Thuật toán SVD++ Thuật toán SVD++ tăng thêm vector phụ sản phẩm so với thuật tốn SVD, bên cạnh cịn ước tính độ phù hợp giá trị vecto cho tất sản phẩm mà người dùng tương tác, sau lại thêm vecto phụ vào regularization Việc tăng cường tính tốn từ thuật tốn lẫn đẩy thêm yếu tố phụ vào phần tử làm tăng cường khả tính tốn tính hồn thiện cho thuật tốn 56 Kiểm chứng qua kết nhận được, nói kết khả quan tất thuật toán thực thi số RMSE (0.894 cho Movielens 100k, 0.864 cho Movielens 1M) số HR(0.029 cho Movielens 100k 0.038 cho Movielens 1M) phản ánh hiệu tốt thuật toán khác Đặc biệt, với số bao phủ lớn (0.9419 Movielens 100k 0.987 Movielens 1M) độ đa dạng thấp (0.0923 Movielens 100k 0.03 Movielens 1M) thể khả gợi ý cá nhân hóa mạnh mẽ Tuy nhiên thuật tốn có khuyết điểm thời gian thực thi lớn (51.33 giây cho Movielens 100k 358.79 giây Movielens 1M) gợi ý việc tối ưu thuật toán cách cải thiện thời gian chạy tương lai 2.5.1.6 Thuật tốn RBM Là thuật tốn, hữu ích cho việc giảm kích thước, phân loại, hồi quy, lọc cộng tác, học tính lập mơ hình chủ đề, mơ hình đồ họa xác suất hiểu mạng thần kinh ngẫu nhiên Xây dựng RBM ban đầu ý tưởng truyền trọng số ngẫu nhiên lớp với giao tiếp lớp đẩy thuật tốn gặp khó khăn việc xác định thông số kết gợi ý HR,cHR hay tính bao phủ, tính đa dạng kết trả thẳng gợi ý cụ thể cho người dùng Bên cạnh đó, thời gian thực thi thuật toán lớn (232.1 giây cho Movielens 100k 795.1 giây cho Movielens 1M) 2.5.1.7 Thuật toán Auto-Encoder Là thuật toán học sâu, xây dựng dựa phân chia rõ ràng lớp liệu ban đầu mạnh q trình mã hóa, giải mã q trình huấn luyện phân tách tính tốn liệu cách có chiều sâu hiệu Tuy nhiên, việc ứng dụng chưa thực đạt kết khả quan viết làm trở ngại lớn việc nhận định khả đóng góp thuật tốn q trình tìm hiểu phát triển sâu thông số RMSE (1.883 cho Movielens 100k 2.435 cho Movielens 1M) phản ánh độ hiệu báo cáo Tuy nhiên có điểm tích cực kết thơng số ARHR có cải thiện thuật tốn khác User_kNN hay RBM thua SVD++ chút Bên cạnh đó, độ bao phủ cao độ đa dạng thấp kết đưa làm thuật toán có tính chun sâu 57 gợi ý cho cá nhân cụ thể, cần phải cải thiện độ xác thuật tốn nhiều để đưa đánh giá tốt tương lai 2.5.1.8 Thuật toán HybridRS Trên ý tưởng kết hợp thuật toán ContentBased_kNN thuật toán RBM để tạo mơ hình huấn luyện liệu hai tầng kết hợp Về mặt ý tưởng, tính khả thi việc tăng cường tìm hiểu liệu sâu bên liệu lựa chọn yếu tố cần thiết để gợi ý sâu cho người dùng; thật vậy, điều hồn tồn đạt thơng số đa dạng Diversity thấp tính khả thi để sử dụng thuật tốn sau báo cáo chưa thực khả thi thông số khác RMSE, MAE không thực tối ưu Tuy nhiên, phương diện phát triển sâu hơn, thuật tốn hồn tồn nghiên cứu sâu cách kết hợp hứa hẹn nhiều 2.5.2 Đánh giá tổng hợp Bảng 2.23 Bảng thông số đánh giá thuật toán liệu Movielens 100k RMSE MAE HR cHR ARHR Coverage Diversity Thời gian(s) User_kNN 0.995 0.771 NaN NaN 0.000001 0.8586 0.44 Item_kNN 0.995 0.779 NaN NaN 0.000001 0.9896 0.6494 4.75 Content_kNN 0.937 0.726 0.003 0.0030 0.002980 0.9285 0.5700 217.5 SVD 0.905 0.700 0.024 0.0224 0.022346 0.9463 0.0419 0.65 SVD-Tuned 0.889 0.686 0.026 0.0268 0.026815 0.9732 0.1372 14.89 SVD++ 0.894 0.687 0.029 0.0298 0.029798 0.9419 0.0923 51.33 RBM 1.187 0.991 NaN NaN 0.000001 NaN NaN 232.1 RBM-Tuned 1.170 0.977 NaN NaN 0.000001 NaN NaN 188.8 AutoEncoder 1.883 1.476 0.011 0.0119 0.011918 0.6966 1409 HybridRS 0.995 0.812 NaN NaN 0.000001 0.4411 0.0752 451.44 58 Hình 2.8 Thơng số RMSE MAE cho mơ hình cho liệu Movielens 100k Bảng 2.24 Bảng thơng số đánh giá thuật tốn liệu Movielens 1M cHR ARHR Coverage Diversity Thời gian(s) RMSE MAE HR User_kNN 0.976 0.771 0.001 0.0018 0.000001 0.99 70.3 Item_kNN 0.997 0.780 0.006 0.0065 0.000001 0.991 0.84 30.26 Content_kNN 0.990 0.786 0.003 0.0028 0.002980 0.971 0.1 31.35 SVD 0.877 0.688 0.028 0.0283 0.022346 0.99 0.03 5.65 SVD-Tuned 0.879 0.690 0.031 0.0318 0.026815 0.99 0.04 169.3 SVD++ 0.864 0.674 0.038 0.0382 0.029798 0.987 0.03 358.79 RBM 1.259 1.053 NaN NaN 0.000001 NaN NaN 795.1 RBM-Tuned 1.256 1.051 NaN NaN 0.000001 NaN NaN 688.41 AutoEncoder 2.435 2.126 0.027 0.0270 0.011918 0.4043 0.04 5156.3 HybridRS 1.051 0.874 0.001 0.0012 0.000001 0.5823 0.03 900.58 59 Hình 2.9 Thơng số RMSE MAE cho mơ hình cho liệu Movielens 1M Hình 2.10 Thời gian chạy mơ hình với hai liệu Movielens 100k Movielens 1M Các thuật toán thực thi liệu Movielens 100k Movielens 1M đạt kết khả quan cho việc nghiên cứu sâu sau Trong báo cáo phản ánh phần thuật toán thiết kế để sử dụng lĩnh vực RS có ưu thuật toán học sâu hay thuật toán lĩnh vực AI, bên cạnh việc tối ưu ý tưởng liên quan 60 đến cải tiến chất lượng liệu ảnh hưởng nhiều đến khả thực thi thuật toán 2.6 Thực nghiệm Pyspark Sau thực nghiệm với liệu Movielens 100k Movielens 1M, với xu hướng muốn tiếp tục thử nghiệm mô hình với liệu lớn xuất vấn đề không đủ nhớ để thực thi mơ hình Từ đề xuất phương pháp sử dụng Apache Spark với mơ hình Alternating Least Square (ALS) để xử lý liệu Movielens 20M Pandas chạy hoạt động máy đơn PySpark chạy nhiều máy Nếu làm việc ứng dụng Học Máy xử lý tập liệu lớn hơn, PySpark ứng dụng phù hợp xử lý hoạt động nhanh gấp nhiều lần (100 lần) so với Pandas PySpark sử dụng tốt cộng đồng Khoa học liệu Học máy có nhiều thư viện khoa học liệu sử dụng rộng rãi viết Python bao gồm NumPy, TensorFlow sử dụng chúng xử lý hiệu tập liệu lớn PySpark sử dụng nhiều tổ chức Walmart, Trivago, Sanofi, Runtastic, v.v… PySpark thư viện Spark viết Python để chạy ứng dụng Python sử dụng khả Apache Spark Sử dụng PySpark chạy ứng dụng song song cụm phân tán (nhiều nút) chí nút Apache Spark công cụ xử lý phân tích cho ứng dụng máy học xử lý liệu phân tán mạnh mẽ quy mô lớn Để dễ hình dung lý sử dụng Spark với liệu lớn, theo [10] ta dễ dàng nhận định với lý tưởng giải vấn đề xử lý bên nhớ Thông thường theo cách hoạt động thư viện phải tải tồn liệu lên RAM để giải quyết, Spark giải vấn đề linh hoạt việc đưa liệu lên RAM lưu xuống nhớ khơng sử dụng Một khía cạnh khuyên dùng Spark sử dụng với liệu lớn cách vận hành tính tốn Spark, chuyên gia linh hoạt việc sử dụng cụm máy làm thư viện mở để người dùng dùng nhiều phương pháp khác vừa để tăng tốc Spark để tối đa hóa q trình tính tốn dựa sức mạnh phần cứng loại máy Nói đơn giản hơn, việc tối đa hóa sức mạnh phần cứng khác giúp cho giảm thiểu tối đa thời gian thực thi toán học sâu, học nhiều liệu nhanh đảm bảo tuổi thọ thiết bị sử dụng 61 Hơn nữa, theo [11] ta dễ dàng nhận định hiệu phân bổ phần cứng tối đa hóa việc sử dụng liệu lớn theo thời gian thực Spark thực mạnh mẽ, phù hợp lớn đến với công việc xử lý liệu lớn nhóm ngành Trí tuệ nhân tạo Việc sử dụng cụm máy lớn việc xử lý liệu lớn yếu tố cần thiết đặt doanh nghiệp nhằm tối ưu tài nguyên có, việc Spark làm cơng cụ kết nối RMDA thực thư viện có ích để tìm hiểu phân tích chun sâu Bên cạnh đó, nhằm giải toán liệu lớn (thường gây tượng tràn RAM) Spark cơng cụ hữu dụng luân phiên đưa liệu lên RAM nhớ để tránh trường hợp RAM phải lưu trữ nhiều liệu Việc thử nghiệm thuật tốn phía với liệu 20M gây tượng tràn RAM máy tính cá nhân (phần lớn q trình thực thi q nhiều phép tính đồng thời nên khơng đủ lưu trữ hàng loạt) việc sử dụng Spark cho hợp lý giải triệt để vấn đề Hình 2.11 Hiện tượng tràn RAM chạy mơ hình tập liệu 20M Với thuật tốn ALS: Quá trình huấn luyện theo gradient descent lâu tốc độ hội tụ phụ thuộc vào learning rate Trong ta nhận thấy hàm loss function user item tính tốn nghiệm tối ưu thơng qua giải phương trình đạo hàm Q trình hội tụ xen kẽ tính theo phương trình nghiệm nhanh nhiều so với gradient descent 62 Phương pháp có tên ALS (Alternating Least Square) Giải phương trình đạo hàm user thứ i ALS cố gắng ước tính ma trận xếp hạng R tích hai ma trận xếp hạng thấp hơn, X Y, tức X * Yt = R Thơng thường, phép tính gần gọi ma trận 'hệ số' Cách tiếp cận chung lặp lặp lại Trong lần lặp, ma trận nhân tố giữ không đổi, ma trận giải cách sử dụng bình phương nhỏ Ma trận thừa số giải sau giữ cố định giải cho ma trận thừa số khác Đây triển khai bị chặn thuật tốn phân tích thừa số ALS nhóm hai nhóm yếu tố (được gọi “người dùng” “sản phẩm”) thành khối giảm giao tiếp cách gửi vectơ người dùng tới khối sản phẩm lần lặp lại dành cho khối sản phẩm cần vectơ đặc trưng người dùng Điều đạt cách tính tốn trước số thông tin ma trận xếp hạng để xác định “liên kết ngoài” người dùng (người dùng đóng góp vào khối sản phẩm nào) thơng tin “trong liên kết” cho sản phẩm (vec-tơ tính nhận từ khối người dùng mà phụ thuộc vào) Điều cho phép gửi mảng vectơ đặc trưng khối người dùng khối sản phẩm, đồng thời yêu cầu khối sản phẩm tìm xếp hạng người dùng cập nhật sản phẩm dựa thông báo Bảng 2.25 Kết thu chạy mơ hình ALS Pyspark Bộ liệu Movielens RMSE Thời gian thực thi (giây) 100k 20M 1.138754857 0.8131677159 568.9856 13384.1546786 63 KẾT LUẬN Kết luận chung Trong mô hình thực nghiệm mơ hình cho kết tốt SVD, SVD++ , điều phù hợp mơ hình dành giải thưởng thi lớn hệ thống khuyến nghị Netflix trao giải Các mơ hình cổ điển ContentBased, CF có kết thấp phát huy khả gợi ý, tùy theo mục đích sử dụng số trường hợp mang đến hiệu tốt Các mơ hình học sâu BRM , Auto-Encoder cho kết tương đối thấp so với thuật tốn khác theo lý thuyết mơ hình khơng sinh dành riêng cho tồn hệ thống gợi ý Nhưng mơ hình mạng nơ-ron thuộc loại thuật toán Deep learing nên thuật tốn cịn nhiều hướng phát triển cải thiện Pyspark thực công nghệ giúp giải vấn đề liệu lớn thực tế, tối ưu phần cứng việc xử lý song song Và kết thực nghiệm cho thấy tăng lượng liệu chất lượng dự đốn tăng theo Do việc tăng cường khả dự đốn cơng nghệ xử lý Apache Spark kết hợp tăng cường liệu khả thi Hướng phát triển • Thực nghiệm model AI khác đặc biệt model mạng Neural Deep learing • Thực nghiệm tập liệu lớn hơn, data lĩnh vực khác • Sử dụng Cloud Computing Services (AWS) để thực thi Pyspark nhằm hướng tới việc tiện lợi tối ưu hóa tiền đầu tư phát triển hệ thống khuyến nghị cho doanh nghiệp 64 TÀI LIỆU THAM KHẢO [1] N T Nghe, Chương Hệ thống gợi ý: Kỹ thuật ứng dụng, Cần Thơ: Khoa Công nghệ thông tin Truyền thông, Trường Đại học Cần Thơ [2] Y Koren, "Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model," 2012 [3] M a P.-B Ghazanfar, "An improved switching hybrid recommender system using naive Bayes classifier and collaborative filtering," in The 2010 IAENG International Conference on Data Mining and Applications, Hong Kong, Hong Kong, 2010 [4] S Z & J L Tianyu Zuo, "A Hybrid Recommender System Combing Singular Value Decomposition and Linear Mixed Model," Springer Link, 2020 [5] M D H E.-z M S K B & G W Andreu Vall, "Feature-combination hybrid recommender systems for automated music playlist continuation," Springer Link, p 527–572, 2019 [6] R Burke, "Hybrid Recommender Systems: Survey and Experiments," Spinger Link, Vols 12, pages331–370 (2002), 2002 [7] D C I P & F F Miguel Ângelo Rebelo, "A New Cascade-Hybrid Recommender System Approach for the Retail Market," Springer Link, 2022 [8] N Immaneni, I Padmanaban, B Ramasubramanian and R Sridhar, "A meta-level hybridization approach to personalized movie recommendation," IEEE, no 17414537, 2017 [9] A K M S X Suvash Sedhain, "AutoRec: Autoencoders Meet Collaborative Filtering" [10] X Lu, M W U Rahman, N Islam, D Shankar and D K Panda, "Accelerating Spark with RDMA for Big Data Processing: Early Experiences," IEEE, no 14787915, 2014 65 [11] X Lu, D Shankar, S Gugnani and D K Panda, "High-performance design of apache spark with RDMA and its benefits on various workloads," IEEE, no 16653102, 2016 [12] M J P & D Billsus, "Content-Based Recommendation Systems," Spinger Link, 2007 [13] E | M M Çano, "Hybrid recommender systems: A systematic literature review," IOS Press, Vols vol 21, no 6, pp 1487-1524,, 2017 [14] S V a A S CHRISTINA CHRISTAKOU, "A HYBRID MOVIE RECOMMENDER SYSTEM BASED ON NEURAL NETWORKS," World Scientific, Vols Vol 16, No 05, pp 771-792 (2007), 2007 [15] H.-Q Do, T.-H Le and B Yoon, "Dynamic Weighted Hybrid Recommender Systems," IEEE, p 19514963, 2020 [16] X Guan, C.-T Li and Y Guan, "Matrix Factorization With Rating Completion: An Enhanced SVD Model for Collaborative Filtering Recommender Systems," IEEE, no 17496895, pp 27668 - 27678, 2017 [17] D F J H & S S J Ben Schafer, "Collaborative Filtering Recommender Systems," Spinger Link, no LNISA,volume 4321, 2004 [18] B Li, S Wan, H Xia and F Qian, "The Research for Recommendation System Based on Improved KNN Algorithm," IEEE , no 20033285, 2020 [19] D M H.-J M S J H N S J P X W U G C.-J W A G A D D A M I C Y L R K Maxim Naumov, "Deep Learning Recommendation Model for Personalization and Recommendation Systems," arXiv, 2019 [20] J T R J A K Michael D Ekstrand, "Collaborative Filtering Recommender Systems," NOW, Vols Vol 4: No 2, pp 81-173, 2011 [21] J H , G H , Y Z Xun Zhou, "SVD-based incremental approaches for recommender systems," ScienceDirect, no Volume 81, Issue 4, pp Pages 717-733, 2015 [22] S N S K S A & B V SRS Reddy, "Content-Based Movie Recommendation System Using Genre Correlation," Spinger Link, p volume 105, 2018 66 [23] G S a Y L Shijie WangORCID, "SVD++ Recommendation Algorithm Based on Backtracking," MDPI, 2020 [24] S M T T T N G S Ramni Harbir Singh, "Movie Recommendation System using Cosine Similarity and KNN," International Journal of Engineering and Advanced Technology (IJEAT), vol ISSN: 2249 – 8958 (Online), no Volume-9 Issue-5, 2020 [25] K K R M B R , P R S N Pradeep, "Content based movie recommendation system," IJRIE, 2020 67