Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
1,06 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN CUỐI KỲ Môn học: Đồ án – SE121.M11 ĐỀ TÀI: TÌM HIỂU KHUYẾN NGHỊ NỘI DUNG DỰA TRÊN MÁY HỌC Giảng viên hướng dẫn: ThS Mai Trọng Khang Sinh viên thực hiện: 19521592 Nguyễn Đức Hướng 19520117 Ngơ Dương Kha TP Hồ Chí Minh, tháng 12 năm 2021 LỜI CẢM ƠN Đầu tiên, nhóm xin gửi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM quý Thầy Cô khoa Cơng nghệ phần mềm giúp cho em có kiến thức làm tảng để thực đề tài Đặc biệt, em xin gửi lời cảm ơn lòng biết ơn sâu sắc tới thầy Mai Trọng Khang Thầy trực tiếp hướng dẫn tận tình, sửa chữa đóng góp nhiều ý kiến q báu giúp em hồn thành tốt báo cáo mơn học Trong thời gian học đề tài, em vận dụng kiến thức tảng tích lũy đồng thời kết hợp với việc học hỏi nghiên cứu kiến thức Từ đó, em vận dụng tối đa thu thập để hoàn thành báo cáo đồ án tốt Tuy nhiên, trình thực hiện, em khơng tránh khỏi thiếu sót Chính vậy, em mong nhận góp ý từ phía Thầy nhằm hồn thiện kiến thức mà em học tập hành trang để em thực tiếp đề tài khác tương lai Xin chân thành cảm ơn q Thầy Cơ! Nhóm sinh viên thực MỤC LỤC Chương Tổng quan 1.1 Giới thiệu chung 1.2 Phạm vi nghiên cứu 1.3 Mục tiêu hướng đến Chương Cơ sở lý thuyết 2.1 Khái niệm máy học 2.2 Khái niệm hệ thống khuyến nghị 2.3 Các loại hệ thống khuyến nghị phổ biến Chương Thuật toán lọc cộng tác 3.1 User-based 3.1.1 Chuẩn bị liệu 3.1.2 Chuẩn hóa liệu 3.1.3 Tính tốn độ tương đồng 3.1.4 Xác định “hàng xóm” 3.1.5 Dự đoán mức độ quan tâm 3.2 Item-based 3.2.1 Lợi item-based CF so với user-based CF 3.2.2 Thực Chương Triển khai hệ thống 12 4.1 Dataset 12 4.2 Hiện thực thuật toán 12 4.2.1 Popular-based 13 4.2.2 Content-based 14 4.2.3 Collaborative Filtering 16 Chương Kết luận 21 5.1 Kết 21 5.2 Nhận xét 21 5.3 Hướng phát triển 21 Chương Tài liệu tham khảo 22 CHƯƠNG TỔNG QUAN 1.1 Giới thiệu chung Ngày nay, hầu hết trang web thương mại có hệ thống khuyến nghị để gợi ý nội dung phù hợp cho người dùng Ví dụ danh sách sản phẩm phù hợp với hàng mà người dùng lựa chọn ưu tiên đề xuất cho họ mua sắm Amazon Hay xem video clip Youtube, hệ thống khuyến nghị sử dụng hệ thống đề xuất số video có liên quan cho người dùng dựa vào tìm hiểu hành vi người dùng trước Vì vậy, nói hệ thống khuyến nghị thay đổi sâu sắc cách thu nhận thông tin Hệ thống khuyến nghị không làm cho người dùng dễ dàng thuận tiện việc lựa chọn thông tin phù hợp, bên cạnh cịn mang lại tiềm lớn tăng trưởng kinh tế Khi ngày có nhiều người nhận tầm quan trọng sức mạnh hệ thống khuyến nghị, việc khám phá để thiết kế hệ thống khuyến nghị chất lượng cao chủ đề bật cộng đồng thập kỷ qua Nhờ nỗ lực nâng cấp hệ thống khuyến nghị, may mắn thay, ngày nhiều hệ thống khuyến nghị phát triển sử dụng nhiều lĩnh vực khác Khi số lượng hệ thống khuyến nghị ngày nhiều, câu hỏi quan trọng nảy sinh làm để biết hiệu suất chúng để tìm thấy hệ thống phù hợp nhằm áp dụng vào bối cảnh lĩnh vực định Nó thường trường hợp mà lập trình viên cần phải hiểu rõ người dùng liệu, lựa chọn tập hợp thuật toán đề xuất để thực hệ thống khuyến nghị tốt Bởi tầm quan trọng hệ thống khuyến nghị điểm bật việc tuân thủ xem xét số đo lường sâu sắc thử nghiệm đánh giá, đồ án nhằm mục đích tìm hiểu cách hoạt động hệ thống khuyến nghị Từ rút kinh nghiệm để áp dụng vào dự án tương lai 1.2 Phạm vi nghiên cứu Đề tài tập trung nghiên cứu khái niệm máy học, hệ thống khuyến nghị, thuật toán hỗ trợ xây dựng hệ thống khuyến nghị Ngồi ra, đề tài cịn phân tích liệu hệ thống thường sử dụng trang web xem phim, thương mại điện tử để thực hệ thống khuyến nghị phù hợp nhằm áp dụng vào thực tiễn, mang lại trải nghiệm tốt cho người dùng cuối 1.3 Mục tiêu hướng đến - Kiến thức máy học - Hiểu hệ thống khuyến nghị thuật toán hỗ trợ hệ thống khuyến nghị - Xây dựng hệ thống khuyến nghị với liệu thực tế, cho kết khuyến nghị khả quan CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Khái niệm máy học Theo Wikipedia, máy học (Machine Learning) lĩnh vực nhỏ Khoa Học Máy Tính, có khả tự học hỏi dựa liệu đưa vào mà khơng cần phải lập trình cụ thể Hay theo Tom Mitchell, "Một chương trình máy tính CT xem học cách thực thi lớp nhiệm vụ NV thông qua trải nghiệm KN, thang đo lực NL dùng NL ta đo thấy lực thực thi chương trình có tiến sau trải qua KN" (máy học) 2.2 Khái niệm hệ thống khuyến nghị Một hệ thống khuyến nghị (Recommender System - RS) tính tốn cung cấp nội dung phù hợp với người dùng dựa hiểu biết người dùng, nội dung tương tác, phản hồi người dùng với nội dung trước 2.3 Các loại hệ thống khuyến nghị phổ biến - Khuyến nghị dựa độ phổ biến (Popular-based Filtering Recommender): Trong máy học cần mô hình sở để thể đánh giá mơ hình học máy có tốt hay khơng Và khuyến nghị mơ hình sở Loại khuyến nghị đưa sản phẩm có đánh giá cao từ người dùng hệ thống o Ưu điểm: Mơ hình giúp người dùng tiếp cận đến hệ thống, sau thu thập liệu người dùng tạo điều kiện triển khai mơ hình khuyến nghị phức tạp hiệu o Nhược điểm: Đây mơ hình dùng chung cho tất người dùng nên dẫn đến kết khuyến nghị không cá nhân hóa - Khuyến nghị dựa lọc nội dung (Content-based Filtering Recommender): Như tên gọi loại khuyến nghị dựa vào tương đồng thông tin chung nội dung người dùng để đưa gợi ý phù hợp cho người dùng Lấy ví dụ, người dùng A thường xuyên đánh giá tốt phim thuộc thể loại Viễn tưởng, hệ thống khuyến nghị gợi ý phim khác thuộc thể loại Viễn tưởng cho người dùng A Lấy ví dụ khác, người dùng B thuộc nhóm có mức thu nhập cao, hệ thống khuyến nghị ngân hàng xem người dùng B khách hàng tiềm gói đầu tư hạng sang gợi ý cho họ o Ưu điểm: Dễ dàng vượt qua vấn đề khó khăn sản phẩm - hệ thống chưa có ghi nhận tương tác người dùng nội dung, hệ thống khuyến nghị cung cấp gợi ý hữu ích cho người dùng o Nhược điểm: Mơ hình khơng khuyến nghị sản phẩm mà người dùng không mua không thích trước Khiến người dùng nhàm chán liệu người dùng không đa dạng - Khuyến nghị dựa lọc cộng tác (Collaborative Filtering Recommender): Loại khuyến nghị xác định xu hướng khuôn mẫu tương tác trước người dùng nội dung, gợi ý nội dung tương đồng cho người dùng dựa vào họ tương tác với hệ thống Ý tưởng cốt lõi loại khuyến nghị dựa vào gom nhóm người dùng có chung sở thích Ví dụ với hệ thống khuyến nghị trang tin tức, hệ thống nhận diện người dùng thích thú tin Donald Trump yêu thích tin liên quan đến thuyết âm mưu việc tranh cử Từ đó, có người dùng mà u thích tin Trump người dùng gợi ý tin thuyết âm mưu xoay quanh vấn đề tranh cử o Ưu điểm: Khai thác mối tương quan ẩn tương tác người dùng nội dung, không yêu cầu nhận diện kỹ liệu để phân loại chúng loại khuyến nghị lọc nội dung o Nhược điểm: Gặp khó khăn giai đoạn ban đầu, yêu cầu cần có nguồn tương tác đủ lớn người dùng với nội dung có trước cung cấp gợi ý, đề xuất có ý nghĩa, phù hợp cho người dùng - Bên cạnh có hệ thống khuyến nghị kết hợp hai loại lọc nội dung lọc cộng tác sở hữu ưu điểm tốt hai loại khuyến nghị Tuy nhiên, việc xây dựng hệ thống khuyến nghị đặc biệt khó khăn yêu cầu kỹ thuật mạng nơ-ron Trong đề tài này, dựa vào liệu có sẵn tự thu thập được, bước đầu tiếp cận, tìm hiểu hệ thống khuyến nghị máy học nhóm định tìm hiểu qua hệ thống khuyến nghị dựa độ phổ biến lọc theo nội dung, sau tiếp tục nghiên cứu sâu hệ thống khuyến nghị dựa lọc cộng tác để gợi ý nội dung phù hợp cho người dùng CHƯƠNG THUẬT TỐN LỌC CỘNG TÁC Thuật tốn lọc cộng tác (Collaborative Filtering - CF) giúp đưa hệ thống khuyến nghị (Recommender System - RS) phức tạp hơn, hoạt động hiệu dựa liệu người dùng sản phẩm mà người dùng tương tác trước Có hai phương pháp Neighborhood-based and Model-base Neighborhood-based tiếp cận dựa User-based CF Item-based CF Cả hai tìm kiếm sản phẩm người dùng gần với người dùng cần khuyến nghị 3.1 User-based User-based CF hình thành đề xuất đưa dự đốn cách tìm người dùng có thị hiếu tương tự người dùng cần khuyến nghị 3.1.1 Chuẩn bị liệu Dưới bảng liệu mô ma trận đánh giá sản phẩm người dùng theo thang điểm từ đến Mỗi hàng đại diện cho người dùng gắn nhãn 𝑢0 , 𝑢1 , 𝑢2 … cột viết tắt sản phẩm gắn nhãn 𝑖0 , 𝑖1 , 𝑖2 … Các ô trống bảng cho biết người dùng chưa đánh giá sản phẩm 𝑢0 𝑢1 𝑢2 𝑖0 5 𝑖1 4 𝑖2 𝑖3 𝑖4 𝑢3 2 1 𝑢4 3.1.2 Chuẩn hóa liệu Đầu tiên, tính tốn giá trị trung bình rating user 𝑢𝑗 3.33 3.2 2.67 2.5 Tiếp theo, tiến hành lấy rating trừ giá trị trung bình (các trống điền 0) 𝑖0 𝑢0 𝑢1 𝑢2 𝑢3 𝑢4 1.67 1.8 0.33 0.5 𝑖1 -0.33 0.8 1.33 0 𝑖2 0.8 0 𝑖3 -1.33 -1.2 𝑖4 -2.2 -1.67 -2 -0.5 Những giá trị dương/âm biểu thị việc user thích/khơng thích item Những giá trị tương ứng chưa xác định user có thích item hay khơng 3.1.3 Tính tốn độ tương đồng Ở bước tiến hành tính tốn độ tương đồng user cần khuyến nghị với tất user khác có hệ thống Có nhiều phương pháp tính độ tương đồng nhóm nghiên cứu hai phương pháp phổ biến Cosine Similarity Pearson Correlation 𝑐𝑜𝑠𝑖𝑛𝑒_𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑢1,𝑢2) = cos(𝑢1 , 𝑢2 ) = 𝑢1 𝑇 𝑢2 ‖𝑢1 ‖ ‖𝑢2 ‖ Đây hàm toán học tính góc cosine hai vector làm quen từ cấp Độ tương đồng hai vector số đoạn [-1, 1] Giá trị thể hai vector hoàn toàn giống Hàm số 𝑐𝑜𝑠 góc nghĩa góc hai vector 0, tức vector tích số dương với vector lại Giá trị 𝑐𝑜𝑠 -1 thể hai vector hoàn toàn trái ngược Điều hợp lý, tức hành vi hai user hồn tồn ngược độ tương đồng hai vector thấp 𝑢0 𝑢1 𝑢2 𝑢3 𝑢4 𝑢0 0.61 0.02 -0.44 0.55 𝑢1 0.61 0.75 0.22 0.86 𝑢2 0.02 0.75 0.55 0.65 𝑢3 -0.44 0.22 0.55 0.5 𝑢4 0.55 0.86 0.65 0.5 3.1.4 Xác định “hàng xóm” Khi điểm tương đồng tính tốn, bước hình thành vùng lân cận Nói cách khác, người dùng tương tự hàng đầu cần chọn làm vùng lân cận người dùng hoạt động Có nhiều cách tiếp cận khác để hình thành vùng lân cận Một cách thường sử dụng k nearest-neighbor (KNN), tạo thành vùng lân cận có kích thước k cách chọn k người dùng có độ tương đồng cao với người dùng hoạt động Kích thước vùng lân cận k thường chọn thực nghiệm Nó phải chọn cẩn thận độ xác bị giảm (ảnh hưởng hàng xóm bị lỗng) chọn k lớn, độ xác (người dùng khơng có đủ hàng xóm thân thiết) k nhỏ chọn 3.1.5 Dự đoán mức độ quan tâm Sau hình thành vùng lân cận, việc dự đốn mức độ quan tâm user item tính cách lấy trung bình có trọng số ratings chuẩn hóa cho item từ người hàng xóm user Cơng thức phổ biến sử dụng để dự đoán ratings 𝑢 cho 𝑖: 𝑦̂𝑖,𝑢 = ∑𝑢𝑗∈𝒩(𝑢,𝑗) 𝑦𝑖,𝑢 𝑠𝑖𝑚(𝑢, 𝑢𝑗 ) 𝑗 ∑𝑢𝑗 ∈𝒩(𝑢,𝑗)|𝑠𝑖𝑚(𝑢, 𝑢𝑗 )| 𝒩(𝑢, 𝑗) tập hợp 𝑘 user hàng xóm (tức có độ tương đồng cao nhất) 𝑢 mà đánh giá 𝑖 Chọn 𝑘 = để thực dự đoán mức độ quan tâm 𝑢3 dành cho 𝑖1 Xác định user đánh giá 𝑖1 𝑢0 , 𝑢1 , 𝑢2 Xác định điểm tương đồng 𝑢3 nhận -0,44, 0.22, 0.55 Mà 𝑘 = nên lấy hai giá trị 0.22 0.55 tương ứng 𝑢1 𝑢2 Xác định điểm đánh giá chuẩn hóa 𝑢1 , 𝑢2 cho 𝑖1 0.8 1.33 Dự đoán mức độ quan tâm 𝑦̂𝑖,𝑢 = 0.22 × 0.8 + 0.55 × 1.33 ≈ 1.18 0.22 + 0.55 𝑢0 𝑢1 𝑢2 𝑢3 𝑢4 𝑖0 1.67 1.8 0.33 0.5 𝑖1 -0.33 0.8 1.33 1.18 𝑖2 0.8 0 𝑖3 -1.33 -1.2 𝑖4 -2.2 -1.67 -2 -0.5 3.2 Item-based Item-based CF hình thành mối quan hệ item từ đưa khuyến nghị 3.2.1 Lợi item-based CF so với user-based CF Trên thực tế, việc sử dụng thuật toán user-based CF trở nên khó khăn số lượng user lớn, kéo theo ma trận tương quan trở nên khổng lồ việc thực khơng khả thi Khó khăn thứ hai việc user thường lười rating, user thay đổi rating rating cho sản phẩm dẫn đến việc trung bình cộng rating chuẩn hóa vector bị thay đổi nhiều, phải tính tốn lại ma trận tương quan Thuật tốn item-based CF đời giải hai nhược điểm thuật toán userbased CF giúp tiết kiệm nhớ thời gian thực 3.2.2 Thực Theo mặt toán học, thuật toán item-based CF việc thực thuật toán user-based CF cách chuyển vị ma trận liệu ban đầu Sau có kết cuối thực chuyển vị thêm lần kết 𝑢0 𝑢1 𝑢2 𝑖0 5 𝑖1 4 𝑖2 𝑖3 𝑖4 𝑢3 2 1 Tính tốn trung bình cộng 𝑖𝑗 𝑢4 3.67 2.67 Tiếp theo, tiến hành lấy rating trừ cho giá trị trung bình (các trống điền 0) 𝑢0 𝑢1 𝑢2 𝑢3 𝑢4 𝑖0 1 -1 -1 𝑖1 -0.67 0.33 0.33 0 𝑖2 -1 𝑖3 -0.67 -0.67 1.33 𝑖4 0 -1 𝑖0 𝑖1 𝑖2 𝑖3 𝑖4 𝑖0 0.33 0.71 -0.65 -0.55 𝑖1 0.33 0.5 -0.12 -0.73 𝑖2 0.71 0.5 -0.45 -0.64 𝑖3 -0.65 -0.12 -0.45 -0.15 𝑖4 -0.55 -0.73 -0.64 -0.15 𝑢3 𝑢4 Tính tốn độ tương đồng Tiến hành dự đốn điểm 𝑖1 dành cho 𝑢3 𝑢0 𝑢1 𝑢2 10 𝑖0 1 -1 -1 𝑖1 -0.67 0.33 0.33 -1.06 𝑖2 -1 𝑖3 -0.67 -0.67 1.33 𝑖4 0 -1 11 CHƯƠNG TRIỂN KHAI HỆ THỐNG 4.1 Dataset - Dữ liệu MovieLens lấy từ https://grouplens.org/datasets/movielens/ - Dữ liệu gồm có bảng liệu: o Movie: ID phim, tên phim, thể loại (ngăn cách ký tự “|”) o Rating: ID người dùng, ID phim, điểm đánh giá 4.2 Hiện thực thuật toán Ở phần đề cập đến ưu điểm nhược điểm hai thuật toán đề xuất dựa độ phổ biến nội dung (Popular-based, Content-based) nên phần thực hai thuật tốn để quan sát kết cách trực quan 12 4.2.1 Popular-based - Hàm tính điểm phim theo IMDB (𝑊𝑅) = (𝑣/(𝑣 + 𝑚)) ∙ 𝑅 + (𝑚/(𝑣 + 𝑚)) ∙ 𝐶 𝑅: average rating for the movie (mean) 𝑣: number of votes for each movie 𝑚: minimum votes required to be listed in the Top 50 𝐶: the mean vote across the whole dataset - Tính tốn điểm phổ biến phim - Kết quả: 13 - Nhược điểm cách danh sách khơng cá nhân hóa Tất người dùng khuyến nghị giống - Tuy nhiên thuật toán giúp đề xuất cho người dùng truy cập vào hệ thống Từ thu thập liệu người dùng để triển khai thuật toán khuyến nghị khác 4.2.2 Content-based - Xử lý liệu - Ta thu kết ma trận item thể toại, giá trị biểu thị phim thuộc thể loại đó, giá trị khơng biểu thị phim khơng thuộc thể loại - Thực tính tốn độ tương đồng - Sắp xếp giảm dần mảng vừa có để lấy top item 14 - Thực hàm với item_id = 1, top_k = 25 - Kết 15 4.2.3 Collaborative Filtering 4.2.3.1 User-based - Đầu tiên chuẩn hóa liệu theo bước giải thích - Tiến hành giảm kích thước liệu cách lọc số lượng user rating 10 số lượng item rating 50 - Chuyển liệu sang ma trận thưa thớt, áp dụng K-Nearest Neighbors (KNN) với thuật toán cosine similarity 16 - Hàm get_movie_recommendation in item tương tự dựa vào movie_name cung cấp - Test với movie_name Iron Man 17 - Test với movie_name Toy Story 4.2.3.2 Item-based - Thực chuẩn hóa liệu giảm kích thước data train phần user-based 18 - Kết 19 20 CHƯƠNG KẾT LUẬN 5.1 Kết Source code: ngoduongkha/Recommendation-System (github.com) 5.2 Nhận xét Đồ án đạt mục tiêu ban đầu nhóm đề Xây dựng hoàn chỉnh hệ thống khuyến nghị dựa độ phổ biến, nội dung, mối liên hệ người dùng, sản phẩm với Tuy nhiên, liệu phim mà nhóm thực đồ án cịn nhỏ cũ, khơng cập thật theo xu hướng phim Dẫn đến việc hệ thống trở nên lỗi thời áp dụng vào thực tế 5.3 Hướng phát triển Nghiên cứu thêm hệ thống khuyến nghị dựa thư viện mã nguồn mở TensorFlow Áp dụng liệu thuộc lĩnh vực khác Nhóm dự định triển khai hệ thống khuyến nghị xây dựng lên trang web thương mại điện tử cụ thể để thử nghiệm đánh giá mức độ hiệu hệ thống ghi nhận trải nghiệm thực tế mà hệ thống khuyến nghị đem lại cho người dùng nhằm hiểu người dùng liệu thu thập cho hệ thống, nhằm giúp hệ thống phát triển tốt Nghiên cứu kết hợp hai phương pháp lọc cộng tác lọc nội dung để có điểm tốt từ hai loại khuyến nghị nhằm đa dạng hóa nội dung gợi ý hữu ích cho người dùng, giúp người dùng có thêm nhiều lựa chọn phù hợp dù trang web vừa vào hoạt động chưa có nhiều thơng tin tương tác từ người dùng hay có nguồn liệu tương tác lớn hệ thống hoạt động lâu dài 21 CHƯƠNG TÀI LIỆU THAM KHẢO Neighborhood-Based Collaborative Filtering – Machine Learning Đăng tại: Machine Learning (machinelearningcoban.com) A Content-Based Recommender for E-Commerce Web Store Đăng tại: A ContentBased Recommender for E-Commerce Web Store | by Tan Pengshi Alvin | Towards Data Science Machine learning gì? – Wikipedia Đăng tại: Học máy – Wikipedia tiếng Việt Định nghĩa hệ thống khuyến nghị Tại: Page 13 - Practical Recommender Systems by Kim Falk – 2019 Dataset - MovieLens | GroupLens 22 ... thống khuyến nghị Một hệ thống khuyến nghị (Recommender System - RS) tính tốn cung cấp nội dung phù hợp với người dùng dựa hiểu biết người dùng, nội dung tương tác, phản hồi người dùng với nội dung. .. tiêu hướng đến - Kiến thức máy học - Hiểu hệ thống khuyến nghị thuật toán hỗ trợ hệ thống khuyến nghị - Xây dựng hệ thống khuyến nghị với liệu thực tế, cho kết khuyến nghị khả quan CHƯƠNG CƠ SỞ... thống khuyến nghị đặc biệt khó khăn yêu cầu kỹ thuật mạng nơ-ron Trong đề tài này, dựa vào liệu có sẵn tự thu thập được, bước đầu tiếp cận, tìm hiểu hệ thống khuyến nghị máy học nhóm định tìm hiểu