Chương 1: Tổng quan về hệ thống khuyến nghị 1. Giới thiệu Trong quá trình phát triển của ngành thương mại bán lẻ hàng hóa, dịch vụ, vấn đề nắm bắt thị hiếu, sở thích của người tiêu dùng là một vấn đề có tính nền tảng, sống còn của ngành mà bất kì người bán lẻ nào nếu muốn tồn tại trong thương trường đều cần phải giải quyết thật tốt. Trước khi máy tính ra đời, những người bán lẻ đã thực hiện nhiều biện pháp để ghi nhận thói quen của người tiêu dùng như sử dụng các hóa đơn bán hàng để xem xét các mặt hàng thường được mua sắm cùng nhau, phỏng vấn người mua về sở thích mua sắm của họ để từ đó đưa ra những biện pháp giúp tối đa hóa doanh thu, tối ưu hóa chi phí của doanh nghiệp. Ví dụ, khi đi vào một cửa hàng sách quen thuộc, chủ cửa hàng sẽ giới thiệu cho người khách một vài quyển sách hoặc tờ báo mà người khách đó có thể quan tâm dựa trên sở thích hoặc thói quen của khách.
Hiện nay với sự phát triển bùng nổ của Internet đã làm xuất hiện các nhà cung cấp hàng hóa, dịch vụ hoạt động trực tuyến và mạng xã hội cung cấp vô số thông tin và sản phẩm, dịch vụ mới. Ví dụ, năm 2019 mỗi phút có khoảng 500 giờ phát video clip được tải lên Youtube [35] , danh mục sản phẩm của Amazon năm 2018 vào khoảng 12. Với lượng thông tin đồ sộ như vậy, có thể nói Internet đã làm cho người dùng không còn có đủ thời gian để xem xét lựa chọn tất cả các thông tin, phim, tạp chí hay bài hát… Người dùng không biết mình nên xem phim gì, đọc cuốn sách nào phù hợp với sở thích, nhu cầu của bản thân. Hơn nữa, đối với các doanh nghiệp việc phục vụ hàng hóa, dịch vụ đúng sở thích, thị hiếu của khách hàng giúp tối đa hóa doanh thu, đồng thời giúp lập kế hoạch dự trữ hàng hóa thích hợp để tối ưu hóa chi phí vận hành, từ đó làm gia tăng lợi nhuận cho doanh nghiệp.
Trong lĩnh vực xây dựng hệ tư vấn có 2 nhiệm vụ cơ bản cần được giải quyết là dự đoán xếp hạng cho từng mặt hàng và gợi ý danh sách mặt hàng [1]. Nhiệm vụ dự đoán xếp hạng (rate prediction) nhằm mục tiêu tối ưu hóa dự đoán mức độ ưa thích của người dùng đối với từng mặt hàng cụ thể, trong khi đó nhiệm vụ gợi ý danh sách mặt hàng (ranking) nhằm giải quyết vấn đề gợi ý cho người dùng danh sách mặt hàng mà họ nhiều khả năng 1 có tương tác nhất. Trong hai nhiệm vụ nói trên, nhiệm vụ dự đoán xếp hạng của người dùng cho sản phẩm đóng vai trò quan trọng vì điểm xếp hạng của người dùng phản ánh mức độ hài lòng của người dùng đối với sản phẩm/dịch vụ. Trong luận văn sẽ tập trung giải quyết nhiệm vụ dự đoán xếp hạng của người dùng đối với sản phẩm.
Một số khái niệm chung về hệ thống khuyến nghị Hệ thống khuyến nghị (Recommender System viết tắt là RS) là hệ thống sử dụng các kỹ thuật và công cụ phần mềm xử lý dữ liệu người dùng và dữ liệu về sản phẩm nhằm đáp ứng nhu cầu của người dùng về một sản phẩm hoặc dịch vụ nào đó. Trên cơ sở thông tin trong quá khứ về hành vi của người dùng, hệ thống thực hiện khai phá thông tin về sở thích, thị hiếu tiêu dùng từ đó đưa ra những gợi ý để hỗ trợ người dùng đưa ra quyết định lựa chọn sản phẩm, dịch vụ đáp ứng đúng sở thích của mình. Mặt hàng (Item) là thuật ngữ chung để chỉ những gì người dùng có tương tác trong hệ thống khuyến nghị. Item có thể là sách, phim, truyện, tin tức.
Thông thường hệ thống khuyến nghị sẽ được xây dựng phù hợp với một loại hình sản phẩm nhất định để đảm bảo hiệu quả khuyến nghị cho Item đó. Trên thực tế để thu thập dữ liệu Hồ sơ người dùng (User profile), người ta thường sử dụng theo hai phương pháp chính là phương pháp phản hồi tường minh (explicit feedback) và phương pháp phản hồi ẩn (implicit feedback). Đối với phương pháp phản hồi tường minh, hệ thống yêu cầu người dùng thực hiện xếp hạng cụ thể cho từng Item để xây dựng hồ sơ người dùng. Phương pháp này cung cấp dữ liệu người dùng trực tiếp cho hệ thống khuyến nghị (không phải thực hiện các công đoạn biến đổi trung gian) và kết quả khuyến nghị được đánh giá là đáng tin cậy hơn cả [1].
Tuy được cho là đem lại kết quả khuyến nghị đáng tin cậy hơn nhưng phương pháp này yêu cầu người dùng phải thực hiện thêm một số thao tác với hệ thống, do đó trong một số trường hợp làm giảm trải nghiệm người dùng. Bên cạnh đó, tâm lý chung của người dùng không muốn chia sẻ quá nhiều thông tin mang tính chất riêng tư do đó làm cho phương thức thu thập phản hồi tường minh thường gặp khó khăn trong quá trình triển khai thực tế. Nhằm khắc phục mặt hạn chế của phương pháp thu thập phản hồi tường minh, phương pháp thu thập phản hồi ẩn ghi nhận những dấu vết mà người dùng để lại trên hệ 2 thống như lịch sử mua hàng, lịch sử truy cập website, thời gian xem một trang web, số lần click chuột vào các siêu liên kết,… để suy luận thông tin về sở thích của người dùng. Phương pháp này giúp cải thiện trải nghiệm của người dùng đối với hệ thống tuy nhiên khả năng mô tả sở thích của người dùng được cho là không tốt bằng phương pháp phản hồi tường minh do hệ thống phải thực hiện các khâu biến đổi trung gian để trích xuất thông tin từ hành vi của người dùng [1].
Ma trận tương tác Người dùng – Sản phẩm (Utility Matrix/User – Item matrix) là một cơ sở dữ liệu mô tả sở thích của mỗi User với từng Item trong hệ thống. Về mặt hình thức, cơ sở dữ liệu này có thể biểu diễn dưới dạng ma trận trong đó mỗi hàng tương ứng với một User, mỗi cột tương ứng với một Item, giá trị tại mỗi ô của ma trận chính là giá trị rating của User cho Item đó. Mặt hàng 1 Mặt hàng 2 Mặt hàng 3 Mặt hàng n Người dùng 1 1 3 5 … ? Người dùng 2 2 ? 4 … 2 … … … … … … Người dùng m ? 2 1 … 3 𝑹 Hình 1.1: Ma trận tương tác Người dùng – Sản phẩm Xuất phát từ nguyên nhân tâm lý, người dùng không phải khi nào cũng đánh giá tất cả các Item mà họ đã từng trải nghiệm, thông thường người dùng chỉ đánh giá Item trong trạng thái tích cực (rất thích) hoặc tiêu cực (rất ghét). Vì vậy trên thực tế ma trận tương tác Người dùng – Sản phẩm nói trên thường bị khuyết giá trị ở rất nhiều ô, vấn đề này được gọi là vấn đề dữ liệu thưa (data sparsity)[2].
Vấn đề dữ liệu thưa của ma trận tương tác dẫn đến hệ quả các thuật toán khuyến nghị dựa trên bộ nhớ (memory-based recommendation algorithms)[1] hoạt động không hiệu quả. Bên cạnh đó, trường hợp trong hệ thống xuất hiện người dùng hoặc item mới chưa có tương tác nào thì ma trận Người dùng – Sản phẩm sẽ xuất hiện các hàng/cột bị trống hoàn toàn. Vấn đề này được gọi là vấn đề khởi động nguội (cold-start problem)[2] xảy ra đối với các hệ khuyến nghị dựa trên cộng tác khi hệ thống gặp phải những item hoàn toàn không có tương tác nào, hệ khuyến nghị không thể 3 khai thác được thông tin sở thích giống nhau giữa các nhóm người dùng/item để đưa ra khuyến nghị. Phương thức hoạt động của Hệ khuyến nghị Trong thực tế, khi người tiêu dùng thực hiện hành vi mua hàng, việc ra quyết định của họ thường được đưa ra theo hai cách tiếp cận chính: Một là xem xét những thông tin chi tiết về sản phẩm như tính năng, công dụng, thành phần,… tùy thuộc vào mức độ phù hợp với nhu cầu sử dụng để đưa ra quyết định.
Hai là người dùng có thể tham khảo ý kiến của những người xung quanh về mức độ hài lòng đối với sản phẩm để đưa ra quyết định mua sắm của mình. Xuất phát từ quan sát nêu trên, hệ thống RS mô phỏng lại quá trình ra quyết định của người dùng theo hai cách tiếp cận chính là khuyến nghị dựa trên lọc theo nội dung và khuyến nghị dựa trên lọc theo cộng tác. Trong cách tiếp cận dựa trên lọc theo nội dung, hệ thống RS dựa trên lịch sử tương tác của người dùng với đối tượng và thông tin về thuộc tính của đối tượng (nội dung của đối tượng) để tìm ra các thuộc tính (đặc tính) có ảnh hưởng lớn đến đánh giá của người dùng đó. Đặc điểm sở thích của người dùng dựa trên đặc tính của sản phẩm được biểu diễn bởi vector 𝑃𝑟𝑜𝑓𝑖𝑙𝑒(𝑈) = (𝑤1 , 𝑤2 , … , 𝑤𝑛 ) có các phần tử tương ứng với các yếu tố nội dung cấu tạo nên sản phẩm, giá trị trọng số 𝑤𝑖 mô tả tầm quan trọng của thành phần nội dung thứ 𝑖 ảnh hưởng tới sở thích của người dùng.
Tương tự với việc xây dựng User Profile, hệ thống RS sử dụng các kỹ thuật Truy hồi thông tin (Information Retrieval – IR) nhằm phân tích đối tượng I dưới dạng vector trọng số 𝐶𝑜𝑛𝑡𝑒𝑛𝑡(𝐼) = (𝑤1 , 𝑤2 , … , 𝑤𝑛 ) của các thành phần nội dung. Ví dụ, thông thường thông tin mô tả về đối tượng thường được thể hiện dưới dạng văn bản như các đoạn văn, bài viết, mẩu tin ngắn,… hệ thống RS sẽ sử dụng các kỹ thuật IR trích xuất đặc tính như từ khóa, n-grams, thực thể,… để xây dựng mô hình đối tượng dưới dạng vector từ khóa [3]. Như vậy, theo cách tiếp cận lọc dựa trên nội dung, hệ thống RS đã thực hiện ánh xạ sở thích của người dùng và nội dung của đối tượng vào cùng một không gian vector (không gian thuộc tính của sản phẩm). Do đó để đánh giá độ phù hợp giữa sản phẩm I với người dùng U, hệ thống RS có thể sử dụng độ đo cosine để đo lường sự tương đồng giữa 2 vector: 4 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ , ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ 𝑟(𝑈, 𝐼) = 𝑐𝑜𝑠(𝑃𝑟𝑜𝑓𝑖𝑙𝑒(𝑈) 𝐶𝑜𝑛𝑡𝑒𝑛𝑡(𝐼)) (1) Trong cách tiếp cận dựa trên lọc theo cộng tác, hệ thống RS khai phá những nhóm người dùng “tương tự” nhau dựa trên hành vi quá khứ của người dùng được ghi nhận trong ma trận tương tác Người dùng – Sản phẩm.
Hệ thống RS sẽ dự đoán độ phù hợp 𝑟(𝑈, 𝐼) giữa người dùng hiện tại 𝑈 với đối tượng 𝐼 thông qua độ phù hợp 𝑟(𝑈𝑗 , 𝐼) của những người dùng 𝑈𝑗 khác có cùng sở thích với 𝑈.