Chúng ta sẽ chuyển sang tìm hiểu một chủ đề mới, đó là các hệ thống khuyến nghị - Recommender System (RS).

Bạn đang xem: Hệ thống khuyến nghị dựa trên dữ liệu (Data-based Recommender System)

Ngày nay, RS rất phổ biến trong cuộc sống của chúng ta. Khi xem Youtube, lướt Facebook, mua hàng trên Amazon hay Tiki, xem phim trên Netflix, chúng ta đều được đưa ra các gợi ý về những thứ mà chúng ta có thể quan tâm… Có thể nói, RS là ứng dụng quan trọng nhất của AI vào lĩnh vực giải trí và Maketing.

Trong chuỗi 3 bài tiếp theo ngay sau đây, chúng ta sẽ cùng tìm hiểu kỹ càng hơn về các thuật toán mà RS sử dụng, đồng thời sẽ thực hành một số thuật toán đó. Các bài viết bao gồm:

Bài 1: Giới thiệu các phương pháp truyền thống xây dựng Recommender Systembài 2: Xây dựng Recommender System bằng phương pháp Content-Based Filtering
Bài 3: Xây dựng Recommender System sử dụng Deep Learning

1. Phân loại thông tin sử dụng trong RS

Trong RS, có 2 đối tượng quan trọng nhất là khách hàng (Users) và sản phẩm (Items). Thông tin về 2 đối tượng này được sử dụng làm Input Data để tạo nên các RS. Dựa vào tính chất của chúng mà ta có thể phân loại như sau:

Explicit Information: Là những thông tin được thể hiện một các rõ ràng, tường mình. Đó có thể là các thông tin về sự tương tác giữa Users-Items như hành vi click và nút Like/Dislike hoặc cho điểm (ratting) Items. Hoặc thông tin về bản thân Users/Items (User Profile - Item Profile).Implicit Information: Ngược lại với Explicit Information, đây là các thông tin mà không được thể hiện một các cụ thể, rõ ràng. Đó là khi User truy cập, tìm kiếm, bình luận, … và một Item cụ thể. Từ đó, hệ thống sẽ ghi nhận rằng User đang quan tâm đến Item đó.

2. Các phương pháp RS truyền thống

Hai phương pháp RS phổ biến mà có thể bạn đã biết là: Content-Based Filtering và Collaborative Filtering. Ngoài ra, có thể kết hợp 2 phương pháp này lại, tạo ra một phương pháp mới gọi là Hybrid Filtering.


*

2.1 Phương pháp Content-Based Filtering

Đây là phương pháp đơn giản nhất, hầu như chỉ dựa trên thông tin User Profile và Item Profile. Ý tưởng cơ bản của nó là nếu một User A đã từng quan tâm đến một Item X trong quá khứ thì khả năng cao là A cũng sẽ quan tâm đến Item Y nếu Y tương tự X.


*

User Profile được xây dựng dần dần theo thời gian sử dụng Explicit Information.

Một số Metrics đo độ Tương tự (Similarity) giữa 2 Items

Để đánh giá mức độ Similarity giữa 2 Items, chúng ta có thể sử dụng một trong các Metrics sau:

Cosin Similarity:

Công thức tính Cosin Similarity giữa 2 vector A và B như sau:


$sim(A,B) = cos(\theta) = \frac{A.B}{\begin{Vmatrix}A\end{Vmatrix} \begin{Vmatrix}B\end{Vmatrix}}$


Trong đó, $A$ và $B$ là 2 Profile Vector của 2 Items, $\theta$ là góc giữa chúng.

Cosin Similarity có giá trị nằm trong khoảng <-1,1>. Càng gần 1 thì 2 Items càng giống nhau. Chúng ta có thể chọn n-Items từ danh sách giảm dần mức độ Similarity hoặc lấy các Items mà mức độ Similarity lớn hơn giá trị ngưỡng.

Euclidean Distance:

Công thức tính Euclidean Distance giữa 2 vector $A(x_1, x_2, …, x_n)$ và $B(y_1, y_2, …, y_n)$ như sau:


$ED(A,B) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2 + ... + (x_n - y_n)^2}$


Euclidean Distance có giá trị > 0 và càng nhỏ thì 2 vectors càng giống nhau. So với Cosin Similarity, việc tính toán Euclidean Distance khá chậm, đặc biệt là trong trường hợp số chiều của các vectors lớn.

2.2 Phương pháp Collaborative Filtering

Phương pháp này sử dụng mối quan hệ giữa User-User, Item-Item và User-Item để đưa ra các đề xuất.


*

Collaborative Filtering được chia thành 2 phương pháp:

Memory-based: Phương pháp này còn được gọi là thuật toán Collaborative Filtering dựa trên vùng lân cận. Các vùng lân cận này có thể được xác định theo một trong hai cách:

User-based Collaborative Filtering: Ý tưởng là phân chia các Users tương tự nhau vào chung một nhóm. Nếu một User bất kỳ trong nhóm thích một Item nào đó thì Item đó sẽ được đề xuất cho toàn bộ các Users khác trong nhóm đó.Item-Item Collaborative Filtering: Ý tưởng là phân chia Items tương tự nhau vào chung một nhóm. Nếu một User thích bất kỳ một Item nào trong nhóm đó thì tất cả các Item còn lại trong cùng nhóm sẽ được đề xuất cho User đó. Nghe qua ý tưởng thì có vẻ Item-Item Collaborative Filtering rất giống với ý tưởng của phương pháp Content-Based Filtering. Và quả thực đúng là như vậy. Tuy nhiên, sự khác nhau ở đây là cách thức để tìm ra các Items tương tự nhau. Đối với Content-Based Filtering, ta sử dụng chính đặc điểm (Profile) của các Items để tính toán mức độ Similarity giữa chúng. Còn đối với Item-Item Collaborative Filtering, độ Similarity được tính dựa trên Utility Matrix mà sẽ được đề cập dưới đây.

Model-based: Phương pháp này sử dụng các thuật toán ML như PCA, Clustering, SVD, Matrix Factorisation, … để dự đoán các giá trị Rating còn thiếu của User đối với Item.

Tất cả các cách/phương pháp của Collaborative Filtering đề phải sử dụng Utility Matrix, được tạo thành từ bảng dữ liệu User-Item Ratings như dưới đây.

*

Bảng User-Item Ratings chỉ chứa các Users và Items mà có sự tương tác với nhau, còn Utility Matrix thì chứa tất các các Users, Items trong hệ thống. Mỗi Cell trong Utility Matrix thể hiện giá trị Rating của User và Item tương ứng. Vấn đề lớn nhất của Collaborative Filtering là số lượng Rating thường nhỏ hơn rất nhiều so với số lượng User và Item. Điều này dẫn đến Utility Matrix bị thiếu rất nhiều gíá trị trong các Cells. Vì lẽ đó mà Utility Matrix còn được gọi là ma trận thưa (Sparsity Matrix).

Ta có công thức tính độ thưa như sau:
$Sparsity = \frac{No of Ratings}{No of Cells}$


Nếu giá trị của Sparsity > 0.5 thì chúng ta không nên sử dụng Collaborative Filtering mà nên xem xét sử dụng các phương pháp khác.

Chi tiết hơn về 2 phương pháp Content-Based Filtering và Collaborative Filtering, các bạn có thể đọc thêm tại đây và đây.

2.3 Phương pháp Hybrid

Phương pháp này có tên gọi khác là Ensemble, tức là kết hợp 2 phương pháp Content-Based Filtering và Collaborative Filtering.

*

Content-Based Filtering và Collaborative Filtering, mỗi phương pháp đều có ưu/nhược điểm riêng của mỗi loại. Và trong một số trường hợp, việc kết hợp chúng lại sẽ mang đến hiệu quả tốt hơn. Netflix chính là một ví dụ sử dụng phương pháp Hybrid này.

3. Đánh giá Recommender System

Các ML model thường sử dụng Accuracy metric (đối với bài toán Classification) và RMSE metric (đối với bài toán Regression) để đánh giá model. Tuy nhiên, đối với RS model, các metrics này đều tỏ ra không hiệu quả.

Để đưa ra được một metric phù hợp hơn, đầu tiên chúng ta hãy xem thử Netflix và Amazon đang đề xuất cho User những gì?

Dễ nhận thấy, điểm mấu chốt ở đây là User không cần tương tác với tất cả các Items trong danh sách đề xuất mà chỉ cần tương tác với ít nhất một Item trong số đó. Và khi điều này xảy ra, tức là RS model đã làm việc đúng (hitted).

Do vậy, các xây dựng metric đánh giá RS model sẽ như sau:

Đối với mỗi User, chọn ngẫu nhiên 99 Items mà User đó không tương tác.Kết hợp 99 Items đó với một Test Item (Item mà User đã tương tác). Ta có 100 Items.Chạy RS model trên 100 Items đó rồi sắp xếp theo thứ tự giảm dần xác suất mà User đó có tương tác với mỗi Item.Lựa chọn 10 Items có xác suất lớn nhất trong danh sách đã sắp xếp. Nếu Test Item nằm trong số 10 Items đã chọn thì ta nói RS model đã làm việc đúng (tính là một Hit).Lặp lại quá trình trên cho toàn bộ Users. Ta định nghĩa giá trị Hit Ratio
10 như sau:

$Hit Ration
10= \frac{No Of Hits}{No Of Users}$


Hit Ration
10 chính là metric đánh giá RS model của chúng ta.

4. Kết luận

Như vậy là chúng ta đã kết thúc bài đầu tiên trong chuỗi 4 bài tìm hiểu về Recommender System. Qua bài này, chúng ta đã hiểu được phần nào rõ hơn về bài toán RS, cũng như một số phương pháp truyền thống để xây dựng RS.

Trong bài tiếp theo, chúng ta sẽ thực hành xây dựng một RS bằng phương pháp Content-Based Filtering. Mời các bạn đón đọc.

5. Tham khảo

<1> Parul Pandey, “The Remarkable World of Recommender Systems”, Available online: https://www.topbots.com/overview-of-recommender-systems/ (Accessed on 25 Jun 2021).

<2> James Loy, “Deep Learning based Recommender Systems”, Available online: https://towardsdatascience.com/deep-learning-based-recommender-systems-3d120201db7e (Accessed on 25 Jun 2021).

Hệ thống khuyến nghị (Recommender System – RS) đã xuất hiện từ giữa những năm 90 của thế kỷ XX để giải quyết vấn đề quá tải thông tin. RS thường được định nghĩa là một công cụ hay hệ thống phần mềm đóng vai trò như một trợ lý, cung cấp cho người dùng các đề xuất được cá nhân hóa dựa trên sở thích và mối quan tâm trước đây của họ. Ngày nay, các hệ thống khuyến nghị là một phần quan trọng không thể thiếu trong hầu hết các hệ thống hiện đại, chẳng hạn trong các nền tảng Thương mại điện tử như Amazon, E-Bay, Lazada, Tiki, Shopee, ..vv..

2. Phân loại các phương pháp khuyến nghị

Trong nhiều năm, các phương pháp khuyến nghị khác nhau đã được đề xuất và có thể được phân loại thành: Phương pháp bộ lọc cộng tác (Collaborative filtering – CF), Phương pháp dựa trên nội dung (Content based filtering – CBF) và Phương pháp kết hợp/ tổng hợp (Hybrid/Ensemble). CF sử dụng xếp hạng của khách hàng để phân loại người dùng/hoặc sản phẩm trong các nhóm theo mức độ giống nhau của họ/chúng. Các đề xuất sau đó được suy ra bằng cách tính đến xếp hạng của những người dùng trong cùng một nhóm, hoặc item trong cùng một nhóm (Hình 1a). Ngược lại, hệ thống khuyến nghị dựa trên nội dung sẽ tính toán các đề xuất theo tính năng của các mặt hàng mà người dùng ưa thích trong quá khứ – chẳng hạn như tiêu đề phim, diễn viên hoặc thể loại của phim (Hình 1b). Hiệu suất của mỗi thuật toán khuyến nghị đơn lẻ này, tuy nhiên, đều có giới hạn và mỗi thuật toán có điểm mạnh và điểm yếu riêng <1>. Do đó, hai phương pháp tiếp cận CF và CBF có thể được tích hợp một cách tự nhiên vào một hệ thống khuyến nghị kết hợp / tổng hợp. Trong cuộc khảo sát của Borràs và cộng sự, 2014 <2>, có thể nhận thấy xu hướng ngày càng tăng trong việc khai thác các kỹ thuật lọc khuyến nghị kể từ năm 2012, chủ yếu trong các hệ thống lai. Từ năm 2008 đến năm 2011, chỉ có 25% hệ thống sử dụng phương pháp này, trong khi từ năm 2012, tỷ lệ này đã tăng lên 75%.

*

Hình 1. Ví dụ về (a) bộ lọc cộng tác – Collaborative filtering, (b) bộ lọc dựa trên nội dung – Content based filtering <1>

3. Thách thức đối với các hệ thống khuyến nghị trong môi trường dữ liệu lớn

Điều đáng chú ý là trong khi ngày càng có nhiều nỗ lực để nghiên cứu các phương pháp mới cho RS, không có nhiều công trình đã điều chỉnh RS trong bối cảnh dữ liệu lớn – Big data. Dữ liệu lớn đặt ra nhiều thách thức trong việc lưu trữ, tích hợp và quản lý dữ liệu, và quan trọng không kém đó là làm sao trích xuất thông tin cần thiết một cách hiệu quả trong khối lượng lớn dữ liệu như vậy. Không ngạc nhiên là mặc dù một số phương pháp khuyến nghị đã chứng minh hiệu suất tốt cho các tập dữ liệu quy mô nhỏ, nhưng rất khó để áp dụng chúng trong bối cảnh Dữ liệu lớn (Hình 2). Một số vấn đề mà hệ thống khuyến nghị sẽ phải đối mặt trong bối cảnh dữ liệu lớn có thể kể đến như:

Số lượng lớn người dùng/sản phẩm;Dữ liệu thưa – xảy ra khi người dùng đã không đánh giá phần lớn các bộ phim;Khuyến nghị cho người dùng mới/ các sản phẩm mới chưa từng xuất hiện trước đây;Tốc độ thực thi của hệ thống khuyến nghị.

*

Hình 2. Hệ thống khuyến nghị trong bối cảnh Dữ liệu lớn <3>

4. Triển vọng nghiên cứu

Trong kỷ nguyên dữ liệu lớn, chúng ta đã thấy sự gia tăng theo cấp số nhân của khối lượng dữ liệu trong những thập kỷ gần đây. Sự tiến bộ nhanh chóng của công nghệ và việc sử dụng ngày càng nhiều các tương tác trực tuyến đã dẫn đến sự bùng nổ dữ liệu. Điều này đã truyền cảm hứng rất nhiều cho các nhà nghiên cứu để cải thiện hiệu suất của các hệ thống khuyến nghị hoặc điều chỉnh chúng trong bối cảnh dữ liệu lớn để xử lý các bộ dữ liệu quy mô lớn. Vào năm 2013, <4> đã sử dụng dữ liệu thừa ma trận và rừng ngẫu nhiên trên các hệ thống khuyến nghị dữ liệu lớn, tập trung vào việc chia vấn đề dữ liệu lớn thành các bài toán con nhỏ hơn để tăng tốc quá trình. Vào năm 2015, <5> đã giải thích cách sử dụng hệ thống khuyến nghị với dữ liệu lớn. Bài báo đề xuất sử dụng CF, CBF và lọc kết hợp trên khuôn khổ Hadoop. Kết quả của họ cho thấy rằng với các thuật toán được áp dụng đúng cách, thời gian chạy của chương trình chỉ tăng lên một chút trong khi lượng dữ liệu được tăng lên đáng kể. Vào năm 2018, <6> đã đánh giá tác động của Dữ liệu lớn đến chất lượng đề xuất bằng cách thử nghiệm hiệu suất của mô hình hồi quy trên ví dụ về Tìm kiếm trên Internet.

Ngoài ra, việc sử dụng phân cụm trong quy trình đề xuất cũng đã nhận được sự chú ý của một số nhà nghiên cứu <7>, <8>, <9>, <10>. Trong nghiên cứu gần đây của chúng tôi <3>, chúng tôi đã đề xuất một phương pháp khuyến nghị làm việc trên môi trường Big data dựa trên phân cụm. Nó có thể giải quyết vấn đề dữ liệu thưa và sự xuất hiện của các sản phẩm mới. Ngoài ra, tốc độ huấn luyện và dự đoán đều nhanh. Ý tưởng chính đằng sau kỹ thuật này là một chiến lược chia để trị trong đó số lượng người dùng có thể được nhóm thành các nhóm khác nhau dựa trên sở thích của họ. Dự đoán sau đó được thực hiện trực tiếp theo sở thích của mỗi người dùng cũng tầm quan trọng của họ trong cụm. Trên cơ sở các kết quả đã đạt được, chúng tôi hy vọng rằng trong thời gian tới sẽ tiếp tục phát triển các bài toán khuyến nghị trên môi trường dữ liệu lớn, để không những đẩy nhanh thời gian thực thi mà còn nâng cao được độ chính xác và chất lượng của khuyến nghị.

TÀI LIỆU THAM KHẢO

<1>H. Q. Do, T. H. Le and B. Yoon, “Dynamic Weighted Hybrid Recommender Systems,” in International Conference on Advanced Communication Technology, 2020.
<2>J. Borràs, A. Moreno and A. Valls, “Intelligent tourism recommender systems: A survey,” Expert Systems with Applications, vol. 41, no. 16, pp. 7370-7389, 2014.
<3>H.-Q. Do, T.-A. Nguyen, Q.-A. Nguyen, T.-H. Nguyen, V.-V. Vu and C. Le, “A Fast Clustering-based Recommender System for Big Data,” in 24th International Conference on Advanced Communication Technology (ICACT), 2022.
<4>B. A. Hammou, A. A. Lahcenab and S. Mouline, “An effective distributed predictive model with Matrix factorization and random forest for Big Data recommendation systems,” Expert Systems with Applications, vol. 137, pp. 253-265, 2019.
<5>J. P. Verma, B. Patel and A. Patel, “Big Data Analysis: Recommendation System with Hadoop Framework,” International Conference on Computational Intelligence & Communication Technology, pp. 92-96, 2015.
<6>S. Maximilian, G. Sapi and S. Lorincz, “The effect of big data on recommendation quality: The example of internet search,” Econstor, no. 284, 2018.
<7>J. Zhang, Y. Lin, M. Lin and J. Liu, “An effective collaborative filtering algorithm based on user preference clustering,” Applied Intelligence, vol. 45, 2016.
<8>L. Zhang, X. Sun, J. Cheng and Z. Li, “Reliable Neighbors-Based Collaborative Filtering for Recommendation Systems,” in Neural Computing for Advanced Applications, 2020, pp. 60-71.
<9>F. Xie, M. Xu and Z. Chen, “RBRA: a simple and efficient rating-based recommender,” in International Conference on Advanced Information Networking and Applications Workshops, 2012.

Xem thêm: Đề thi tuyển sinh lớp 10 môn văn vào lớp 10 tại tp, top 52 đề thi vào lớp 10 môn văn năm 2021

<10>D. Zhang, C. Hsu, M. Chen, Q. Chen, N. Xiong and J. Lloret, “Cold-Start Recommendation Using Bi-Clustering and Fusion for Large-Scale Social Recommender Systems,” IEEE Trans. Emerg. Topics Comput., vol. 2, no. 2, pp. 239-250, 2014.