Chương 1: Tổng quan về hệ gợi ý Nội dung chương này bao gồm: Định nghĩa và khái niệm về hệ gợi ý; các ứng dụng của hệ gợi ý trong thực tế; Giới thiệu và phần loại các phương pháp xây dựng hệ gợi ý. 10 Chương 2: Các phương pháp xây dựng hệ gợi ý Nội dung chính của chương này gồm: Hai Phương pháp xây dựng hệ gợi ý là Content-based Recommendation System và Neighborhood-based Collaborative Filtering, ví dụ cũng như ưu-nhược điểm của từng phương pháp. Chương 3: Xây dựng ứng dụng thử nghiệm Nội dung chương này gồm: Giới thiệu về bài toán thử nghiệm, xây dựng mô hình gợi ý và đánh giá kết quả của mô hình đã xây dựng cho bài toán gợi ý mua điện thoại smartphone. Kết luận và hướng phát triển Tài liệu tham khảo 11 Tổng quan về hệ gợi ý 1.
Giới thiệu về hệ gợi ý Hệ gợi ý (Recommendation System hay Recommender System viết tắt là RS) là một dạng của hệ thống lọc thông tin (information filtering system), nó được sử dụng để dự đoán sở thích (preferences) hay xếp hạng (rating), gọi chung là mức độ quan tâm, mà người dùng có thể dành cho một mục thông tin (item có thể là bài hát, bộ phim, đoạn video clip, sách, bài báo, …) mà họ chưa xem xét tới trong quá khứ [1]. Trong hệ gợi ý, ta thường cần quan tâm đến 3 thông tin chính là người dùng (user), sản phẩm (item) và phản hồi (feedback) hay còn được gọi mức độ quan tâm của người dùng đối với sản phẩm. Đặc điểm của các thông tin này là người dùng thường chỉ phản hồi cho một số lượng rất nhỏ các sản phẩm, và nhiệm vụ của hệ gợi ý sẽ là dựa trên số lượng rất nhỏ những phản hồi ấy để dự đoán được phản hồi có thể có của người dùng đối với sản phẩm mà họ chưa phản hồi trong hệ thống. Rồi từ đó hệ thống sẽ lựa chọn các sản phẩm có mức độ phản hồi hay mức độ quan tâm tích cực nhất để gợi ý tới người dùng.
Ứng dụng của hệ gợi ý Hệ gợi ý được ứng dụng trong nhiều lĩnh vực khác nhau, trong đó nổi bật nhất là các hệ thống thương mại điện tử (chẳng hạn như amazon ở Mỹ hay Lazada ở Việt Nam), nhằm tối ưu khả năng mua sắm hàng hóa (item) của khách hàng (user). Các hệ thống này quan tâm đến việc những khách hàng nào ‘sẽ yêu thích’ những sản phẩm nào dựa trên các dữ liệu về việc mua sắm hoặc đánh giá hay tìm kiếm sản phẩm, … của khách hàng trong quá khứ. Hình 1 bên dưới là minh họa cho hệ thống gợi ý sản phẩm của Lazada [2]. Hệ thống gợi ý sản phẩm của Lazada Ngoài lĩnh vực thương mại điện tử, trong thực tế hệ gợi ý còn được ứng dụng khá thành công trong nhiều lĩnh vực khác như trong giải trí (các hệ thống gợi ý bài hát như của Spotify [3], hệ thống gợi ý phim ảnh của Netflix [4], hệ thống gợi ý video clip của Youtube [5], …), trong giáo dục và đào tạo (các hệ thống gợi ý sách, báo, …), trong các mạng xã hội (với các hệ thống gợi ý bạn bè, gợi ý bài viết, …) và nhiều lĩnh vực khác nữa.
Hình 2 bên dưới là ví dụ về hệ thống gợi ý từ khóa tìm kiếm của Google [6]. Hệ thống gợi ý từ khóa tìm kiếm của Google 1. Các phương pháp chính xây dựng hệ gợi ý Hiện nay với sự phát triển mạnh mẽ của các hệ gợi ý, đã có rất nhiều phương pháp xây dựng hệ gợi ý đã và đang được phát triển. Tuy nhiên tự chung lại chúng ta có 2 nhóm phương pháp chính để xây dựng hệ gợi ý: - Content-based Systems: là nhóm phương pháp thực hiện việc gợi ý dựa vào hồ sơ (profiles) của người dùng hoặc dựa vào các nội dung/thuộc tính của những sản phẩm tương tự như những sản phẩm mà người dùng đã chọn trong quá khứ [8].
- Collaborative Filtering: là nhóm phương pháp gợi ý dựa trên sự tương quan giữa các người dùng hoặc các sản phẩm với nhau [9]. Hay có thể hiểu rằng ở nhóm này một sản phẩm được gợi ý tới một người dùng dựa trên những người dùng có hành vi tương tự. Trong nhóm này có nhiều phương pháp khác nhau nhưng trong luận văn này sẽ 14 chỉ đề cập đến một phương pháp điển hình cho nhóm này đó là phương pháp Neighborhood-based Collaborative Filtering. Ngoài 2 nhóm phương pháp đã kể ở trên, trong thực tế còn một số nhóm phương pháp khác cũng đang được sử dụng như là: - Nhóm phương pháp lai ghép (Hybrid recommendation Systems) [9].
Nhóm phương pháp này được thực hiện bằng cách kết hợp cả 2 phương pháp trên. - Nhóm phương pháp không cá nhân hóa (non-personalize): Đây là nhóm phương pháp đơn giản nhất, việc gợi ý không được dựa trên các thông tin về của người dùng mà lựa chọn những sản phẩm được “quan tâm” trong thời gian gần đây để làm sản phẩm được gợi ý cho người dùng, ví dụ như là các sản phẩm bán chạy nhất, được tìm kiếm nhiều nhất, hay được đánh giá cao nhất hoặc được thảo luận nhiều nhất, …. Ưu điểm của phương pháp này là không cần biết về thông tin cũng như lịch sử sử dụng của người dùng, tuy nhiên phương pháp này lại có 1 nhược điểm đó là các sản phẩm được gợi ý là giống nhau đối với tất cả người dùng, do vậy độ hiệu quả của việc gợi ý là không cao. Hình 2 là minh họa cho việc gợi ý các sản phẩm được tìm kiếm nhiều nhất của Lazada.
Tuy phương pháp này được áp dụng rất nhiều trong các trang thương mại điện tử hiện nay, nhưng do tính chất đơn giản của nó nên sẽ không được nghiên cứu chi tiết trong luận văn này. Gợi ý sản phẩm được tìm kiếm nhiều nhất của Lazada 15 Các phương pháp xây dựng hệ gợi ý Trong trương này chúng ta sẽ đi nghiên cứu 2 phương pháp đặc trưng cho 2 nhóm phương pháp Content-based System và Collaborative Filtering đã nêu trên với mục đích tìm ra phương pháp cơ bản xây dựng hệ gợi ý, so sánh độ chính xác giữa các phương pháp cũng như các yếu tố ảnh hưởng tới độ chính xác của quá trình gợi ý. Tuy nhên trước khi tìm hiểu về 2 phương pháp xây dựng hệ gợi ý, ta cần tìm hiểu về một thành phần không thể thiếu trong mỗi hệ gợi ý đó là Rating matrix hay còn có cách gọi khác là Rating matrix. Rating matrix Dữ liệu chính là một thành phần không thể thiếu trong các hệ thống học máy nói chung và đặc biệt là hệ gợi ý nói chung.
Ngoài ra bên cạnh việc thu thập được nhiều dữ liệu nhất có thể thì việc tổ chức các dữ liệu ấy cũng vô cùng quan trọng, và một trong các cách tổ chức dữ liệu thường được sử dụng trong các hệ gợi ý đó là Rating matrix (còn có cách gọi khác là utility matrix). Vì vậy trong phần này sẽ đề cập đến khái niệm và cách xây dựng rating matrix. Khái niệm rating matrix Như đã đề cập từ trước, trong các hệ gợi ý đề có 2 loại thực thể chính là người dùng (user) và sản phẩm (item). Mỗi người dùng sẽ có mức độ quan tâm (degree of preference) khác nhau đến các sản phẩm khác nhau.
Mức độ quan tâm này, nếu đã biết trước (nằm trong tập huấn luyện) sẽ được gán cho một giá trị tương ứng với mỗi cặp người dùng-sản phẩm (user-item) [8]. Giả sử rằng mức độ quan tâm này được được đo bằng giá trị mà người dùng đánh giá (rate) cho sản phẩm, tạm gọi là các đánh giá, với các giá trị là 1, 2, 3, 4 và 5 giống như việc đánh giá sản phẩm trên các trang thương mại điện tử. Cũng giống như tại các trang thương mại điện tử, người dùng thường chỉ đánh giá cho 1 hoặc một vài sản phẩm, nên sẽ có rất nhiều giá trị đánh giá là chưa xác định và cần được dự đoán. Tập hợp tất cả 16 các giá trị đánh giá bao gồm cả các giá trị đã xác định và chưa xác định cần được dự đoán sẽ tạo thành một ma trận được gọi là rating matrix.
Ví dụ, ta có 4 người dùng là A, B, C, D và 7 bộ phim Harray Poster phần 1, Harry Poster phần 2, Harry Poster phần 3, Twilight, Star Wars 1, Star Wars 2 và Star Wars 3 được kí hiệu lần lượt là HP1, HP2, HP3, TW, SW1, SW2, SW3. Các giá trị đánh của người dùng đối với 1 bộ phim có thể nhận các giá trị từ 1 sao đến 5 sao tương ứng với mức độ yêu thích của người dùng đối với bộ phim đó. Rating matrix thể hiện các giá trị đánh giá của người dùng với các bộ phim trên được thể trong bảng 1 bên dưới A B C D HP1 4 5 HP2 5 3 3 HP3 4 TW 5 2 SW1 1 4 SW2 5 SW3 5 1 Rating matrix thể hiện đánh giá của người dùng với các bộ phim Trong ví dụ trên, các ô để trống là các ô chưa xác định được giá trị cũng tương ứng với việc người dùng ở hàng tương ứng chưa đánh giá cho bộ phim ở cột tương ứng. Công việc của một hệ gợi ý là dự đoán giá trị cho các ô còn để trống này từ đó đưa ra gợi ý cho người dùng.
Xây dựng Rating Matrix Không có Rating Matrix, việc gợi ý sản phẩm đến người dùng gần như là không thể thực hiện được. Vì vậy trong các hệ gợi ý, việc xây dựng Rating matrix là cực kì quan 17 trọng. Tuy nhiên trong thực tế việc xây dựng được ma trận này lại gặp khá nhiều khó khan do người dùng thường rất hiếm khi hoặc thậm chí là không đánh giá bất kì sản phẩm nào. Do đó trong thực tế, thường có 2 phương pháp phổ biến để xác định giá trị mức độ quan tâm của người dùng đối với sản phẩm phục vụ cho việc xây dựng Rating Matrix, 2 phương pháp đó là: Phương pháp trực tiếp: đó là “nhờ” người dùng đánh giá cho các sản phẩm mà họ đã sử dụng [8].
Phương pháp này thường được các trang thương mại điện tử sử dụng. Ưu điểm của phương pháp này là dễ thực hiện và dễ thu thập, tuy nhiên phương pháp này lại có nhiều nhược điểm như người dùng thường ít đánh giá sản phẩm nên lượng thông tin đem lại không nhiều, có thể gây khó chịu cho người dùng khi “đòi hỏi” họ phải đánh giá sản phẩm, giá trị đánh giá của người dùng thường mang tính chất chủ quan. Ngoài ra phương pháp này còn có 1 nhược điểm nữa là dễ xuất hiện gian lận trong đánh giá.