Hệ thống gợi ý Recommender Systems RS đang đƣợc ứng dụng rộng rãi trong nhiều lĩnh vực nhƣ thƣơng mại điện tử giải trí giáo dục nhằm dự đoán sở thích của ngƣời dùng nhờ vào thông tin cá nhân hoặc những phản hồi đánh giá của họ Luận văn tập trung nghiên cứu hệ thống gợi ý theo ngữ cảnh áp dụng cho gợi ý các địa điểm du lịch phù hợp nhất với ngƣời dùng Hệ thống kết hợp phƣơng pháp SVD Singular Value Decomposition phƣơng pháp phân rã ma trận MF matrix factorization phƣơng pháp phân rã ma trận không âm NN MF Nonnegative Matrix Factorization nhằm tăng độ chính xác cho hệ thống Sau khi xây dựng hệ thống và tích hợp các giải thuật gợi ý tôi thu thập thông tin từ ngƣời dùng thực nhằm đánh giá hiệu quả của hệ thống đã đề xuất Thực nghiệm cho thấy việc ứng dụng giải pháp này trong hỗ trợ phát triển du lịch là hoàn toàn khả thi
ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA - - PHẠM HOÀNG TRƢƠNG NGHIÊN CỨU VÀ ỨNG DỤNG KỸ THUẬT SVD VÀO HỆ THỐNG GỢI Ý LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng - Năm 2018 ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA - - PHẠM HOÀNG TRƢƠNG NGHIÊN CỨU VÀ ỨNG DỤNG KỸ THUẬT SVD VÀO HỆ THỐNG GỢI Ý Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01 LUẬN VĂN THẠC SĨ Ngƣời hƣớng dẫn khoa học: TS NGUYỄN VĂN HIỆU Đà Nẵng - Năm 2018 LỜI CAM ĐOAN Tôi xin cam đoan: Những nội dung luận văn thực hướng dẫn trực tiếp TS Nguyễn Văn Hiệu Mọi tham khảo dùng luận văn trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm cơng bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi xin chịu hồn tồn trách nhiệm Tác giả luận văn Phạm Hoàng Trƣơng MỤC LỤC LỜI CAM ĐOAN MỤC LỤC ANH MỤC C C TỪ VI T TẮT DANH MỤC CÁC CÁC BẢNG DANH MỤC CÁC HÌNH MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu nhiệm vụ đề tài Đối tƣợng phạm vi nghiên cứu Phƣơng pháp nghiên cứu Ý nghĩa khoa học thực tiễn đề tài Bố cục luận văn Chƣơng - TỔNG QUAN DU LỊCH QUẢNG NGÃI VÀ HỆ THỐNG GỢI Ý…… 1.1 TỔNG QUAN VỀ DU LỊCH QUẢNG NGÃI 1.2 CÁC PHƢƠNG PHÁP GỢI Ý 1.2.1 Phƣơng pháp gợi ý dựa nội dung 1.2.2 Phƣơng pháp gợi ý dựa lọc cộng tác 1.2.3 Phƣơng pháp gợi ý lai 11 1.3 HỆ THỐNG GỢI Ý 11 1.3.1 Giới thiệu .11 1.3.2 Bài toán tổng quát hệ thống gợi ý 14 1.3.3 Chức hệ thống gợi ý 15 1.3.4 Dữ liệu nguồn tri thức .18 1.3.4.1 Sản phẩm 18 1.3.4.2 Ngƣời dùng .19 1.3.4.3 Giao dịch 19 KẾT LUẬN CHƢƠNG 20 Chƣơng – CÁC KỸ THUẬT PHÂN RÃ 21 2.1 KỸ THUẬT SVD 21 2.1.1 Giới thiệu .21 2.1.2 Phát biểu toán 22 2.1.3 Ý tƣởng thực 22 2.1.4 Hƣớng tiếp cận Truncated SVD 23 2.1.5 Thuật toán SVD 25 2.2 KỸ THUẬT PHÂN RÃ MA TRẬN-MF 27 2.2.1 Giới thiệu 27 2.2.2 Ý tƣởng thực 28 2.2.3 Thuật toán MF 31 2.3 KỸ THUẬT NN-MF 31 2.3.1 Giới thiệu 31 2.3.2 Thuật toán NN-MF 32 KẾT LUẬN CHƢƠNG 33 Chƣơng - XÂY DỰNG HỆ THỐNG GỢI Ý VÀ Đ NH GI 34 3.1 MÔ TẢ HỆ THỐNG 34 3.2 PHÂN TÍCH, THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG .37 3.2.1 Sơ đồ ca sử dụng 38 3.2.2 Sơ đồ hoạt động sơ đồ 40 3.2.3 Cơ sở liệu 43 3.2.4 Một số giao diện minh họa hệ thống 46 3.3 ĐÁNH GIÁ KẾT QUẢ THỬ NGHIỆM 50 3.3.1 Phƣơng pháp Truncated SVD 50 3.3.2 Phƣơng pháp MF 51 3.3.3 Phƣơng pháp NN-MF 52 KẾT LUẬN CHƢƠNG 54 K T LUẬN VÀ HƢỚNG PHÁT TRIỂN 55 Kết luận 55 Hƣớng phát triển 56 TÀI LIỆU THAM KHẢO PHỤ LỤC TÓM TẮT LUẬN VĂN NGHIÊN CỨU VÀ ỨNG DỤNG KỸ THUẬT SVD VÀO HỆ THỐNG GỢI Ý Học viên:Phạm Hoàng Trƣơng Mã số: 60.48.01 Khóa: K33 Chuyên ngành: Khoa học máy tính Trƣờng Đại học Bách khoa - ĐHĐN Tóm tắt - Hệ thống gợi ý (Recommender Systems - RS) đƣợc ứng dụng rộng rãi nhiều lĩnh vực (nhƣ thƣơng mại điện tử, giải trí, giáo dục, ) nhằm dự đốn sở thích ngƣời dùng nhờ vào thông tin cá nhân phản hồi (đánh giá) họ Luận văn tập trung nghiên cứu hệ thống gợi ý theo ngữ cảnh, áp dụng cho gợi ý địa điểm du lịch phù hợp với ngƣời dùng Hệ thống kết hợp phƣơng pháp SVD (Singular Value Decomposition), phƣơng pháp phân rã ma trận MF (matrix factorization), phƣơng pháp phân rã ma trận không âm NN-MF (Nonnegative Matrix Factorization) nhằm tăng độ xác cho hệ thống Sau xây dựng hệ thống tích hợp giải thuật gợi ý, thu thập thông tin từ ngƣời dùng thực nhằm đánh giá hiệu hệ thống đề xuất Thực nghiệm cho thấy việc ứng dụng giải pháp hỗ trợ phát triển du lịch hồn tồn khả thi Từ khóa - Hệ thống gợi ý, kỹ thuật SVD, kỹ thuật phân rã ma trận MF, kỹ thuật NN-MF RESEARCH AND APPLICATION SVD RECOMMENDATION SYSTEMS Abstract - Recommender Systems are widely used in many areas, such as in ecommerce (for online shopping), in entertainments (for movie recommendation, music recommendation, etc) and so on, to predict users‟ preference based on their past preferences/behaviors In this work, propose an approach for Research Recommender Systems Then applying this approach for a recommendation system so that the system can recommend appropriate places to tourists This system combines several approaches such as Singular Value Decomposition, matrix factorization, Nonnegative Matrix Factorization to improve the prediction accuracy of the model Experimental results show that this is a promising approach for building Tourist Recommender Systems Key words - Recommender Systems, Singular Value Decomposition, matrix factorization, Nonnegative Matrix Factorization ANH MỤC C C TỪ VI T TẮT CF SVD MF RS NN-MF Collaborative filtering (Lọc cộng tác) Singular Value Decomposition (Kỹ thuật phân rã giá trị đơn) Matrix Factorization (Kỹ thuật phân rã ma trận) Recommender Systems (Hệ thống gợi ý) Nonnegative Matrix Factorization (Kỹ thuật phân rã ma trận không âm) DANH MỤC CÁC BẢNG Số hiệu bảng 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 Tên bảng Bảng khách hàng Bảng loại tin Bảng địa điểm Bảng quảng cáo Bảng đánh giá Bảng loại hình Bảng đặt lịch tham quan Bảng quản trị Bảng Menu Bảng liên hệ Bảng tin tức Trang 44 Tập liệu thử nghiệm 45 45 45 46 46 46 46 46 47 47 49 Kết chạy thực thi Kết chạy thực thi với liệu input2.txt Kết chạy thực thi Mức độ cải thiện Kết thử nghiệm tổng quát độ đo RMSE 50 50 51 52 52 DANH MỤC CÁC HÌNH Số hiệu hình 1.1 1.2 2.1 Tên hình Trang 10 15 24 2.3 2.4 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 Minh hoạ hệ thống gợi ý Ma trận đánh giá ngƣời dùng SVD cho ma trận a khi: mn (hình dƣới) Biểu diễn svd dạng thu gọn biểu diễn ma trận dƣới dạng tổng ma trận có rank Minh họa kỹ thuật phân rã ma trận Minh hoạ dự đoán ngƣời dùng thứ cho item thứ Quy trình sử dụng website Sơ đồ kiến trúc tổng thể hệ thống Sơ đồ ca sử dụng tổng quát hệ thống Sơ đồ ca sử dụng khách hàng Sơ đồ ca sử dụng ngƣời quản trị Sơ đồ hoạt động chức gợi ý Sơ đồ chức gợi ý Sơ đồ hoạt động chức cập nhật nội dung Sơ đồ chức cập nhật nội dung Sơ đồ hoạt động chức đánh giá Sơ đồ chức đánh giá Sơ đồ quan hệ sở liệu Giao diện liên hệ Giao diện đăng nhập Giao diện đăng ký 3.16 Giao diện hệ thống 49 3.17 Giao diện gợi ý địa điểm du lịch 49 3.18 Giao diện thu thập thông tin đánh giá ngƣời dùng 50 3.19 Giao diện tiện ích 50 3.20 Biểu đồ đƣờng so sánh nghiên cứu với kịch thử nghiệm 53 3.21 Biểu đồ cột so sánh nghiên cứu với kịch thử nghiệm 53 2.2 25 29 31 36 38 39 40 40 41 41 42 42 43 43 44 47 48 48 object = newObject; } } private double dot(double[] viewRow, double[] viewColumn) { double result = 0; for(int i = ; i < viewColumn.length ; i ++) { result += viewRow[i] * viewColumn[i]; } return result; } public static Matrix random(int rows, int colums, double val) { Matrix matrix = new Matrix(rows, colums); double[][] arr = matrix.getMatrixArr(); Random random = new Random(); for (int i = 0; i < rows; i++) { for (int j = 0; j < colums; j++) { arr[i][j] = random.nextGaussian() * val; } } return matrix; } //@Override // tính độ lỗi private double calObject(Matrix v2, Matrix w2, Matrix h2) { Matrix WH = w2.times(h2); double err = 0; for(int i=0; i