Đây là một trong những thuật toán khuyến nghị phổ biến và thông dụng nhất. Thuật toán dựa trên ý tưởng bằng việc sử dụng các mô tả đặc trưng các thuộc tính của các sản phẩm cho mục đích khuyến nghị. Ngày nay, các thuật toán xoay quanh
CBRS chưa thực sự đa dạng, chủ yếu dựa trên nội dung của sản phẩm hoặc hồ sơ của người dùng để đưa ra các gợi ý. Ý tưởng chính là biến đổi các thông tin nội dung này thành dạng vector đặc trưng rồi dùng một công thức đo độ tương đồng giữa các vector để trả về kết quả. Các vector biểu diễn có khoảng cách gần với nhau nhất sẽ biểu diễn các sản phẩm tương tự nhau. Bài toán khuyến nghị này có thể được chia ra làm 2 nhánh chính: Chỉ phân tích các thuộc tính của sản phẩm, hoặc xây dựng các bộ hồ sơ người dùng cho từng cá nhân dựa trên các đặc tính và dữ liệu đánh giá của sản phẩm [1]. Tiếp theo, luận văn cùng đi qua một lượt nội dung của 2 thuật toán CB này và đánh giá một số các hệ thống CB liên quan khác.
i, Dựa trên phân tích nội dung đặc trưng của đối tượng
Với trường hợp dữ liệu là dữ liệu thô, thuần khiết về các thuộc tính sản phẩm, và không có tính cá nhân hoá, ta có thể xây dựng một hệ thống khuyến nghị dựa trên sự tương đồng giữa các thuộc tính này. Ví dụ, ta có N bản ghi Xn = {x1, x2,..., xn} với xi
có h thuộc tính xi = {p1, p2, ..., ph}; trong đó pi có thể phản ánh bất kỳ một giá trị nào đó đó ngoài đời thực, chẳng hạn như: giá cả, thẻ tags, nội dung miêu tả, nhãn hiệu...
Tư tưởng chính ở đây là cố gắng tìm ra các sản phẩm có những vùng nội dung giống nhau nhiều nhất có thể để nhóm chúng thành một nhóm các sản phẩm tương đồng.
ii, Xây dựng hồ sơ người dùng dựa trên thuộc tính sản phẩm
Trong trường hợp này, giả sử có C người dùng Un = {u1, u2, ..., uc},n sản phẩm
Xn = {x1, x2,..., xn}, và dữ liệu đánh giá trên một vài sản phẩm của từng người dùng. Tư tưởng chính ở đây là tận dụng dữ liệu đánh giá rời rạc của các người dùng để dự đoán một số sản phẩm có khả năng nhất phù hợp với từng cá nhân, và nó mang tính cá nhân hoá. Hệ thống sẽ phân tích một bộ các sản phẩm đã được đánh giá bởi người dùng và dựa vào đó để xây dựng lên một bộ hồ sơ về sở thích cho từng người. Bộ hồ sơ này được biểu diễn dưới dạng dữ liệu có cấu trúc về sự quan tâm của người dùng trên toàn bộ tập sản phẩm. Về cơ bản cách hoạt động, hệ thống sẽ dựa trên các bộ hồ sơ này và thuộc tính của từng sản phẩm để đưa ra những dự đoán đánh giá cho các sản phẩm chưa được người dùng xem đến hoặc đánh giá, và từ đó, dựa trên các giá trị đánh giá dự đoán này để trả về cho người dùng những sản phẩm mà họ có thể quan tâm nhất.
iii, Word Embeddings trong hệ thống khuyến nghị CB
Được lấy cảm hứng từ một cách tiếp cận khác, Word Embeddings (WE) sẽ quan tâm hơn đến các phần ngữ nghĩa của từ biểu diễn/đặc tả sản phẩm đó thay vì chỉ tính toán trọng số của từ trong một tập văn bản mô tả bằng việc sử dụng các thuật toán như Term Frequency – Inverse Document Frequency (TF-IDF) [38]. Trong xử lý ngôn ngữ tự nhiên, do có sự mơ hồ trong ngôn ngữ, biểu diễn sản phẩm bằng các phương thức truyền thống dựa trên từ khoá có nhiều nhược điểm, trong đó có thể kể đến việc không có khả năng bắt được ngữ nghĩa của từ do bản chất thuật toán chỉ thực sự chú trọng đến các phép toán so sánh chuỗi, điều này gây ảnh hưởng không tốt đến kết quả gợi ý trong các thuật toán CB. Vì lẽ đó, áp dụng WE trong các nghiên cứu gần đây đã giúp giải quyết được điều này. Tại bài báo [23], Cataldo Musto cùng cộng sự đã phát triển một hệ thống gợi ý CB sử dụng các đặc trưng văn bản được trích xuất từ Wikipedia để huấn luyện và xây dựng lên các bộ hồ sơ người dùng dựa trên ý tưởng WE. Các thuật toán dựa trên WE của tác giả bao gồm Latent Semantic Indexing [26] (LSI), Random Indexing [34] (RI), và Word2Vec [30] (W2V) đã cho ra kết quả với độ chính xác được đánh giá là tương đương so với các thuật toán mạnh mẽ khác là CF và ma trận tăng cường Factorization [39].
iv, Bag of Word cho hệ thống gợi ý phim
Hình 2.7 Mô hình hoạt động của thuật toán gợi ý Phim
Gần đây, Bhattacharya và cộng sự [10] đã xây dựng một ứng dụng web đơn giản nhưng khá mạnh mẽ bằng việc tận dụng thư viện Python Scikit-learn [21] để gợi ý phim trên bộ dữ liệu IMDB. Bộ dữ liệu này chứa khá nhiều thuộc tính và đặc trưng, tuy nhiên, tác giả chỉ chọn ra các trường “plot”, “actors” và “directors” để cho kết quả chính xác hơn. Mô hình thuật toán được mô tả như sau, bước đầu tiên các trường thuộc tính được chọn sẽ được làm sạch bằng việc đưa qua các kỹ thuật tiền xử lý dữ liệu, sau đó các từ khoá quan trọng nhất sẽ được trích chọn đặc trưng để xây dựng lên ma trận BOW. Từ đó, một ma trận tần suất xuất hiện của các từ được tính toán và sử dụng khái niệm Cosine để tìm ra các bộ phim có nhiều điểm tương đồng với nhau nhất. Mô hình hoạt động ứng dụng web được mô tả cụ thể trong hình 2.7.
v, Phân tích đánh giá các thuật toán CB
Từ những phân tích trên, có thể dễ dàng nhận thấy các thuật toán CB hiện nay sử dụng BOW, W2V thường có xu hướng tập trung vào các từ khoá, các chuỗi từ để so sánh, tính toán và đánh giá mức độ tương quan giữa hai đối đối tượng cần được so sánh. Trong ngôn ngữ tự nhiên, trong nhiều văn cảnh khác nhau, chúng thường mang ý nghĩa khác nhau và thường không nhất quán, do đó nếu chỉ dùng các thuật toán so khớp như BOW sẽ làm mất đi tính sắc thái của từ, hoặc sử dụng W2V thì cần sử dụng số chiều vector lớn để tăng độ chính xác tuy nhiên hiệu năng của thuật toán từ đó sẽ giảm, chưa kể đến các yếu tố ngoại lai từ yếu tố con người dẫn đến sai khác trong các từ khoá này.
Ngoài ra, các công thức phổ biến như ED hay Cosine cũng chưa thực sự mang lại hiểu quả khi được sử dụng trên loại dữ liệu phân phối (hình 1.2).