CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG GỢI Ý 1.1 Giới thiệu Hệ thống đề xuất (Recommender Systems - RS) là một tập hợp công cụ và phần mềm được thiết kế để cung cấp đề xuất về các mặt hàng (items) cho người dùng (users). Các đề xuất này có liên quan đến nhiều quyết định khác nhau, ví dụ như quyết định mua sắm, lựa chọn âm nhạc, hoặc đọc tin tức trực tuyến. Hình thức này được ứng dụng rộng rãi trong nhiều lĩnh vực, từ YouTube giới thiệu video, Shopee và Tiki giới thiệu sản phẩm liên quan, đến Netflix đề xuất phim theo sở thích, và Facebook giới thiệu bạn bè và sản phẩm quảng cáo. Các đề xuất có thể được cá nhân hóa hoặc không cá nhân hóa.
Đối với các đề xuất cá nhân hóa, chúng thường được hiển thị dưới dạng danh sách xếp hạng dựa trên sở thích và ràng buộc cá nhân của người dùng. Để thực hiện điều này, hệ thống thu thập thông tin về sở thích của người dùng, có thể dựa trên hành động trước đó hoặc thông tin rõ ràng mà người dùng cung cấp. Sự phát triển của hệ thống đề xuất bắt đầu từ quan sát rằng con người thường dựa vào đề xuất từ người khác khi đưa ra quyết định hàng ngày. Để mô phỏng hành vi này, các hệ thống đề xuất đã sử dụng thuật toán để tận dụng đề xuất của cộng đồng người dùng và tạo ra đề xuất cho người dùng đang hoạt động.
RS đã chứng minh giá trị của mình trong việc giải quyết vấn đề quá tải thông tin trên web và trong các dịch vụ kinh doanh điện tử. Chúng giúp người dùng tìm kiếm và khám phá mặt hàng mới, giảm thiểu rủi ro quyết định sai lầm. Đồng thời, RS có khả năng cá nhân hóa đề xuất theo nhu cầu và ngữ cảnh cụ thể của người dùng, tạo ra một trải nghiệm tìm kiếm độc đáo và hữu ích.2 Lợi ích Hệ thống gợi ý (Recommender System) đã trở thành một phần không thể thiếu trong cuộc sống hiện đại, đem lại nhiều lợi ích quan trọng cho cả người dùng và doanh nghiệp. Bằng cách cải thiện trải nghiệm người dùng thông qua việc đưa ra các đề xuất thú vị và phù hợp, hệ thống tạo ra sự tương tác tích cực giữa người và máy tính.
Việc 4 này không chỉ tăng cường đánh giá và hài lòng từ người dùng mà còn thúc đẩy sự sử dụng hệ thống và chấp nhận các đề xuất. Hệ thống gợi ý cũng đóng góp vào việc tối ưu hóa doanh thu thông qua chiến lược up-sale và cross-sale. Bằng cách nhận biết sở thích và hành vi mua sắm của người dùng, hệ thống đề xuất những sản phẩm cao cấp hơn, tăng cơ hội up-sale và làm tăng giá trị đơn hàng. Đồng thời, sự phân tích liên quan giữa các sản phẩm giúp đề xuất cross-sale, cung cấp trải nghiệm mua sắm toàn diện và tăng giá trị đơn hàng.
Hệ thống gợi ý không chỉ chuyển đổi khách hàng tiềm năng thành khách hàng thực sự bằng cách cung cấp trải nghiệm mua sắm cá nhân hóa và khuyến mãi đặc biệt, mà còn xây dựng mối quan hệ liên tục qua tương tác tích cực. Cuối cùng, bằng cách thu thập dữ liệu về hành vi mua sắm và sở thích của người dùng, hệ thống hỗ trợ business intelligence, giúp doanh nghiệp hiểu rõ hơn về khách hàng, thị trường, từ đó đưa ra quyết định chiến lược thông minh. Tóm lại, hệ thống gợi ý là một công cụ mạnh mẽ, không chỉ tối ưu hóa trải nghiệm mua sắm mà còn góp phần vào sự phát triển và thành công của doanh nghiệp trong nền kinh tế số ngày nay.3 Các kỹ thuật chính trong hệ thống gợi ý Hệ thống gợi ý gồm 3 phương pháp chính: Lọc theo nội dung (content-based recommenders), lọc cộng tác (collaborative filtering recommender) và phương pháp kết hợp (hybrid recommenders).Với mỗi phương pháp có nhiều dạng cơ bản được mô tả chi tiết theo sơ đồ dưới đây [2].1 Sơ đồ biểu diễn các thuật toán chính trong hệ thống gợi ý 1.1 Content based filtering Content-based filtering là một phương pháp quan trọng trong Recommendation System. Content-based filtering tập trung vào tính toán similarity (sự tương đồng) dựa trên dữ liệu của sản phẩm.
Mục tiêu chính của phương pháp nảy là đề xuất các sản phẩm có sự tương đồng cao với những sản phẩm mà người dùng đã thích trước đó [4]. Để thực hiện Content-based filtering, người ta thường áp dụng phương pháp Text Vectorization.1 Text Vectorization Text vectorization là quá trình chuyển đổi văn bản thành các vector số, giúp cho việc xử lý và phân tích văn bản trở nên dễ dàng hơn trong các ứng dụng Text Processing, Text Mining và Natural Language Processing [4]. Hai phương pháp phổ biến để biểu diễn văn bản dưới dạng vector là Count Vector và TF-IDF Count Vector: Bước 1: Tạo ma trận từ tài liệu • Mỗi từ duy nhất trong tập dữ liệu được đại diện bởi một cột. • Mỗi tài liệu trong tập dữ liệu được đại diện bởi một hàng.
6 Bước 2: Điền tần suất xuất hiện của từ • Các ô trong ma trận được điền bởi số lần từ xuất hiện trong tài liệu tương ứng TF-IDF: TF-IDF thực hiện quá trình chuẩn hóa trên tần suất của các từ cả trong văn bản của chúng và trong toàn bộ tập dữ liệu, tức là trong dữ liệu mà chúng ta tập trung vào. Nói cách khác, nó tạo ra một tiêu chuẩn tổng quát cho các vector từ mà chúng ta sẽ tạo ra, xem xét ma trận văn bản - từ, toàn bộ tập dữ liệu, tất cả các tài liệu và tần suất của các từ. Điều này loại bỏ một số sự thiên lệch có thể xảy ra do Count Vector [4]. Bước 1: Tính toán Count Vector Bước 2: Tính toán TF (Term Frequency) 𝑡ầ𝑛 𝑠𝑢ấ𝑡 𝑥𝑢ấ𝑡 ℎ𝑖ệ𝑛 𝑐ủ𝑎 𝑡ừ 𝑡𝑟𝑜𝑛𝑔 𝑣ă𝑛 𝑏ả𝑛 𝑇𝐹 = 𝑡ổ𝑛𝑔 𝑠ố 𝑡ừ 𝑡𝑟𝑜𝑛𝑔 𝑣ă𝑛 𝑏ả𝑛 Bước 3: Tính toán IDF (Inverse Document Frequency) 𝑡ổ𝑛𝑔 𝑠ố 𝑣ă𝑛 𝑏ả𝑛 𝐼𝐷𝐹 = 𝑙𝑜𝑔( ) 𝑠ố 𝑙ượ𝑛𝑔 𝑡à𝑖 𝑙𝑖ệ𝑢 𝑐ℎứ𝑎 𝑡ừ Nếu một từ t có tần suất quan sát cao trong toàn bộ tập dữ liệu, điều này có nghĩa rằng từ tương ứng này ảnh hưởng đến toàn bộ tập dữ liệu.
Trong trường hợp này, tiến hành một quá trình chuẩn hóa đối với tần suất xuất hiện cả bên trong các từ và trong toàn bộ tập dữ liệu. Bước 4: Tính toán TF*IDF Ví dụ TF-IDF: Tạo ma trận Count-Vector phim hành động kịch tính Phim hành động 1 1 1 0 0 Hành động kịch tính 0 1 1 1 1 Phim kịch tính 1 0 0 1 1 7 Tính TF (Term Frequency) phim hành động kịch tính Phim hành động 0.333 0 0 Hành động kịch tính 0 0.25 Phim kịch tính 0.333 Tính IDF (Inverse Document Frequency): ! • Số tài liệu chứa từ “phim”=2 ® IDF(“phim”) = log " ≈ 0.1760 ! • Số tài liệu chứa từ “hành”=2 ® IDF(“phim”) = log " ≈ 0.1760 ! • Số tài liệu chứa từ “động”=2 ® IDF(“phim”) = log " ≈ 0.1760 ! • Số tài liệu chứa từ “kịch”=2 ® IDF(“phim”) = log " ≈ 0.1760 ! • Số tài liệu chứa từ “tính”=2 ® IDF(“phim”) = log " ≈ 0.1760 Tính TF-IDF=TF*IDF phim hành động kịch tính Phim hành động 0.059 0 0 Hành động kịch tính 0 0.044 Phim kịch tính 0.2 Calculate Similarities Giả sử chúng ta có m bộ phim và n từ duy nhất trong mô tả của những bộ phim này. Trước khi chúng ta tìm sự tương đồng dựa trên nội dung của các bộ phim này thông qua lập trình, hãy xem cách chúng ta có thể thực hiện điều đó một cách thực tế: Chúng ta có thể sử dụng Euclidean Distance hoặc cosine similarity để tìm sự tương đồng của các bộ phim đã được biểu diễn dưới dạng vector. Euclidean Distance: 8 Bằng cách tính toán Euclidean Distance, chúng ta có thể tìm giá trị khoảng cách giữa hai bộ phim, biểu thị sự tương đồng giữa chúng.
Quan sát cho thấy rằng khi khoảng cách giảm, tương đồng tăng lên. Bằng cách này, quá trình đề xuất có thể được thực hiện [4]. $ 𝑑(𝑝, 𝑞) = RS(𝑞# − 𝑝# )" #%& Cosine Similarity: 𝐴∙𝐵 ∑$#%& 𝐴# 𝐵# 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 = 𝑐𝑜𝑠(𝜃) = = [|𝐴|[ [|𝐵|[ ^∑$#%& 𝐴# " ^∑$#%& 𝐵# " Trong khi Euclidean Distance biểu thi cho khoảng cách, thì khái niệm về tương đồng xuất hiện trong Cosine Similarity. Distance-closeness và similarity-dissimilarity tương ứng với các khái niệm giống nhau trong trường hợp này.
Trong loại dựa trên bộ nhớ, chúng ta có thể nhìn nhận qua hai thuật toán quan trọng là user- based và item-based. Trong khi đó, hướng tiếp cận dựa trên mô hình được đại diện bởi thuật toán matrix factorization.2 Sơ đồ biểu diễn các thuật toán lọc cộng tác 9 1.1 Memory Based Collaborative Filtering (Neighbourhood Based) 1.1 Lọc cộng tác dựa trên user (User Based CF) User Based Collaborative Filtering (CF) là một phương pháp được ứng dụng để dự đoán các mục (items) mà người dùng (user) có thể quan tâm dựa trên xếp hạng (ratings) được cung cấp cho mục đó bởi các người dùng khác có sở thích tương tự [2].3 Hình mô tả chung về ý tưởng thuật toán User based Các bước chính của phương pháp lọc cộng tác dựa trên người dùng (User Based Collaborative Filtering) bao gồm: Bước 1: Tính độ tương đồng (similarity) giữa các users: Xác định độ tương đồng giữa các cặp users, sử dụng các phương pháp như Pearson Correlation hoặc Cosine Similarity. Điều này đo lường mức độ giống nhau trong hành vi xếp hạng của họ. Độ tương đồng giữa hai user u và user 𝑢, có thể được tính theo hai phương pháp Pearson và Cosine như sau [2]: 𝛴#./!!, (𝑟0,# )" 10 Trong đó: • 𝑟0# và 𝑟0,# là giá trị đánh giá tương ứng của user u và user u’ với item i.
• 𝐼00, là tập hợp các items được cả user u và user u’ đánh giá (rated). • 𝑟0 là giá trị đánh giá trung bình trên tất cả các items của user u. • r0, là giá trị đánh giá trung bình trên tất cả các items của user u’. Bước 2: Chọn các user lân cận.
Dựa vào độ tương đồng, chọn ra một số lượng users lân cận nhất định với mỗi user. Bước 3: Dự đoán đánh giá còn thiếu (missing rating) của một item. Sử dụng xếp hạng đã biết của các users lân cận để dự đoán xếp hạng (rating) còn thiếu cho một item mà user chưa đánh giá. Dự đoán xếp hạng (rating) của user u cho item i được tính bằng công thức sau: 𝛴0,.2! |𝑠𝑖𝑚(𝑢, 𝑢, )| Trong đó: • 𝑠𝑖𝑚(𝑢, 𝑢, ) là độ tương đồng của user u và 𝑢,.
• 𝐾0 là số lượng users có độ tương đồng gần với user u(k láng giềng của u). Bước 4: Xây dựng ma trận dự đoán: Kết hợp các dự đoán đã được tính toán để tạo ra một ma trận dự đoán hoặc một vector xếp hạng dự đoán cho tất cả các item còn thiếu.