Hệ thống gợi ý và các hướng tiếp cận

Tổng quan về hệ thống gợi ý

Hệ thống gợi ý (Recommender Systems) là một thành phần trong hệ thống thông tin. Mục đích của nó là hỗ trợ người dùng tìm kiếm được đúng thông tin cần thiết, dự đoán sở thích hay xếp hạng mà người dùng có thể 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ứ.

Nội dung liên quan nói trên chính là các gợi ý, là kết quả được tính toán dựa trên việc thu thập dữ liệu về người dùng như khi mua hàng, khi đưa ra các đánh giá cá nhân. Việc thực hiện tính toán được xây dựng trên các thuật toán Học máy (Machine Learning), đưa ra các dự đoán tốt nhất về sản phẩm mà người dùng có thể thích, giúp tối ưu hóa doanh thu qua up-sale, cross-sale. Cải thiện trải nghiệm người dùng, 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 trở thành khách hàng thật.

VD: Hệ thống bán hàng của Amazon, họ sẽ dựa vào những gì người sử dụng đã mua trong quá khứ, những sản phẩm mà bạn đã bấm like, cho điểm hay những sản phẩm vẫn còn đang trong giỏ hàng của bạn. Có lẽ vì thế, khi bạn là một tín đồ công nghệ, Amazon sẽ gợi ý cho bạn rất nhiều sản phẩm công nghệ hay ho đó 😄. Còn nữa này, đã bao giờ bạn vào facebook và để ý phần people you my know chưa? mặc dù có những người không có bạn chung nào, nhưng facebook vẫn gợi ý để bạn kết bạn, và rồi trong đầu bạn nảy ra một suy nghĩ "Tại sao facebook lại thông minh đến vậy, tại sao nó có thể biết mình quen biết người này mà gợi ý nhỉ?" Tấy cả đó đều là recommendation system đó ạ.

Các hướng tiếp cận

Các hệ thống gợi ý thường sử dụng nhiều thuật toán khác nhau, về cơ bản, chúng ta có thể chia làm 2 nhóm lớn.

  • Collaborative filtering
  • Content-based filtering

Ở bài viết này, chúng ta sẽ cùng tìm hiểu hai cách tiếp cận này là gì nhé.

Collaborative filtering

Collabroative filtering hoạt động dựa trên mô hình là những hành vi của người dùng trước đó như: lịch sử giao dịch, để tìm các quy luật tương tác giữa người dùng (user) và các thông tin (item). Do đó những hệ thống gợi ý dựa trên cách tiếp cận này đều không quan tâm đến các thuộc tính của item, Nó có khả năng khai thác thông tin ngoài phạm vi của các thuộc tính thông tin. Mô hình huấn luyện có thể xây dựng dựa trên hành vi của một người dùng, hoặc hiệu quả hơn, nó có thể từ nhiều người dùng khác có cùng đặc điểm. Khi làm việc với hành vi của người dùng khác, Collaborative filtering sử dụng kiến thức nhóm để tạo ra đề xuất dựa trên những người dùng tương tự. Về bản chất, Nó lọc trên những người có cùng sở thích, hay những người có cùng những hành vi tương tự, cùng bấm like, cho điểm đối với cùng một item.

Ví dụ, Bạn xây dựng một trang web bán hàng, bằng cách sử dụng thông tin của người dùng đăng ký và mua các sản phẩm, bạn có thể nhóm những người dùng này dựa trên sở thích của họ. Ví dụ Đa số những người dùng đã đọc quyển sách "The 7 habits of highly effective people" của Stephen R. Covey, và cuốn "Good To Great" của Jim Collins họ đều tìm mua cuốn "Think and Grow Rich" của Napoleon Hill. Từ những thông tin này, bạn có thể nhóm họ thành nhóm những người có cùng sở thích. Sau đó, khi có một người dùng khác, họ muốn mua quyển sách "The 7 habits of effective people" và "Good to great" hệ thống sẽ gợi ý cho họ cuốn sách "Think and grow rich" có thể là cuốn sách mà họ quan tâm.

Đối với phương pháp này, chúng ta có thể chi ra thành 2 cách tiếp cận nhỏ hơn đó là. user-base và item-base User-base approach Hãy cùng tôi tìm hiểu logic này.

  • Rất nhiều người thích "Kungfu Panda", liệu rằng tôi có thích "Kungfu panda" như vậy không?

Tư tưởng của cách tiếp cận này đó là, pick 20-50 người cùng chia sẻ với tôi rằng họ thích "Kungfu Panda" do đó, mức độ thích bộ phim này của tôi phụ thuộc vào mức độ thích của họ. Hay nói cách khác, "you may like it, because your friend like it" (^_^)

Cách xây dựng:

  • Biểu diễn mỗi người dùng bằng một vector các sản phẩm đã tương tác, có thể có trọng số.
  • Tính độ tương tự giữa các vector đại diện cho người dùng.
  • Đối với người dùng A, ước tính độ phù hợp của sản phẩm dựa vào lịch sử của nhóm người dùng tương tự như A
  • Có thể chọn k người dùng gần giống A nhất, hoặc chọn tất cả người dùng nhưng thêm trọng số để ưu tiên những người giống A hơn

Item-base approach Ví dụ:

  • Tôi đã từng xem những bộ phim hay và không hay trước đó, Vậy có thể gợi ý cho tôi rằng, tôi có nên xem "Taken" hay không?

Ý tưởng, pick 20-50 bộ phim tôi đã xem trước đó, mà chúng có cùng đối tượng với "Taken", mức độ mà tôi sẽ thích "Taken" phụ thuộc vào mức độ tôi thích những bộ phim trước đó.

Các bước triển khai:

  • Biểu diễn mỗi sản phẩm bằng một vector người dùng.
  • Tính độ tương tự giữa các sản phẩm
  • Đối với người dùng A, tìm các sản phẩm tương tự với các sản phẩm A đã tương tác.
  • Recommend sản phẩm cho A từ các sản phẩm nói trên, bằng các tiêu chí như trọng số cao, nhiều người tương tác

Content-based filtering

Content-based filtering system gợi ý dựa trên hành vi của người dùng. Như tên gọi của phương pháp này, dĩ nhiên nó phụ thuộc vào thuộc tính của các sản phẩm, đặc biết rất mạnh đối với các sản phẩm giầu nội dung như các sản phẩm thuộc lĩnh vực truyền thông, quảng cáo, y tế ... Đặc biệt có thể recommend các item mới, thích hợp khi danh sách sản phẩm được cập nhật liên tục và giải quyết tốt vấn đề Item cold start

Ví dụ: cách tiếp cận này có thể sử dụng thông tin duyệt lịch sử, chẳng hạn như blog mà người dùng đã đọc và đặc điểm của các blog đó. Nếu người dùng thường đọc các bài báo về Linux hoặc có khả năng để lại bình luận trên các blog về kỹ thuật phần mềm, Content-based filtering có thể sử dụng lịch sử này để xác định và giới thiệu nội dung tương tự (bài viết trên Linux hoặc các blog khác về kỹ thuật phần mềm). Nội dung này có thể được định nghĩa bằng tay hoặc tự động chiết xuất dựa trên các phương pháp tương tự khác.

Các bước chính:

  • Biểu diễn mỗi sản phẩm dưới dạng một vector thuộc tính.
  • Recommend các sản phẩm tương tự nhau
  • Hoặc xây dựng profile người dùng theo các thuộc tính sản phẩm và recommend sản phẩm có thuộc tính phù hợp với profile người dùng

Hybrid

Ngoài hai hướng tiếp cận chính trên, Nhiều hệ thống recommendation còn là sự kết hợp giữa nhiều phương pháp: iteam-base, user-base, Metrix factorization, cũng có thể sẽ bao gồm cả content-base filtering. Sự kết hợp này có tên Hybrid, thoạt nhìn, có thể sẽ thấy nó giống mạng Neural nhưng mà không phải mạng Neural đâu nhé, Nó là một dạng của Markov Random Fields.

Conclusion

Ở bài viết này chúng ta đã tìm hiểu những kiến thức tổng quan nhất hệ thống gợi ý cùng những hướng tiếp cận tiêu biểu. Bài viết tiếp theo bạn cùng tôi tìm hiểu về các thuật toán được áp dụng trong những hệ thống gợi ý này nhé.

Reference