Recommender Systems - Viblo

I. Giới thiệu

Ngày nay, với sự bùng nổ của internet, thay vì phải ra đường, bạn đơn giản chỉ cần ở nhà, lướt web, và chỉ với vài cú click chuột, cả thế giới đã mở ra trước mắt bạn. Bạn muốn mua gì, xem gì, ăn gì,... tất cả đều có trên internet. Vậy nhưng đó mới chỉ là lợi thế cạnh tranh đặc trưng của nó, nên chẳng có gì khó hiểu. Sức mạnh của công nghệ nằm ở chỗ thậm chí nó thậm chí còn suy nghĩ hộ bạn. Lướt qua bất kỳ trang thương mại điện tử, hoặc các trang mạng xã hội, đôi lần bạn phải trầm trồ, ngạc nhiên khi không hiểu sao website đó có thể đề xuất cho bạn một món hàng, một mối quan hệ cực kỳ chính xác. Mặc dù chỉ là những gợi ý đơn giản, nhưng nằm sau đó là cả một hệ thống với những giải thuật phức tạp và tập dữ liệu khổng lồ, và hẳn hàng trăm cuốn sách, tạp chí, bài báo viết về nó, Recommender System - Hệ tư vấn.

Recommender Systems (RSs) là những công cụ và kỹ thuật nhằm cung cấp đề xuất về một item cho người dùng. Những đề xuất này liên quan đến những quy trình ra quyết định khác nhau, chẳng hạn nên mua hàng gì, nghe nhạc gì hoặc đọc tin tức ở đâu.

"Item" là thuật ngữ chung nhằm ám chỉ cái mà hệ thống đề xuất với người dùng. RSs chủ yếu hướng đến những cá nhân thiếu kinh nghiệm hoặc thẩm quyền để đánh giá tiềm năng của một số "item" mà chẳng hạn, một website có thể cung cấp. Trường hợp nếu là một hệ tư vấn sách thì nó sẽ hỗ trợ người dùng chọn lựa một cuốn sách để đọc. Rõ ràng, có khá nhiều lý do tại sao những website này lại muốn sử dụng RS:

  • Gia tăng doanh số bán hàng: Đây có lẽ là lý do quan trọng nhất cho những trang thương mại điện tử, đơn giản là họ sẽ bán thêm được hàng so với những trang mà không sử dụng RS. RS đề xuất càng chính xác với nhu cầu người dùng thì website càng bán được nhiều hàng.
  • Thỏa mãn nhu cầu khách hàng: Một RS được thiết kế và cài đặt tốt sẽ cải thiện trải nghiệm người dùng. Người dùng sẽ thấy rằng hệ tư vấn này rất thú vị, chính xác, và cùng với một UI được thiết kế hợp lý, khách hàng sẽ muốn quay lại website.
  • Nắm được nhu cầu khách hàng: Một chức năng quan trọng khác của RS là cho phép ta thu thập được phản hồi của khách hàng. Nếu khách hàng không thích những thứ mà bạn đề xuất, bạn vẫn có thể thu thập lại được những thông tin này và tái sử dụng nó để cải thiện độ chính xác của RS.

II. Một số kỹ thuật sử dụng trong recommender system

Để cài đặt chức năng chính của RS, xác định một item hữu ích cho user nào đấy, một RS phải dự đoán xem liệu item đấy có đáng để đưa vào gợi ý hay không. Có 6 kiểu tiếp cận bài toán gợi ý, bao gồm:

  • Content-based: hệ thống sẽ học để gợi ý những item mà tương tự với những cái mà user đã thích trong quá khứ. Độ tương tự giữa các item được tính dựa trên những đặc trưng kết hợp với những item được so sánh. Chẳng hạn, nếu user rate điểm cao cho một bộ phim thuộc thể loại hài hước, thì hệ thống có thể học để gợi ý những bộ phim khác thuộc thể loại này.

  • Collaborative filtering (CF - lọc cộng tác): cách cài đặt đơn giản nhất cho hướng tiếp cận này là gợi ý cho user những item mà những user khác có cùng sở thích đã thích trong quá khứ. Độ tương tự về sở thích của 2 user được tính toán dựa trên mức độ tương tự về lịch sử rating của 2 user. Lọc cộng tác được xem là kỹ thuật phổ biến và được sử dụng nhiều nhất trong RS.

  • Demographic: đúng như tên gọi, kiểu hệ thống này sẽ gợi ý item dựa nhân khẩu học của user. Giả thuyết cho rằng những thị trường khác nhau nên được gợi ý những item khác nhau. Chẳng hạn, user sẽ được điều hướng tới những website khác nhau dựa trên ngôn ngữ và địa lý. Hoặc là việc gợi ý có thể thay đổi dựa trên tuổi của user. Mặc dù cách tiếp cận này khá phổ biến trong mảng tiếp thị truyền thống, nhưng có rất ít nghiên cứu khoa học về kỹ thuật này.

  • Knowledge-based: hệ thống sẽ gợi ý item dựa trên miền kiến thức cụ thể rằng những đặc điểm nào của item đáp ứng được nhu cầu và thị hiếu của user, cuối cùng là item đó có hữu ích cho user hay không. Hệ thống này có khuynh hướng hoạt động tốt hơn các hệ thống khác khi bắt đầu triển khai, nhưng nếu không được trang bị các thành phần hỗ trợ học thì nó có thể bị vượt qua bởi các phương pháp khác mà có thể khai thác lịch sử tương tác giữa user và item (như lọc cộng tác chẳng hạn).

  • Community-based: gợi ý item dựa trên sở thích của bạn bè của user. Kiểu như câu "Hãy nói cho tôi biết bạn bè của bạn, tôi sẽ nói cho bạn biết bạn là ai" 😄 Rõ ràng con người thường có xu hướng nghe theo lời khuyên của bạn bè hơn là lời khuyên từ người lạ. Kiểu tiếp cận này sẽ cần thông tin về mối quan hệ xã hội của user và sở thích của họ (có vẻ phù hợp với các trang mạng xã hội như facebook, twitter). Kết quả gợi ý sẽ dựa trên rating thu thập được từ bạn của user.

  • Hybrid recommender system: từ tên gọi chắc mọi người cũng đoán được rồi, hệ thống này dựa trên kết hợp của những kỹ thuật đã đề cập ở trên. Lấy ví dụ, phương pháp CF sẽ gặp vấn đề với các item mới, nghĩa là nó không thể sinh ra gợi ý cho các item mà chưa có rating. Tuy nhiên điều này lại không ảnh hưởng đến content-based vì phương pháp này dự đoán cho các item mới dựa trên mô tả của chúng (các tính năng, đặc điểm). Với hai kỹ thuật RSs cơ bản (hoặc nhiều hơn) kết hợp lại tạo ra một hệ thống hybrid mới nhằm tận dụng lợi thế của kỹ thuật này để bổ sung cho điểm yếu của kỹ thuật kia.

Trên đây chỉ là định nghĩa sơ lược về những kỹ thuật thường dùng để xây dựng một hệ thống khuyến nghị. Rõ ràng còn có rất nhiều vấn đề cần phải giải quyết, từ thu thập dữ liệu, lọc nhiễu, chuẩn hóa dữ liệu (ví dụ dữ liệu về rating có thể có thang điểm không đồng nhất, một bên là 1-5, một bên là 1-10 chẳng hạn), vấn đề về data sparsity (cách giải quyết khi dữ liệu ít và thưa), tiếp đó mới đến quá trình training dữ liệu và cài đặt, cuối cùng là ước lượng, đánh giá kết quả cuối cùng (precision, recall, ...).

Một ví dụ khá nổi tiếng về RS là Netflix Prize, một cuộc thi được khởi xướng và tổ chức bởi Netflix năm 2009 nhằm tìm ra giải thuật lọc cộng tác (CF) tốt nhất để dự đoán rating của user cho một bộ phim, dựa trên lịch sử rating mà không có thêm bất cứ thông tin gì về user cũng như bộ phim. Giải thưởng trị giá $1.000.000 đã được trao cho đội BellKor's Pragmatic Chaos, đủ để thấy việc cải tiến độ chính xác cho giải thuật cũng là một bước cực kỳ quan trọng. Bạn có thể đọc thêm thông tin ở trang chủ của cuộc thi NetflixPrize.

III. Thực tiễn áp dụng

Những nghiên cứu về RS đang tập trung vào thực tiễn và ứng dụng thương mại, vì bên cạnh đóng góp lý thuyết, nó thường nhằm cải thiện những RSs thương mại. Do đó, nghiên cứu của RS liên quan đến các khía cạnh thực tế áp dụng cho việc cài đặt các hệ thống này. Các khía cạnh này liên quan đến các giai đoạn khác nhau trong vòng đời của RS, cụ thể là việc thiết kế hệ thống, việc cài đặt, maintain và cải tiến trong quá trình hoạt động của hệ thống.

Những khía cạnh áp dụng cho giai đoạn thiết kế có thể ảnh hưởng đến việc lựa chọn giải thuật. Nhân tố đầu tiên được xem xét sẽ là lĩnh vực của ứng dụng, vì nó ảnh hưởng rất lớn đến hướng tiếp cận giải thuật. Dựa trên lĩnh vực cụ thể của ứng dụng, chúng ta có thể xác định được những nhóm lĩnh vực thông dụng cho những hệ khuyến nghị thường dùng:

  • Giải trí: gợi ý phim, nhạc...
  • Nội dung: gợi ý tài liệu, gợi ý website, ứng dụng e-learning và lọc email.
  • E-commerce: gợi ý khách hàng sản phẩm để mua.
  • Dịch vụ: gợi ý dịch vụ du lịch, dịch vụ nhà nghỉ...

Tham khảo:

  1. Recommender System Handbook - Francesco Ricci, Lior Rokach
  2. Nếu muốn thử cài đặt RS, bạn có thể tham khảo nguồn dataset từ GroupLens
  3. Nguồn tài liệu chính cho các quyển sách về RS chính là các bài nghiên cứu, báo cáo khoa học thường được liệt kê dưới mỗi chương sách, bạn có thể tìm kiếm và tải về để tham khảo thêm.

Từ khóa » Hệ Thống Khuyến Nghị