6. Cấu trúc của đề tài
3.1. Tổng quan về bài toán khuyến nghị
3.1.1. Khái niệm hệ thống khuyến nghị
Hệ thống khuyến nghị (Recommender System) là những hệ thống được thiết kế để gợi ý cho người dùng hướng đến những đối tượng mà có thể người dùng đó quan tâm, yêu thích hoặc thấy phù hợp với họ, khi số lượng đối tượng và thông tin là quá lớn so với khả năng xử lý của người dùng. Hay nói cách khác, hệ thống khuyến nghị là các kỹ thuật và công cụ phần mềm cung cấp các đề xuất về các đối tượng mà có khả năng được quan tâm nhất đối với một người dùng cụ thể [17]. Các đề xuất có thể liên quan đến rất nhiều quyết định của khách hàng như mua sản phẩm nào, nghe bài nhạc nào hay đọc bản tin nào.
Hiện tại các hệ thống khuyến nghị được triển khai ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau, cụ thể như:
- Thương mại điện tử: các mục gợi ý sản phẩm trên các sàn thương mại điện tử, mua bán trực tuyến của Tiki, Shopee, Lazada v.v…
- Mạng xã hội: đề xuất bạn quen, đề xuất hoạt động yêu thích như của Facebook, Zalo, Linkedin.
- Du lịch và ẩm thực: giới thiệu các món ăn, thức uống có thể người dùng thích, những địa điểm có thể muốn đi như của Foody, Agoda, Grabfood. - Giải trí: gợi ý các bài hát, video clip, bộ phim có thể người dùng thích
Hình 3.1. Giao diện hệ khuyến nghị sản phẩm của Tiki.vn
Bên cạnh đó, nhiều tổ chức, doanh nghiệp có quan tâm nghiên cứu ứng dụng cũng có thể có hệ khuyến nghị riêng để phục vụ cho nhu cầu hoạt động của mình.
3.1.2. Phát biểu bài toán hệ thống khuyến nghị
Cho hai tập hữu hạn gồm M người dùng 𝑈 = {𝑢1, 𝑢2, … , 𝑢𝑀} và N đối
tượng 𝑉 = {𝑣1, 𝑣2, … , 𝑣𝑁}.
Mỗi người dùng 𝑢𝑖 ∈ 𝑈 (với i = 1, 2, …, M) được biểu diễn thông qua |𝐶|
đặc trưng nội dung 𝐶 = {𝑐1, 𝑐2, … , 𝑐|𝐶|}. Các đặc trưng 𝑐𝑡 ∈ 𝐶 thường là các thông tin đặc điểm liên quan cá nhân mỗi người dùng. Ví dụ 𝑢𝑖 ∈ 𝑈 là một người dùng thì các đặc trưng nội dung biểu diễn người dùng 𝑢𝑖 có thể là 𝐶 = {𝑔𝑖ớ𝑖 𝑡í𝑛ℎ, độ 𝑡𝑢ổ𝑖, 𝑛𝑔ℎề 𝑛𝑔ℎ𝑖ệ𝑝 … }.
Mỗi đối tượng 𝑣𝑗 ∈ 𝑉 (với j = 1, 2, …, N) có thể là hàng hóa, phim ảnh,
sách báo, tin tức hoặc bất kỳ dạng thông tin nào mà người dùng sử dụng, được biểu diễn thông qua |𝑇| đặc trưng nội dung 𝑃 = {𝑝1, 𝑝2, … , 𝑝|𝑇|}. Các đặc trưng 𝑝𝑞 ∈ 𝑃
nhận được từ các phương pháp trích chọn đặc trưng trong lĩnh vực truy vấn thông tin. Ví dụ 𝑣𝑗 ∈ 𝑉 là một bài nhạc thì các đặc trưng nội dung biểu diễn 𝑣𝑗 có thể là
Mối quan hệ giữa tập người dùng U và tập đối tượng V được biểu diễn thông qua ma trận đánh giá 𝑅 = [𝑟𝑖𝑗] với i = 1, 2, …, M và j = 1, 2, …, N.
Đối tượng 1 2 … j … N Ng ườ i d ù n g 1 5 3 4 2 4 3 2 3 2 5 0 2 3 … 2 1 3 1 4 1 i 0 1 3 1 2 4 … 1 4 4 3 3 2 M 2 0 4 3 5 3 x 3 2 4 ? 4 2 Hình 3.2. Ví dụ một ma trận đánh giá tổng quát
Giá trị 𝑟𝑖𝑗 thể hiện đánh giá của người dùng 𝑢𝑖 ∈ 𝑈 cho đối tượng 𝑣𝑗 ∈ 𝑉. Thông thường giá trị 𝑟𝑖𝑗 được thu thập trực tiếp bằng cách hỏi ý kiến người dùng hoặc thu thập gián tiếp thông qua cơ chế phản hồi của người dùng. Những giá trị
𝑟𝑖𝑗 = 0 được hiểu là người dùng chưa biết đến hoặc không đánh giá đối tượng, những giá trị chưa biết là giá trị cần hệ thống khuyến nghị đưa ra dự đoán đánh giá. Gọi 𝑢𝑥 là người dùng cần được tư vấn, khi đó có hai bài toán điển hình của hệ thống khuyến nghị là:
- Dự đoán đánh giá của người dùng 𝑢𝑥 với các đối tượng chưa có đánh giá trước đó.
- Đưa ra một danh sách ngắn các đối tượng được dự đoán là phù hợp nhất với người dùng cần được tư vấn.
3.1.3. Các hướng tiếp cận xây dựng hệ thống khuyến nghị
Việc sử dụng các kỹ thuật xây dựng hệ thống khuyến nghị hiệu quả và chính xác là rất quan trọng đối với một hệ thống cung cấp khuyến nghị tốt và hữu ích cho người dùng. Phần sau giới thiệu một số hướng tiếp cận xây dựng hệ thống khuyến nghị phổ biến (Hình 3.3) [18].
Hình 3.3. Các hướng tiếp cận hệ thống khuyến nghị
3.1.3.1. Kỹ thuật khuyến nghị dựa trên nội dung
Kỹ thuật khuyến nghị dựa theo nội dung (Content-based) sử dụng các mô tả về đối tượng và xây dựng các hồ sơ (profiles) người dùng chứa thông tin về các sở thích của người dùng. Các sở thích này có thể là đạo diễn, diễn viên đối với phim ảnh, là tác giả, thể loại đối với sách v.v… Việc gợi ý một đối tượng cho người dùng dựa trên sụ tương đồng giữa mô tả về đối tượng và hồ sơ người dùng.
Phương pháp này có lợi thế là giới thiệu được những đối tượng chưa bao giờ được đánh giá, nhận xét đến người dùng.
Các mô tả về đối tượng thường là các thông tin dạng văn bản như các tài liệu, trang web, tin tức. Hồ sơ người dùng được mô hình hóa thành vector trọng số của các mô tả đối tượng. Ưu điểm của phương pháp này là khả năng giới thiệu một đối tượng hoàn toàn mới cho người dùng. Hệ thống khuyến nghị dựa trên nội dung yêu cầu phải có đầy đủ mô tả đối tượng và chi tiết hồ sơ người dùng, đây cũng chính là hạn chế lớn nhất của phương pháp này.
3.1.3.2. Kỹ thuật lọc cộng tác lân cận dựa trên bộ nhớ
Kỹ thuật lọc cộng tác lân cận dựa trên bộ nhớ xác định mức độ quan tâm của một người dùng đối với một đối tượng dựa trên các người dùng khác gần giống với người dùng này. Việc gần giống nhau giữa các người dùng có thể được xác định thông qua mức độ quan tâm của các người dùng này tới các đối tượng khác mà hệ thống đã biết.
Kỹ thuật lọc cộng tác lân cận sử dụng một ma trận các đánh giá về đối tượng của người dùng. Mỗi một đánh giá của người dùng đối với một đối tượng thể hiện mức độ ưa thích của người dùng đối với đối tượng đó. Phương pháp này tính toán một tập các người dùng cũng như các đối tượng gần nhau bằng cách sử dụng các phép đo độ tương tự như hệ số Pearson, khoảng cách cosine. Theo đó, kỹ thuật lọc cộng tác được chia thành nhóm dựa trên người dùng và nhóm dựa trên đối tượng.
Phương pháp dựa trên người dùng tính toán độ tương tự giữa các người
dùng theo đánh giá của họ đối với các đối tượng, tạo ra một tập các người dùng tương tự đối với mỗi người dùng và dự đoán đánh giá cho các đối tượng chưa được đánh giá bằng cách sử dụng các thông tin đánh giá cho đối tượng đó từ những người dùng trong tập tương tự.
Phương pháp dựa trên đối tượng liên kết một đối tượng với một tập đối
tượng tương tự và dự đoán đánh giá của người dùng bằng cách sử dụng các đánh giá của người dùng đó cho các đối tượng khác trong tập tương tự.
Hình 3.4. Phương pháp dựa trên người dùng và dựa trên đối tượng
3.1.3.3. Kỹ thuật lọc cộng tác dựa trên mô hình
Mô hình được xây dựng từ việc học các đánh giá trước đó bằng các phương pháp học máy hoặc khai phá dữ liệu. Hệ thống khuyến nghị dựa trên mô hình thường dùng các thuật toán phổ biến như luật kết hợp, phân cụm, cây quyết định, mạng nơ ron nhân tạo (ANN), hồi quy, phân loại Bayes để xây dựng mô hình dự đoán. Một số phương pháp phổ biến của hướng tiếp cận này bao gồm các kỹ thuật giảm chiều dữ liệu như phân tích trị riêng (Singular Value Decomposition – SVD), kỹ thuật hoàn thiện ma trận (Matrix Completion), phương pháp ngữ nghĩa ẩn (Latent semantic), phân cụm và hồi quy, thừa số hóa ma trận (Matrix Factorization). Kỹ thuật dựa trên mô hình phân tích ma trận đánh giá để xác định các quan hệ giữa các đối tượng từ đó đưa ra danh mục top-N gồm N gợi ý cho người dùng. Phương pháp dựa trên mô hình giải quyết rất tốt vấn đề các ma trận đánh giá thưa (sparse) của các hệ thống khuyến nghị.
Thừa số hóa ma trận (Matrix factorization)
Mô hình nhân tố ẩn (Latent factor model) biến đổi cả người dùng và đối tượng vào cùng một không gian đặc trưng ẩn là một trong những mô hình thành công và phổ biến nhất của các hệ thống khuyến nghị. Mô hình này đưa các yếu tố
đặc trưng của người dùng và đối tượng thành các vector có cùng kích thước và sử dụng tích vô hướng để biểu diễn sự phù hợp của một đối tượng đối với một người dùng [19]. Đề tài chọn áp dụng phương pháp thừa số hóa ma trận, đây là một trong những phương pháp thuộc mô hình nhân tố ẩn (latent factor model) điển hình cải thiện đáng kể chất lượng dự đoán của hệ thống khuyến nghị đối với vấn đề ma trận đánh giá thưa.
Ý tưởng của phương pháp thừa số hóa ma trận là chia một ma trận lớn X
thành hai ma trận có kích thước nhỏ hơn W và H, sao cho sau đó có thể phục dựng lại X từ hai ma trận nhỏ hơn này càng chính xác càng tốt, tức là 𝐗~𝐖. 𝐇𝑇.
Ở đây, W là một ma trận kích thước |U| x K mà mỗi dòng là một vector có K nhân tố ẩn mô tả người dùng u và H là một ma trận kích thước |V| x K mà mỗi dòng là một vector có K nhân tố ẩn mô tả đối tượng v. Ta có K << |U| và K << |V|, K là số chiều dữ liệu đã giảm so với kích thước ma trận đánh giá.
Gọi 𝑤𝑖𝑘 và ℎ𝑗𝑘 là các phần tử tương ứng của hai ma trận W và H, khi đó xếp hạng của người dùng u đối với sản phẩm v được ước lượng bởi công thức:
𝑟̂𝑖𝑗 = ∑𝐾 𝑤𝑖𝑘ℎ𝑗𝑘
𝑘=1 = 𝑤. ℎ𝑇 (3.1)
Có thể thấy vấn đề then chốt của kỹ thuật thừa số hóa ma trận là làm sao để tìm được giá trị của hai tham số W và H. Hai tham số này có được bằng cách tối ưu hóa hàm mục tiêu. Trong đề tài này, hai tham số đó chính là kết quả các phép nhúng đỉnh u và v của đồ thị trong phương pháp nhúng đỉnh mạng đồ thị hai phía trình bày ở phần trước.
3.1.3.4. Một số hướng tiếp cận đang nghiên cứu phát triển
Kỹ thuật dựa trên đồ thị (graph-based)
Trong hướng tiếp cận dựa trên đồ thị, dữ liệu được biểu diễn dưới dạng đồ thị trong đó các đỉnh là người dùng, đối tượng hoặc cả hai và các cạnh là các tương tác hoặc độ tương tự giữa người dùng và đối tượng. Đối với dữ liệu được mô hình hóa dưới dạng đồ thị hai phía trong đó hai tập hợp các đỉnh đại diện cho người
dùng và đối tượng, và một cạnh kết nối người dùng u với đối tượng i nếu u có đánh giá i trong hệ thống. Cạnh có thể mang theo một trọng số, chẳng hạn như giá trị của đánh giá tương ứng.
Trong các mô hình này, các phương pháp tiếp cận thông thường dựa trên sự tương quan dự đoán xếp hạng của một người dùng u đối với một đối tượng i chỉ sử dụng các đỉnh được kết nối trực tiếp với u hoặc i. Các phương pháp tiếp cận dựa trên đồ thị cho phép các đỉnh không có kết nối trực tiếp nhưng vẫn ảnh hưởng đến nhau bằng cách lan truyền thông tin dọc theo các cạnh của đồ thị. Trọng số của một cạnh càng lớn thì càng có nhiều thông tin đi qua nó. Ngoài ra, ảnh hưởng của một đỉnh đối với đỉnh khác sẽ ít hơn nếu hai đỉnh ở xa hơn trong đồ thị, và ngược lại. Hai đặc tính này, được gọi là sự lan truyền và sự suy giảm, thường được quan sát trong các phép đo độ tương tự dựa trên đồ thị [17].
Các liên kết có tính chất bắc cầu thu được từ kỹ thuật dựa trên đồ thị có thể được sử dụng để đưa ra khuyến nghị theo hai cách. Trong cách đầu tiên, độ lân cận của đỉnh u đối với đỉnh i trong đồ thị được sử dụng trực tiếp để đánh giá mức độ phù hợp của đối tượng i đối với người dùng u. Theo ý tưởng này, các đối tượng
được hệ thống đề xuất cho người dùng u là những đối tượng “gần nhất” với đỉnh
u trong biểu đồ. Cách thứ hai xem xét độ lân cận giữa hai đỉnh người dùng hoặc
đối tượng như là một phép đo độ tương tự và dùng giá trị này trong kỹ thuật lọc cộng tác lân cận.
Kỹ thuật nhận biết ngữ cảnh (context aware-based)
Trong một số trường hợp, việc chỉ xem xét về người dùng và đối tượng là chưa đủ, mà cần phải kết hợp thông tin ngữ cảnh mới có thể đề xuất các đối tượng phù hợp cho người dùng [17]. Ví dụ, sử dụng bối cảnh thời gian, một hệ thống khuyến nghị du lịch sẽ cung cấp một gợi ý địa điểm đi nghỉ vào mùa đông rất khác so với vào mùa hè. Đối với các trang tin tức thì các nội dung về thị trường chứng khoán nên được giới thiệu vào buổi sáng và phim ảnh thì vào chiều tối.
Hệ thống khuyến nghị nhận biết ngữ cảnh có thể gắn nhãn mỗi hành động của người dùng với ngữ cảnh thích hợp và điều chỉnh hiệu quả đầu ra của hệ thống cho người dùng trong ngữ cảnh nhất định đó [20].
Ngoài ra còn rất nhiều phương pháp khác để xây dựng hệ thống khuyến nghị như kỹ thuật dựa trên nội dung nhận biết ngữ nghĩa (semantic aware content- based), kỹ thuật dựa trên ràng buộc (constraint-based), kỹ thuật khai phá dữ liệu cho hệ thống khuyến nghị, kỹ thuật dựa trên tri thức (knowledge-based), kỹ thuật kết hợp (hybrid) v.v… Tùy vào từng loại thông tin dữ liệu và yêu cầu cụ thể thì sẽ có một phương pháp phù hợp nhất để xây dựng hệ thống khuyến nghị
3.2. Các phương pháp và độ đo đánh giá hệ thống khuyến nghị 3.2.1. Phương pháp đánh giá hệ thống khuyến nghị 3.2.1. Phương pháp đánh giá hệ thống khuyến nghị
Để xây dựng một hệ thống khuyến nghị cần chọn một mô hình thống kê hoặc học máy phù hợp nhất với dữ liệu và yêu cầu của công việc. Do đó cần có các phương pháp để đánh giá độ chính xác và chọn ra được mô hình phù hợp trong số rất nhiều mô hình đang có hiện nay.
Đối với mạng đồ thị hai phía, tập dữ liệu 𝑅 gồm nhiều dòng với chủ yếu 3 cột gồm người dùng, đối tượng và đánh giá của người dùng cho đối tượng (tương đương 3 tập U, V, E). Tiến hành chia các dòng dữ liệu một cách ngẫu nhiên với một tỷ lệ xác định trước tập dữ liệu thành hai tập, một tập huấn luyện mô hình
𝑅𝑡𝑟𝑎𝑖𝑛 và một tập kiểm tra 𝑅𝑡𝑒𝑠𝑡, sao cho 𝑅𝑡𝑟𝑎𝑖𝑛 ∪ 𝑅𝑡𝑒𝑠𝑡 = 𝑅 và 𝑅𝑡𝑟𝑎𝑖𝑛∩ 𝑅𝑡𝑒𝑠𝑡 = ∅. Tập dữ liệu huấn luyện được dùng để xây dựng mô hình theo các thuật toán lọc sử dụng trong hệ khuyến nghị, tập kiểm tra được dùng vào quá trình kiểm nghiệm thuật toán đề xuất.
Hai nhiệm vụ chính của hệ khuyến nghị là dự đoán đánh giá về đối tượng và đề xuất danh sách ngắn các đối tượng có thể phù hợp cho người dùng hiện thời. Căn cứ theo hai nhiệm vụ đó thì có hai nhóm độ đo đánh giá hệ thống khuyến nghị tương ứng là: 1) Nhóm độ đo đánh giá độ chính xác của đánh giá dự đoán; và 2) Nhóm độ đo đánh giá độ chính xác của danh sách đối tượng đề xuất.
3.2.2. Đánh giá độ chính xác của dự đoán
3.2.2.1. Sai số tuyệt đối trung bình (MAE)
Một độ đo phổ biến nhất được sử dụng đánh giá sai số giữa giá trị đánh giá dự đoán và giá trị đánh giá thực tế trong hệ khuyến nghị là độ đo Sai số tuyệt đối trung bình (Mean Absolute Error – MAE).
Sai số dự đoán 𝑀𝐴𝐸𝑢 với mỗi người dùng 𝑢 thuộc tập kiểm tra 𝑅𝑡𝑒𝑠𝑡 được tính bằng trung bình cộng của sai số tuyệt đối giữa giá trị dự đoán và giá trị thực