SKKN nghiên cứu về hệ thống khuyến nghị và ứng dụng trong bài toán gợi ý bộ phim liên quan

43 33 0
SKKN nghiên cứu về hệ thống khuyến nghị và ứng dụng trong bài toán gợi ý bộ phim liên quan

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC PHẦN MỞ ĐẦU Chương TỔNG QUAN VỀ HỆ THỐNG KHUYẾN NGHỊ 1.1 Hệ thống khuyến nghị 1.2 Cách thức hoạt động hệ thống khuyến nghị 1.3 Các chức hệ thống khuyến nghị 1.4 Các phương pháp khai thác liệu sử dụng .9 1.4.1 Khuyến nghị dựa nội dung (Content - Based Recommendation System) 10 1.4.2 Khuyến nghị lọc cộng tác để đánh giá tương quan (Collaborative Filtering Recomnendation System) 10 1.4.3 Kết hợp phương pháp (Hybrid): .12 1.5 Đánh giá phương pháp .13 CHƯƠNG 15 PHƯƠNG PHÁP LỌC CỘNG TÁC 15 2.1 Lọc cộng tác dựa sản phẩm (Item-based Collaborative Filtering) 15 2.2 Các thuật tốn tính độ tương tự 17 2.2.1 Độ tương tự Cosine (Cosine-based Similarity) .18 2.2.2 Độ tương tự dựa theo khoảng cách Euclidean điều chỉnh (Adjusted Euclidean Distance similarity) 19 2.2.3 Độ tương tự tương quan (correlation-based similarity) 21 2.2.4 Độ tương tự cosine điều chỉnh (Adjusted Cosine similarity) 22 2.3 Tính tốn dự đốn gợi ý 24 2.3.1 Cơng thức dự dốn dựa trung bình đánh giá sản phẩm lân cận 24 2.3.2 Cơng thức dự đốn dựa tổng trọng số (Weighted Sum) 25 2.3.3 Cơng thức dự đốn dựa tổng trọng số với đánh giá trung bình người dùng .26 2.3.4 Cơng thức dự đốn dựa tổng trọng số với trung bình đánh giá lên sản phẩm 27 2.4 Đánh giá yếu tố ảnh hưởng đến độ xác kết gợi ý 28 2.4.1 Đánh giá chất lượng hệ thống gợi ý 28 2.4.2 Các yếu tố ảnh hưởng đến độ xác gợi ý 29 CHƯƠNG 31 HỆ THỐNG GỢI Ý BỘ PHIM LIÊN QUAN 31 3.1 Dữ liệu thử nghiệm phương pháp đánh giá 31 3.1.1 Mô tả liệu 31 3.1.2 Phương pháp đánh giá chất lượng hệ thống gợi ý 31 3.2 Cài đặt thuật toán 32 3.2.1 Cài đặt thuật tốn tính độ tương tự 32 3.2.2 Cài đặt thuật toán dự đoán gợi ý 35 3.3 Kết thử nghiệm 39 3.3.1 Thử nghiệm gợi ý với số lượng lân cận khác nhau: 39 3.3.2 Thử nghiệm gợi ý với độ tương tự khác 40 3.3.3 Thử nghiệm gợi ý với cơng thức dự đốn: 41 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 43 Những kết đạt mặt hạn chế 43 Hướng phát triển đề tài 43 TÀI LIỆU THAM KHẢO 44 PHẦN MỞ ĐẦU Lý chọn đề tài Người dùng hệ thống thông tin, trang thương mại điện tử, thường gặp khó khăn việc tìm kiếm thông tin cần thiết phù hợp, việc chọn mua sản phẩm phù hợp, việc lên kế hoạch cho chuyến du lịch; người sử dụng có nhiều lựa chọn, khơng có đủ thời gian kiến thức để tự đánh giá lựa chọn đưa định hợp lý Bạn chọn nghe hát hàng ngàn hát cung cấp trang web nghe nhạc, hay xem video số hàng trăm triệu video tải lên Youtube Bạn tìm trợ giúp với cơng cụ tìm kiếm với từ khóa cụ thể Nhưng với trường hợp, bạn rõ ưu tiên mình, cơng cụ tìm kiếm khó phát huy tác dụng, lúc bạn cần đến giúp đỡ hệ thống khuyến nghị Các hệ thống khuyến nghị (Recommender System) công cụ hỗ trợ định, nhằm mục đích cung cấp cho người sử dụng gợi ý thông tin, sản phẩm, dịch vụ phù hợp với yêu cầu sở thích riêng người tình u cầu cụ thể Với trợ giúp hệ thống khuyến nghị, cịn tìm hiểu sở thích chia sẻ cho cộng đồng Hoạt động hệ thống khuyến nghị hiểu đơn giản trình tìm kiếm hoạt động người dùng tương tự nghe nhạc, đánh giá phim, hay đọc tin tức Những đề xuất hệ thống khuyến nghị đưa giúp người dùng lựa chọn nội dung đáng quan tâm tiếp theo, kết đề xuất đơi gây bất ngờ ngồi mong đợi người dùng Vai trò quan trọng hệ thống khuyến nghị ngày thể rõ, trở thành cơng cụ hữu hiệu đối phó với vấn đề tải thông tin Tôi chọn “Nghiên cứu về hệ thống khuyến nghị ứng dụng toán gợi ý phim liên quan” làm đề tài Sáng kiến kinh nghiệm 2 Mục đích nghiên cứu Mục tiêu đặt luận văn đề tài là: Tìm hiểu tổng quan hệ thống khuyến nghị, phương pháp sử dụng hệ thống khuyến nghị ứng dụng toán gợi ý phim liên quan Mục tiêu cụ thể tìm hiểu phương pháp lọc cộng tác dựa sản phẩm, tìm hiểu thuật tốn tính độ tương tự dự đoán, đánh giá so sánh chất lượng khuyến nghị thuật toán Đối tượng phạm vi nghiên cứu Nghiên cứu phương pháp tính độ tương tự, dự đốn hệ thống khuyến nghị lọc cộng tác dựa sản phẩm (item) với tập liệu phim hệ thống Group Lens Phương pháp nghiên cứu Nghiên cứu lý thuyết, phân tích q trình thực hiện, mơ phỏng, cài đặt thuật toán, so sánh đánh giá rút kết luận từ kết thu Chương TỔNG QUAN VỀ HỆ THỐNG KHUYẾN NGHỊ 1.1 Hệ thống khuyến nghị Hệ thống khuyến nghị (Recommender Systems – RS) ứng dụng thành cơng dự đốn sở thích/thói quen người dùng dựa vào sở thích/thói quen họ khứ RS ứng dụng nhiều lĩnh vực khác thương mại điện tử (hỗ trợ bán hàng trực tuyến), giải trí (khuyến nghị phim ảnh, hát, ), giáo dục đào tạo (khuyến nghị nguồn tài nguyên học tập, nghiên cứu, ) Chính khả ứng dụng rộng rãi nó, RS mở nhiều tiềm nghiên cứu xây dựng hệ thống thực tế, đặc biệt hệ hỗ trợ người dùng định Trong RS, thông thường người ta quan tâm đến ba thơng tin người dùng (user), mục tin (item, item sản phẩm, phim, hát, báo, tùy hệ thống), phản hồi (feedback) người dùng mục tin (thường xếp hạng/đánh giá – rating biểu diễn mức độ thích/quan tâm họ) Các thơng tin biểu diễn thơng qua ma trận Hình 1.1 Ở đó, dịng user, cột item, ô giá trị phản hồi (ví dụ, xếp hạng) biểu diễn “mức độ thích” user item tương ứng Các có giá trị item mà user xếp hạng khứ Những ô trống item chưa xếp hạng (điều đáng lưu ý user xếp hạng cho vài item khứ, có nhiều trống ma trận – gọi ma trận thưa – sparse matrix) [7] Hình 1.1 Ma trận biểu diễn liệu RS (user-item-rating matrix) Nhiệm vụ RS dựa vào có giá trị ma trận (dữ liệu thu từ khứ), thơng qua mơ hình xây dựng, RS dự đốn cịn trống (của user hành), sau xếp kết dự đốn (ví dụ, từ cao xuống thấp) chọn Top-N items theo thứ tự, từ gợi ý chúng cho người dùng Theo Adomavicius Tuzhilin [2], hầu hết trường hợp, toán khuyến nghị coi toán ước lượng đánh giá (rating) sản phẩm (phim, cd, sách, nhà hàng,…) chưa người dùng xem xét Việc ước lượng thường dựa đánh giá có người dùng người dùng khác Những sản phẩm có hạng cao dùng để khuyến nghị Một cách hình thức: - Gọi U tập hợp n người dùng (user), |U| = n, u người dùng cụ thể (u  U) - Gọi I tập hợp m mục thông tin (item), |I| = m, i mục thông tin cụ thể (i  I) - Gọi R tập hợp giá trị phản hồi người dùng (các phản hồi thường ‘sở thích’ (preference) người dùng) rui  R (R   ) xếp hạng người dùng u mục thơng tin i - Gọi Dtrain  U × I × R tập liệu huấn luyện - Gọi Dtest  U × I × R tập liệu kiểm thử - Gọi r: U × I  R (u, i) ↦ rui Mục tiêu RS tìm hàm rˆ : U × I   Sao cho hàm  (r, rˆ ) thỏa mãn điều kiện Ví dụ,  hàm ước lượng độ xác cần phải tối đa hóa, cịn  hàm để đo độ lỗi Root Mean Squared Error cần phải tối tiểu (1.1) 1.2 Cách thức hoạt động hệ thống khuyến nghị Nếu thấy trình khuyến nghị hộp đen, thể hình 1.2, xác định hai nguồn thông tin cần thiết: user profile – thông tin người dùng, item data – thông tin sản phẩm đầu vào cho q trình khuyến nghị Các thơng tin lưu trữ theo liệu có cấu trúc, rút từ nguồn liệu phi cấu trúc: website liên quan, hành vi mua sắm… Thông tin sản phẩm, dịch vụ nhiều dạng khác nhau: siêu liệu (metadata), thơng tin đặc tính sản phẩm, sản phẩm với trường hợp liệu điện tử Trong trường hợp sản phẩm âm (audio), video, thông tin mà hệ khuyến nghị cần lưu trữ thực có kích thước lớn, với nhiều chiều Kết đầu hệ khuyến nghị thể hình đây, tập khuyến nghị cho người sử dụng Các đề xuất phụ thuộc vào phương pháp hệ khuyến nghị, cụ thể tập danh sách sản phẩm, thơng tin vắn tắt, hình chụp… Hình 1.2: Thông tin người dùng sản phẩm đầu vào Quá trình hoạt động thể chi tiết hình 1.3, bao gồm bước sau: tập hợp thơng tin, lựa chọn, chuyển đổi, cấu trúc hóa thơng tin, biểu diễn thông tin Tất bước trình bày hình 1.3 mơ tả cụ thể bước: - Tập hợp thông tin (Information Recollection): thông tin lưu trữ không thực hệ khuyến nghị, đóng vai trị quang trọng Nó bao gồm thơng tin cá nhân người sử dụng, lịch sử giao dịch, thông tin ưu tiên người dùng (user preference), thơng tin sản phẩm metadata, đặc tính sản phẩm Bước đóng vai trị quan trọng, sở cho tồn q trình hệ gợi ý thực dự đoán đưa gợi ý cho người dùng Nếu thông tin thu thập không đầy đủ, hay mâu thuẫn; hệ thống khuyến nghị khơng thể thực chức dự đốn, đưa đề xuất Vì lí này, cần đặc biệt lưu ý q trình thu thập thơng tin phản ánh sở thích người dùng, thơng tin sản phẩm, dịch vụ - Lựa chọn thông tin (Selection): Bước lựa chọn bao gồm việc xác định thông tin liên quan trực tiếp đến q trình xử lí, dự đốn Cách lựa chọn tập thơng tin phu thuộc chặt chẽ phương pháp tiếp cận hệ thống Từ tập thông tin lựa chọn, giúp xác định độ tương quan hai sản phẩm bất kì, hai người dùng - Chuyển đổi thông tin (Transformation): mục tiêu bước chuyển đổi thực biến đổi thơng tin, xây dựng mơ hình, hàm từ liệu xử lí hai bước đầu, biểu diễn thông tin dạng quy định hệ khuyến nghị, thực dự đoán - Cấu trúc thông tin (Structuring): Cấu trúc thông tin có liên quan đến việc cấu trúc, tổ chức thơng tin mà người dùng duyệt qua thông tin đề xuất đưa Bước bao gồm hoạt động nhóm sản phẩm, xếp hạng sản phẩm, phân loại, liên kết sản phẩm có quan hệ với nhau… - Trình bày thơng tin (Presentation): Bước cuối trình khuyến nghị đưa thông tin khuyến nghị cho người dùng theo tiêu chuẩn: bố trí, định dạng tài liệu, màu sắc, phơng chữ…Đây bước cuối trình khuyến nghị, đưa thông tin đầu cho người dùng cụ thể - Thông tin phản hồi: Thu nhận thông tin phản hồi bước thêm vào, tùy theo hệ thống khuyến nghị Mặc dù bước tùy chọn, giúp ích nhiều việc cải thiện hoạt động, nâng cao kết hệ khuyến nghị Phản hồi người dùng hệ thống ghi nhận với hai dạng tiềm ẩn(implicit), rõ ràng (explicit) Với phản hồi rõ ràng (explicit feedback), người sử dụng cung cấp thông tin thể mức độ ưu tiên với sản phẩm liên quan Các phản hồi tiềm ẩn (implicit feedback) có cách thu thập, phân tích hành vi người dùng: lịch sử duyệt sản phẩm, số lần viếng thăm, thời gian lưu lại Hình 1.3: Đánh giá người dùng về số phim xem 1.3 Các chức hệ thống khuyến nghị Hệ thống khuyến nghị công cụ phần mềm với đề xuất cho người dùng sản phầm, dịch vụ mà họ muốn sử dụng Dưới số chức hệ thống: Tăng số lượng mặt hàng bán cho hệ thống thương mại điện tử: Đây có lẽ chức quan trọng hệ thống khuyến nghị Thay người dùng mua sản phẩm mà họ cần, họ khuyến nghị mua sản phẩm ‘có thể họ quan tâm’ mà thân họ không nhận Hệ thống khuyến nghị tìm ‘mối quan tâm ẩn’ Bằng cách đó, hệ thống khuyến nghị làm gia tăng nhu cầu người dùng gia tăng số lượng mặt hàng bán Tương tự hệ thống phi thương mại (như trang báo), hệ thống khuyến nghị giúp người dùng tiếp cận với nhiều đối tượng Bán mặt hàng đa dạng hệ thống thương mại điện tử: Đây chức quan trọng thứ hai hệ thống khuyến nghị Hầu hết hệ thống thương mại có mặt hàng đa dạng Khi nắm bắt nhu cầu người dùng, hệ thống khuyến nghị dễ dàng mang đến đa dạng lụa chọn hàng hóa Tăng hài lịng người dùng: Vai trị chủ đạo hệ thống khuyến nghị hiểu nhu cầu người dùng, khuyến nghị cho họ thứ họ cần Chính hệ thống khuyến nghị tăng hài lòng người dùng hệ thống Tăng độ tin cậy, độ trung thực người dùng: Một hệ thống khuyến nghị cho người dùng lựa chọn họ hài lịng vể khuyến nghị lòng tin họ hệ thống (nơi mà giúp họ tìm thứ họ thực quan tâm) nâng lên cách đáng kể Đây thật điều thích thú thu hút người dùng Có điểm quan trọng hệ thống khuyến nghị hoạt động dựa xếp hạng thật từ thân người dùng q khứ Do đó, người dùng tin cậy vào hệ thống, đưa đánh giá trung thực cho sản phẩm, hệ thống mang lại cho người dùng nhiều khuyến nghị xác hơn, phù hợp với nhu cầu, sở thích họ [7] 1.4 Các phương pháp khai thác liệu sử dụng Có nhiều cách để dự đoán, ước lượng hạng/điểm cho sản phẩm sử dụng học máy, lí thuyết xấp sỉ, thuật toán dựa kinh nghiệm … Theo [2], hệ thống khuyến nghị thường phân thành ba loại: 1.4.1 Khuyến nghị dựa nội dung (Content - Based Recommendation System) Khuyến nghị dựa nội dung dựa sẵn có mơ tả đối tượng Phương pháp gợi ý dựa nội dung, dựa độ phù hợp r (u, i) sản phẩm i với người dùng u đánh giá dựa độ phù hợp r (u, i’), i’ ϵ I tương tự i Ví dụ, để gợi ý phim cho người dùng u, hệ thống gợi ý tìm đặc điểm phim u đánh giá cao (như diễn viên, đạo diễn…); sau phim tương đồng với sở thích u giới thiệu Hướng tiếp cận dựa nội dung bắt nguồn từ nghiên cứu thu thập thông tin (IR-information retrieval) lọc thơng tin (IF - information filtering) Do đó, nhiều hệ thống dựa nội dung tập trung vào gợi ý đối tượng chứa liệu text văn bản, tin tức, website… Những tiến so với hướng tiếp cận cũ IR việc sử dụng hồ sơ người dùng (chứa thông tin sở thích, nhu cầu…) Hồ sơ xây dựng dựa thông tin người dùng cung cấp trực tiếp (khi trả lời khảo sát) gián tiếp (do khai phá thông tin từ giao dịch người dùng) Khuyến nghị dựa nội dung có ưu điểm: Đầu tiên, khơng u cầu số lượng người sử dụng lớn để đạt độ xác đề nghị hợp lý Ngoài ra, mặt hàng khuyến nghị dựa thuộc tính có sẵn Tuy nhiên, nhược điểm khuyến nghị dựa nội dung thông tin mô tả đối tượng có chất lượng bị lỗi Trong số trường hợp, mô tả nội dung khó để so sánh rút khuyến nghị, chẳng hạn so sánh nội dung file video, audio Việc phân tích nội dung đối tượng sản phẩm để đưa sản phẩm tương tự nhau, từ đưa khuyến nghị cho người dùng chưa phản ánh sở thích người dùng với sản phẩm 1.4.2 Khuyến nghị lọc cộng tác để đánh giá tương quan (Collaborative Filtering Recomnendation System) Ý tưởng hệ thống dựa vào đánh giá người dùng khứ lên sản phẩm, dịch vụ để dự đoán đánh giá họ lên sản phẩm, dịch vụ mà họ chưa đánh giá nghèo nàn Một phương pháp vượt qua tính thưa thớt đánh giá sử dụng thông tin cá nhân người dùng tính tốn tương đồng người dùng Hai người dùng xem giống không đánh giá có sở thích phim giống mà chúng phải thuộc đối tượng Chẳng hạn, sử dụng giới tính, tuổi, địa khu vực, giáo dục thông tin công việc người dùng việc gợi ý nhà hàng Sự mở rộng kỹ thuật lọc cộng tác thường gọi “lọc demographic” Một vấn đề trước xây dựng ma trận đánh giá, với sản phẩm đánh giá, người dùng đánh giá sản phẩm, người dùng sản phẩm khơng hữu ích q trình gợi ý Vấn đề cần chọn lọc sản phẩm người dùng để tham gia trình gợi ý Rõ ràng sản phẩm người dùng khơng thể tham gia q trình dự đốn, sản phẩm hay người dùng có đánh giá ngưỡng loại - Ảnh hưởng thuật tốn tính độ tương tự: Để xây dựng ma trận tương tự, giá trị tính tốn theo cơng thức đề xuất công thức khác Các công thức tính tốn khác cho ma trận đánh giá khác nhau, dẫn đến kết gợi ý không đồng Nhiều chuyên gia đánh giá, với thuật tốn có tham gia đánh giá trung bình có kết tốt Chương thí nghiệm kết gợi ý với thuật tốn tính độ tương tự đưa nhận xét độ xác kết gợi ý áp dụng độ tương tự khác - Ảnh hưởng số lượng lân cận tham gia vào dự đoán: Thơng qua q trình tính ma trận tương tự, hệ thống gợi ý sử dụng sản phẩm lân cận với sản phẩm xét để đưa vào dự đoán, số lượng lân cận ảnh hưởng đến chất lượng kết gợi ý Chọn số lượng lân cận dựa vào số lượng lân cận sản phẩm dựa vào giá trị độ đo tương tự Ví dụ: Trong hệ thống gợi ý phim với số phim 1000 phim, cần gợi ý phim, xét 100 phim lân cận với phim xét, xét với phim lân cận có độ tương tự lớn 0.75 Số lượng lân cận tham gia vào dự đốn ảnh hưởng đến q trình đưa dự đoán, nhiều chuyên gia lựa chọn sản phẩm có độ tương tự 0.75 để tham gia vào dự đoán 28 CHƯƠNG HỆ THỐNG GỢI Ý BỘ PHIM LIÊN QUAN 3.1 Dữ liệu thử nghiệm phương pháp đánh giá 3.1.1 Mơ tả liệu Mơ hình đề xuất thử nghiệm liệu MovieLens Đây sở liệu xây dựng nhóm nghiên cứu GroupLens trường đại học Minnesota MovieLans có 943 người dùng, 1682 phim, 100.000 đánh giá, mức đánh giá cho từ đến 5, mức độ thưa thớt đánh giá người dùng tính 1-100000/(943x1682) = 0.9370 Đánh giá người dùng chia thành mức (1, 2, 3, 4, 5), hai mức đánh giá cao thể người thích sản phẩm, mức đánh giá thấp thể người dùng không thích sản phẩm Để hạn chế ảnh hưởng tình trạng liệu thưa thớt, liệu lựa chọn người dùng có đánh giá cho 20 phim Các đặc trưng nội dung phân cụm theo thể loại phim nhóm GroupLens cung cấp Trước tiên, toàn tập người dùng chia thành hai phần, phần Utrain sử dụng làm liệu huấn luyện, phần lại Utest sử dụng để kiểm tra Tập Utrain chứa 80% đánh giá tập Utetst chứa 20% đánh giá Dữ liệu huấn luyện sử dụng để xây dựng mơ hình theo thuật tốn mơ tả Với người dùng u thuộc tập liệu kiểm tra, đánh giá (đã có) người dùng chia làm hai phần Ou Pu Ou coi biết, Pu đánh giá cần dự đốn từ liệu huấn luyện Ou 3.1.2 Phương pháp đánh giá chất lượng hệ thống gợi ý - Sử dụng độ đo MAE (chương 2, mục 2.4.1) để đánh giá chất lượng gợi ý phim áp dụng thuật tốn tính độ tương tự Consine, Adjusted conisine, correlation, Adjusted ƠClit - Sử dụng độ đo xác để đánh giá chất lượng gợi ý phim tương ứng áp dụng thuật tốn tính độ tương tự Cosine, Adjusted cosine, correlation, Adjusted ƠClit - Đánh giá độ xác gợi ý với cơng thực dự đoán 29 - Đánh giá độ đo sai số tuyệt đối dựa vào số lượng lân cận tham gia vào q trình dự đốn dánh giá 3.2 Cài đặt thuật toán Dữ liệu MovieLens lưu file định dạng txt, dòng đánh giá người dùng với sản phẩm theo thứ tự UserID, ItemID, Rating Chương trình dựa vào liệu xây dựng ma trận đánh giá, từ ma trận đánh giá thuật tốn tính độ tương tự để đưa ma trận tương tự, từ ma trận tương tự đề xuất danh sách lân cận để tham gia vào trình dự đốn đánh giá người dùng với sản phẩm 3.2.1 Cài đặt thuật tốn tính độ tương tự - Tính độ tương tự Cosine: // Input: mảng đánh giá sản phẩm // Output: Độ tương tự Cosine sản phẩm public static float TinhDoTuongTuCosine(float a[],float b[]) { float kq=0, ab = 0,a2=0,b2=0; for (int i=0; i< a.length;i++) { if((a[i]!=0) && (b[i]!=0)) { ab = a[i]*b[i] + ab; a2 = a[i]*a[i] + a2; b2 = b[i]*b[i] + b2; } } kq=(float) (ab / (Math.sqrt(a2) * Math.sqrt(b2))); return kq; } 30 - Tính độ tương tự Cosine điều chỉnh (Adjusted Cosine Similarity): // Input: mảng đánh giá sản phẩm // Output: Độ tương tự Cosine điều chỉnh sản phẩm public static float TinhDoTuongTuCosineDieuChinh(float a[],float b[]) { Float tb, kq=0, ab = 0,a2=0,b2=0; for (int i=0; i< a.length;i++) { tb= tbDanhGia(i+1); if((a[i]!=0) && (b[i]!=0)) { ab = (a[i]-tb)*(b[i]-tb) + ab; a2 = (a[i]-tb)*(a[i]-tb)+a2; b2 = (b[i]-tb)*(b[i]-tb)+b2; } } kq=(float) (ab / (Math.sqrt(a2) * Math.sqrt(b2))); return kq; } - Tính độ tương tự Euclidean (Adjusted Euclidean Distance): // Input: mảng đánh giá sản phẩm // Output: Độ tương tự Euclidean sản phẩm public static float DoTuongTuAdjutedEuclidean(float a[],float b[]) { float kq=1, Tongab = 0,dolech=0, Vmax=5, Vmin=1; for (int i=0; i< a.length;i++) 31 { if((a[i]!=0) && (b[i]!=0)) { Vmax=DanhGiaLonNhat(i+1); Vmin=DanhGiaNhoNhat(i+1); Tongab=(a[i]-b[i])*(a[i]-b[i]); dolech = (Vmax-Vmin)*(Vmax-Vmin); } } kq= 1- (float) (Math.sqrt(Tongab) / Math.sqrt(dolech)); return kq; } - Tính độ tương tự tương quan (Correlation-based similarity): public static float DoTuongTuTuongQuan(float a[],float b[]) { float kq=0,tb1,tb2, ab = 0,a2=0,b2=0; tb1=trungbinhR(a); tb2=trungbinhR(b); for (int i=0; i< a.length;i++) { if((a[i]!=0) && (b[i]!=0)) { ab = (a[i]-tb1)*(b[i]-tb2) + ab; a2 = (a[i]-tb1)*(a[i]-tb1)+a2; b2 = (b[i]-tb2)*(b[i]-tb2)+b2; } 32 } kq=(float) (ab / (Math.sqrt(a2) * Math.sqrt(b2))); return kq; } 3.2.2 Cài đặt thuật toán dự đoán gợi ý - Gợi ý dựa đánh giá trung bình: public float DuDoanDanhGiaTrungBinh(int userID,int ItemID) { float dudoan=0, Stuongtu=0, float S=0; int i,N=0; DanhSachItemTuongTu dsItem = MT_DoTuongTu.getDanhSachLanCan(ItemID, nguongLanCan); if (dsItem==null) return 0; ItemSim [] listSim = new ItemSim[dsItem.sophantu]; listSim = dsItem.getdanhsachItem(); for(int j=0; j< listSim.length;j++) { i = listSim[j].ItemID; if ((ItemID!=i)&&(MT_DanhGia.tri[userID][i]!=0)) { S = S + MT_DanhGia.tri[userID][i]; N++; } } dudoan= S/N; 33 return dudoan } - Dự đoán dựa đánh giá tổng trọng số (Weighted Sum) public float DuDoanWeightedSum(int userID, int ItemID) { float dudoan=0; float Stuongtu=0; float S=0; int i; if((MT_DoTuongTu.simi.equals("adjustedcosine"))|| (MT_DoTuongTu.simi.equals("correlation"))) return dudoanWeightedSumAdjusted(userID, ItemID); DanhSachItemTuongTu dsItem = MT_DoTuongTu.getDanhSachLanCan(ItemID, nguongLanCan); if (dsItem==null) return 0; ItemSim [] listSim = new ItemSim[dsItem.sophantu]; listSim = dsItem.getdanhsachItem(); for(int j=0; j< listSim.length;j++) { i = listSim[j].ItemID; if ((ItemID!=i)&&(MT_DanhGia.tri[userID][i]!=0)) { S = S + MT_DanhGia.tri[userID][i]*MT_DoTuongTu.tri[ItemID][i]; Stuongtu = Stuongtu + Math.abs(MT_DoTuongTu.tri[ItemID][i]); 34 } } dudoan= S/Stuongtu; return dudoan } - Dự đoán dựa tổng trọng số với đánh giá trung bình người dùng: public float DuDoanWeightedSumAdjusted(int userID, int ItemID) { float dudoan=0, Stuongtu=0, float S=0; int i; DanhSachItemTuongTu dsItem = MT_DoTuongTu.getDanhSachLanCan(ItemID, nguongLanCan); if (dsItem==null) return 0; ItemSim [] listSim = new ItemSim[dsItem.sophantu]; listSim = dsItem.getdanhsachItem(); for(int j=0; j< listSim.length;j++) { i = listSim[j].ItemID; if ((ItemID!=i)&&(MT_DanhGia.tri[userID][i]!=0)) { S=S+MT_DoTuongTu.tri[ItemID][i]*(MT_DanhGia.tri[userID][i]tbDanhGiaUser(userID)); Stuongtu = Stuongtu + Math.abs(MT_DoTuongTu.tri[ItemID][i]); } 35 } dudoan= tbDanhGiaUser(userID) + S/Stuongtu; return dudoan; } - Dự đoán dựa tổng trọng số với đánh giá trung bình lên sản phẩm: public float DuDoanWeightedSumAdjusted(int userID, int ItemID) { float dudoan=0; float Stuongtu=0; float S=0; int i; DanhSachItemTuongTu dsItem = MT_DoTuongTu.getDanhSachLanCan(ItemID, nguongLanCan); if (dsItem==null) return 0; ItemSim [] listSim = new ItemSim[dsItem.sophantu]; listSim = dsItem.getdanhsachItem(); for(int j=0; j< listSim.length;j++) { i = listSim[j].ItemID; if ((ItemID!=i)&&(MT_DanhGia.tri[userID][i]!=0)) { S=S+MT_DoTuongTu.tri[ItemID][i]*(MT_DanhGia.tri[userID][i]tbDanhGiaUser(userID)); Stuongtu = Stuongtu+ Math.abs(MT_DoTuongTu.tri[ItemID][i]); } } 36 dudoan= tbDanhGiaUser(userID) + S/Stuongtu; return dudoan; } 3.3 Kết thử nghiệm 3.3.1 Thử nghiệm gợi ý với số lượng lân cận khác nhau: + Thuật toán dự đoán: Weighted Sum + Dữ liệu đầu vào: 80.000 đánh giá + Số dự đoán: 20.000 + Sai số độ xác: 0.5 Kết quả: Bảng 3.1: Độ sai số MAE với số lượng lân cận khác MAE Số lân cận Cosine Correlation AdjustedEuclidean Adjusted Cosine 1.1627 1.1683 1.0752 1.0746 0.9300 0.9501 0.8922 0.8726 10 0.8730 0.8903 0.8603 0.8257 50 0.8251 0.8323 0.8313 0.7804 100 0.8371 0.8394 0.8358 0.7773 150 0.8458 0.8465 0.8389 0.7763 200 0.8503 0.8503 0.8407 0.7736 250 0.8522 0.8519 0.8416 0.7724 300 0.8533 0.8528 0.8419 0.7709 350 0.8536 0.8531 0.8420 0.7705 400 0.8538 0.8533 0.8421 0.7704 All 0.8540 0.8535 0.8422 0.7704 37 Số lân cận 1.20 1.00 MAE 0.80 Cosine Correlat ion Adjust edEuclidean Adjust ed Cosine 0.60 0.40 0.20 0.00 50 100 150 200 250 300 350 400 All Hình 3.1: Biểu đồ sai sớ lỗi tụt đới hệ thống gợi ý với số lân cận khác Kết hình 3.1 cho thấy MAE tính tốn dự đốn với số lượng lân cận cao, số lượng lân cân tăng dần đến 50 MAE giảm, số lượng lân cận lớn 50 nhận thấy MAE thay đổi nhỏ số trường hợp làm MAE tăng lên Qua kết nhận thấy số lượng lân cận từ 50100 cho chất lượng dự đoán tốt 3.3.2 Thử nghiệm gợi ý với độ tương tự khác + Số lượng lân cận: 50 + Thuật toán dự đoán: Weighted Sum + Dữ liệu đầu vào: 80.000 đánh giá + Số dự đoán: 20.000 + Sai số độ xác: 0.5 Kết quả: Bảng 3.2: Độ sai sớ MAE với thuật tốn tính độ tương tự khác EuclideanDistanc Độ đo Cosine Correlation e Ajusted Cosine MAE 0.8131 0.8190 0.8206 0.7622 Độ xác 0.3765 0.3740 0.3652 0.4021 38 Hình 3.2: Biểu đồ sai sớ MAE hệ thớng gợi ý với thuật tốn tính độ tương tự Hình 3.3: Biểu đồ độ xác hệ thống tư gợi ý với độ tương tự Kết hình 3.2 3.3 cho thấy với dự đốn áp dụng thuật tốn tính độ tương tự Adjusted Cosine cho độ sai số MAE thấp độ xác cao áp dụng thuật tốn tính tốn độ tương tự khác Kết tương đồng với kết mô báo [1] Kết cho thấy tính tốn độ tương tự, sử dụng tính tốn trung bình đánh giá sản phẩm cho kết gợi ý tốt 3.3.3 Thử nghiệm gợi ý với công thức dự đoán: + Số lượng lân cận: 50 + Dữ liệu đầu vào: 80.000 đánh giá + Số dự đoán: 20.000 + Sai số độ xác: 0.5 Kết dự đốn: 39 Bảng 3.3: Sai sớ MAE hệ thớng gợi ý với thuật tốn dự đốn Cosine Trung bình Đánh Giá WeightedSum WeightedSumAverage Correlation Euclidean MAE ĐCX MAE ĐCX Distance MAE ĐCX 0.810 0.810 0.760 0.369 0.376 0.414 0.856 0.816 0.740 0.366 0.374 0.413 0.820 0.817 0.754 0.359 0.365 0.405 Ajusted Cosine MAE ĐCX 0.779 0.759 0.752 0.386 0.412 0.420 Hình 3.4: Biểu đồ sai sớ MAE hệ thớng gợi ý với thuật tốn dự đốn Hình 3.5: Biểu đồ độ xác hệ thớng gợi ý với thuật tốn dự đốn Kết hình 3.4 3.5 cho thấy thuật tốn dự đốn tổng trọng số với trung bình đánh giá sản phẩm có độ MAE thấp độ xác cao phương pháp lại Kết cho thấy chênh lệch lớn độ sai số độ xác số thuật tốn dự đốn theo phương pháp trung bình đánh giá với các thuật toán dự đoán khác 40 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Những kết đạt mặt hạn chế SKKN tìm hiểu trình gợi ý hệ thống khuyến nghị, vấn đề giải toán gợi ý phim liên quan, mô thử nghiệm phương pháp lọc cộng tác dựa sản phẩm với giải thuật khác nhau, từ đánh giá kết gợi ý thuật toán SKKN đưa yếu tố ảnh hưởng đến chất lượng hệ thống khuyến nghị độ thưa thớt liệu, số lân cận, giải thuật tính độ tương tự phương pháp dự đoán Đề tài dừng lại việc Nghiên cứu hệ thống khuyến nghị ứng dụng khuyến nghị phim liên quan Từ tạo sở để xây dựng tiếp mơ hình ứng dụng hệ thống tự động khuyến nghị lĩnh vực khác với phạm vi quy mô lớn Hướng phát triển đề tài Trong thời gian tới, nghiên cứu sâu hệ thống khuyến nghị ứng dụng lĩnh vực khác thương mại điện tử, giải trí … - Tiếp tục tìm hiểu số thuật tốn liên quan đến hệ thống khuyến nghị - Tiếp tục nghiên cứu số giải thuật tính độ tương tự giải thuật dự đoán - Xây dựng ứng dụng thực tế để áp dụng giải thuật lọc cộng tác vào hệ thống gợi ý sản phẩm dịch vụ cụ thể 41 TÀI LIỆU THAM KHẢO [1] Triệu Vĩnh Viên, Triệu Yến Yến Nguyễn Thái Nghe 2013 Xây dựng hệ thống gợi ý phim dựa mơ hình nhân tớ láng giềng Tạp chí Khoa học Trường Đại học Cần Thơ, Số chuyên đề: Công nghệ Thông tin (2013): 170-179 [2] Nguyễn Hùng Dũng, Nguyễn Thái Nghe 2014 Hệ thống gợi ý sản phẩm bán hàng trực tuyến sử dụng kỹ thuật lọc cộng tác Tạp chí Khoa học Trường Đại học Cần Thơ, số 31a (2014), trang 36-51 ISSN: 1859-2333 [3] Nguyễn Tấn Phong, Nguyễn Thái Nghe 2014 Một giải pháp xây dựng Hệ thống gợi ý hát Trang 149-154, kỷ yếu hội thảo quốc gia lần thứ XVII: Một số vấn đề chọc lọc CNTT&TT (@2014) Nhà xuất Khoa học kỹ thuật ISBN: 978604- 67-0426-3 [4] Nguyen Thai-Nghe 2013 An introduction to factorization technique for building recommendation systems Vol 6/2013, pp 44-53, Journal of Science - University of Da Lat, ISSN 0866-787X [5] Ngơ Hồng Thịnh 2013 Luận văn Thạc sĩ Tìm hiểu phương pháp lọc cộng tác dựa Item 42 ... chọn ? ?Nghiên cứu về hệ thống khuyến nghị ứng dụng toán gợi ý phim liên quan? ?? làm đề tài Sáng kiến kinh nghiệm 2 Mục đích nghiên cứu Mục tiêu đặt luận văn đề tài là: Tìm hiểu tổng quan hệ... gợi ý Chọn số lượng lân cận dựa vào số lượng lân cận sản phẩm dựa vào giá trị độ đo tương tự Ví dụ: Trong hệ thống gợi ý phim với số phim 1000 phim, cần gợi ý phim, xét 100 phim lân cận với phim. .. thống khuyến nghị ứng dụng khuyến nghị phim liên quan Từ tạo sở để xây dựng tiếp mơ hình ứng dụng hệ thống tự động khuyến nghị lĩnh vực khác với phạm vi quy mô lớn Hướng phát triển đề tài Trong

Ngày đăng: 25/05/2021, 12:22

Mục lục

  • PHẦN MỞ ĐẦU

  • Chương 1

  • TỔNG QUAN VỀ HỆ THỐNG KHUYẾN NGHỊ

    • 1.1 Hệ thống khuyến nghị

    • 1.2 Cách thức hoạt động của hệ thống khuyến nghị

    • 1.3 Các chức năng của hệ thống khuyến nghị

    • 1.4 Các phương pháp khai thác dữ liệu được sử dụng

      • 1.4.1 Khuyến nghị dựa trên nội dung (Content - Based Recommendation System)

      • 1.4.2 Khuyến nghị lọc cộng tác để đánh giá tương quan (Collaborative Filtering Recomnendation System)

      • 1.4.3 Kết hợp các phương pháp (Hybrid):

      • 1.5 Đánh giá các phương pháp

      • CHƯƠNG 2

      • PHƯƠNG PHÁP LỌC CỘNG TÁC

        • 2.1 Lọc cộng tác dựa trên sản phẩm (Item-based Collaborative Filtering)

        • 2.2 Các thuật toán tính độ tương tự

          • 2.2.1 Độ tương tự Cosine (Cosine-based Similarity)

          • 2.2.2 Độ tương tự dựa theo khoảng cách Euclidean điều chỉnh (Adjusted Euclidean Distance similarity)

          • 2.2.3 Độ tương tự tương quan (correlation-based similarity)

          • 2.2.4 Độ tương tự cosine điều chỉnh (Adjusted Cosine similarity)

          • 2.3 Tính toán dự đoán và gợi ý

            • 2.3.1 Công thức dự doán dựa trên trung bình đánh giá sản phẩm lân cận

            • 2.3.2 Công thức dự đoán dựa trên tổng trọng số (Weighted Sum)

            • 2.3.3 Công thức dự đoán dựa trên tổng trọng số với đánh giá trung bình của người dùng

            • 2.3.4 Công thức dự đoán dựa trên tổng trọng số với trung bình đánh giá lên sản phẩm

            • 2.4 Đánh giá các yếu tố ảnh hưởng đến độ chính xác kết quả gợi ý

              • 2.4.1 Đánh giá chất lượng của hệ thống gợi ý

Tài liệu cùng người dùng

Tài liệu liên quan