CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG GỢI Ý Trình bày về khái niệm hệ thống gợi ý, các loại hệ thống gợi ý và nêu các thuật toán phổ biến được sử dụng trong hệ thống gợi ý.1 Khái niệm Theo khái niệm được trình bày trong [44], hệ thống gợi ý (Recommender System - RS) là một dạng của hệ thống lọc thông tin (information filtering), nó được sử dụng để dự đoán sở thích (preferences) hay xếp hạng (rating) mà người dùng dành cho một mục thông tin (item) nào đó mà họ chưa xem xét tới trong quá khứ (item có thể là bài hát, bộ phim, đoạn video clip, sách, bài báo, trang sức,. Ví dụ, trong hệ thống bán hàng trực tuyến (như Amazon), nhằm tối ưu hóa khả năng mua sắm của khách hàng (user), người ta quan tâm đến việc những khách hàng nào đã ‘yêu thích’ những sản phẩm (item) nào bằng cách dựa vào dữ liệu quá khứ của họ (dữ liệu này có thể là xếp hạng mà người dùng đã bình chọn trên sản phẩm, thời gian duyệt (browse) trên sản phẩm, số lần click chuột trên sản phẩm,.) từ đó hệ thống sẽ dự đoán được người dùng có thể thích sản phẩm nào và đưa ra những gợi ý phù hợp cho họ. Lợi ích của hệ thống gợi ý là cải thiện trải nghiệm người dùng, tối ưu hóa doanh thu bằng cách làm cho khách hàng trả tiền nhiều hơn để mua sản phẩm hay dịch vụ đắt tiền hơn của cùng một loại sản phẩm hay dịch vụ đó (up-sale) hoặc là làm cho khách hàng trả tiền nhiều hơn để mua thêm các sản phẩm, hay dịch vụ khác loại với sản phẩm hay dịch vụ vừa lựa chọn hoặc mua (cross-sale), tăng hiệu năng hoạt động bằng tự động hóa, biến khách hàng tiềm năng thành khách hàng thật, hỗ trợ business intelligence. Để biểu diễn mối quan hệ giữa users và items thì ma trận hữu dụng (utitlity matrix) chính là mô hình của hệ thống chìa khóa.
Trong ma trận này có hai thành phần chính là U là người dùng (U Users), I là món hàng (I Items) và giá trị cho mỗi cặp (U,I) là mức độ yêu thích của người dùng đối với món hàng gọi là R. Mức độ yêu thích của người dùng được thể hiện qua xếp hạng (R Ratings), ví dụ: [1-5], [+,-], v. Bảng 1: Ma trận hữu dụng biểu diễn xếp hạng phim trong thước đo 1-5 [44] Kẻ Kẻ Kẻ Xóm trọ Khách Khách Khách I đánh đánh đánh 3D sạn sạn sạn cắp mặt cắp mặt cắp mặt huyền huyền huyền U trăng 1 trăng 2 trăng 3 bí bí 2 bí 3 U1 4 5 1 U2 5 5 4 U3 2 4 5 -4- U4 3 3 Trong ma trận, có rất nhiều cặp người dùng-phim bị bỏ trống nghĩa là người dùng không xếp hạng cho phim đó. Một khái niệm khác trong hệ thống gợi ý mà cần phải nhớ đó là ma trận thưa thớt (sparse matrix) giống ma trận ở trên bởi vì hầu hết các giá trị đều bị bỏ trống.
Mục tiêu của hệ thống gợi ý là dự đoán các chỗ trống trong ma trận hữu dụng nhưng cũng thật sự là không cần thiết để điền hết tất cả các giá trị chỗ trống vì các mặt hàng có xếp hạng thấp thì cũng không được quan tâm. Ví dụ, câu hỏi đặt ra là: U2 có muốn xem “Xóm trọ 3D ” không? Dựa vào dữ liệu trong Bảng 1, hệ thống gợi ý được thiết kế để tính toán các thuộc tính của phim như là nhà sản xuất, giám đốc, các diễn viên ngôi sao hoặc thậm chí sự tương tự về tên phim. Nếu vậy, cần chú ý đến các tên tương tự giữa Khách sạn huyền bí, Khách sạn huyền bí 2 và Khách sạn huyền bí 3 và rồi kết luận rằng khi U2 đã không thích Khách sạn huyền bí thì giống vậy U2 cũng sẽ muốn xem Khách sạn huyền bí 2 và Khách sạn huyền bí 3. Ngoài ra, với nhiều dữ liệu hơn, người xem có khuynh hướng xếp hạng cho Khách sạn Huyền bí, Khách sạn huyền bí 2 và Khách sạn huyền bí 3 tương tự nhau.
Vì vậy, chúng ta kết luận U1 cho xếp hạng thấp với Khách sạn huyền bí 2 và Khách sạn huyền bí 3, tương tự với xếp hạng của A cho Khách sạn huyền bí. Long tail phenomenon [44] là sự khác biệt giữa cửa hàng thực tế và cửa hàng trực tuyến. Cửa hàng thực tế có nhiều giới hạn như là sự khan hiếm về hàng hóa, không gian trưng bày, chỉ đưa ra một phần nhỏ sự lựa chọn hiện có đến với khách hàng. Trong khi đó, cửa hàng trực tuyến có thể đưa đến khách hàng tất cả những gì hiện có.
Vì vậy, cửa hàng sách thực tế có vài ngàn cuốn sách nhưng cửa hàng trực tuyến Amazon cung cấp hàng triệu cuốn sách. Tờ báo thực tế in vài chục ngàn bài báo trong một ngày còn tin tức trực tuyến phục hàng ngàn bài cho một ngày. Hệ thống gợi ý trong các cửa hàng thực tế thì khá đơn giản chỉ đơn thuần là trưng bày các hàng hóa phổ biến nhất và cửa hàng thì không thể được điều chỉnh theo từng khách hàng một. Ngược lại, hệ thống gợi ý trong thương mại điện tử thì ngày càng cá nhân hóa mang đến cho khách hàng nhiều sự thỏa mãn hơn.
Hệ thống gợi ý sản phẩm, hệ thống gợi ý phim và hệ thống gợi ý tin tức là những ứng dụng quan trọng của hệ thống gợi ý. Điển hình cho chúng là Amazon, Netflix và YouTube, Facebook. Các món hàng được gợi ý gần như không thể nào có được nếu không có ma trận hữu dụng. Lấy dữ liệu để tạo ra ma trận hữu dụng là một công việc không dễ dàng.
Có hai hướng tiếp cận để khám phá dữ liệu của ma trận hữu dụng. Cách thứ nhất, hệ thống -5- yêu cầu người dùng xếp hạng món hàng. Cửa hàng phim ảnh và YouTube sử dụng cách này. Cách này bị giới hạn bởi những người dùng không sẵn lòng cung cấp thông tin phản hồi cho site trực tuyến.
Cách thứ hai, hệ thống đưa ra suy luận từ hành vi của khách hàng. Nếu một người dùng mua một món hàng tại website Amazon, xem một phim trên YouTube, hoặc đọc một mục tin trên site nào đó thì rõ ràng có thể nói rằng khách hàng “thích” món hàng đó. Dữ liệu trong ma trận theo cách này thực sự chỉ có một giá trị: 1 có nghĩa là người dùng “thích” món hàng, còn giá trị 0 nghĩa là người dùng chưa mua hoặc chưa xem món hàng. Ví dụ, nếu khách hàng Amazon xem một thông tin về một mục nào đó thì hệ thống có thể đoán họ quan tâm đến món hàng thậm chí là họ không mua nó.
Nói chung, hệ thống có thể suy đoán ra sự quan tâm của khách hàng nhiều hơn là hành vi mua hàng.2 Phân loại hệ thống gợi ý Hệ thống gợi ý được chia làm hai loại chính [21, 44] là lọc công tác (collaborative filtering) và lọc dựa trên nội dung (content-based filtering). Một loại nữa mà nó kết hợp các điểm mạnh của lọc cộng tác và lọc dựa trên nội dung đó là phương pháp lai (hybrid method). Lọc công tác: lọc cộng tác tạo tập trung vào mối quan hệ giữa những người dùng và các món hàng. Sự tương tự của các món hàng được quyết định bằng xếp hạng giống nhau từ những người dùng.
Hiểu cơ bản của phương pháp này là một người dùng A có cùng một số món hàng yêu thích giống người dùng B. Vậy, A sẽ có quan điểm giống B nhiều hơn những người dùng ngẫu nhiên khác trong hệ thống. Một ví dụ minh họa, bạn nam thích mua chuối và lê, bạn nữ thích mua chuối. Lọc cộng tác dự đoán bạn nữ sẽ mua lê.
Lọc dựa trên nội dung: lọc dựa trên nội dung chỉ sử dụng các tính chất thuộc tính của món hàng mà người dùng đã tiêu thụ trước đó để mô hình hóa sở thích của người dùng. Nghĩa là, lọc dựa trên nội dung sẽ gợi ý các món hàng tương đối giống với các món hàng mà người dùng đã mua trong quá khứ (hoặc đang thử nghiệm trong hiện tại). Ví dụ sẽ hiểu rõ hơn, bạn Nam đã mua một cây vợt tennis trong quá khứ, hệ thống sử dụng các thông tin thuộc tính và mô tả về cây vợt. Banh tennis có tính tương tự với cây vợt mà Nam đã mua vì banh tennis được dùng chung với vợt khi chơi tennis.
Lọc dựa trên nội dung gợi ý Nam mua quả banh tennis. Phương pháp lai: Sử dụng một trong hai loại lọc trên gặp phải hai vấn đề phổ biến là người dùng mới vào hệ thống thì sẽ chưa có các lịch sử mua hàng nên không có hồ sơ về thuộc tính khách hàng đã mua (cold start) và thưa thớt dữ liệu (sparsity) nghĩa là các khách hàng có thể chỉ mua một ít món nên không có cùng một tập các món hàng tương tự nhau. Giải quyết các vấn đề này, một tiếp cận khác hình thành là kết -6- hợp lọc cộng tác với lọc dựa trên nội dung đó chính là phương pháp lai (hybrid method).3 Các giải thuật của hệ thống gợi ý Hệ thống gợi ý có hai cách tiếp cận cơ bản nên có hai giải thuật cơ bản là giải thuật lọc cộng tác và giải thuật lọc dựa trên nội dung. Lọc cộng tác Giải thuật lọc cộng tác dựa vào các hành vi của người dùng hay nói cách khác là các phản hồi của người dùng như là lịch sử viếng thăm và biểu diễn của nó là một ma trận thưa giữa người dùng và món hàng.
Mỗi hàng là một người dùng và mỗi cột là một món hàng. Do thuật toán lọc cộng tác dựa vào sự tương tự của người dùng hoặc là của món hàng cho nên phải biết cách tính độ đo tương tự giữa người dùng hoặc giữa các món hàng. Có 2 cách tính độ đo tương tự là Cosine và Jaccard [45]. Độ đo Cosine là khoảng cách giữa hai vector cũng chính là cosin của góc tạo thành giữa chúng.
Công thức Ví dụ (𝑥. 𝑦) Xem bước 4 ở phần các bước cosine(𝑥, 𝑦) = ||𝑥||||𝑦|| thực hiện ∑𝑛𝑖=1 𝑥𝑖 ∗ 𝑦𝑖 = √∑𝑛𝑖=1(𝑥𝑖 )2 ∗ √∑𝑛𝑖=1(𝑦𝑖 )2 Trong đó, x và y là hai vectors. Độ đo tương tự Jaccard (J) là tổng số điểm chung của hai tập dữ liệu trên tổng số phần tử của cả hai tập: Công thức Ví dụ |𝐴 ∩ 𝐵| Cho A = {x,y,z}, B={x,y,c} 𝐽(𝐴, 𝐵) = |𝐴 ∪ 𝐵| Độ đo Jaccard của A và B là Trong đó, A và B là hai tập dữ liệu.5 4 Giải thuật lọc cộng tác chia làm hai nhóm là lọc công tác dựa trên người dùng và lọc cộng tác dựa trên món hàng. Lọc cộng tác dựa trên người dùng: Gợi ý này sẽ tập trung vào các nhóm người dùng cùng sở thích.