Chương 1 Tổng quan 1.1 Sơ lược về hệ gợi ý Hệ gợi ý có thể được định nghĩa như một dạng của hệ thống lọc thông tin để đưa ra các sản phẩm, dịch vụ người dùng có thể quan tâm [11]. Hệ gợi ý được ứng dụng rất thành công trong dự đoán sở thích/thói quen của người dùng dựa vào sở thích/thói quen của họ trong quá khứ. Hiện nay, cùng với sự phát triển và đa dạng của các sản phẩm, dịch vụ, Hệ gợi ý ngày càng được ứng dụng rộng rãi trong các lĩnh vực như mua sắm trực tuyến, đọc tin tức, âm nhạc, du lịch, xem phim, mạng xã hội (ví dụ: Amazon, Yahoo! Today News, Last.fm, Tripadvisor, Netflix, Facebook). Chính vì khả năng ứng dụng rộng rãi của nó, hệ gợi ý mở ra nhiều tiềm năng trong nghiên cứu cũng như trong xây dựng các hệ thống thực tế, đặc biệt là các hệ thống hỗ trợ người dùng ra quyết định.
Một vài ứng dụng nổi tiếng về hệ thống gợi ý như: Gợi ý sản phẩm Amazon, hệ gợi ý phim của NetFlix. Hệ thống gợi ý đã chứng minh được ý nghĩa to lớn trong việc giúp người sử dụng trực tuyến giải quyết với tình trạng quá tải thông tin. Chính vì vậy, hệ thống gợi ý trở thành một trong những công cụ mạnh mẽ và phổ biến trong thương mại điện tử và trên nhiều lĩnh vực khác. Có ba hướng tiếp cận chính thường được sử dụng để xây dựng các hệ gợi ý, bao gồm hướng tiếp cận dựa trên nội dung (content-based), hướng tiếp cận lọc cộng tác (collaborative filtering - CF) và và hướng tiếp cận kết hợp lọc cộng tác và lọc dựa trên nội dung .1: Hệ gợi ý của trang web Amazon.com Mô hình hệ gợi ý: Ở dạng đơn giản nhất, hệ gợi ý cung cấp danh sách sản phẩm được xếp hạng theo thứ tự ưu tiên.
Để thực hiện được điều này, hệ thống dự đoán các sản phẩm phù hợp nhất dựa trên sở thích của người dùng [16]. Mô hình tương tác giữa người dùng và hệ gợi ý được biểu diễn ở Hình1. Trong mô hình này, hồ sơ người dùng được thiết lập dựa trên sở thích (thông tin hiện) hoặc hành vi (thông tin ẩn) của họ. Sau khi hồ sơ người dùng được thiết lập, hệ thống tạo và hiển thị kết quả cho người dùng (danh sách gợi ý).
Tiếp theo, người dùng có thể duyệt các gợi ý, họ có thể chấp nhận hoặc không chấp nhận chúng. Hành động và phản hồi của người dùng được lưu trữ (cập nhật sở thích) trong hồ sơ người dùng để tạo các đề xuất mới cho người dùng ở thời điểm tiếp theo. Trong hệ gợi ý, thông thường chúng ta quan tâm đến ba thông tin chính, bao gồm: người dùng (user), sản phẩm (item) và phản hồi (feedback) của người dùng trên sản phẩm đó (thường là các xếp hạng/đánh giá biểu diễn mức độ thích/quan tâm của người dùng). Các thông tin này được biểu diễn thông qua ma trận Người dùng Ö Sản phẩm như mô tả ở Hình 1.2: Mô hình tương tác giữa người dùng và hệ gợi ý Hình 1.3: Ma trận biểu diễn dữ liệu trong hệ gợi ý Trong ma trận này, mỗi dòng là một người dùng, mỗi cột là một sản phẩm và mỗi ô là một giá trị phản hồi biểu diễn mức độ "thích" của người dùng trên sản phẩm tương ứng.
Các ô có giá trị là những sản phẩm người dùng đã xếp hạng trong quá khứ. Những ô trống là những sản phẩm chưa được đánh giá bởi người dùng.2 Các nhiệm vụ trong hệ gợi ý Các nhiệm vụ của hệ gợi ý có thể được chia thành ba loại, bao gồm: (i) gợi ý các sản phẩm tốt đến người dùng; (ii) dự đoán đánh giá và (iii) tối ưu lợi ích [7]. Mỗi loại bài toán, cần có các độ đo phù hợp để đánh giá hiệu quả của thuật toán gợi ý. Bài toán gợi ý các sản phẩm tốt đến người dùng: Với bài toán này, hệ thống cần đưa ra danh sách các sản phẩm được dự đoán là người dùng sẽ thích [7, 15].
Theo [7], các tác giả chia bài toán này thành hai lớp bài toán con: gợi ý một số sản phẩm tốt nhất đến người dùng và gợi ý tất cả sản phẩm phù hợp đến người dùng. Trong trường hợp thứ nhất, giả sử có tất cả n sản phẩm, hệ thống cần đưa ra top-N sản phẩm phù hợp nhất cho người dùng. Ví dụ, các website như Amazon, Netflix thường đưa ra vài sản phẩm gợi ý người dùng có thể quan tâm khi họ đang xem một sản phẩm nào đó. Thông thường, người dùng chỉ quan tâm đến những sản phẩm xuất hiện đầu tiên được gợi ý.
Vì thế, hệ thống cần xếp hạng các sản phẩm sao cho những sản phẩm có khả năng người dùng thích nhất được xếp lên trước. Lớp bài toán con thứ hai trong nhóm này là hệ thống cần gợi ý tất cả các sản phẩm/nội dung có khả năng người dùng quan tâm. Chẳng hạn như các hệ thống cần đưa ra các tài liệu về pháp luật liên quan đến vấn đề người dùng quan tâm. Trong trường hợp này, các độ đo về độ bao phủ (recall) nên được sử dụng hơn là các độ đo về độ chính xác (precison).
Trong cả hai trường hợp trên, bên cạnh việc gợi ý các sản phẩm phù hợp, việc xếp thứ tự các sản phẩm theo mức độ phù hợp sẽ tạo điều kiện cho người dùng lựa chọn sản phẩm tốt hơn Bài toán dự đoán đánh giá: Với bài toán này, hệ thống cần đưa ra các giá trị đánh giá dự đoán cho mỗi bộ (người dùng, sản phẩm) chưa được đánh giá. Các giá trị đánh giá dự đoán này có thể được sử dụng như một gợi ý để người dùng quyết định chọn sản phẩm. Chẳng hạn trong Netflix hay CNET , hệ thống tự động gán giá trị đánh giá dự đoán cho mỗi sản phẩm (phim/thiết bị điện tử. ) khi người dùng tìm kiếm hay duyệt các sản phẩm [7].
Bài toán tối ưu lợi ích: Với lớp bài toán này, hệ gợi ý ngoài việc đưa ra các sản phẩm phù hợp với người dùng (những sản phẩm người dùng có khả năng quan tâm, thích hoặc thực hiện mua) thì còn phải quan tâm đến lợi nhuận đem lại cho tổ chức hoặc một mục tiêu hệ thống cần nhắm tới. Chẳng hạn trong các sàn thương mại điện tử, lợi nhuận đến từ việc quảng cáo của các người bán hàng trên 6 hệ thống. Người bán hàng có thể quảng cáo sản phẩm của họ và được hệ thống hiển thị khi người dùng tìm kiếm sản phẩm. Với mỗi quảng cáo, người bán hàng phải đặt một mức đấu giá (bid) cho việc quảng cáo này.
Để tối đa hóa lợi nhuận, hệ gợi ý bên cạnh việc hiển thị cho người dùng các mẫu tin quảng cáo phù hợp (có xác suất cao người dùng sẽ truy cập vào tin quảng cáo), còn phải xem xét đến mức đấu giá giữa những người đăng quảng cáo để tối đa lợi nhuận. Một ví dụ khác, trong các ứng dụng đọc tin tức, phần lớn lợi nhuận đến từ việc quảng cáo hiển thị khi người dùng đọc tin. Bên cạnh việc gợi ý các tin tức người dùng có thể quan tâm, hệ gợi ý cần tính đến việc lựa chọn những tin tức nào có thể giữ người dùng lâu trên hệ thống (chẳng hạn những bản tin dài), điều đó sẽ giúp tăng lợi nhuận đến từ quảng cáo. Trong trường hợp mục tiêu của hệ thống là giới thiệu được các sản phẩm mới, lạ đến người dùng, hàm lợi ích cần phải định nghĩa để tính toán đến độ phổ biến của các sản phẩm.3 Bài toán hệ gợi ý Trong hệ gợi ý truyền thống, mỗi người dùng đánh giá sản phẩm như là một cách thể hiện mức độ hài lòng (thích, quan tâm) của mình đối với sản phẩm đó.
Các giá trị này thuộc tập có thứ tự, chẳng hạn 1 - 5 trong đó 1 là rất không hài lòng đến 5 là rất hài lòng [13]. Chúng có thể được thu thập tường minh (ví dụ khi người dùng đánh giá một bộ phim) hoặc ngầm định (dựa trên sự quan sát hành vi của người dùng như giao dịch mua hàng) [1]. Hệ gợi ý được xây dựng trên dữ liệu sở thích của người dùng về các sản phẩm được biểu diễn dưới dạng ma trận U sers x Items. Trong đó, mỗi dòng là đại diện cho một người dùng và các đánh giá của người dùng đó trên các sản phẩm khác nhau của hệ thống.
Mỗi cột là đại diện cho một sản phẩm và các đánh giá của các người dùng khác nhau lên sản phẩm này. Thông thường, ma trận này thưa vì có rất ít cặp user - item có dữ liệu đánh giá. Mục tiêu của hệ gợi ý là dự đoán các đánh giá chưa biết cho các cặp user - item còn lại, từ đó gợi ý đến người dùng những sản phẩm có đánh giá dự đoán cao [13]. Một cách hình thức, gọi U là tập các người dùng, M = |U | là tổng số người dùng trong U , u ∈ U là một người dùng trong U.
I là tập các sản phẩm, N = là tổng số sản phẩm trong I, i ∈ I là một sản phẩm trong I. R là tập các giá trị đánh giá. Gọi Y là ma trận đánh giá và Y 0 là ma trận đánh giá được dự đoán. rui 0 biểu diễn đánh giá của người dùng u trên sản phẩm và rui biểu diễn đánh giá dự đoán của người dùng u trên sản phẩm.
Bài toán hệ gợi ý nhằm xây dựng hàm dự 7 đoán đánh giá r sao cho r : U x I → R, ánh xạ mỗi cặp (u, i) ∈ U x I vào tập giá 0 trị đánh giá R, hay rui = rui. Nói cách khác, thông qua hàm dự đoán đánh giá r, ước lượng các giá trị đánh giá cho các cặp user - item chưa được đánh giá trong ma trận Y [1]. Trong hệ gợi ý, tính tiện ích của sản phẩm i thường biểu thị mức độ quan tâm của người dùng tới một mặt hàng cụ thể thông qua trọng số; ví dụ người dùng u1 đánh giá i3 có trọng số là 4 như trong Bảng 1.1: Bảng ma trận trọng số đánh giá của hệ gợi ý i1 i2 i3 i4 i5 u1 5 3 4 4 ? u2 2 2 4 1 4 u3 1 4 5 1 2 u4 1 4 2 4 3 1.4 Một số kỹ thuật gợi ý Cách tiếp cận truyền thống khai thác 3 loại thông tin đầu vào gồm người dùng, sản phẩm và phản hồi của người dùng về sản phẩm.