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

44 34 0
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 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 khơng biết 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 yê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 gây bất ngờ 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 đề q 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 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ự đố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ự đoá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 tố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ọ q 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 q 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ừ q 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 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ự đố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ị 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ự đố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 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 yêu cầu số lượng người sử dụng lớn để đạt độ xác đề nghị hợp lý Ngồ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á Bài toán lọc cộng tác (hay đánh giá độ tương quan) dựa hành vi khứ người dùng (trong việc đánh giá sản phẩm) để đưa dự đoán Đầu vào toán ma trận thể hành vi khứ, gọi ma trận Người dùng- Sản phẩm (m trận User x Item) Hàng người dùng, cột sản phẩm, giá trị ô đánh giá người dùng lên sản phẩm Tùy theo hệ thớng mà đánh giá người dùng quy ước giá trị Trong ví dụ này, đánh giá có giá trị từ 1->5 Bảng 1.1: Minh họa đánh giá người dùng về số sản phẩm Ở ma trận này, đánh giá người dùng sản phẩm 1, sản phẩm 5, sản phẩm chưa đánh giá Đầu toán là: đánh giá người dùng lên sản phẩm mà họ chưa đánh giá Hệ thống khuyến nghị dựa đánh giá mà xếp hạng sản phẩm gợi ý cho người dùng Trong ví dụ này, hệ thống khuyến nghị phải đưa dự đoán, người dùng đánh giá sản phẩm Người dùng đánh giá sản phẩm 1, 2, Hệ thống khuyến nghị lọc cộng tác dự đoán độ phù hợp u (c,s) sản phẩm s với người dùng c dựa độ phù hợp u (c,s) người dùng c i c, ci người có sở thích với c Ví dụ, để khuyến nghị phim cho người dùng c, hệ thống cộng tác tìm người dùng khác có sở thích phim ảnh với c Sau đó, phim họ đánh giá cao dùng để gợi ý cho c Có nhiều hệ thống cộng tác phát triển như: Youtube (video), Amazon.com (sách)… Các hệ thống chia thành hai loại: dựa kinh nghiệm (heuristic-based hay memory-based) dựa mơ hình (model-based) 1.4.3 Kết hợp phương pháp (Hybrid): Các cách tiếp cận khác có ưu điểm nhược điểm riêng Do cần thiết kết hợp kỹ thuật khác để tận dụng ưu điểm nhược điểm cách tiếp cận để có hệ thống khuyến nghị xác Có thể phân thành bốn cách kết hợp sau: Cài đặt hai phương pháp riêng rẽ kết hợp dự đốn chúng: Có hai kịch cho trường hợp Cách 1: Kết hợp kết hai phương pháp thành kết chung nhất, sử dụng cách kết hợp tuyến tính (linear combination) voting scheme Cách 2: Tại thời điểm, chọn phương pháp cho kết tốt (dựa số độ đo chất lượng gợi ý đó) Ví dụ, hệ thống DailyLearner system chọn phương pháp đưa khuyến nghị với độ xác (confidence) cao Tích hợp đặc trưng phương pháp dựa nội dung vào hệ thống cộng tác: Một số hệ thống lai (như Fab) dựa chủ yếu kĩ thuật cộng tác trì hồ sơ người dùng (theo dạng mơ hình dựa nội dung) Hồ sơ dùng để tính độ tương đồng hai người dùng, nhờ giải trường hợp có q sản phẩm chung đánh giá hai người Một lợi ích khác khuyến nghị khơng giới hạn sản phẩm đánh giá cao người sở thích (gián tiếp), mà cịn với sản phẩm có độ tương đồng cao với sở thích người dùng (trực tiếp) Tích hợp đặc trưng phương pháp cộng tác vào hệ thống dựa đặc trưng: Hướng tiếp cận phổ biến dùng kĩ thuật giảm số chiều tập hồ sơ phương pháp dựa nội dung Ví dụ, sử dụng phân tích ngữ nghĩa ẩn (latent semantic analysis) để tạo cách nhìn cộng tác (collaborative view) với tập hồ sơ người dùng (mỗi hồ sơ biểu diễn vector từ khóa) Xây dựng mơ hình hợp nhất, bao gồm đặc trưng hai phương pháp: đề xuất kết hợp đặc trưng hai phương pháp vào phân lớp dựa luật (rulebased classifier) Popescul cộng đưa phương pháp xác suất hợp dựa phân tích xác suất ngữ nghĩa ẩn (probabilistic latent semantic analysis) 10 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 30 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 U test 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 O u Pu Ou coi biết, Pu đánh giá cần dự đoá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ự đốn 31 - Đá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 q trình dự đốn đánh giá người dùng với sản phẩm 3.2.1 Cài đặt thuật toá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; } 32 - 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++) 33 { 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; } 34 } 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; 35 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]); 36 } } 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]); } 37 } 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]); } } 38 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ự đố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 Hình 3.1: Biểu đồ sai sớ lỗi tuyệ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ố 39 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 Độ đo Cosine Correlation EuclideanDistance Ajusted Cosine MAE 0.8131 0.8190 0.8206 0.7622 Độ xác 0.3765 0.3740 0.3652 0.4021 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ự 40 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ự đoá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ự đốn: + Số lượng lân cận: 50 + Dữ liệu đầu vào: 80.000 đánh giá + Số dự đốn: 20.000 + Sai số độ xác: 0.5 Kết dự đốn: 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 41 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 toán dự đoá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 cịn 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 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 42 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ự đố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ể 43 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 44 ...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ể... 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: 21/05/2021, 22:13

Mục lục

  • 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

      • 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 ý

              • 2.4.2 Các yếu tố ảnh hưởng đến độ chính xác gợi ý

              • HỆ THỐNG GỢI Ý BỘ PHIM LIÊN QUAN

                • 3.1 Dữ liệu thử nghiệm và phương pháp đánh giá

                  • 3.1.1 Mô tả dữ liệu

                  • 3.1.2 Phương pháp đá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