Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 78 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
78
Dung lượng
2,44 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC QUY NHƠN LÊ QUYỀN SỬ DỤNG CƠ SỞ DỮ LIỆU ĐỒ THỊ h TRONG HỆ GỢI Ý Chuyên ngành: Khoa Học Máy Tính Mã số: 48 01 01 Ngƣời hƣớng dẫn: TS TRẦN THIÊN THÀNH LỜI CAM ĐOAN Tôi xin cam đoan kết đƣợc trình bày luận văn riêng tôi, không chép từ cơng trình khác Nếu có điều khơng trung thực, tơi xin chịu hồn tồn trách nhiệm HỌC VIÊN LÊ QUYỀN h LỜI CẢM ƠN Lời đầu tiên, cho phép gửi lời cảm ơn đến TS TRẦN THIÊN THÀNH, người thầy quan tâm giúp đỡ, hướng dẫn, bảo tận tình giúp tơi hồn thành luận văn Tơi xin chân thành cảm ơn Quý Thầy Cô Khoa Công nghệ thông tin trường Đại Học Quy Nhơn kiến thức mà quý Thầy Cô truyền đạt cho suốt trình học tập trường Xin chân thành cảm ơn anh chị em lớp cao học Khoa học máy tính khố 2019 – 2021 (K22) bạn đồng nghiệp ln bên cạnh, động viên, khuyến khích tơi suốt thời gian học tập thực đề tài Cuối cùng, tơi xin gửi đến gia đình, từ hỗ trợ động viên từ phía gia đình mà tơi n tâm học tập tốt hồn thành luận văn h Xin chân thành cảm ơn! NGƢỜI THỰC HIỆN LÊ QUYỀN MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN DANH MỤC CÁC THUẬT NGỮ, TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU 1 Lý chọn đề tài Mục đ ch nhiệm vụ nghi n cứu Đối tƣợng phạm vi nghiên cứu Phƣơng pháp nghiên cứu Nội dung nghiên cứu CHƢƠNG I TỔNG QUAN h 1.1 Cơ sở liệu đồ thị 1.1.1 Khái niệm đồ thị 1.1.2 Cơ sở liệu đồ thị (Graph Database) 1.1.3 Một số ứng dụng sở liệu đồ thị 18 1.2 Cơ sở liệu đồ thị Neo4j 20 1.2.1 Giới thiệu chung 20 1.2.2 Mơ hình liệu 21 1.2.3 Ngôn ngữ truy vấn Cypher 23 1.2.4 Python với Neo4j Desktop 28 1.2.5 Chỉ mục (Indexing) 29 1.3 Tổng quan hệ thống gợi ý 33 1.3.1 Giới thiệu chung 33 1.3.2 Ứng dụng hệ thống gợi ý 36 1.3.3 Bài toán gợi ý 37 1.4 Một số phƣơng pháp gợi ý 38 1.4.1 Phƣơng pháp Gợi ý dựa Nội dung (Content-based) 39 1.4.2 Collaborative filtering - CF (lọc cộng tác) 39 1.4.3 Hybrid approach (các phƣơng pháp lai) 46 1.5 Tiểu kết chƣơng 47 CHƢƠNG XÂY DỰNG HỆ GỢI Ý SỬ DỤNG NEO4J 48 2.1 Xây dựng sở liệu 48 2.1.1 Tổ chức liệu Neo4j cho hệ gợi ý đơn giản 48 2.1.2 Nạp liệu từ csv vào Neo4j 49 2.2 Thuật toán tính dự đốn rating Cosin, Pearson 49 2.2.1 Thuật toán sử dụng tƣơng quan Pearson 49 2.2.2 Thuật toán sử dụng độ tƣơng tự Cosin 50 2.2.3 Thuật toán gợi ý k-sản phẩm 51 h 2.3 Các thuật toán đánh giá độ xác 53 2.3.1 Đánh giá dự đoán xếp hạng sản phẩm 53 2.3.2 Đánh giá gợi ý sản phẩm 56 2.4 Tiểu kết chƣơng 59 CHƢƠNG THỰC NGHIỆM 61 3.1 Công cụ thực nghiệm 61 3.2 Thực nghiệm 63 3.3 Phân tích kết thực nghiệm 65 KẾT LUẬN 66 DANH MỤC TÀI LIỆU THAM KHẢO 68 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN THẠC SĨ (BẢN SAO) DANH MỤC CÁC THUẬT NGỮ, TỪ VIẾT TẮT DIỄN GIẢI KÝ HIỆU RS TIẾNG ANH Recommender System / Recommendation System TIẾNG VIỆT Hệ tƣ vấn/Hệ gợi ý Collaborative Filtering Lọc cộng tác CBF Content-Based Filtering Lọc theo nội dung HF Hybrid Filtering Lọc kết hợp MAE Mean Absolute Error Trung bình giá trị tuyệt đối lỗi RMSE Root Mean Square Error Trung bình lỗi lấy KNN K-Nearest Neighbor K láng giềng gần SDP Sparsity Data Problem Vấn đề liệu thƣa h CF User-Based k- User-Based k Neareast Phƣơng pháp K láng giềng NN gần dựa vào ngƣời dùng Item-Based NN Neighbor k- Item-Based k Neareast Neighbor Phƣơng pháp K láng giềng gần dựa vào sản phẩm Chỉ ngƣời dùng hệ U Users thống để tìm kiếm lựa chọn sản phẩm Chỉ sản phẩm hệ I Items thống nhƣ: sản phẩm, phim, ảnh, nhạc, trang web, đoạn văn bản,… Chỉ mức độ đánh giá ngƣời dùng với sản phẩm Rating có nhiều dạng R biểu diễn: nhị phân (thích Rating không th ch), hay đánh giá theo mức độ từ 1-5 ―dấu sao‖ đại diện mức độ từ không th ch đến th ch… CSDL Database Cơ sở liệu NNLT Programming language Ngôn ngữ lập trình h DANH MỤC CÁC BẢNG Bảng 1 Thời gian thực thi cho nhiều truy vấn kết hợp sử dụng công cụ sở liệu MySQL tập liệu 1.000 ngƣời dùng 12 Bảng Thời gian thực để duyệt đồ thị Neo4j tập liệu 1.000 ngƣời dùng 15 Bảng Thời gian thực thi cho nhiều truy vấn kết hợp sử dụng công cụ sở liệu MySQL tập liệu triệu ngƣời dùng 16 Bảng Thời gian thực để duyệt đồ thị Neo4j tập liệu triệu ngƣời dùng 17 Bảng Công cụ kỹ thuật để thực truy vấn Cypher 24 Bảng Minh họa đánh giá ngƣời dùng số phim xem 38 Bảng Ma trận đánh giá 40 h Bảng Các liệu thực nghiệm 63 Bảng Kết thực nghiệm tốc độ xử lý 64 Bảng 3 kết thực nghiệm độ xác 65 DANH MỤC CÁC HÌNH VẼ Hình 1 Ví dụ đơn đồ thị Hình Ví dụ đa đồ thị Hình Đồ thị đƣợc gắn nhãn đại diện cho cặp đỉnh Hình Đồ thị có nhãn đại diện cho hàm Hình Đồ thị gắn nhãn tập hợp quan hệ Hình Đồ thị thuộc t nh biểu diễn thông tin thƣ mục công bố khoa học Hình Đồ thị thuộc tính (Thomas Frisendal) Hình Ngƣời dùng bạn bè họ đƣợc biểu diễn dƣới dạng cấu trúc liệu đồ thị 10 Hình Đồ thị SQL bảng biểu diễn liệu ngƣời dùng bạn bè 11 h Hình 10 Duyệt liệu đồ thị mạng xã hội 14 Hình 11 Tổng quan CSDL đồ thị 29 Hình Lƣợc đồ sở liệu đồ thị cho hệ gợi ý 48 MỞ ĐẦU Lý chọn đề tài Ngày hệ gợi ý (Recommender Systems - RS) đƣợc ứng dụng rộng rãi hệ thống kinh doanh, dịch vụ đem lại lợi nhuận cao so với trƣớc ứng dụng Trong hệ gợi ý phải lƣu trữ liệu để phục vụ cho tính tốn học máy để đƣa gợi ý cho ngƣời dùng Đa số hệ thống lƣu liệu dƣới dạng bảng, dạng bán cấu trúc liệu phi cấu trúc nên việc cập nhật tính tốn lại cập nhật khó khăn Ch nh lý này, luận văn đề xuất sử dụng sở liệu đồ thị để lƣu liệu cho hệ gợi ý sở liệu đồ thị hỗ trợ tốt cho lƣu trữ thao tác với mối quan hệ, mà đặc trƣng liệu hệ gợi ý: Mối quan hệ ngƣời dùng với sản phẩm, mối quan hệ ngƣời dùng với ngƣời dùng, mối quan hệ sản phẩm với sản phẩm v n vụ n h Mụ đ n u Sử dụng sở liệu đồ thị mà cụ thể Neo4J để lƣu trữ liệu hệ gợi ý xây dựng chức t nh tốn hệ gợi ý cơng cụ lập trình Neo4j Thực nghiệm chức hệ gợi ý liệu MovieLens để đƣa gợi ý phim cho ngƣời dùng dựa vào phim họ đánh giá ngƣời dùng khác đánh giá Cách tiếp cận thực nghiệm dùng phƣơng pháp lọc cộng tác dựa thuật toán láng giềng Đối tƣợng phạm vi nghiên c u - Cơ sở liệu đồ thị Neo4j - Ngôn ngữ lập trình Python - Hệ gợi ý sử dụng phƣơng pháp lọc cộng tác dựa láng giềng - Dữ liệu thực nghiệm: MovieLens (https://grouplens.org/datasets/movielens/)