MỞ ĐẦU. Lý do chọn đề tài. Mục đ ch và nhiệm vụ nghi n cứu. Đối tƣợng và phạm vi nghiên cứu.
Phƣơng pháp nghiên cứu. Nội dung nghiên cứu. Cơ sở dữ liệu đồ thị. Khái niệm đồ thị.
Cơ sở dữ liệu đồ thị (Graph Database). Một số ứng dụng của cơ sở dữ liệu đồ thị. Cơ sở dữ liệu đồ thị Neo4j. Giới thiệu chung.
Mô hình dữ liệu. Ngôn ngữ truy vấn Cypher. Python với Neo4j Desktop. Tổng quan về hệ thống gợi ý.
Giới thiệu chung. Ứng dụng của hệ thống gợi ý. Bài toán gợi ý. Một số phƣơng pháp gợi ý.
Phƣơng pháp Gợi ý dựa trên Nội dung (Content-based). Collaborative filtering - CF (lọc cộng tác). Tiểu kết chƣơng 1. XÂY DỰNG HỆ GỢI Ý SỬ DỤNG NEO4J.
Xây dựng cơ sở dữ liệu. Tổ chức dữ liệu Neo4j cho hệ gợi ý đơn giản. Nạp dữ liệu từ csv vào Neo4j. Thuật toán tính dự đoán rating bằng Cosin, Pearson.
Thuật toán sử dụng tƣơng quan Pearson. Thuật toán sử dụng độ tƣơng tự Cosin. Thuật toán gợi ý k-sản phẩm. Các thuật toán đánh giá độ chính xác.
Đánh giá dự đoán xếp hạng sản phẩm. Đánh giá gợi ý sản phẩm. Tiểu kết chƣơng 2. Công cụ thực nghiệm.
Phân tích kết quả thực nghiệm. 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) e DANH MỤC CÁC THUẬT NGỮ, TỪ VIẾT TẮT DIỄN GIẢI KÝ HIỆU TIẾNG ANH TIẾNG VIỆT Recommender System / RS Hệ tƣ vấn/Hệ gợi ý Recommendation System CF 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 căn KNN K-Nearest Neighbor K láng giềng gần nhất SDP Sparsity Data Problem Vấn đề dữ liệu thƣa User-Based k- User-Based k Neareast Phƣơng pháp K láng giềng NN Neighbor gần nhất dựa vào ngƣời dùng Item-Based k- Item-Based k Neareast Phƣơng pháp K láng giềng NN Neighbor gần nhất dựa vào sản phẩm Chỉ những ngƣời dùng hệ U Users thống để tìm kiếm lựa chọn sản phẩm Chỉ những sản phẩm trên hệ I Items thống nhƣ: sản phẩm, phim, ảnh, bản nhạc, trang web, e đoạn văn bản,… Chỉ mức độ đánh giá của một ngƣời dùng với một sản phẩm. Rating có thể có nhiều dạng biểu diễn: nhị phân (thích R Rating hoặc không th ch), hay đánh giá theo mức độ từ 1-5 ―dấu sao‖ đại diện 5 mức độ từ không th ch đến rất th ch… CSDL Database Cơ sở dữ liệu NNLT Programming language Ngôn ngữ lập trình e 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ụ cơ sở dữ liệu MySQL trên tập dữ liệu 1.000 ngƣời dùng. Thời gian thực hiện để duyệt đồ thị bằng Neo4j trên tập dữ liệu 1.000 ngƣời dùng. Thời gian thực thi cho nhiều truy vấn kết hợp sử dụng công cụ cơ sở dữ liệu MySQL trên tập dữ liệu 1 triệu ngƣời dùng. Thời gian thực hiện để duyệt đồ thị bằng Neo4j trên tập dữ liệu 1 triệu ngƣời dùng.
Công cụ và kỹ thuật để thực hiện các truy vấn Cypher. Minh họa đánh giá của ngƣời dùng về 1 số bộ phim đã xem. Ma trận đánh giá. Các bộ dữ liệu thực nghiệm.
Kết quả thực nghiệm về tốc độ xử lý. kết quả thực nghiệm độ chính xác. 65 e DANH MỤC CÁC HÌNH VẼ Hình 1. Đồ thị đƣợc gắn nhãn đại diện cho cặp đỉnh.
Đồ thị có nhãn đại diện cho một hàm. Đồ thị gắn nhãn là tập hợp các quan hệ. Đồ thị thuộc t nh biểu diễn thông tin thƣ mục của các công bố khoa học. Đồ thị thuộc tính (Thomas Frisendal).
Ngƣời dùng và bạn bè của họ đƣợc biểu diễn dƣới dạng cấu trúc dữ liệu đồ thị. Đồ thị SQL của các bảng biểu diễn dữ liệu ngƣời dùng và bạn bè. Duyệt dữ liệu đồ thị mạng xã hội. Tổng quan về CSDL đồ thị.
Lƣợc đồ cơ sở dữ liệu đồ thị cho hệ gợi ý. Lý do chọn đề tài Ngày nay hệ gợi ý (Recommender Systems - RS) đã đƣợc ứng dụng rộng rãi trong các hệ thống kinh doanh, dịch vụ và đem lại lợi nhuận cao hơn so với trƣớc khi ứng dụng. Trong các hệ gợi ý đều phải lƣu trữ dữ liệu để phục vụ cho các tính toán và học máy để đƣa ra các gợi ý cho ngƣời dùng. Đa số các hệ thống đều lƣu dữ liệu dƣới dạng bảng, dạng bán cấu trúc hoặc dữ liệu phi cấu trúc nên việc cập nhật và tính toán lại mỗi khi cập nhật là khó khăn.
Ch nh vì lý do này, luận văn đề xuất sử dụng cơ sở dữ liệu đồ thị để lƣu dữ liệu cho hệ gợi ý vì cơ sở dữ liệu đồ thị hỗ trợ tốt cho lƣu trữ và thao tác với các mối quan hệ, mà đây là đặc trƣng của dữ liệu trong các hệ gợi ý: Mối quan hệ giữa 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ệ giữa sản phẩm với sản phẩm. Mụ đ v n vụ n n u Sử dụng cơ sở dữ liệu đồ thị mà cụ thể là Neo4J để lƣu trữ dữ liệu của các hệ gợi ý và xây dựng các chức năng t nh toán trong hệ gợi ý bằng công cụ lập trình trên Neo4j. Thực nghiệm các chức năng của hệ gợi ý bằng dữ liệu MovieLens để đƣa ra gợi ý các bộ phim cho từng ngƣời dùng dựa vào các phim họ đã đánh giá và những 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 trên thuật toán láng giềng.
Đối tƣợng và phạm vi nghiên c u - Cơ sở dữ 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 trên láng giềng. - Dữ liệu thực nghiệm: MovieLens (https://grouplens.org/datasets/movielens/) e 2 4.
P ƣơn p áp n n u - Phân loại và hệ thống hóa lý thuyết. - Phân tích và tổng hợp lý thuyết. - Điều tra, thu thập dữ liệu. - Thực nghiệm khoa học.
- Phân tích và tổng hợp kết quả thực nghiệm. Nội dung nghiên c u - Tìm hiểu về cơ sở dữ liệu đồ thị và Neo4J - Tìm hiểu về lập trình Python cho Neo4J - Tìm hiểu về hệ gợi ý - Triển khai một số thuật toán lọc cộng tác tr n cơ sở dữ liệu đồ thị. - Thực nghiệm gợi ý phim cho ngƣời dùng trên dữ liệu MovieLens đƣợc lƣu trong Neo4J. TỔNG QUAN Trong chƣơng này, luận văn giới thiệu tổng quan về đồ thị, CSDL đồ thị, CSDL đồ thị Neo4j, ƣu điểm của truy vấn đối với dữ liệu lớn trên CSDL đồ thị so với CSDL quan hệ, ngôn ngữ truy vấn Cypher; hệ gợi ý, các phƣơng pháp tiếp cận phổ biến trong xây dựng hệ gợi ý kèm theo những hạn chế của từng phƣơng pháp.
Tr n cơ sở đó xác định rõ hƣớng nghiên cứu của đề tài. Cơ sở dữ li u đồ thị 1. Khái niệm đồ thị Đồ thị (Graph) là một tập các đối tƣợng cùng với mối quan hệ các đối tƣợng theo từng cặp. Các đối tƣợng đƣợc gọi là các đỉnh, các mối quan hệ đƣợc gọi là các cạnh (hoặc cung).
Đồ thị G đƣợc biểu diễn dƣới dạng tập hợp là một cặp gồm 2 tập hợp G = (V, E). Trong đó: o Tập đỉnh o Tập cạnh *( ) + Đồ thị có hƣớng (Directed Graph) là đồ thị mà mỗi cạnh là cặp đỉnh có thứ tự. Đồ thị vô hƣớng (Undirected Graphs) thì các cạnh là cặp đỉnh không có thứ tự. Mỗi cạnh của đồ thị có thể đƣợc gán trọng số đƣợc gọi là đồ thị có trọng số.
Đơn đồ thị là một đồ thị mà giữa hai đỉnh có nhiều nhất một cạnh. V dụ đơn đồ t ị e 4 Đa đồ thị là đồ thị mà giữa hai đỉnh có nhiều hơn một cạnh. Hai cạnh e1 và e2 đƣợc gọi là cạnh lặp (bội hay song song) nếu chúng cùng tƣơng ứng với một cặp đỉnh. Đồ thị gắn nhãn Các đỉnh hoặc các cạnh của đồ thị có thể đƣợc gắn nhãn bằng số hoặc các ký hiệu khác.
Mặc dù các đỉnh của đồ thị thƣờng đƣợc gắn nhãn với các miền giá trị, nhƣng cũng có thể th m các nhãn khác vào chúng, đại diện cho các giá trị của một hoặc nhiều hàm của các đỉnh. Ví dụ: một đồ thị về các kết nối của các hãng hàng không có thể hiển thị múi giờ của từng sân bay. Khi các cạnh đƣợc gắn nhãn, đồ thị sau đó biểu diễn một quan hệ bậc ba. Trong một đồ thị có nhãn, không có gì lạ khi có nhiều hơn một cạnh từ đỉnh v1 đến đỉnh v2, miễn là chúng có các nhãn khác nhau.
Ví dụ: một đồ thị đƣợc gắn nhãn có thể chứa cả hai cạnh → và →. Đồ thị đƣợc gắn nhãn có thể đƣợc sử dụng cho ba mục đ ch khác nhau. Đầu tiên, một đồ thị đƣợc gắn nhãn có thể đại diện cho một hàm từ các cặp đỉnh đến nhãn. Ví dụ: các đỉnh có thể đại diện cho các sân bay và các nhãn có thể đại diện cho khoảng cách giữa chúng.
Trong trƣờng hợp này, có thể có nhiều nhất một cạnh ở mỗi hƣớng giữa hai đỉnh bất kỳ. Đồ t ị đƣợ ắn n ãn đạ d n o ặp đỉn Thứ hai, một đồ thị có nhãn có thể đại diện cho một hàm trong đó mỗi cạnh ánh xạ nhãn và đỉnh nguồn của nó với đỉnh đ ch của nó. Trong trƣờng hợp này, nhiều nhất một cạnh có thể để lại mỗi đỉnh với một nhãn nhất định, mặc dù một số cạnh (đƣợc dán nhãn khác nhau) có thể nối cùng một cặp đỉnh. Đồ t ị ó n ãn đạ d n o ột Thứ ba, một đồ thị đƣợc gắn nhãn có thể đại diện cho một tập hợp các quan hệ, mà tên của chúng đƣợc đặt bởi các nhãn trên các cạnh.
Ví dụ: cạnh → có nghĩa là (v1,v2) là một yếu tố của mối quan hệ A, và cạnh → có nghĩa là (v2,v3) là một yếu tố của mối quan hệ B. Do đó, đồ thị của các quan hệ thành phần này chỉ đơn giản là đồ thị con mà chúng ta thu e 6 đƣợc bằng cách chỉ xem xét các cạnh đƣợc gắn nhãn tƣơng ứng của đồ thị. Ngƣợc lại, chúng ta có thể chồng các đồ thị của một số quan hệ, miễn là chúng ta dán nhãn các cạnh đúng cách. Đồ t ị ắn n ãn l tập ợp á quan 1.