Giới thiệu bài toán
Đặt vấn đề
Diễn đàn điện tử là nơi lý tưởng để người dùng trao đổi và thảo luận về những vấn đề quan tâm, đáp ứng nhu cầu thông tin đa chiều Khác với các website hay báo điện tử, diễn đàn cho phép người dùng bày tỏ ý kiến và cảm xúc cá nhân, tạo ra sự phong phú trong các chủ đề thảo luận Sự gia tăng người tham gia và sự đa dạng trong nội dung trên diễn đàn đang diễn ra mạnh mẽ Tuy nhiên, không phải tất cả các bài viết hay chủ đề đều phù hợp với mọi người dùng, do đó, việc xây dựng một hệ thống tư vấn để gợi ý nội dung phù hợp cho từng cá nhân là rất cần thiết.
Diễn đàn Tuệ Tĩnh là nền tảng kết nối cựu học sinh và học sinh hiện tại của trường THPT Tuệ Tĩnh, tập trung vào sự trung thành và tín nhiệm của người dùng Để tham gia, người dùng cần đăng nhập, và nếu chưa có tài khoản, họ phải đăng ký trước Diễn đàn cung cấp nhiều lĩnh vực và chủ đề trao đổi, với hệ thống tư vấn nhằm đáp ứng nhu cầu người dùng Khi đăng nhập, hệ thống sẽ gợi ý các bài viết phù hợp, giúp tiết kiệm thời gian duyệt web cho người dùng.
Hệ tư vấn là hệ thống tự động phân tích và cung cấp thông tin, hàng hóa hoặc dịch vụ mà người dùng quan tâm, dựa trên hồ sơ và đánh giá của họ Có hai loại hệ tư vấn chính: dựa trên nội dung và dựa vào cộng tác Hệ tư vấn dựa theo nội dung khai thác thông tin liên quan đến sở thích trong quá khứ của người dùng để gợi ý các đối tượng mới tương tự Trong khi đó, lọc cộng tác dựa vào thói quen và sở thích của người dùng tương đồng để đề xuất những đối tượng mới, bao gồm cả những thứ hoàn toàn khác biệt Lọc cộng tác có khả năng xử lý nhiều loại dữ liệu và đã được áp dụng thành công trong nhiều hệ tư vấn Với sự tương tác đa dạng giữa người dùng và nội dung, phương pháp lọc cộng tác rất phù hợp, đặc biệt khi người dùng có xu hướng tương tác theo nhóm sở thích chung.
Mục tiêu đề tài
- Nghiên cứu tổng quan về hệ tư vấn
- Nghiên cứu các kỹ thuật tư vấn thông tin dựa trên lọc cộng tác và các vấn đề nghiên cứu liên quan
- Tìm hiểu thực trạng bài toán diễn đàn và tiền xử lý dữ liệu làm đầu vào cho kỹ thuật lọc cộng tác
Xây dựng một hệ thống lọc cộng tác tin hiệu quả dựa trên kỹ thuật hàng xóm gần nhất (user-nearest neighbor) là một giải pháp tối ưu Hệ thống này sử dụng phương pháp lấy tốp N gợi ý để tư vấn cho người dùng tham gia diễn đàn, giúp họ tìm kiếm thông tin phù hợp và nâng cao trải nghiệm người dùng.
Phương pháp nghiên cứu
Để hoàn thành nội dung luận văn, tôi đã nghiên cứu nhu cầu và thực trạng của người dùng web, đặc biệt là người tham gia diễn đàn Tôi cũng tìm hiểu tổng quan về hệ tư vấn và các hệ thống tư vấn thực tế Tiếp theo, tôi phân tích đặc trưng dữ liệu của diễn đàn để tìm hướng khai thác hiệu quả Đồng thời, tôi nghiên cứu các kỹ thuật trong hệ tư vấn và chọn ra hướng tiếp cận tư vấn dựa vào cộng tác, phù hợp với môi trường diễn đàn.
Sau khi xác định hướng tiếp cận, tôi nghiên cứu các thuật toán và chọn kỹ thuật phù hợp với đặc điểm của diễn đàn Tôi tiến hành khai thác các tương tác người dùng trong cơ sở dữ liệu để xây dựng bộ lọc tin cho diễn đàn Cuối cùng, sẽ thực hiện một số thử nghiệm khác nhau nhằm gợi ý nội dung cho từng người dùng khi họ tham gia diễn đàn (dựa trên mã người dùng) và đánh giá chất lượng của bộ lọc.
Bố cục luận văn
Chương 1 Giới thiệu bài toán
Nêu bài toán nghiên cứu của luận văn, mục tiêu và phương pháp nghiên cứu
Chương 2 Tổng quan về hệ tư vấn
Bài viết trình bày tổng quan về hệ tư vấn, phân biệt các loại hệ tư vấn cùng với ưu, nhược điểm của từng loại Tác giả cũng tìm hiểu và đánh giá một số hệ thống tư vấn nổi bật trên thế giới và tại Việt Nam, từ đó phân tích sự khác biệt giữa mô hình tư vấn tin trong diễn đàn và các hệ thống tư vấn khác.
Chương 3 Kỹ thuật lọc cộng tác trong hệ tư vấn và nghiên cứu liên quan
Hệ tư vấn dựa vào cộng tác là một lĩnh vực quan trọng, bao gồm các kỹ thuật như đo tương tự, lọc cộng tác dựa vào láng giềng gần nhất và chọn tốp N gợi ý, phục vụ cho việc xây dựng bộ lọc tin diễn đàn trong chương 4 Bên cạnh đó, nghiên cứu cũng tập trung vào các giải pháp khắc phục hạn chế của lọc cộng tác hiện tại và đề xuất các hướng cải tiến dành cho người dùng mới.
Chương 4 Xây dựng mô hình và thực nghiệm
Mô đun lọc cộng tác của diễn đàn được trình bày với các thành phần cấu thành chính, đồng thời tác giả cũng đề cập đến các đặc điểm của dữ liệu diễn đàn Tuệ Tĩnh Bài viết tiếp tục xây dựng và cài đặt bộ lọc tin cho diễn đàn, sau đó tập trung phân tích kết quả thực nghiệm và đánh giá thuật toán Cuối cùng, tác giả phân tích tính đúng đắn và hiệu năng của hệ thống đã xây dựng, từ đó định hướng cho các nghiên cứu trong tương lai.
Tổng quan về hệ tư vấn
Lý thuyết hệ tư vấn
Hệ tư vấn (Recommender System - RS) hay còn gọi là hệ gợi ý là một chương trình hoặc tập hợp các kỹ thuật nhằm dự đoán những đối tượng mà người dùng có thể quan tâm Hệ thống này có khả năng tự động phân tích, phân loại và cung cấp cho người dùng thông tin, hàng hóa hoặc dịch vụ phù hợp với sở thích của họ Nhiều hệ tư vấn đã được thương mại hóa và triển khai thành công, điển hình như hệ thống của Amazon.com, Netflix.com và Procter & Gamble Bài toán tư vấn có thể được khái quát như một quá trình xác định và đề xuất các lựa chọn tối ưu cho người dùng.
Trong hệ thống tư vấn, U đại diện cho tập người dùng, trong khi S là tập các đối tượng có thể tư vấn, có thể lên đến hàng triệu đối tượng như sách trên Amazon hay các website Người dùng sẽ có những quan điểm riêng về các đối tượng mà họ đã tương tác, đồng thời nhận được gợi ý từ hệ thống cho những đối tượng chưa từng tương tác Đầu vào của hệ tư vấn phụ thuộc vào thuật toán cụ thể của từng loại tư vấn, thường bao gồm các yếu tố chính để tối ưu hóa trải nghiệm người dùng.
1- Ratings (còn gọi là điểm – votes): mô tả quan điểm đánh giá của người dùng trên các đối tượng Điểm thường được biểu diễn bởi các số nguyên (như trong Amazon, nó thuộc [1 5] với ý hiểu, 1 là điểm đánh giá cho đối tượng đó là thấp,
Điểm đánh giá cho đối tượng thường dao động từ 0 đến 5, trong đó 0 thể hiện sự không thích và 5 là mức đánh giá cao nhất Những điểm số này thường được sử dụng làm đầu vào cho các thuật toán tư vấn, đặc biệt là phương pháp lọc cộng tác, sẽ được trình bày chi tiết trong chương 3.
2- Dữ liệu nhân khẩu học (demographic data): hay còn gọi là hồ sơ (profile) người dùng như các thông tin hiện là: tuổi, nghề nghiệp, giới tính, quê quán hay các thông tin ẩn như lịch sử các từ khóa tìm kiếm, tần số lặp lại các từ khóa
3- Nội dung dữ liệu (Content data) dựa trên việc phân tích văn bản của tài liệu liên quan đến các đối tượng được đánh giá bởi người sử dụng Đầu ra của hệ tư vấn: Các hệ thống tư vấn này sẽ tính toán và dự đoán đối tượng mà khả năng người dùng sẽ thích Từ đó đưa ra những gợi ý những đối tượng phù hợp với người dùng nhất mà trước đó họ chưa quan tâm Để làm được điều này các hệ tư vấn đi xây dựng hồ sơ (Profile) của người dùng Hồ sơ của người dùng bao gồm thông tin rõ ràng và thông tin ẩn Những thông tin rõ ràng là những thông tin được người dùng cung cấp cụ thể thông qua việc trả lời các câu hỏi, hay những thể hiện cụ thể như: người dùng mua sản phẩm, người dùng đưa đánh giá cho một sản phẩm, một bản tin nào đó hay sở thích của người dùng là gì?
Trong hệ tư vấn, độ phù hợp của một đối tượng được thể hiện qua điểm số (rate), chẳng hạn như người dùng A đánh giá bộ phim "Star Wars" với điểm 7/10 Tuy nhiên, độ phù hợp có thể được xác định bằng nhiều hàm khác nhau, tùy thuộc vào từng ứng dụng cụ thể.
Có nhiều phương pháp để dự đoán và ước lượng hạng hoặc điểm cho các đối tượng, bao gồm học máy, lý thuyết xấp xỉ và các thuật toán dựa trên kinh nghiệm Các hệ thống tư vấn thường được phân loại thành ba loại chính dựa trên cách thức ước lượng hạng của đối tượng tư vấn.
Dựa trên nội dung (content-based): người dùng được gợi ý những đối tượng tương tự như các đối tượng từng được họ đánh giá cao
Cộng tác (collaborative): người dùng được gợi ý những đối tượng mà những người cùng sở thích với họ đánh giá cao
Lai ghép (hybrid): kết hợp cả hai phương pháp dựa trên.
Phân loại hệ tư vấn
Phương pháp tư vấn dựa trên nội dung (Content Based – CB) đánh giá độ phù hợp của người dùng với các đối tượng cần tư vấn bằng cách phân tích sự tương đồng giữa người dùng và những đối tượng đã được họ đánh giá cao Chẳng hạn, khi gợi ý một cuốn sách cho người dùng, hệ thống sẽ xác định các đặc điểm của những cuốn sách mà người dùng đã yêu thích, như tác giả và thể loại, và từ đó giới thiệu những cuốn sách mới có sự tương đồng với sở thích trước đây của họ.
Phương pháp lọc dựa trên nội dung giúp hệ thống phân tích và so sánh nội dung của các đối tượng để đánh giá khả năng người dùng sẽ thích chúng Hệ thống cũng so sánh nội dung với sở thích mà người dùng cung cấp, ví dụ như nếu người dùng quan tâm đến chứng khoán, họ sẽ nhận được các bản tin liên quan đến lĩnh vực này.
Hướng tiếp cận dựa trên nội dung xuất phát từ nghiên cứu về thu thập và lọc thông tin, tập trung vào việc tư vấn các đối tượng chứa dữ liệu văn bản như tin tức và website Mỗi đối tượng được xử lý được biểu diễn bằng một tập hợp đặc trưng, giúp xác định mức độ tương đồng giữa các đối tượng và tiêu chuẩn gợi ý Đối với dữ liệu văn bản, tập đặc trưng thường là tập từ khóa phản ánh giá trị ý nghĩa của văn bản, và chúng ta có thể gọi Content(s) là tập thông tin về đối tượng s.
Content(s)=w s =(w 1s ,w 2s , ,w ks ), với w 1s ,w 2s , ,w ks là trọng số của các từ khóa từ 1 tới k Các trọng số này thường được xác định bằng độ đo TF-IDF (Term Frequency –
Inverse Document Frequency) [1] Ví dụ Fab [4], một hệ tư vấn website đã biểu diễn nội dung các trang web bằng 100 từ quan trọng nhất Tương tự, hệ thống Syskill
Webert biểu diễn văn bản bằng 128 từ có trọng số cao nhất, tạo ra hồ sơ người dùng profile(u) chứa thông tin về sở thích của người dùng u Những thông tin này được thu thập thông qua việc phân tích nội dung của các đối tượng mà u đã đánh giá trước đó Profile(u) có thể được định nghĩa dưới dạng vector trọng số: Profile(u) = w u = (w 1u , w 2u , , w ku), trong đó w iu thể hiện độ quan trọng của từ khóa i đối với người dùng u Độ phù hợp trong hệ thống tư vấn dựa trên nội dung được xác định qua công thức: r(u,s) = score(profile(u), contents(s)).
Cả profile (u) và nội dung (s) đều có thể được biểu diễn dưới dạng vector trọng số thông qua phương pháp TF-IDF, với các trọng số tương ứng là w c và w s Do đó, độ tương đồng giữa chúng có thể được đo bằng chỉ số Cosine, điều này sẽ được thảo luận chi tiết trong phần 3.1.
Nếu người dùng u thường xuyên đọc các bài báo về tin học, thì các từ khóa liên quan đến công nghệ như IT, thông tin, phần mềm và dữ liệu sẽ được ưu tiên trong hồ sơ của họ Do đó, độ phù hợp r(u,s) giữa người dùng u và các bài báo s trong cùng lĩnh vực sẽ cao hơn.
Những tiến bộ trong lĩnh vực IR so với các phương pháp cũ là nhờ vào việc sử dụng hồ sơ người dùng, chứa thông tin về sở thích và nhu cầu của họ Hồ sơ này được xây dựng từ thông tin người dùng cung cấp trực tiếp qua khảo sát hoặc gián tiếp qua việc phân tích dữ liệu từ các giao dịch.
Hình 2.1 Tư vấn dựa trên nội dung [30]
Hệ tư vấn dựa trên nội dung không chỉ sử dụng các phương pháp IR mà còn áp dụng nhiều kỹ thuật học máy như phân lớp Bayes, cây quyết định và mạng nơron nhân tạo Khác với các phương pháp IR, những kỹ thuật này dựa vào các mô hình học được từ dữ liệu nền, thay vì tính toán độ lợi thông tin qua các hàm tri thức như Cosine Ví dụ, với tập hợp các trang web đã được người dùng đánh giá là "tốt" hoặc "xấu", có thể áp dụng phân lớp Bayes để phân loại các trang web chưa được đánh giá.
Hạn chế của hệ tư vấn dựa trên nội dung [4]
Khi người dùng mới tạo tài khoản và chưa có nhiều tương tác với hệ thống, việc đưa ra gợi ý chính xác trở nên khó khăn Điều này là một vấn đề chung của các hệ thống gợi ý, vì chúng không thể hiểu rõ sở thích của người dùng, dẫn đến kết quả gợi ý không đạt yêu cầu.
Phân tích nội dung bị hạn chế là một vấn đề quan trọng, vì hiệu quả của hệ tư vấn phụ thuộc vào việc mô tả đầy đủ các đặc trưng của đối tượng Tuy nhiên, do tập đặc trưng của dữ liệu có số lượng phần tử hữu hạn, có thể xảy ra tình huống mà những cặp đối tượng có biểu diễn giống nhau nhưng lại chứa đựng nội dung khác biệt.
Nội dung đối tượng cần phải có khả năng trích xuất tự động hoặc dễ dàng trích xuất bằng tay Tuy nhiên, trong lĩnh vực ứng dụng tư vấn dữ liệu đa phương tiện như hình ảnh, video và âm thanh, việc thực hiện yêu cầu này gặp nhiều khó khăn Trích xuất tự động các đặc trưng nội dung của những đối tượng dữ liệu này là một thách thức lớn, trong khi việc trích xuất bằng tay lại không khả thi do chi phí cao.
Vấn đề "phù hợp quá mức" (overfitting) trong hệ thống gợi ý xảy ra khi việc phân tích các đối tượng người dùng chỉ tập trung vào những sản phẩm có độ tương tự cao với những gì người dùng đã xem trước đó, dẫn đến việc mất đi tính đa dạng trong các gợi ý Điều này khiến cho những sản phẩm mới, có thể thú vị hơn, không được đề xuất, vì chúng quá giống với những sản phẩm đã được người dùng đánh giá trong quá khứ Ví dụ, các bài tin có nội dung tương đồng với bài cũ sẽ tiếp tục được gợi ý, tạo ra sự nhàm chán cho người dùng Để cải thiện tình trạng này, có thể thêm các yếu tố ngẫu nhiên vào quá trình gợi ý hoặc loại bỏ những kết quả có điểm số quá cao, như phương pháp mà D Billsus đã áp dụng cho hệ thống The News Learner.
2.2.2 Hệ thống lọc cộng tác
Hệ thống tư vấn cộng tác (Collaborative Filtering - CF) khác với phương pháp tư vấn dựa trên nội dung, vì nó dự đoán độ phù hợp r(u,s) của người dùng u với đối tượng s dựa trên sự tương đồng với những người dùng khác (u j) có sở thích giống nhau Chẳng hạn, khi gợi ý một cuốn sách cho người dùng u, hệ thống sẽ tìm kiếm những người dùng có sở thích tương đồng và sử dụng các cuốn sách mà họ đánh giá cao để tư vấn cho u.
Hình 2.2 Tư vấn dựa trên cộng tác [30]
Lọc cộng tác khai thác thói quen và sở thích của người dùng để dự đoán và phân bố các đối tượng phù hợp.
Hệ tư vấn dựa vào nội dung thường chỉ so sánh thông tin, dẫn đến việc khó tạo ra sự bất ngờ cho người dùng, và đôi khi chỉ gợi ý những sản phẩm mà họ đã biết hoặc từng sử dụng Ngược lại, phương pháp lọc dựa trên đánh giá của người dùng không yêu cầu mô tả nội dung cụ thể, cho phép hệ thống tư vấn phong phú hơn và thường mang lại những gợi ý bất ngờ cho người dùng.
Nghiên cứu một số hệ thống gợi ý tin tức
Amazon là công ty thương mại điện tử lớn nhất toàn cầu, được thành lập bởi Jeffrey Bezos vào năm 1994 và chính thức hoạt động trực tuyến từ đó.
Kể từ năm 1995, Amazon không chỉ dừng lại ở lĩnh vực sách mà đã mở rộng sang nhiều lĩnh vực khác như dịch vụ thanh toán, quảng cáo và cung cấp đa dạng sản phẩm, bao gồm phim ảnh, âm nhạc và trò chơi.
Amazon.com là trang web nổi tiếng với hệ thống gợi ý sản phẩm Khi người dùng chọn một sản phẩm, như sách về "search engine", hệ thống sẽ đề xuất các cuốn sách tương tự Thuật toán gợi ý của Amazon sử dụng phương pháp lọc cộng tác item-to-item, khác với lọc cộng tác truyền thống, cho phép tính toán trực tuyến độc lập với số lượng khách hàng và sản phẩm Điều này giúp Amazon tạo ra các gợi ý trong thời gian thực, xử lý dữ liệu lớn và cung cấp các tư vấn chất lượng cao.
Amazon nổi bật với hệ thống gợi ý cá nhân hóa, giúp người dùng nhận được các đề xuất phù hợp mỗi khi họ quay lại trang web Khi bạn mua sắm trên Amazon.com, bạn sẽ thấy thông điệp “chào bạn, chúng tôi có những thứ này cho bạn” với các gợi ý liên quan Để cải thiện độ chính xác của các gợi ý, Amazon khuyến khích người dùng đánh giá sản phẩm đã mua bằng cách cho điểm từ 1 đến 5 sao Hệ thống này dựa vào các đánh giá của người dùng để cung cấp những đề xuất tốt nhất trong các lần truy cập tiếp theo, mặc dù yêu cầu đánh giá có thể gây phiền phức cho một số người dùng.
Hình 2.4 Hệ thống tích hợp gợi ý sách của Amazon.com
Hình 2.5 Giao diện gợi ý sản phẩm đã được đánh giá của Amazon
Một vấn đề nghiêm trọng trên Amazon là việc cố tình hạ điểm và đưa ra những đánh giá trái ngược thực tế nhằm làm giảm uy tín sản phẩm Những hành động này không chỉ gây ra thông tin sai lệch mà còn ảnh hưởng xấu đến hệ thống, dẫn đến kết quả tư vấn không chính xác Hệ quả là chất lượng tư vấn bị giảm sút, làm giảm độ tin cậy của người dùng vào nền tảng này.
Hiện tại, Việt Nam vẫn chưa có một hệ thống tư vấn chính thống nào hoạt động hiệu quả Theo thông tin tôi tìm hiểu, baomoi.com là trang web duy nhất áp dụng hệ tư vấn dựa trên các từ khóa được thiết lập.
Baomoi.com cho phép người dùng đăng ký tài khoản và thiết lập các tiêu chí lọc tin cá nhân, bao gồm chọn chuyên mục, từ khóa quan tâm và nguồn tin Các bài báo được tổng hợp từ nhiều nguồn khác nhau sẽ được gán với các từ khóa chính dựa trên nội dung Người dùng có thể tự tạo chuyên mục theo nhu cầu bằng cách khai báo từ khóa, từ đó nhận được gợi ý tin tức liên quan từ các trang báo khác Để tìm kiếm tin tức theo mong muốn, người dùng cần hoàn thiện bộ lọc với các cụm từ khóa chính xác và khái quát.
Người dùng cần tự tạo các từ khóa liên quan đến nhu cầu thông tin của mình để thiết lập chuyên mục riêng khi đăng nhập vào baomoi.com Tuy nhiên, điều này có thể gây khó khăn cho những người có vốn từ hạn chế, khiến họ gặp khó khăn trong việc xác định từ khóa phù hợp với mục đích đọc tin của mình.
Một hạn chế của giao diện là khi người dùng chọn đọc một tin từ danh sách, họ sẽ tự động được chuyển đến đường dẫn gốc Điều này khiến người dùng phải thực hiện thêm thao tác trên trình duyệt để quay trở lại danh sách trước đó.
Hình 2.6 Giao diện tạo chuyên mục trên trang web baomoi.com
Hệ gợi ý trên baomoi.com còn gặp nhiều hạn chế, bao gồm việc tư vấn chưa gọn gàng và thiếu độ tin cậy Giao diện khó hiểu khiến người dùng khó phân biệt giữa tin tư vấn và tin chung Để truy cập tin tư vấn, người dùng phải chọn lại chuyên mục đã xây dựng từ năm trước, trong khi các tin tư vấn không được cập nhật kịp thời Hơn nữa, hệ thống không sắp xếp tin mới nhất, gây khó khăn cho người dùng trong việc tìm kiếm thông tin mới.
Hình 2.7 Giao diện gợi ý tin không được sắp xếp của baomoi.com
Sự tư vấn hiện tại thiếu cơ sở lý luận, chỉ dựa vào sự tương đồng giữa từ khóa trong hệ thống và từ khóa người dùng nhập Hơn nữa, chức năng gợi ý tin tức dựa trên từ khóa thường không chính xác, vì từ khóa có thể xuất hiện trong nhiều ngữ cảnh khác nhau, dẫn đến việc hiểu sai ý nghĩa do đồng âm khác nghĩa Do đó, việc tư vấn chỉ dựa vào từ khóa không thể đáp ứng tối ưu nhu cầu của người dùng.
2.3.3 Hệ thống gợi ý tin Việt xenoNews
Lý thuyết hệ tư vấn đã được nghiên cứu lâu ở Việt Nam, nhưng hệ tư vấn chất lượng và có tính ứng dụng thực tiễn vẫn còn hạn chế XenoNews nổi bật là một sản phẩm được đánh giá cao trong luận văn thạc sĩ của Nguyễn Thạc Huy tại Đại học Công Nghệ.
Hệ thống gợi ý tin tức mà tác giả phát triển cung cấp dịch vụ từ các báo điện tử Việt Nam, cho phép người dùng nhận tin tức như một tờ báo điện tử thông thường nếu không đăng nhập Khi người dùng đăng nhập, tin tức sẽ được cá nhân hóa dựa trên tính toán của hệ thống, phù hợp với sở thích của từng người Hệ thống cũng cho phép người dùng phản hồi về các gợi ý và khai báo thêm từ khoá tùy chọn liên quan đến nội dung họ quan tâm, từ đó nâng cao độ chính xác của các gợi ý tin tức.
XenoNews là một hệ thống thông minh có khả năng thích nghi, giúp "học" sở thích của người dùng qua việc theo dõi các tin tức họ đọc hàng ngày Nhờ đó, hệ thống có thể gợi ý những bài viết phù hợp trong những ngày tiếp theo, mang đến trải nghiệm đọc tin tức cá nhân hóa hơn.
- Gợi ý tin tức phù hợp cho mỗi người dùng
- Thường xuyên cập nhật tin tức từ các báo điện tử phổ biến: Vietnamnet, Dân trí, Tinh tế, …
- Tránh đưa ra các tin trùng lặp hay có nội dung tương tự, từ nhiều nguồn báo khác nhau
- Tạo hồ sơ người dùng tự động, dựa trên tương tác của người dùng với hệ thống
Hệ thống cho phép người dùng khai báo từ khoá và nhóm từ khoá theo dõi, giúp đảm bảo không bỏ lỡ bất kỳ bài viết nào liên quan đến chủ đề họ quan tâm Ví dụ, khi người dùng đăng ký theo dõi nhóm từ khoá “xung đột biển Đông”, họ thể hiện mong muốn nhận mọi bài viết chứa cả hai từ khoá “xung đột” và “biển Đông” Điều này cho phép hệ thống gợi ý nội dung dựa trên thông tin của đối tượng tư vấn và lịch sử tương tác trước đó của người dùng với các nội dung tương tự.
Kỹ thuật lọc cộng tác trong hệ tư vấn và nghiên cứu liên quan
Các độ đo tương tự và vận dụng trong lọc cộng tác
Khoảng cách giữa hai đối tượng u và v được xác định bằng ma trận, với các phương pháp đo khoảng cách phổ biến như khoảng cách Euclidean, Manhattan và Chebychev, tất cả đều được định nghĩa qua khoảng cách Minkowski Để minh họa, ta xem xét ví dụ với dữ liệu của 4 người: Amy, Bill, Jim và MS.X, đánh giá 2 cuốn sách "Snow Crash" và "Girl with the Dragon Tattoo" Mục tiêu là gợi ý một cuốn sách cho MS.X mà cô chưa đọc nhưng có khả năng phù hợp Để làm điều này, ta cần tìm người có độ tương đồng hoặc khoảng cách gần nhất với MS.X.
Bảng 3.1 Ví dụ đánh giá của người dùng
Snow Crash Girl with the Dragon Tattoo
1- Độ đo khoảng cách Minkowski được định nghĩa :
Xét hai người dùng x,y trong không gian n chiều, độ đo khoảng cách Minkowski được định nghĩa:
Khi r =1 thì khoảng cách Minkowski trở thành khoảng cách Manhattan
( 1 k n k x k y y x d Đây là độ đo khoảng cách dễ nhất, nếu xét trong không gian 2D, người dùng x(x 1 ,x 2 ) và y(y 1 ,y 2 ) Khoảng cách Manhattan giữa x, y là: |x 1 -x 2 |+|y 1 -y 2 |
Với bảng dữ liệu 3.1 ta có khoảng cách Manhattan giữa Amy và Ms X là:
Tương tự tính toán khoảng cách giữa Ms.X với 2 người dùng còn lại ta có kết quả khoảng cách bảng 3.2:
Bảng 3.2 Giá trị khoảng cách dùng độ đo Manhattan
Dựa vào bảng khoảng cách, Amy là người gần gũi nhất với Ms.X do khoảng cách ngắn nhất giữa họ Áp dụng kỹ thuật lọc cộng tác, chúng ta có thể xem xét lịch sử đánh giá của Amy Nếu Amy chấm 5 sao cho cuốn sách The Windup Girl (giả định 5 sao là điểm cao nhất), chúng ta sẽ gợi ý cuốn sách này cho Ms.X.
Khoảng cách Manhattan nổi bật với khả năng tính toán nhanh chóng, đặc biệt trong mạng xã hội Facebook với hàng tỉ người dùng Phương pháp này giúp tìm kiếm những người tương tự một cách hiệu quả và nhanh gọn.
Trong công thức tính khoảng cách Minkowski, khi r=2 thì khoảng cách Minkowski trở thành khoảng cách Euclidean
Xét hai người dùng x(x 1 ,x 2 ) và y(y 1 ,y 2 ) Khoảng cách Euclidean là:
Xét lại ví dụ 1: Tương tự công thức Manhattan ta có bảng khoảng cách giữa những người dùng khác tới Ms.X theo công thức Euclidean như bảng 3.3:
Bảng 3.3 Giá trị khoảng cách dùng độ đo Euclidean
Khoảng cách Euclidean từ Ms X
Vậy theo độ đo Euclidean ta cũng nhận được kết quả Amy gần Ms.X nhất
Trong bối cảnh so sánh khoảng cách Manhattan và Euclidean, hai người dùng trong một tập hợp được coi là tương đồng khi khoảng cách giữa họ đạt giá trị nhỏ nhất.
3.1.2 Khoảng cách Hamming Để làm rõ công thức, xét hai đối tượng kiểu nhị phân u 01 và v 10 Để tính được khoảng cách Hamming ta xét từng cặp bit tương ứng từ 2 xâu u , v Nếu chúng khác nhau thì bít kết quả ghi 1, ngược lại ghi 0 Tổng các bit kết quả này chính là khoảng cách Hamming Vậy với 2 vector u , v : xét cặp bit thứ 1 của 2 xâu là: 1 và 1, thì bit kết quả là 0 Tiếp tục, ta so sánh lần lượt các cặp bit tiếp theo là 1 và 0 thì bit kết quả ghi thêm vào đằng sau chuỗi là 1, cứ làm như vậy đến hết xâu Ta thấy bit kết quả là: 0111, khoảng cách Hamming là tổng các bit kết quả này = 0+1+1+1=3
Từ đó ta có công thức tổng quát, xét 2 đối tượng u=’abcd…’ và v=’xyz…’
Nếu u [i]≠ v [i] thì Hammingdistance được cộng thêm 1 đơn vị, i=[0 k]; trong đó k là chiều dài đối tượng u , v
Như vậy, khoảng cách Hamming càng nhỏ thì sự tương tự giữa hai đối tượng càng lớn và ngược lại
3.1.3 Độ tương quan Pearson Để đưa ra được công thức tổng quát của Pearson ứng dụng trong lọc cộng tác ta xét 2 vector tổng quát u(a,b,c) và v(x,y,z) Khi đó độ tương quan giữa u , v là:
2 x y z z z y y x z y x x c b c a c b b a c b a a z y z x c b c a z y y x c b b a z y x x c b a a v u pearson Đặt S xy { s S | r x , s , r y , s } tập các đối tượng được đánh giá bởi cả hai người dùng x, y Công thức dựa trên độ tương quan của Pearson [13]:
Trong đó r x ,r y : lần lượt là điểm đánh giá trung bình của người dùng x, y trên tập các đối tượng s (cả hai người cùng đánh giá)
Bảng 3.4 Ví dụ ma trận đánh giá để tính độ tương quan Pearson
- Xét người dùng có tên Alice và sản phẩm 5 chưa được Alice đánh giá :
Để tìm những hàng xóm của Alice có sở thích tương đồng, chúng ta cần xác định những sản phẩm mà họ đã chọn trong quá khứ Những hàng xóm này không chỉ có sở thích giống Alice mà còn giúp cô đánh giá sản phẩm với điểm số 5 Bằng cách sử dụng điểm trung bình của các hàng xóm, chúng ta có thể dự đoán được đánh giá của Alice cho sản phẩm là bao nhiêu.
+ Sau đó chọn tất các sản phẩm mà Alice chưa nhận ra là phù hợp với mình làm những tư vấn tốt nhất
Ta có: sim(alice,user4)
Tương tự ta có kết quả: sim(alice,user 1 )=0.85; sim(alice,user2)=0.00; sim(alice,user3)=0.70;
Hình 3.1 Đồ thị ví dụ so sánh đánh giá của người dùng lân cận
Dựa trên tính toán và quan sát đồ thị, user 1 và user 4 có độ tương quan Pearson cao nhất, lần lượt là 0.85 và 0.79, với Alice Do đó, điểm mà Alice có thể đánh giá cho đối tượng 5 được dự đoán là (3+1)/2=2.
Nhận xét: Giá trị độ tương quan Pearson phù hợp nằm trong khoảng -1 đến 1
3.1.4 Độ tương đồng dựa trên Cosine Đặt S xy { s S | r x , s , r y , s } tập các đối tượng được đánh giá bởi cả hai người dùng x,y Độ tương đồng Cosine giữa hai người dùng x và y được tính bởi công thức:
Trong đó: rx,s r y,s : lần lượt là điểm mà người dùng x,y dành cho đối tượng s Xét ma trận rate như bảng 3.5:
Bảng 3.5 Ma trận ví dụ minh họa độ tương đồng Cosine s 1 s 2 s 3 s 4 s 5 s 6 s 7
Ta có độ tương đồng Cosine giữa người dùng A và B là: Độ tương đồng Cosine giữa A và C là:
Vậy A có độ tương đồng với B hơn C
3.1.5 Độ tương đồng jaccard Độ tương đồng Jaccard giữa hai đối tượng x và y được tính theo công thức:
Ví dụ: Xét 2 vector có số chiều khác nhau như sau: x={0,1,2,5,6}; y={0,2,3,5,7,9}
Vậy độ tương tự Jaccard được xác định là:
Trong đó: |x | là số phần tử trong x, |y| là số phần tử trong y
Độ tương tự giữa người dùng và tài nguyên là yếu tố cốt lõi trong hệ thống gợi ý Các phương pháp đo lường truyền thống như độ tương quan Pearson và độ tương đồng Cosine chỉ xem xét các thuộc tính chung giữa các vector Điều này dẫn đến tình huống hai vector có thể hoàn toàn tương đồng dù chỉ chia sẻ một đánh giá duy nhất Ví dụ, trong lĩnh vực tư vấn phim, hai người dùng có sở thích khác nhau nhưng lại cùng thích một bộ phim như "Men in Black" sẽ được coi là tương đồng, mặc dù họ không có bất kỳ đánh giá chung nào trước đó Trường hợp này minh họa rõ ràng sự hạn chế của các phương pháp đo lường hiện tại trong việc phản ánh chính xác mức độ tương đồng thực sự giữa người dùng.
Độ tương tự Jaccard đo lường sự chồng lấp thuộc tính giữa hai vector nhưng không xem xét sự khác biệt trong đánh giá của người dùng Khi sử dụng dữ liệu nhị phân, hai người dùng có thể được coi là tương tự mặc dù có ý kiến trái ngược về các bộ phim Ngược lại, độ đo khoảng cách Euclidean phản ánh sự tương đồng dựa trên khoảng cách giữa hai người dùng; khoảng cách càng nhỏ, sự tương đồng càng cao Do đó, cả hai phương pháp này đều hữu ích trong việc tìm kiếm người dùng tương đồng trong hệ thống lọc cộng tác.
Mỗi kiểu dữ liệu đặc trưng thường yêu cầu các loại độ đo phù hợp Cụ thể, dữ liệu nhị phân thường sử dụng độ tương tự Jaccard, trong khi dữ liệu số có thể áp dụng các độ đo như khoảng cách Euclidean, độ tương đồng Cosine hoặc độ tương tự Pearson Đối với dữ liệu dạng xâu, khoảng cách Hamming là lựa chọn thích hợp.
Các kỹ thuật trong lọc cộng tác
Lọc cộng tác là phương pháp tư vấn hiệu quả hơn so với lọc dựa trên nội dung, với nhiều ưu điểm nổi bật đã được phân tích trong chương 2 Phương pháp này đã được áp dụng rộng rãi trong nhiều ứng dụng, bao gồm các hệ thống như Youtube (video), Grundy, GroupLens (tin tức), Ringo (âm nhạc), Amazon.com (sách) và Phoaks (web).
Trong hệ thống CF, dữ liệu đầu vào là tập đánh giá của người dùng trên các đối tượng Dựa vào những đánh giá này, người dùng có thể được so sánh và hình thành khái niệm người dùng tương đồng Đồng thời, các đối tượng cũng được so sánh với nhau để tạo ra khái niệm đối tượng tương đồng Điểm đánh giá của một người dùng đối với một đối tượng có thể được dự đoán dựa trên đánh giá của những người dùng lân cận hoặc các tài nguyên tương tự.
Ma trận R Thuật toán CF Kết xuất
Hình 3.2 Sơ đồ thể hiện quy trình của CF
Trong đó, ma trận R (đầu vào của CF) là ma trận rate (đánh giá) của m người dùng u với n tài nguyên i Kết xuất chính là đầu ra của CF [27]:
+ raj là giá trị cần dự đoán thể hiện đánh giá có tiềm năng nhất của người dùng a lên tài nguyên j
+ Ti1, Ti2,…T in gợi ý danh sách N tài nguyên (Ti,n) mà bộ lọc gợi ý cho người dùng u a
Thuật toán Collaborative Filtering (CF) đóng vai trò quan trọng trong hệ thống tư vấn, giúp xác định các đối tượng mà người dùng có khả năng yêu thích và số lượng người dùng khác cũng có sở thích tương tự Các thuật toán này thường được sử dụng để cung cấp các gợi ý tối ưu cho người dùng, từ việc đề xuất đối tượng tốt nhất cho đến việc tạo ra danh sách các đối tượng xếp hạng hàng đầu Hệ thống gợi ý này thường dựa trên N đối tượng, với N thường dao động từ 1 đến 20.
Theo nghiên cứu của J.S Breese, D Heckerman và C Kadie, các thuật toán gợi ý có thể được phân loại thành hai nhóm chính: thuật toán dựa trên kinh nghiệm (memory-based hoặc heuristic-based) và thuật toán dựa vào mô hình (model-based).
3.2.1 Lọc cộng tác dựa trên kinh nghiệm
Phương pháp lọc cộng tác dựa trên kinh nghiệm (memory-based) sử dụng toàn bộ dữ liệu hiện có để dự đoán đánh giá của người dùng về các đối tượng mới Với lợi thế tích hợp dữ liệu mới vào bảng dữ liệu, phương pháp này đã đạt được thành công đáng kể trong các ứng dụng thực tế Nhờ khả năng cập nhật dữ liệu liên tục, các kỹ thuật này thường đưa ra những dự đoán chính xác hơn trong các hệ thống trực tuyến.
Tư vấn raj (dự đoán đánh giá của người dùng ua lên sản phẩm ij)
{Ti1,Ti2,… ,TiN}Danh sách N sản phẩm tốt nhất tư vấn cho người dùng ui
Các thuật toán tư vấn dựa vào bộ nhớ sử dụng dữ liệu đánh giá từ người dùng tương đồng để dự đoán đánh giá cho một đối tượng Dự đoán này thường là giá trị trung bình của tích trọng số và điểm đánh giá từ những người dùng khác Trọng số thể hiện độ “tương đồng” giữa các cặp người dùng, thường được đo bằng hệ số tương quan Pearson và độ đo Cosine.
2 vector đánh giá Ma trận tương đồng w(u i ,u j ) giữa tập người dùng thường được tính toán trước Gợi ý đối tượng s tới người dùng u i cho bởi công thức
Trong đó: I(u j ,s) là điểm (rate) đánh giá của người dùn u j với đối tượng s w(u i ,u j ): độ tương đồng (tương tự) giữa u i và u j
Phương thức gợi ý dựa vào bộ nhớ đang phát triển nhanh chóng nhờ vào tính đơn giản và quá trình huấn luyện dễ hiểu Tuy nhiên, một trong những thách thức lớn nhất của phương thức này là khả năng mở rộng hạn chế Thông thường, có hai cách tiếp cận chính trong hệ thống gợi ý dựa trên bộ nhớ: hệ thống dựa trên người dùng và hệ thống dựa trên đối tượng.
3.2.1.1 Lọc cộng tác dựa vào người dùng
Phương pháp lọc cộng tác dựa vào người dùng (user-based) dự đoán các đối tượng dựa trên sự tương tác giữa người dùng Hệ thống xác định sự tương đồng giữa hai người dùng bằng cách so sánh các đánh giá của họ trên cùng một đối tượng Sau đó, nó dự đoán đánh giá của người dùng u cho đối tượng s, dựa trên đánh giá trung bình hoặc tổng hợp từ những người dùng tương tự Phương pháp này thường dễ thực hiện hơn khi số lượng đối tượng vượt trội hơn so với số lượng người dùng trong ma trận user-item (ma trận R).
Mỗi hồ sơ người dùng được biểu diễn dưới dạng vector không có thứ tự, và điểm đánh giá của những người dùng tương tự đóng vai trò quan trọng trong việc dự đoán các rating và tư vấn đối tượng cho người dùng Việc xác định nhóm người dùng tương tự là yếu tố quyết định cho kết quả dự đoán và gợi ý Vấn đề này sẽ được thảo luận chi tiết trong phần "Vấn đề lựa chọn hàng xóm" trong mục này.
Theo hướng tiếp cận này thường bàn đến các khía cạnh [16]:
- Q1: Làm thế nào để đo độ tương tự giữa hai người dùng?
- Q2: Làm thế nào để lựa chọn nhóm người dùng tương tự với mình?
- Q3: Làm thế nào để sử dụng nhóm người dùng tương tự vào quá trình gợi ý ?
Hình 3.3 Mô tả CF dựa vào người dùng [16]
Việc trả lời ba câu hỏi trên sẽ được phân tích kĩ trong phương pháp user-nearest neighbor based của lọc cộng tác
Phương pháp dựa vào láng giềng gần nhất (user-nearest neighbor) trong CF
Thuật toán lọc cộng tác dựa trên láng giềng gần nhất là một trong những phương pháp phổ biến nhất trong hệ thống gợi ý Nó được ưa chuộng nhờ tính dễ thực hiện và độ chính xác cao Trong luận văn này, tác giả sẽ áp dụng kỹ thuật này vào thực nghiệm và sẽ trình bày chi tiết về phương pháp.
Phương pháp này ước lượng đánh giá của người dùng a cho đối tượng i dựa trên những đánh giá của những người hàng xóm T a, tức là những người có sở thích tương tự Ma trận đánh giá được sử dụng để xác định hàng xóm T a Để dự đoán đánh giá pa,i của người dùng a cho đối tượng i, ta có thể tính tổng trọng số các đánh giá từ những hàng xóm gần nhất u trong T a đã đánh giá đối tượng này.
Độ tương tự giữa các đối tượng được biểu thị bởi sim(a,u) là yếu tố quan trọng khi áp dụng cho tất cả các thành viên trong tập T a và trọng số của các độ trung bình Điểm r ui đại diện cho đánh giá của người dùng u (hàng xóm của a) dành cho đối tượng i, trong khi S u là tập hợp các đối tượng mà u đã đánh giá Để xem xét sự khác biệt trong việc sử dụng thang đánh giá giữa các người dùng, dự đoán được thực hiện dựa trên độ lệch từ đánh giá trung bình Giá trị P ai được tính bằng tổng đánh giá trung bình của người dùng a cộng với tổng trọng số của các độ lệch từ đánh giá trung bình của các hàng xóm.
0) xóm đã đánh giá tài nguyên i
Su i T u ui u a ai a a u a sim r r u a sim r p r u là đánh giá trung bình của người dùng u
Tài nguyên có thể được đánh giá từ 1 đến 5, cho phép người dùng thể hiện sở thích cá nhân Một người dùng có thể cho tài nguyên mình thích điểm 4 và tài nguyên không thích điểm 1, trong khi người khác có thể cho tài nguyên yêu thích điểm 5 và tài nguyên không thích điểm 2 Sử dụng độ lệch từ đánh giá trung bình giúp hiểu rõ hơn về ngữ nghĩa và sự ưa thích cá nhân của từng người dùng đối với tài nguyên được đánh giá.
Phương pháp dựa trên láng giềng ngày càng trở nên phổ biến nhờ tính trực quan và đơn giản của chúng, không yêu cầu điều chỉnh nhiều tham số hay giai đoạn huấn luyện phức tạp Những phương pháp này cung cấp minh chứng rõ ràng cho việc tính toán dự đoán Đặc biệt, phương pháp láng giềng gần nhất đã cho thấy kết quả khả quan khi áp dụng trên dữ liệu của Netflix, mang lại sự cải thiện đáng kể về chất lượng dự đoán mà không làm tăng thời gian xử lý.
Phương pháp lọc cộng tác dựa vào láng giềng gần nhất xác định chất lượng của hệ tư vấn thông qua số lượng hàng xóm, cách lựa chọn hàng xóm và mức độ tương tự giữa người dùng Điều này được thực hiện dựa trên các giá trị đánh giá của những người dùng đã đánh giá cùng một nhóm đối tượng, từ đó tạo thành các hàng xóm gần nhất.
1- Độ tương tự giữa các người dùng
Kỹ thuật chọn tốp N gợi ý trong lọc cộng tác
Trong quá trình lọc cộng tác, việc xây dựng một nhóm hàng xóm tin cậy, bao gồm những người có sở thích tương đồng, là rất quan trọng để phân tích thói quen đọc của họ nhằm đưa ra gợi ý cho người dùng cần tư vấn Vấn đề đặt ra là xác định các đối tượng đặc trưng trong cộng đồng này để lựa chọn cho việc tư vấn Điều này dẫn đến câu hỏi về cách thức rút ra tốp N gợi ý hiệu quả trong lọc cộng tác.
Phương pháp 1: Dựa vào thang điểm đánh giá mới của người dùng tới các đối tượng mà cộng đồng đang quan tâm
Chúng tôi sẽ điều chỉnh điểm số của người dùng u1 dựa trên các đối tượng mà cộng đồng đánh giá tích cực Điểm số này sẽ khác với mức đánh giá ban đầu mà hệ thống đã ghi nhận Các đối tượng này có thể bao gồm hoặc không bao gồm những đối tượng mà người dùng u1 đã từng tương tác Sau khi tính toán lại điểm số cho người dùng u1, chúng tôi sẽ chọn ra những đối tượng mà người dùng này đánh giá cao nhất.
Trong tập hợp U (những người tương tự với u 1 ) sau khi tính độ tương đồng giữa người dùng u 1 với lần lượt các người dùng khác u 1 trong U
Xét hai người dùng u1 và u2, tập hợp tất cả các bản tin mà ít nhất một trong hai người đã truy cập được ký hiệu là N = {n1, n2, …, np} với p phần tử Điểm đánh giá của người dùng u1 và u2 trong tập N được biểu diễn bằng các vector tương ứng.
Trong tập dữ liệu D(u1), các phần tử x_i đại diện cho giá trị đánh giá mà người dùng u1 dành cho bản tin n_i Tương tự, tập dữ liệu D(u2) cũng chứa các giá trị đánh giá của người dùng u2 Để xác định độ tương đồng giữa hai người dùng u1 và u2, ta sử dụng công thức Cosine để so sánh hai vector D(u1) và D(u2).
U là một nhóm người dùng có đặc điểm tương đồng Từ đó, chúng ta có thể tính toán điểm số đánh giá mức độ quan tâm của người dùng U đối với bản tin s (khác ni).
Trong công thức (3.25), N U đại diện cho số lượng người dùng trong tập U, trong khi I(u j ,s) là các giá trị rate mà người dùng u j đã tương tác với bản tin s Những giá trị này có thể chứa các dữ liệu đa dạng.
0 nếu người dùng u j chưa tương tác với bản tin s ), similarity( u,u j) tính theo công thức 3.24 Việc thêm (N U – 1) ở mẫu số nhằm đảm bảo r(u,s) nằm trong khoảng (0,1)
Danh sách bản tin gợi ý cho người dùng u bao gồm những bản tin mà các thành viên khác trong nhóm đã quan tâm nhưng u chưa đọc Các bản tin này được đánh giá khả năng quan tâm của người dùng u theo công thức 3.25 và được sắp xếp theo điểm số giảm dần Do đó, chúng ta có thể chọn ra những bản tin có thứ hạng cao nhất trong tập N để tư vấn cho người dùng u.
Phương pháp 2 - Dựa trên số lượng đánh giá (POP - Popularly Rated) là phương pháp dựa vào số lượng người dùng trong cộng đồng đã đánh giá cùng một tài nguyên, nhằm lọc ra tốp N đối tượng phổ biến nhất POP dễ thực hiện và có thể áp dụng cho cả người dùng thường xuyên và người dùng mới Trong ma trận user-item, những đối tượng được nhiều người trong cộng đồng quan tâm và đánh giá cao sẽ được xem là phổ biến, từ đó được gợi ý cho người dùng Có thể giới hạn số lượng đối tượng bằng cách chọn N đối tượng phổ biến nhất dựa trên số lượng tương tác Tiêu chí này phản ánh mức độ tham gia đánh giá của người dùng trong cộng đồng; càng nhiều người đánh giá, độ phổ biến càng cao Nếu số lượng người dùng đánh giá đối tượng j cao hơn đối tượng i, thì đối tượng j sẽ được gợi ý cho người dùng.
Phương pháp gợi ý POP hiệu quả khi người dùng ẩn danh hoặc có ít tương tác, vì dễ cài đặt và không tốn nhiều công sức Phương pháp này tập trung vào tính phổ biến, phù hợp với hệ thống chỉ quan tâm đến thị hiếu số đông Tuy nhiên, cần lưu ý rằng trong lọc cộng tác, các đối tượng phổ biến có thể không phản ánh chất lượng thực tế, khi những sản phẩm có nhiều đánh giá thấp vẫn có thể được đưa lên tốp Ngược lại, những sản phẩm ít được chú ý nhưng có đánh giá cao lại có thể bị bỏ qua Điều này cho thấy sự không đồng đều trong mức độ quan tâm của người dùng đối với các bản tin khác nhau.
Phương pháp 3: Dựa vào tổng điểm có thứ hạng cao (High Rating- HR )
Phương pháp này sử dụng điểm trung bình hoặc tổng điểm của người dùng trong cộng đồng để đánh giá các đối tượng trong tập M Những đối tượng có điểm trung bình hoặc tổng rating cao sẽ được gợi ý cho người dùng.
Phương pháp này tập trung vào tiêu chí chất lượng của đối tượng, từ đó đảm bảo cung cấp dịch vụ tư vấn với chất lượng cao Người dùng thường mong muốn nhận được tư vấn về những đối tượng chất lượng, thay vì chỉ theo xu hướng số đông Các đối tượng đã được đánh giá cao thường thu hút sự quan tâm từ cộng đồng, mặc dù có thể không phải lúc nào cũng đạt điểm số tối đa Như vậy, phương pháp này không chỉ nâng cao chất lượng tư vấn mà còn đảm bảo tính phổ biến trong cộng đồng.
Một số nghiên cứu về khắc phục hạn chế lọc cộng tác
Hệ thống CF có những hạn chế, đặc biệt là vấn đề cold start, khi người dùng mới hoặc tài nguyên mới chưa có đánh giá nào, dẫn đến việc thiếu dữ liệu để đưa ra tư vấn phù hợp Để khắc phục vấn đề này, Herlocker đề xuất khai thác dữ liệu nhân khẩu học như tuổi, vị trí, và nghề nghiệp để cải thiện các tư vấn ban đầu Ngoài ra, việc áp dụng phương pháp tư vấn lai (Hybrid filtering) kết hợp giữa CB và CF cũng giúp xử lý hiệu quả các vấn đề liên quan đến người dùng và tài nguyên mới Dưới đây là mô tả chi tiết các phương pháp mà các hệ thống tư vấn đã áp dụng.
1- Kỹ thuật giảm sự thưa thớt dữ liệu trong hệ tư vấn Đây là một hạn chế phổ biến trong hầu hết các hệ tư vấn, đặc biệt khi số lượng đối tượng tăng lên nhiều mà người dùng chưa đủ thời gian hoặc chưa kịp đánh giá Ví dụ như dữ liệu của Netflix [28] có đến 99% là thiếu các giá trị đánh giá của người dùng Theo Emmanouil Vozalis, Konstantinos G.Margaritis có thể đưa ra ba đề xuất
[13] để khắc phục hạn chế dữ liệu thưa
Để giảm sự thưa thớt của ma trận user-item, một kỹ thuật đơn giản là chèn một đánh giá mặc định d cho các đối tượng chưa có điểm đánh giá Tuy nhiên, các tác giả John S Breese, David Heckerman và Carl Kadie chỉ ra rằng kỹ thuật này không xác định được vị trí chèn các đánh giá mặc định Thông thường, giá trị đánh giá mặc định d được chọn một cách độc lập hoặc dựa trên sở thích tiêu cực cho các đối tượng không quan sát Phương pháp này có chi phí áp dụng khá thấp.
Tiền xử lý sử dụng giá trị trung bình là một phương pháp mở rộng của kỹ thuật bỏ phiếu mặc định, trong đó ý tưởng chính là duyệt qua ma trận user-item và thay thế các giá trị lỗi (rỗng) bằng các phương pháp không hợp tác ngây thơ để cung cấp một đánh giá đơn giản.
Trong chương trình trung bình người sử dụng, mỗi người dùng được tính toán trung bình đánh giá các đối tượng, thể hiện qua ma trận user-item Trung bình của người dùng được sử dụng để thay thế các giá trị lỗi trong đánh giá Phương pháp này dựa trên ý tưởng rằng đánh giá của người dùng đối với một đối tượng mới có thể được dự đoán dựa trên các đánh giá trong quá khứ của người dùng tương tự Nếu người dùng chưa đánh giá đối tượng, ta sẽ sử dụng giá trị trung bình; nếu đã đánh giá, ta sẽ sử dụng giá trị đã cho.
( r ij : điểm đánh giá của hàng i , cột j)
Bảng 3.6 Ma trận mô tả trung bình các giá trị trong ma trận user-item i1 i2 ij item i User u
Trong sơ đồ trung bình đối tượng, chúng ta sử dụng mức trung bình r j của từng đối tượng i j để lấp đầy các vị trí thiếu trong ma trận bằng giá trị r i,j Bằng cách tính trung bình cột của ma trận người dùng, chúng ta có thể điền các giá trị vào các cột tương tự mà chưa có giá trị r j, nếu người dùng u i chưa đánh giá đối tượng i j Khi áp dụng sơ đồ trung bình đối tượng hay trung bình người dùng cho mỗi giá trị thiếu trong ma trận, chúng ta sẽ tạo ra một ma trận hoàn chỉnh, từ đó loại bỏ hoàn toàn vấn đề dữ liệu thưa.
Sử dụng kỹ thuật giảm số chiều
Chiến lược giảm số chiều hiệu quả là hình thành các cụm đối tượng hoặc người dùng, sử dụng chúng trong dự đoán Để cải thiện phương pháp này, nên áp dụng các kỹ thuật thống kê như PCA và LSI Các kỹ thuật trích chọn đặc trưng như SVD cũng có thể giúp giảm chiều ma trận Những phương pháp này giải quyết vấn đề thưa thớt bằng cách tạo ra ma trận tương tác user-item gần gũi nhất với người dùng Tuy nhiên, quá trình giảm chiều có thể làm mất thông tin hữu ích, ảnh hưởng đến độ tin cậy của dự đoán Sự kết hợp giữa lọc cộng tác và phương pháp dựa trên nội dung, cùng với tương tác người dùng - đối tượng, giúp cải thiện độ chính xác Tuy nhiên, các kỹ thuật này chỉ hiệu quả khi có sẵn thông tin nội dung trong hệ thống.
Phương pháp sử dụng đồ thị song phương xem dữ liệu như một đồ thị, trong đó mỗi nút đại diện cho người dùng và sản phẩm, và mỗi cạnh (u,i) kết nối giữa người dùng u và sản phẩm i nếu u đã đánh giá sản phẩm i Trọng số của cạnh (u,i) tương ứng với đánh giá mà người dùng u gán cho sản phẩm i Các phương pháp này chuyển hóa độ tương tự giữa người dùng hoặc sản phẩm dựa trên lý thuyết đồ thị, ví dụ như tính toán độ tương tự giữa hai người dùng thông qua độ trung bình của các nút tương ứng trong các đường ngẫu nhiên của đồ thị Ngoài ra, các phép đo khác như khoảng cách ngắn nhất và khoảng cách ảnh hưởng giữa các nút cũng được nghiên cứu Tuy nhiên, hạn chế của các phương pháp này là không thể hiện tốt độ đo tương tự trong việc dự đoán đánh giá.
Theo tác giả Duy Phương, việc áp dụng phương pháp học đa nhiệm vào lọc cộng tác có thể tận dụng các đặc trưng chung của các nhóm người dùng khác nhau trong quá trình huấn luyện Những đặc trưng này không chỉ giúp chia sẻ thông tin giữa các người dùng mà còn nâng cao độ chính xác của dự đoán và giảm thiểu vấn đề dữ liệu thưa.
Chúng ta có thể áp dụng kỹ thuật user average scheme để giải quyết vấn đề thiếu giá trị trong ma trận user-item Cụ thể, chúng ta sẽ tính toán mức trung bình của từng người dùng u i, từ đó điền vào các giá trị thiếu ri,j Phương pháp này bao gồm việc tính trung bình hàng trong ma trận và sử dụng giá trị trung bình r i khi người dùng u i chưa đánh giá đối tượng mới ij Điều này giúp khắc phục tình trạng thiếu thông tin cho người dùng mới.
Tạo lập cộng đồng tương tự dựa trên mô hình cộng đồng đa tiêu chí
Hai phương pháp tìm cộng đồng tương tự theo hàng xóm gần nhất và khoảng cách tâm chỉ dựa vào điểm đánh giá, gây khó khăn cho người dùng mới do thiếu thông tin đánh giá Để giải quyết vấn đề này, hệ thống cần cung cấp tài nguyên để người dùng có thể đánh giá, từ đó hình thành cộng đồng Mô hình không gian cộng đồng đa tiêu chí khắc phục những hạn chế này bằng cách sử dụng nhiều thuộc tính trong hồ sơ người dùng (như tuổi, nghề, nơi cư trú, trình độ, chủ đề quan tâm, sở thích và thông tin phản hồi) làm tiêu chí thành lập cộng đồng Nhờ vậy, một người dùng có thể thuộc về nhiều cộng đồng khác nhau, tạo nên một không gian cộng đồng đa dạng được biểu diễn qua bảng cộng đồng (alpha – community table) Tmxn.
Bảng 3.7 Bảng minh họa mô hình cộng đồng đa tiêu chí
Trong bài viết này, u i đại diện cho tập người dùng U, trong khi j là tập tiêu chí A được sử dụng để phân nhóm hoặc phân hoạch người dùng Mỗi giá trị T[u i, j] cho thấy người dùng u i thuộc về cộng đồng tiêu chí j.
Hệ thống phân nhóm người sử dụng dựa trên các tiêu chí đơn giản như tuổi, nghề và nơi cư trú bằng cách so sánh trực tiếp Đối với các tiêu chí phức tạp như nền tảng kiến thức và thông tin đánh giá, phương pháp hàng xóm gần nhất và khoảng cách tâm được áp dụng để phân hoạch người dùng Đặc biệt, khi người dùng mới chưa có thông tin để đánh giá, hệ thống sử dụng phương pháp quy nạp dựa trên luật để suy diễn cộng đồng theo tiêu chí đánh giá của người dùng, dựa trên những cộng đồng đã có theo các tiêu chí khác.
Định vị người dùng mới vào cộng đồng
Khi người dùng mới đăng ký, hệ thống cần định vị họ vào cộng đồng phù hợp để cung cấp thông tin tư vấn dựa trên các giá trị nhân khẩu học như tuổi, nghề nghiệp, và nơi cư trú Tuy nhiên, trong các phương pháp CF cổ điển, việc xác định cộng đồng dựa trên tiêu chí đánh giá của người dùng mới gặp khó khăn, vì các đánh giá này chưa được biết đến Do đó, hệ thống không thể cung cấp tư vấn chính xác Để khắc phục vấn đề này, hiện có nhiều cách tiếp cận khác nhau.
(1) Khai thác thông tin thăm dò
Hệ thống yêu cầu người dùng mới đánh giá một số lượng tối thiểu các tài nguyên, có thể thông qua danh sách ngẫu nhiên hoặc theo tiêu chí nhất định Tuy nhiên, điều này có thể gây khó khăn cho người dùng khi họ không thể đưa ra đánh giá cụ thể do thiếu thông tin về tài nguyên Để khắc phục, người dùng mới có thể tự chọn những tài nguyên trong phạm vi hiểu biết của mình để thực hiện đánh giá.
(2) Cung cấp hồ sơ mẫu
Xây dựng mô hình và thực nghiệm
Hệ thống lọc tin cho diễn đàn
Bộ lọc tin là một mô đun độc lập, không phụ thuộc vào các chức năng thông thường của diễn đàn Nó tương tác với diễn đàn bằng cách truy xuất dữ liệu từ cơ sở dữ liệu gốc và cung cấp kết quả gợi ý.
Bộ lọc tin diễn đàn sử dụng dữ liệu đầu vào từ lịch sử tương tác của người dùng với diễn đàn, được trích xuất từ các bảng trong cơ sở dữ liệu tập trung.
Danh sách kết quả gợi ý là các bài tin cần tư vấn cho người dùng Khi mô đun được tích hợp vào hệ thống diễn đàn thực, kết quả này sẽ được lưu trực tiếp vào cơ sở dữ liệu, tạo đầu vào cho bước tiếp theo nhằm hiển thị rõ ràng trên giao diện người dùng.
Hình 4.1 Quá trình xử lý của bộ lọc
Bộ lọc cộng tác cho diễn đàn bao gồm bốn thành phần chính: bộ phận tính điểm, bộ phận tạo ma trận đánh giá, bộ phận phân loại cộng đồng hàng xóm, và bộ phận tạo gợi ý cùng với bộ phận kiểm tra.
Quá trình hoạt động của bộ lọc tin trên diễn đàn
Bộ lọc bắt đầu bằng việc thu thập lịch sử tương tác giữa người dùng và diễn đàn, được trích xuất từ các bảng trong cơ sở dữ liệu tập trung Bộ phận tính điểm và tạo ma trận rate là bước đầu tiên, có nhiệm vụ chọn lọc các tương tác quan trọng và tính toán điểm số (rate) mà người dùng dành cho các mục tin Kết quả là một bảng thông tin user-item-rate, thể hiện đánh giá của người dùng đối với từng mục tin, đóng vai trò là nguồn dữ liệu quan trọng cho các bước tiếp theo.
Tính điểm, tạo ma trận rate
Tìm cộng đồng tương tự kết quả gợi ý lịch sử tương tác Kiểm tra điều kiện
Nhóm user tương tự Đầu vào:
Bài tin tiếp theo tạo ra ma trận rate, đóng vai trò là đầu vào trực tiếp cho thuật toán CF và cũng là dữ liệu đầu vào cho bộ phận phân tích cộng đồng tương tự.
Bộ phận phân cộng đồng tương tự có nhiệm vụ tạo ra nhóm người dùng tương đồng với người cần gợi ý Bằng cách sử dụng giá trị điểm của mỗi người cho các mục tin, bộ lọc áp dụng các độ đo tương đồng như Cosine hoặc Euclidean để xác định những người gần gũi nhất với người cần tư vấn Việc lựa chọn độ đo và số lượng người dùng trong nhóm tin cậy có thể được điều chỉnh để thực nghiệm Kết quả nhóm sẽ được tính toán định kỳ để đảm bảo sự tương thích với xu hướng đọc tin đang thay đổi của người dùng.
Nhóm người dùng tương đồng sẽ được phân tích từ bộ phận phân cộng đồng và thông tin điểm từ bộ phận tính điểm sẽ được sử dụng làm đầu vào cho bộ phận tạo gợi ý Đây là một bước quan trọng trong quá trình lọc, áp dụng phương pháp chọn tốp N gợi ý theo kỹ thuật 3 Mỗi nhóm cộng đồng với k người dùng sẽ được xếp hạng các mục tin, và những mục tin có tổng điểm cao nhất sẽ được chọn làm kết quả gợi ý Đối với người dùng mới hoặc có ít tương tác, bộ lọc sẽ gợi ý các mục tin có tổng điểm cao Trước khi hiển thị kết quả gợi ý, bộ phận kiểm tra sẽ đảm bảo tính hợp lệ của các mục tin theo các tiêu chí nhất định để đảm bảo chất lượng gợi ý.
Quá trình xử lý bộ lọc tin cho diễn đàn
Bảng 4.1 Ma trận rate đầu vào cho thuật toán CF s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 sj … s m ua 4 1 3 5 2 0 0 1 1 4 0 0 u1 5 2 4 5 1 0 0 0 3 5 … 5 … 1 u2 0 4 5 1 0 0 0 0 2 2 … 2 … 2 u3 0 3 4 1 0 1 0 0 1 0 … 1 … 0 u4 2 0 0 1 1 3 0 1 4 3 4 3 u5 3 2 1 5 1 0 2 0 2 1 … 2 … 3
Giả sử xét tập người dùng U gồm n người dùng U={u 1 , u 2 , … , u n } và tập m các bài tin mà những người dùng này có thể tương tác là S = {s 1 , s 2 , … , s m } với m phần tử
Kết quả của bộ phận này là một ma trận rate, trong đó hàng đại diện cho người dùng và cột đại diện cho các bài tin Giá trị tại giao điểm giữa hàng và cột thể hiện điểm số (rate) mà người dùng đánh giá cho từng bài tin Các rate này được tính toán tự động dựa trên tương tác của người dùng trong diễn đàn, với hai loại tương tác chính được xem xét: nếu người dùng đã đọc bài tin, giá trị rate sẽ là 1; nếu người dùng còn bình luận về bài tin, mỗi bình luận sẽ được tính thêm 1 điểm Do đó, rate của người dùng đối với một bài tin là tổng số lần bình luận cộng với điểm đọc tin Ngược lại, nếu người dùng không có bất kỳ tương tác nào với bài tin, rate sẽ có giá trị bằng 0.
Ví dụ bảng dữ liệu 4.1, u 1 đọc bài tin s 9 và comment bài tin này 2 lần nên giá trị rate (điểm đánh giá) giữa u 1 và s 9 là 1+2=3
4.2.2 Xây dựng nhóm người dùng tương tự Ở giai đoạn này tác giả sử dụng phương pháp láng giềng gần nhất
Để tính toán độ đo tương tự giữa người dùng u a và n-1 người dùng khác trong hệ thống, chúng ta sử dụng khoảng cách Euclidean hoặc Cosine Sau khi tính toán, các độ đo này sẽ được lưu trữ để phục vụ cho các phân tích và ứng dụng tiếp theo.
Xét hai người dùng u1 và u2, ta ký hiệu tập hợp tất cả các mục tin mà ít nhất một trong hai người dùng đã truy cập là N = {s1, s2, …, sp} với p phần tử Lịch sử truy cập của người dùng u1 và u2 trong tập N được biểu diễn bằng các vector D(u1) và D(u2) theo công thức (3.22) và (3.23) Mỗi người dùng tương ứng với một vector có p đối tượng, tạo thành một không gian p chiều cho vector này.
Trong D(u 1 ), phần tử x i là các đánh giá (rate) của người dùng u 1 đã từng tương tác với bản tin s i ; tương tự đối với các phần tử trong D(u 2 )
- Độ tương đồng lịch sử về sở thích (thị yếu) giữa hai người dùng u 1 và u 2 dựa theo công thức Cosine giữa vector D(u 1 ) và vector D(u 2 )
- Độ tương tự của hai người dùng còn có thể dựa vào khoảng cách Euclidean
B2 - Để xác định k người dùng được xem là hàng xóm tin cậy, ta có thể chọn ra những giá trị có độ tương đồng Cosine cao nhất hoặc những giá trị có khoảng cách Euclidean nhỏ nhất, từ đó cho thấy mức độ tương đồng lớn nhất giữa các người dùng.
Trong chương 3, đã phân tích nhiều phương pháp để chọn ra tốp N gợi ý Trong bộ lọc luận văn thiết kế, phương pháp tìm tốp N dựa trên tổng rate của các hàng xóm lớn hơn một ngưỡng θ, mà ngưỡng này được xác định là trung bình của các tổng rate trong tập k hàng xóm.
- Với mỗi người dùng u , ta đã tìm ra tập k người dùng U k = (u i ) nằm trong tập U i =1 k
Bảng 4.2 Ma trận rate phản ánh k người dùng gần nhất s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 sj … s m ua 4 1 3 5 2 0 0 1 1 4 0 0 u1 5 2 4 5 1 0 0 0 3 5 … 5 … 1 u 2
… … … … … … … … ui 3 2 1 5 1 0 2 0 1 3 … rui,sj … 1 u n-1 1 0 1 1 2 3 0 1 0 0 0 1 Xét người dùng u a;giả sử ta tìm được k hàng xóm tin cậy của u a đó là:
Ta có: total us là một mảng chứa tất cả các tổng rate của các u i đánh giá cho từng s j trên tập k người dùng U k us u U s S u s j k i r i j total
, (4.3) avg us là giá trị trung bình của các tổng rate s i trong tập k người dùng U k k total avg us us (4.4)
Tốp N mục tin tư vấn cho u s chính là số các mục tin có tổng total us > avg us m item k user
Bộ phận này kiểm tra sự trùng lặp giữa các bài tin được hệ thống gợi ý và những bài mà người dùng đã từng tương tác Nếu phát hiện trùng lặp, các bài tin đó sẽ bị loại bỏ khỏi danh sách gợi ý Đồng thời, bộ phận này cũng xác định xem người dùng có phải là người mới hay không, từ đó đưa ra hình thức gợi ý phù hợp nhất.
4.3 Ví dụ minh họa quá trình xử lý của bộ lọc Để hiểu hơn về quá trình xử lý của bộ lọc ta xét ví dụ minh họa trên bộ dữ liệu nhỏ gồm 7 người dùng, 9 bài tin: m=9, n=7
Bảng 4.3 Bảng ma trận giá trị ví dụ quá trình xử lý bộ lọc s1 s2 s3 s4 s5 s6 s7 s8 s9 ua 4 1 3 5 2 0 0 1 1 u1 5 2 4 5 1 0 0 0 3 u2 0 7 1 0 5 4 0 0 3 u3 0 4 0 0 0 2 3 0 0 u4 2 0 6 0 0 0 0 3 0 u5 0 0 1 0 0 0 3 0 0 u6 0 0 2 4 0 3 0 0 1
1- Tìm hàng xóm tin cậy Ở đây ta minh họa với độ đo Cosine Xét u a =(4,1,3,5,2,0,0,1,1)
- Độ đo Cosine giữa u a với những người dùng khác là:
Tương tự ta cũng có:
Similary(ua,u2)=0.299 Similary(ua,u3)=0.098 Similary(ua,u4) = 0.549 Similary(ua,u5)=0.126 Similary(ua,u6) = 0.653
Khi chọn số hàng xóm tương đồng k=3, chúng ta xác định được 3 hàng xóm tin cậy của u a, đó là U k = (u 1, u 4, u 6), với độ đo Cosine giữa chúng và u a là lớn nhất.
2- Tìm tốp N mục tin tư vấn cho u a
Bảng 4.4 Bảng ma trận ví dụ minh họa kỹ thuật tốp N s 1 s2 s 3 s 4 s5 s6 s7 s8 S9 u a 4 1 3 5 2 0 0 1 1 u1 5 2 4 5 1 0 0 0 3 u2 0 7 1 0 5 4 0 0 3 u3 0 4 0 0 0 2 3 0 0 u4 2 0 6 0 0 0 0 3 0 u5 0 0 1 0 0 0 3 0 0 u6 0 0 2 4 0 3 0 0 1 total us 7 2 12 9 1 3 0 3 4
Ta có: total us là một mảng chứa tất cả các tổng rate của s i trên tập k người dùng
(3 người dùng u1,u4,u6) avg us là giá trị trung bình của các tổng rate s i trên tập k người dùng avg us =(7+2+12+9+1+3+0+3+4)/9=4.6
Tốp N mục tin tư vấn cho u 1 chính là các mục có tổng total us > avg us
Bộ lọc tin dành cho u a đã tạo ra tốp N gồm các mục tin {s1, s3, s4} với tổng rate lần lượt là 7, 12, 9, tất cả đều vượt mức 4.6 Kết quả từ bộ lọc tin gợi ý cho u a là 3 bài tin: s1, s3, và s4.
Môi trường thực nghiệm bộ lọc
Quá trình thử nghiệm bộ lọc được tiến hành trên máy tính cá nhân có cấu hình và yêu cầu chương trình hỗ trợ sau:
- Cơ sở dữ liệu: MySQL
- Ngôn ngữ truy vấn MySQL
Mô tả và chuyển đổi dữ liệu diễn đàn
Một số hoạt động chính giữa người dùng và diễn đàn Tuệ Tĩnh liên quan đến luận văn
Để tham gia đọc, bình luận và gửi nhiều bài viết về các chủ đề khác nhau, người dùng nên đăng ký một tài khoản Vì vậy, hầu hết khách truy cập diễn đàn đều có tài khoản trong cơ sở dữ liệu.
Người dùng có thể lựa chọn chỉ đọc các bài viết mà không tham gia bình luận, hoặc họ cũng có thể bình luận và đưa bài viết lên các chủ đề cho phép.
Khi một người dùng đăng tải bài viết, thường sẽ có nhiều bình luận từ người khác, vì vậy, số lượng bình luận và số người dùng tham gia bình luận là thông tin quan trọng cho các phân tích liên quan.
Mô tả một số bảng trong CSDL diễn đàn Tuệ Tĩnh liên quan đến bộ lọc
Hệ thống cơ sở dữ liệu của diễn đàn bao gồm 164 bảng, tuy nhiên, trong phạm vi bài toán phân tích, chúng ta chỉ tập trung vào 5 bảng liên quan (Xem sơ đồ liên kết các bảng hình 5.1).
Thể hiện các thông tin hồ sơ cứng của người dùng như ngày sinh (dob_day), tháng sinh (dob_month), năm sinh (dob_year), nơi sinh ( location,) nghề nghiệp
Thông tin này chỉ mang tính chất liệt kê người dùng cụ thể trong quá trình tư vấn, đồng thời là dữ liệu quan trọng để tìm kiếm cộng đồng tương tự cho người dùng mới tham gia diễn đàn, nhằm giải quyết vấn đề hạn chế "người dùng mới" trong việc lọc cộng tác.
Trong quá trình tương tác với trang web, thông tin hồ sơ người dùng được thể hiện rõ ràng, trong đó message_count cho biết tổng số lượt bình luận mà người dùng đã tham gia vào tất cả các bài viết trên diễn đàn.
Bài tin (thread_id) n thuộc chủ đề (node_id) có số lượt bình luận là bao nhiêu, số lần đọc (view_count) là bao nhiêu, và người tạo ra bài tin đó là ai (user_id) Thông tin này giúp người dùng nhận diện tiêu đề các bài tin mà hệ thống tư vấn.
Trong bài viết này, chúng ta sẽ tìm hiểu cách xác định liệu một người dùng có đọc bài tin nào đó hay không thông qua bảng dữ liệu chứa thông tin về user_id và thread_id Nếu cặp (user_id, thread_id) tồn tại trong bảng, điều này chứng tỏ rằng người dùng đã có tương tác "đọc" với bài tin đó Tương tác "đọc" này là một tiêu chí quan trọng để đánh giá rate của người dùng đối với bài tin Theo nghiên cứu, mỗi khi có tương tác "đọc", người dùng sẽ được cộng thêm 1 điểm vào rate của mình.
5/ Bảng xf_thread_user_post
Bài tin (thread_id) sẽ được xác định bởi người dùng nào đã bình luận, cùng với số lượt bình luận (post_count) của họ Đây là tiêu chí quan trọng thứ hai để tính toán tỷ lệ giữa người dùng và bài tin Mỗi lần người dùng bình luận sẽ được cộng thêm một điểm Nếu người dùng A bình luận về bài tin i hai lần (post_count=2), thì điểm số mà A nhận được sẽ được tính dựa trên số lượt bình luận này.
Giá trị của mục tin i được tăng thêm 2, và điểm đánh giá giữa người dùng A và mục tin i được tính dựa trên tổng điểm đọc từ bảng xf_thread_read cùng với điểm bình luận từ bảng xf_thread_user_post.
Các bước chuyển đổi dữ liệu s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 sj sm ua 4 1 3 5 2 0 0 1 1 4 0 0 u1 5 2 4 5 1 0 0 0 3 5 … 5 … 1 u2 0 4 5 1 0 0 0 0 2 2 … 2 … 2 u3 0 3 4 1 0 1 0 0 1 0 … 1 … 0 u4 2 0 0 1 1 3 0 1 4 3 … 4 … 3 u5 3 2 1 5 1 0 2 0 2 1 … 2 … 3
Hình 4.2 Quá trình chuyển đổi dữ liệu của bộ lọc
Dưới đây là chi tiết các bước của quá trình chuyển đổi dữ liệu
Create a data table named user_read that includes user_id (user code), thread_id (post code), post_count (number of comments), and thread_read_date (date read), extracted from the xf_thread_read and xf_thread_user_post tables.
User item rate ua s1 4 ua s2 1 ua s3 3 ua s4 5 ua … … u1 s1 5 u1 s2 2
Bảng user_read thu thập tất cả bài tin từ bảng xf_thread_read dựa trên mã thread_id và user_id tương ứng với bảng xf_thread_user_post Nếu không có mã tương ứng, hệ thống sẽ lấy giá trị từ bảng xf_thread_read, vì bảng này có thể chứa thông tin từ bảng xf_thread_user_post hoặc ngược lại.
Khi người dùng bình luận về một bài viết mà không đọc hoặc chỉ đọc mà không để lại ý kiến, sẽ dẫn đến sự tồn tại của các giá trị NULL Do đó, kết quả trả về sẽ là 0.
Tạo bảng dữ liệu user_rate với các trường user_id (mã người dùng), thread_id (mã bài tin) và rate Giá trị rate được tính dựa trên tổng điểm từ hai loại tương tác là đọc và bình luận, theo quy luật đã mô tả.
Bảng rate được xây dựng từ dữ liệu gốc của diễn đàn Tuệ Tĩnh, với mỗi dòng thể hiện điểm đánh giá của một cặp user-item Bảng này cho thấy mức độ tương tác của người dùng với các bài viết, đồng thời cung cấp thông tin về số lượng bài tin mà người dùng đã tương tác và điểm đánh giá tương ứng Qua việc sử dụng code, các giá trị thread_id được chuyển đổi thành hàng, trong khi giá trị cột rate là giao giữa hàng user và cột thread_id, tạo thành ma trận rate cuối cùng Bảng này là đầu vào quan trọng cho thuật toán Collaborative Filtering (CF) trong nghiên cứu luận văn.
Thực nghiệm và đánh giá kết quả
Có nhiều độ đo đánh giá để đánh giá các thuật toán trong hệ tư vấn, bao gồm MAE (Mean Absolute Error), coverage, và EU (Expected Utility) Tuy nhiên, độ chính xác (Precision) và độ hồi tưởng (Recall) là những chỉ số phổ biến nhất trong tìm kiếm thông tin, được nghiên cứu bởi Sarwar, Billsus và Pazzani Những chỉ số này rất phù hợp để đánh giá các bài toán gợi ý tốp N thông qua việc xem xét điểm đánh giá của các mục tin Theo Herlicker, việc xem xét này là cần thiết.
- Một lượng lớn các mục tin thường xuyên được đánh giá bởi người dùng nhỏ hơn các mục tin có sẵn trong tập dữ liệu
- Số các mục tin có liên quan trong tập test có thể nhỏ hơn nhiều so với toàn bộ dữ liệu
Giá trị của độ chính xác và độ hồi tưởng phụ thuộc nhiều vào số lượng mục tin mà mỗi người dùng đánh giá, vì vậy chúng không nên được coi là biện pháp tuyệt đối.
Vấn đề tư vấn lấy tốp N (top-N) mục tin cho người dùng nhằm cung cấp danh sách các mục tin mà người dùng hài lòng Để đánh giá hiệu quả của hệ thống, cần xác định mức độ quan tâm của người sử dụng đối với các mục tin trong danh sách tốp N Chất lượng của bộ lọc cộng tác lấy tốp N được thể hiện qua ba tiêu chí chính: độ chính xác, độ hồi tưởng và tiêu chuẩn đánh giá F1, tổng hợp từ độ chính xác và độ hồi tưởng Độ chính xác là tỷ lệ các mục tin được cho là “có liên quan” và được người dùng xác nhận là chính xác trên tổng số mục tin mà hệ thống gợi ý Trong khi đó, độ hồi tưởng đo lường phần trăm các mục tin mà người dùng cho là “có liên quan” và đã được hệ thống đưa vào kết quả gợi ý so với tổng số mục tin mà người dùng đã đọc.
+ N r : tổng số các mục tin người dùng quan tâm thực sự (người dùng cho là tốt với họ) trên toàn bộ dữ liệu
Số lượng mục tin mà hệ thống gợi ý cho người dùng, được đánh giá là tốt, được ký hiệu là N s Trong khi đó, N rs đại diện cho số mục tin mà bộ lọc gợi ý đã cung cấp và được người dùng xác nhận là phù hợp với nhu cầu của họ.
Bảng 4.5 Bảng mô tả các thành phần của độ đo đánh giá
Số bài tin RS gợi ý (Recommended)
Số bài tin không được RS gợi ý (Not Recommended) Tổng
Số bài tin người dùng đã quan tâm (Relevant)
Số bài tin ngươi dùng không quan tâm (Irrelevant)
Trong bộ dữ liệu diễn đàn, xét trên một người dùng ta coi những mục tin có rate
Tỷ lệ trung bình của tất cả các mục tin trong lớp Relevant (quan tâm) so với bảng chính là N r, trong khi các mục tin thuộc lớp Irrelevant (không quan tâm) được ký hiệu là N i Để tính toán recall và precision, cần phân chia tập mục tin thành hai nhóm: mục tin được bộ lọc tư vấn (N s) và mục tin không được tư vấn (N n) Việc xác định tốp N mục tin tư vấn dựa trên số lượng bài có tổng điểm (dựa trên những người dùng tương đồng) lớn hơn trung bình tổng rate của các người dùng tương đồng đó Lưu ý rằng tập N s chính là tập tốp N đã được thảo luận trong thuật toán.
Từ đó ta có công thức tính 2 độ đo này như sau: s rs
Để làm rõ bản chất của hai độ đo, chúng ta xem xét lại ví dụ trong mục 4.3 với bộ dữ liệu lớn hơn gồm 6 người dùng và m mục tin như bảng 4.6 Trong đó, u a là một người dùng trong tập thực nghiệm được chọn để thực hiện thí nghiệm Đầu tiên, chúng ta chia tập mục tin thành hai phần, với phần 1 chiếm 2/3 tổng số mục tin, tức là 9 mục (13*2/3), để làm dữ liệu học.
Trong nghiên cứu này, chúng tôi giả định rằng từ câu 1 đến câu 9 là dữ liệu huấn luyện, trong khi phần 2, chiếm 1/3 tổng số mục tin, bao gồm các câu từ 10 đến 13, sẽ được sử dụng làm dữ liệu kiểm tra Mục tiêu là sử dụng bộ dữ liệu huấn luyện để xác định những người hàng xóm tin cậy của u a.
Bảng 4.6 Bảng ma trận giá trị ví dụ đánh giá bộ lọc s1 s2 s3 s4 s5 s6 s7 s8 s9 s 10 s 11 s 12 s 13 ua 4 1 3 5 2 0 0 1 1 1 0 1 1 u1 5 2 4 5 1 0 0 0 3 0 1 2 3 u2 0 7 1 0 5 4 0 0 3 1 0 0 0 u3 0 4 0 0 0 2 3 0 0 2 0 1 0 u4 2 0 6 0 0 0 0 3 0 1 3 1 0 u5 0 0 1 0 0 0 3 0 0 0 1 1 2 u6 0 0 2 4 0 3 0 0 1 1 0 1 2
Giả sử dùng độ đo Cosine để tính độ tương tự ta đã có kết quả sau:
Khi xem xét độ tương đồng giữa người dùng ua và các người dùng khác, ta có các kết quả như sau: Similary(ua,u1) = 0.948, Similary(ua,u2) = 0.299, Similary(ua,u3) = 0.098, Similary(ua,u4) = 0.549, Similary(ua,u5) = 0.126, và Similary(ua,u6) = 0.653 Với số hàng xóm k = 3, chúng ta lựa chọn 3 hàng xóm tin cậy nhất của ua là {u1, u4, u6} dựa trên độ đo Cosine cao nhất với ua.
Bộ dữ liệu kiểm tra từ s10 đến s13 được phân tích bằng kỹ thuật lấy tốp N gợi ý Kết quả cho thấy tốp N mục tin tư vấn cho u a là {s11, s12, s13} với tổng rate lần lượt là 4, 4 và 5, vượt qua mức trung bình tổng rate là 3.8, dẫn đến Ns=3.
Xét trên một người dùng thực nghiệm u a ta cũng tính avgua=(1+0+1+1)/4=0.75
Như vậy các mục tin có rate>0.75 là những mục tin mà u a được xem là quan tâm thực sự Đó là mục tin {s10,s 12 ,s 13 } có rate lần lượt là 1; 1; 1 Nr=3;
Từ đó ta tính được N rs =2 (vì bộ lọc đã giới thiệu đúng 2 mục tin trùng với mục tin u a quan tâm thực sự đó là các bài tin s 12 ,s 13 )
Một bộ phân lớp hiệu quả cho mục đích gợi ý cần tối ưu hóa độ hồi tưởng và độ chính xác Để kết hợp hai yếu tố này, Lewis và Gale đã đề xuất độ đo F-measure (F1), là giá trị kết hợp giữa precision và recall, nằm trong khoảng từ 0 đến 1 Luận văn này coi độ chính xác và độ hồi tưởng có tầm quan trọng tương đương, từ đó định nghĩa công thức F1.
Vậy với mẫu dữ liệu 4.3 ta tính được:
F1 được tính bằng công thức F1 = 2 * precision * recall / (precision + recall), với giá trị F1 đạt 66.7% Để có kết quả chính xác, F1 nên được tính toán cho từng người dùng riêng lẻ và sau đó trung bình các đánh giá trên tất cả người dùng trong tập thử nghiệm T.
Cách đánh giá này sẽ được áp dụng vào đánh giá chất lượng tư vấn của bộ lọc tin diễn đàn Tuệ Tĩnh trong luận văn
4.6.2 Thực nghiệm và phân tích kết quả
Trong luận văn này, chúng tôi thực hiện một thí nghiệm để kiểm tra mô-đun lọc cộng tác trên bộ dữ liệu diễn đàn Tuệ Tĩnh, nhằm so sánh độ đo Euclidean và Cosine để xác định chất lượng bộ lọc Số lượng người dùng lân cận k (số người dùng tương đồng) có ảnh hưởng lớn đến chất lượng tư vấn, vì vậy chúng tôi đã thử nghiệm các giá trị k trong khoảng [5 20] Kết quả cho thấy độ chính xác của bộ lọc đạt mức khá và có tiềm năng phát triển ứng dụng thực tiễn Bên cạnh đó, luận văn cũng thực hiện gợi ý bài tin, cho phép bộ lọc hiển thị nhóm người dùng tương đồng và danh sách các bài tin gợi ý mỗi khi nhập mã người dùng.
Bộ lọc cộng tác thực nghiệm cho diễn đàn Tuệ Tĩnh sử dụng bộ dữ liệu gồm hơn 1628 cặp tương tác giữa người dùng và mục tin, với khoảng 245 người dùng và gần 300 mã bài tin Mỗi người dùng đã tương tác với ít nhất 10 bài tin Để đánh giá hiệu quả, bộ dữ liệu được chia thành hai phần: phần một chiếm 2/3 dữ liệu ban đầu và được coi là tập học, trong khi phần hai chiếm 1/3 còn lại và được sử dụng làm tập kiểm tra.
Quá trình thực nghiệm bắt đầu bằng việc chọn ngẫu nhiên 10 người dùng, tạo thành tập người dùng thử nghiệm Độ đánh giá được tính cho từng người dùng và sau đó trung bình trên toàn bộ tập thử nghiệm Để tìm cộng đồng người dùng tương tự, chúng ta sử dụng độ đo Cosine hoặc Euclidean Sau khi xác định được cộng đồng, bộ lọc áp dụng kỹ thuật lấy tốp N mục tin từ tập dữ liệu kiểm tra để gợi ý cho người dùng Kết quả gợi ý sẽ được đối chiếu với các bài tin mà người dùng đã đánh giá, từ đó tính toán độ chính xác (precision) và độ hồi tưởng (recall) như đã phân tích trong mục 4.6.1.
Quá trình thực nghiệm với các giá trị người dùng lân cận (k) khác nhau đã cho kết quả thống kê độ chính xác (precision) như trong bảng 4.7 Cụ thể, với user_id = 1305, việc chọn k hàng xóm tin cậy khác nhau dẫn đến độ chính xác không giống nhau; khi k = 5, độ chính xác đạt 59.5% Tương tự, các giá trị k = 9, 11, 13, 15,…, 40 cũng cho thấy độ chính xác khác nhau Kết quả thử nghiệm chỉ ra rằng k có thể đạt được độ chính xác ổn định và cao nhất.
Bảng 4.7 Thống kê độ chính xác với k hàng xóm khác nhau
Số hàng xóm user_id