Giới thiệu bài toán
Đặt vấn đề
Diễn đàn điện tử (sau đây gọi tắt là diễn đàn) là nơi mọi người có thể trao đổi, thảo luận, bày tỏ ý kiến về những vấn đề cùng quan tâm Do đó bản thân nó đã đáp ứng phần nào nhu cầu của người dùng tham gia diễn đàn Điểm mạnh của diễn đàn chính là người dùng không những tiếp cận được thông tin chính thống (một chiều) như ở các website hay báo điện tử mà còn nhận được thông tin đa chiều và có thể bày tỏ chính kiến, cảm xúc của bản thân trước một vấn đề, một sự kiện hay trực tiếp tạo ra một chủ đề mà mình yêu thích Do đó, ngày nay lượng người tham gia vào diễn đàn ngày càng tăng, các bài viết, chủ đề thảo luận ngày càng phong phú, đa dạng, số lượng các diễn đàn xuất hiện trên hệ thống Iternet tăng lên đáng kể Và như thế với một diễn đàn mà lĩnh vực thảo luận ở phạm vi rộng, dành cho một lượng lớn người dùng như diễn đàn của một trường học dành cho nhiều thế hệ học sinh, hay diễn đàn của các chị em bàn về nhiều vấn đề liên quan đến phái đẹp… thì vấn đề, chủ đề nào, bài viết nào mà cần thiết với tôi hơn cả là vấn đề cần đến sự tư vấn Hơn nữa, không phải bài viết nào, chủ đề thảo luận nào cũng phù hợp với bất cứ người dùng nào, có những bài viết được nhiều người thảo luận, trao đổi nhưng chưa chắc tôi quan tâm Do đó việc tạo ra một hệ thống tư vấn để gợi ý các bài tin phù hợp với từng người dùng khác nhau trong diễn đàn là cần thiết
Diễn đàn Tuệ Tĩnh là một diễn đàn dành cho nhiều thế hệ cựu học sinh và học sinh đã, đang học trực tiếp tại trường THPT Tuệ Tĩnh Do đặc thù diễn đàn dành riêng cho đối tượng như vậy nên sự trung thành và tín nhiệm với hoạt động diễn đàn được ưu tiên hàng đầu Do vậy, khi tham gia diễn đàn thì hệ thống luôn yêu cầu người dùng phải đăng nhập, nếu chưa có tài khoản thì yêu cầu đăng ký rồi mới được đăng nhập
Diễn đàn hoạt động ở nhiều lĩnh vực, chủ đề trao đổi khác nhau Do đó hệ thống tư vấn dành cho diễn đàn mong muốn phục vụ càng nhiều và càng sát nhu cầu người dùng càng tốt Mỗi khi người dùng đăng nhập vào diễn đàn hệ thống gợi ý tin mà tôi muốn xây dựng sẽ gợi ý các bài viết nên đọc cho người dùng này nhằm giảm bớt thời gian duyệt web
Hệ tư vấn là hệ thống có khả năng tự động phân tích, phân loại, lựa chọn và cung cấp cho người dùng những thông tin, hàng hóa hay dịch vụ, sản phẩm (gọi chung là đối tượng) mà họ quan tâm Từ thông tin hồ sơ, các đánh giá của người dùng, hệ tư vấn tính toán khả năng người dùng sẽ thích đối tượng nào đó Việc tính toán này có nhiều cách khác nhau, tuy nhiên về bản chất có hai loại chủ yếu đó là hệ tư vấn dựa trên nội dung và hệ tư vấn dựa vào cộng tác (lọc cộng tác) Tư vấn dựa theo nội dung khai thác những khía cạnh liên quan đến nội dung thông tin đối tượng hoặc người dùng đã từng quan tâm trong quá khứ để tạo nên tư vấn những đối tượng mới (với họ) tương tự với lịch sử của chính họ Trái lại, lọc cộng tác khai thác những khía cạnh liên quan đến thói quen, sở thích của người sử dụng tương đồng (người dùng khác cùng sở thích) để gợi ý các đối tượng mới cho người dùng này Lọc cộng tác có thể xử lý mọi loại dữ liệu và gợi ý mọi loại đối tượng, kể cả những đối tượng mới, khác hoàn toàn so với những gì người dùng từng xem Lọc theo nội dung thực hiện hiệu quả với các dạng thông tin được biểu diễn dưới dạng các đặc trưng nội dung nhưng lại khó lọc được các dạng thông tin đa phương tiện Lọc cộng tác là một kỹ thuật mạnh và nó đã được áp dụng khá thành công trong nhiều hệ tư vấn Đặc thù của một diễn đàn giữa người dùng và bài viết luôn tồn tại nhiều loại tương tác như đọc, lướt, comment, post… hơn nữa thường tương tác theo xu hướng nhóm người cùng thị yếu, do đó cách tiếp cận của hệ thống tư vấn theo hướng lọc cộng tác, gợi ý dựa theo sở thích của người dùng tương đồng là hoàn toàn phù hợp.
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 thử nghiệm lọc cộng tác tin dựa trên kỹ thuật hàng xóm gần nhất (user-nearest neighbor), sử dụng kỹ thuật lấy tốp N gợi ý để tư vấn người dùng tham gia diễn đàn.
Phương pháp nghiên cứu
Để hoàn thành nội dung luận văn, trước hết tôi đi tìm hiểu nhu cầu và thực trạng của người dùng duyệt web nói chung và người tham gia diễn đàn nói riêng Sau đó tìm hiểu tổng quan về hệ tư vấn, các hệ thống tư vấn trên thực tế Tiếp đến tìm hiểu đặc trưng dữ liệu diễn đàn từ đó tìm hướng khai thác chúng Song song với nó là tìm hiểu các kỹ thuật trong hệ tư vấn, từ đó chọn ra hướng tiếp cận tư vấn dựa vào cộng tác là phù hợp cho diễn đàn
Khi đã xác định được hướng tiếp cận tôi tiến hành nghiên cứu các thuật toán và chọn kỹ thuật phù hợp nhất với đặc điểm của diễn đàn Tiến hành khai thác các tương tác người dùng tồn tại trong CSDL để xây dựng thử nghiệm bộ lọc tin cho diễn đàn
Cuối cùng một số thử nghiệm khác nhau sẽ được tiến hành nhằm gợi ý cho từng người dùng riêng lẻ khi họ tham gia diễn đàn (có 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
Trình bày kiến thức tổng quan về hệ tư vấn, phân biệt các loại hệ tư vấn và nêu ưu, nhược điểm của chúng Tiếp theo tác giả tìm hiểu và đánh giá một số hệ thống tư vấn trên thế giới và Việt Nam, từ đó phân tích sự khác biệt của mô hình tư vấn tin trong diễn đàn với các hệ thống trên
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
Tìm hiểu hệ tư vấn dựa vào cộng tác và các vấn đề liên quan (các độ đo tương tự, kỹ thuật lọc cộng tác dựa vào láng giềng gần nhất và kỹ thuật chọn tốp N gợi ý) phục vụ cho việc xây dựng bộ lọc tin diễn đàn ở chương 4 Ngoài ra còn nghiên cứu thêm về các hướng khắc phục hạn chế của lọc cộng tác đã và đang được sử dụng, đề xuất hướng khắc phục người dùng mới
Chương 4 Xây dựng mô hình và thực nghiệm
Trình bày tổng quan về mô đun lọc cộng tác của diễn đàn và các thành phần cấu thành lên mô đun Tiếp theo tác giả trình bày các đặc điểm của dữ liệu diễn đàn Tuệ Tĩnh, xây dựng và cài đặt bộ lọc tin cho diễn đàn Phần còn lại của chương tập trung phân tích kết quả thực nghiệm và đánh giá thuật toán 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 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à chương trình hay tập hợp các kỹ thuật nhằm dự đoán các đối tượng mà người dùng có thể quan tâm [30] Có nghĩa là nó có khả năng tự động phân tích, phân loại, lựa chọn và cung cấp cho người dùng những thông tin, hàng hóa hay dịch vụ mà họ quan tâm Nhiều hệ tư vấn đã được thương mại hóa và triển khai thành công, tiêu biểu trên thế giới là hệ tư vấn của hãng Amazon.com, netflix.com, Proter và Gamble Để khái quát hệ tư vấn, có thể mô tả bài toán tư vấn như sau:
Gọi U là tập tất cả người dùng (user), S là tập tất cả các đối tượng có thể tư vấn
Tập S có thể rất lớn, hàng trăm ngàn (như tư vấn sách của Amazon.com) đến hàng triệu (như tư vấn website) Tập U có thể lên đến hàng triệu người Như vậy, trong hệ tư vấn sẽ bàn đến hai thực thể là người dùng (khách hàng) và đối tượng cần tư vấn (sản phẩm, bài viết ) Một người dùng sẽ có những quan điểm về các đối tượng đã từng tương tác và nhận được gợi ý từ hệ thống tư vấn về các đối tượng mà họ chưa tương tác tới Đầu vào của hệ tư vấn phụ thuộc vào thuật toán của từng loại tư vấn nhìn chung thì nó thường bao gồm [13]:
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,
5 là đánh giá cao cho đối tượng đó) Ngoài ra người ta còn chọn mức điểm là 0 (không thích) hay 1 (thích) Đây thường là input cho thuật toán tư vấn bằng phương pháp lọc cộng tác sẽ trình bày chi tiết 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 thường thông qua điểm (rate), ví dụ người dùng A đánh giá bộ phim ― Star war được điểm 7/10 Tuy nhiên, nhìn chung độ phù hợp có thể là một hàm bất kì tùy thuộc vào ứng dụng cụ thể
Có rất nhiều cách để dự đoán, ước lượng hạng/điểm cho các đối tượng như sử dụng học máy, lí thuyết xấp sỉ, 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 thành ba loại dựa trên cách nó dùng để ước lượng hạng của đối tượng tư vấn [19]:
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
Với phương pháp tư vấn dựa trên nội dung (Content Based – CB), xét S là tập hợp các đối tượng cần tư vấn thì độ phù hợp của người dùng u với đối tượng s S được đánh giá dựa trên độ phù hợp của người dùng u với các đối tượng s i trong đó s i S và tương tự với s Ví dụ để gợi ý một cuốn sách cho người dùng u , hệ thống tư vấn sẽ tìm đặc điểm của những cuốn sách từng được u đánh giá cao (theo một số tiêu chí như: tác giả, thể loại, ), sau đó chỉ ra những cuốn sách mới (so với u ) tương đồng với sở thích trong quá khứ của u để giới thiệu [1]
Trong phương pháp lọc dựa trên nội dung, hệ thống sẽ phân tích và so sánh nội dung của các đối tượng từ đó đánh giá khả năng người dùng sẽ thích đối tượng đó
Ngoài ra nó còn so sánh nội dung của đối tượng hay thông tin với sở thích mà người dùng cung cấp Chẳng hạn người dùng quan tâm tới những thông tin về chứng khoán thì sẽ được tư vấn những bản tin nói về chứng khoán…
Hướng tiếp cận dựa trên nội dung bắt nguồn từ những nghiên cứu về thu thập thông tin (IR-Information Retrieval) và lọc thông tin (IF-Information Filtering) Do đó, rất nhiều hệ thống dựa trên nội dung hiện nay tập trung vào tư vấn các đối tượng chứa dữ liệu text như văn bản, tin tức, website… Mỗi đối tượng cần xử lý được biểu diễn bởi một tập hợp đặc trưng, làm cơ sở xác định mức độ tương đồng giữa các đối tượng và giữa đối tượng với tiêu chuẩn gợi ý Trong phạm vi đối tượng là các dữ liệu văn bản, tập đặc trưng thường là một tập từ khóa (keyword) mang giá trị ý nghĩa của văn bản Để rõ hơn ta đặt Content(s) là tập thông tin (tập các đặc trưng) 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 [8] biểu diễn văn bản bằng 128 từ có trọng số cao nhất Đặt profile(u) là hồ sơ về người dùng u , bao gồm các thông tin về sở thích của u Những thông tin này có được bằng cách phân tích nội dung của các đối tượng từng được u đánh giá (cho điểm) trước đó Profile(u) cũng có thể được định nghĩa như một vector trọng số: Profile(u)=w u = (w 1u ,w 2u , ,w ku ) Trong đó w iu biểu thị độ quan trọng của từ khóa i với người dùng u Trong hệ tư vấn dựa trên nội dung độ phù hợp r(u,s) được xác định bởi công thức: r(u,s)=score(profile(u),contents(s))
Vì cả profile(u) và contents(s) đều có thể biểu diễn bằng vector trọng số thông qua TF-IDF (tương ứng là w c ,w s ) nên có thể đo độ tương đồng của chúng bằng độ đo Cosine (sẽ được nghiên cứu phần 3.1)
Ví dụ: nếu u đọc nhiều bài báo thuộc lĩnh vực tin học thì các từ khóa liên quan tới công nghệ (IT, thông tin, phần mềm, dữ liệu ) trong profile(u) sẽ có trọng số cao
Kết quả là với các bài báo s cũng thuộc lĩnh vực này sẽ có độ phù hợp r(u,s) cao hơn với người dùng u
Những tiến bộ so với hướng tiếp cận cũ của IR là do việc sử dụng hồ sơ người dùng (chứa thông tin về sở thích, nhu cầu…) Hồ sơ này được xây dựng dựa trên những thông tin được người dùng cung cấp trực tiếp (khi trả lời khảo sát) hoặc gián tiếp (do khai phá thông tin từ các giao dịch của người dùng)
Hình 2.1 Tư vấn dựa trên nội dung [30]
Bên cạnh các phương pháp IR, hệ tư vấn dựa trên nội dung còn sử dụng nhiều phương pháp học máy khác như: phân lớp Bayes, cây quyết định, mạng nơron nhân tạo… Các phương pháp này khác với các phương pháp của IR ở chỗ nó dựa trên các mô hình học được từ dữ liệu nền chứ không tính toán độ lợi thông tin dựa trên các hàm tri thức như Cosine Ví dụ, dựa trên tập các trang web đã được người dùng đánh giá là có nội dung “tốt” hoặc “xấu” có thể sử 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]
+ Gợi ý cho người dùng mới: Đây có thể coi là vấn đề chung của các hệ thống gợi ý Khi một người dùng tạo tài khoản mới và chưa tương tác nhiều với hệ thống thì hệ thống không thể hiểu được sở thích của họ dẫn tới kết quả gợi ý không đạt độ chính xác cao
+ Vấn đề phân tích nội dung bị hạn chế (Restricted content analysis): Tính hiệu quả của hệ tư vấn này phụ thuộc vào việc mô tả một cách đầy đủ các đặc trưng nội dung của đối tượng.Ngoài ra, tập đặc trưng của đối tượng dữ liệu có số lượng phần tử hữu hạn nên không tránh khỏi trường hợp có những cặp đối tượng có biểu diễn giống nhau nhưng nội dung lại có sự khác biệt
Vì vậy, nội dung đối tượng phải hoặc có thể được trích xuất tự động bởi máy tính hoặc dễ dàng được trích xuất bằng tay Có nhiều trường hợp, yêu cầu này rất khó thực hiện, ví dụ trong miền ứng dụng tư vấn dữ liệu đa phương tiện như ảnh đồ họa, phim, âm thanh,… Trích xuất tự động đặc trưng nội dung của các đối tượng dữ liệu này là một bài toán khó và việc trích xuất bằng tay là không khả thi do chi phí lớn.
+ Vấn đề “phù hợp quá mức”(overfitting): Khi gợi ý hệ thống sẽ phân tích các đối tượng người dùng đã truy cập đưa ra điểm số cho các đối tượng được đề cử Chỉ những đối tượng nào đạt đủ độ tương tự với các đối tượng đã xem trong quá khứ mới được gợi ý Quá trình lặp lại như vậy khiến cho vùng đối tượng có thể được gợi ý dần bị thu hẹp theo một hướng, mất đi tính đa dạng Trong nhiều trường hợp, những sản phẩm không nên được tư vấn nếu nó quá giống với các đối tượng đã được đánh giá trong lịch sử Chẳng hạn như các bài tin giống bài tin cũ quá nhiều về nội dung, chỉ dẫn lại được tư vấn lại vì nó giống (tương tự) sở thích cũ của người này Tạo ra sự phù hợp quá mức nhưng lại là gợi ý không hứng thú gì với người dùng Vì trong các trường hợp những đánh giá tốt của người dùng khác (có thể là tương đồng sở thích với mình) rất đáng để tham khảo và được đưa ra để gợi ý Để khắc phục vấn đề này, có thể cho thêm một số biến ngẫu nhiên vào quá trình tạo gợi ý hoặc dùng cách loại bỏ những kết quả gợi ý có điểm số quá cao như D.Billsus áp dụng cho hệ thống The News Learner[12]
2.2.2 Hệ thống lọc cộng tác
Không giống như phương pháp tư vấn dựa trên nội dung, hệ thống tư vấn cộng tác hay còn gọi là bộ lọc cộng tác (Collaborative Filtering-CF) dự đoán độ phù hợp r( u,s ) của người dùng u với một đối tượng s dựa trên độ phù hợp r( u j ,s ) giữa người dùng u j và s, trong đó u j là người có cùng sở thích với u Ví dụ, để gợi ý một cuốn sách cho người dùng u , đầu tiên hệ thống cộng tác tìm những người dùng khác có cùng sở thích (độ tương đồng) với u Sau đó, những cuốn sách được họ đánh giá cao sẽ được dùng để 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 những khía cạnh liên quan đến thói quen sở thích của người sử dụng đối tượng để đưa ra dự đoán và phân bố các đối tượng cho người này
Nghiên cứu một số hệ thống gợi ý tin tức
Amazon là một công ty thương mại điện tử đa quốc gia lớn nhất thế giới
Amazon.com được thành lập bởi Jeffrey Bezos năm 1994 và đưa vào trực tuyến năm
1995 [10] Nếu trước kia người ta chỉ biết đến Amazon hoạt động trong lĩnh vực sách thì ngày nay Amazon đã lấn sân sang rất nhiều lĩnh vực như: dịch vụ thanh toán, dịch vụ quảng cáo, các đối tượng trên Amazon không chỉ có sách mà còn có phim ảnh, âm nhạc, trò chơi……
Amazon.com có lẽ là site nổi tiếng nhất khi nói tới hệ gợi ý Cứ mỗi khi người dùng chọn một thứ gì đó, ví dụ sách về “search engine” chẳng hạn, sẽ thấy hệ thống gợi ý các cuốn sách tương tự Thuật toán hệ tư vấn mà Amazon xây dựng dựa trên phương pháp lọc cộng tác item-to-item [10] Không giống như lọc cộng tác truyền thống, phạm vi tính toán trực tuyến của Amazon độc lập với số lượng khách hàng và số lượng các mặt hàng trong danh mục sản phẩm Thuật toán của Amazon tạo ra các tư vấn trong thời gian thực, phạm vi dữ liệu lớn và tạo ra các tư vấn chất lượng cao
Một đặc điểm nổi bật của Amazon là xây dựng hệ thống gợi ý cá biệt, cá nhân hóa [10]: Nếu bạn đã từng mua bất kì thứ gì tại Amazon.com thì lần sau thăm lại website, sẽ nhận được gợi ý về các đối tượng khác với thông điệp “chào bạn, chúng tôi có những thứ này cho bạn” Theo Amazon, cách tốt nhất để có được các gợi ý sát nhất là hãy đánh giá các đối tượng đã có của bạn bằng cách cho điểm từ 1 đến 5 sao đối với các mặt hàng này Amazon.com sẽ căn cứ vào khung điểm này để đưa ra cho bạn những gợi ý tốt nhất mỗi lần thăm lại website Như vậy, hệ thống đòi hỏi người dùng phải có những đánh giá trực tiếp trên các mặt hàng này Có thể đây là một chi tiết gây phiền ngại cho 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 đề khác bàn đến trong Amazon, đó là sự cố tình hạ điểm hoặc đưa những đánh giá trái ngược thực tế để làm hạ cấp sản phẩm Thì những trường hợp như vậy không những đưa ra gợi ý sai lệch còn làm cho hệ thống nhận được thông tin xấu, gây ra kết quả tư vấn sai thực tế Từ đó sẽ làm giảm chất lượng tư vấn và độ tin cậy của người dùng vào hệ thống
Hiện nay theo tôi biết chưa thực sự có một hệ tư vấn nào chính thống được đầu tư và hoạt động hiệu quả tại Việt Nam Theo tìm hiểu thì chỉ có baomoi.com là một trang có áp dụng hệ tư vấn trên khía cạnh dựa vào các từ khóa thiết lập
Baomoi.com cho phép người dùng đăng ký tài khoản để khai báo các tiêu chí lọc tin cho riêng mình Bộ lọc bao gồm phần chọn chuyên mục, từ khóa quan tâm, chọn nguồn tin Các bài báo từ các nguồn báo khác nhau được baomoi.com tổng hợp về sẽ được gán với một số từ khóa chính (tag) dựa vào nội dung Baomoi.com cho phép người dùng tự tạo các chuyên mục theo nhu cầu cá nhân bằng cách khai báo một số từ khóa, sau đó gợi ý cho người dùng những tin tức liên quan từ nhiều trang báo khác đã tập hợp về Vì vậy muốn tìm được tin tức theo ý muốn người dùng phải hoàn thiện bộ lọc với các cụm từ khóa mang tính chính xác, khái quát
Như vậy, người dùng muốn được tư vấn tin thì phải tự nghĩ ra các từ khóa liên quan đến mong muốn của mình để thiết lập các chuyên mục riêng khi đăng nhập tài khoản baomoi.com Điều này đôi khi gây phiền ngại cho người dùng, đặc biệt những người có vốn từ không phong phú, họ không nghĩ ra được các từ khóa đại diện cho nhu cầu và mục đích đọc tin của mình
Có một hạn chế về giao diện là khi người dùng chọn đọc một tin trong danh sách thì tự động chuyển sang đường dẫn gốc, người dùng mất thêm thao tác với trình duyệt để trở về danh sách trước đó
Hình 2.6 Giao diện tạo chuyên mục trên trang web baomoi.com
Ngoài ra hệ gợi ý tích hợp trong baomoi.com vẫn còn nhiều hạn chế khác như là: các tư vấn chưa thực sự gọn gàng và đáng tin cậy Giao diện còn khó hiểu, không biết đâu là tin tư vấn, đâu là tin chung của trang web Để xem tin tư vấn, đều phải chọn lại chuyên mục mình đã xây dựng (có thể hàng năm trước đó) những tin tư vấn không thấy cập nhật kịp thời Và cũng không sắp xếp tin nào mới hơn tin nào để người dùng có thêm lựa chọn đọc tin mới nhất
Hình 2.7 Giao diện gợi ý tin không được sắp xếp của baomoi.com
Hơn nữa, sự tư vấn này không đưa ra cơ sở tại sao tư vấn như vậy chỉ phụ thuộc vào sự giống nhau giữa từ khóa hệ thống xây dựng lên so với từ khóa mà người dùng đặt trong chuyên mục muốn tạo tư vấn Mặt khác chức năng gợi ý tin tức từ các từ khóa đã khai báo nhiều khi 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 trong tin tức ở nhiều chuyên mục khác nhau hay bàn đến các vấn đề từ đồng âm khác nghĩa, giống về mặt chữ nhưng hàm ý lại khác nhau Việc tư vấn dựa vào các từ khóa không thể đưa ra được các tư vấn tối ưu và sát với mong muốn 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 khá lâu ở Việt Nam, tuy nhiên một hệ tư vấn dựa trên nội dung được coi là chất lượng và có thể ứng dụng được vào thực tiễn thì theo tôi là chưa có nhiều XenoNews là một trong những sản phẩm được đánh giá cao trong luận văn tốt nghiệp thạc sĩ trường Đại học Công Nghệ của tác giả Nguyễn Thạc Huy [31]
Hệ thống mà tác giả xây dựng là một dịch vụ gợi ý tin tức từ các báo điện tử Việt Nam Nếu người dùng không đăng nhập, trang web hiển thị tin như một tờ báo điện tử thông thường Ngược lại, tin tức sẽ được hiển thị dựa trên tính toán của hệ thống phù hợp dành riêng cho người dùng đó Hệ thống cho phép người dùng phản hồi về các kết quả gợi ý Ngoài ra, những ai đã đăng nhập có thể khai báo thêm các từ khoá tuỳ chọn (nếu muốn) về các nội dung họ quan tâm Thông tin này sẽ giúp hệ thống đưa ra các gợi ý càng sát nhu cầu người dùng
XenoNews có thể gọi là một hệ thống thích nghi vì nó có khả năng “học” được sở thích của người dùng thông qua việc họ đọc tin tức hằng ngày, từ đó gợi ý các tin bài phù hợp trong những ngày tiếp theo Các chức năng chung của hệ thống có thể liệt kê là:
- 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
- Cho phép độc giả khai báo từ khoá, nhóm từ khoá theo dõi, để chắc chắn rằng hệ thống không lọc đi bất kỳ bài viết nào thuộc chủ đề họ thực sự quan tâm (đây cũng là một phần của hồ sơ người dùng, nhưng không được tự động hoá mà do người dùng xây dựng và quản lý) Ví dụ: khi người dùng đăng ký nhóm từ khoá “xung đột biển Đông”, đồng nghĩa với việc họ nói rằng: “Tôi không muốn bỏ lỡ bất kỳ bài báo nào mà nội dung có chứa cả hai từ khoá “xung đột” và “biển Đông” Như vậy hệ thống gợi ý đã dựa vào bản thân nội dung của đối tượng tư vấn và dựa vào lịch sử tương tác của người dùng với những đối tượng cũ mà chính họ đã từng tương tác
Như vậy, xenoNews không phải là một trang báo điện tử mà là một dịch vụ gợi ý tin tức với nguồn tin lấy từ các báo mạng hay trang tin phổ biến đối với độc giả Việt Nam Từ góc nhìn của người dùng, hệ thống được coi là ứng dụng web có chức năng chính là phân tích thói quen, hành vi người dùng, từ đó hiển thị ra các tin tức phù hợp.Việc đánh giá bài tin thì người dùng phải cho điểm trực tiếp và chỉ phản ánh được hai mức độ thích và không thích
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 hay độ đo phi tương tự giữa hai đối tượng được xác định bằng một ma trận Một số phương pháp đo khoảng cách phổ biến là: khoảng các Euclidean, khoảng cách Manhattan, khoảng cách Chebychev… được định nghĩa bằng khoảng cách Minkowski Để minh họa cho các phép đo trên ta xét ví dụ 1: dữ liệu gồm 4 người Amy, Bill, jim, MS.X đánh giá cho 2 cuốn sách Snow Crash và girl with the Dragon Tattoo như bảng 3.1 Ta muốn gợi ý một cuốn sách cho Ms.X mà anh này chưa đọc nhưng được tính toán là phù hợp với MS.X Trước tiên ta đi tìm người có độ tương đồng hoặc gần X nhất Ta sẽ đi tính toán khoảng cách [26]:
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
, ( x y n k 1 x k y k 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
Từ bảng khoảng cách này ta dễ nhận thấy Amy gần Ms.X nhất vì khoảng cách từ Amy tới Ms.X là ngắn nhất Theo kỹ thuật lọc cộng tác chúng ta có thể xem lịch sử của Amy, nếu Amy đưa ra điểm 5 cho cuốn sách The Windup Girl (giả thiết 5 sao là điểm lớn nhất mà người dùng có thể đánh giá cho các cuốn sách) thì chúng ta sẽ giới thiệu cuốn sách này cho Ms.X
Khoảng cách Manhattan có ưu điểm là tính toán nhanh Đặc biệt trong mạng Facebook có hàng tỉ người dùng, chúng ta cần tìm người tương tự với mình nhất thì dùng khoảng cách này đưa ra kết quả tốt, nhanh
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
Với hai loại khoảng cách Manhattan và Euclidean thì xét trong tập hợp nhiều người dùng, hai người dùng được gọi là tương đồng nếu khoảng cách giữa hai người này 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 các hàng xóm với Alice mà có cùng sở thích là chọn những sản phẩm như Alice trong quá khứ và cũng là người giúp Alice đánh giá sản phẩm 5 (Có thể sử dụng trung bình rate của các hàng xóm Alice để dự đoán Alice đánh giá sản phẩm 5 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,user 4 )
Tương tự ta có kết quả: sim(alice,user1)=0.85; sim(alice,user 2 )=0.00; sim(alice,user 3 )=0.70;
Hình 3.1 Đồ thị ví dụ so sánh đánh giá của người dùng lân cận
Qua tính toán và quan sát đồ thị ta thấy user 1 và user 4 có độ tương quan Pearson lớn nhất (0.85 và 0.79) là hàng xóm của Alice Có thể dự đoán điểm mà Alice đánh giá cho đối tượng 5 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 đó: r x,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
* Nhận xét chung Độ tương tự giữa người dùng và giữa các tài nguyên là định nghĩa thiết yếu trong CF Độ đo đầu tiên được đưa ra trong các hệ tư vấn là độ tương quan Pearson Độ tương đồng đơn giản Cosine cũng là những độ tương đồng truyền thống Vì những độ tương đồng này chỉ xét tập thuộc tính chung giữa hai vector Do đó hai vector có thể hoàn toàn tương đồng ngay cả khi chúng chỉ chia sẻ một đánh giá trên một thuộc tính Những độ đo như vậy có khuyết điểm là: Ví dụ, trong ngữ cảnh tư vấn phim, xem xét trường hợp khi một người dùng là fan của phim viễn tưởng trong khi một người khác chỉ xem hành động, hơn nữa hai người dùng này chưa đánh giá bất kì phim chung nào vì vậy độ tương tự của của họ là rỗng (null) Bây giờ cả hai nói rằng họ thích “men in black” một phim hành động viễn tưởng Do đó những người dùng này trở nên hoàn toàn tương đồng nhau theo những độ đo đã được trình bày trên Ví dụ này cho thấy họ chỉ có một điểm (phim) tham chiếu chung được đánh giá bằng nhau
Tuy nhiên, độ tương tự Jaccard không bị khuyết điểm này vì nó đo độ chồng lấp thuộc tính của hai vector với nhau Mặt khác, độ đo này không xem xét sự khác nhau giữa các đánh giá của hai vector Nhưng khi xét trường hợp nếu coi một người dùng có đánh giá cho một bộ phim thì được coi là có điểm 1, ngược lại là 0, tức dữ liệu là nhị phân thì nếu hai người dùng xem cùng một số phim nhưng ý kiến hoàn toàn trái ngược nhau trên những phim này thì chúng được xem là tương tự theo độ tương đồng Jaccard Độ đo khoảng cách Euclidean phản ánh sự tương đồng thông qua sự gần, xa của khoảng cách Nếu khoảng cách Euclidean giữa hai người dùng càng nhỏ chứng tỏ họ càng gần nhau tức càng giống (tương tự) nhau Do đó, đây cũng là một độ đo nên được dùng để tìm những người dùng tương đồng trong lọc cộng tác
Tóm lại, với mỗi kiểu dữ liệu đặc trưng nhất định thì thường sử dụng các loại độ đo nhất định [26] Ví dụ dữ liệu dạng nhị phân thường phù hợp với độ tương tự Jaccard, dữ liệu dạng số thì có thể sử dụng các loại độ đo như khoảng cách Euclidean, độ tương đồng Cosine hay độ tương tự Pearson còn với dữ liệu dạng xâu thì dùng khoảng cách Hamming.
Các kỹ thuật trong lọc cộng tác
Lọc cộng tác là một phương pháp đem lại hiệu quả tư vấn cao hơn hẳn phương pháp lọc dựa trên nội dung, nó có nhiều ưu điểm nổi bật so với phương pháp khác như đã phân tích ở chương 2 Trên thực tế, ta bắt gặp rất nhiều ứng dụng áp dụng phương pháp này Có rất nhiều hệ thống cộng tác đã được phát triển như: Youtube (video), Grundy, GroupLens (tin tức), Ringo (âm nhạc), Amazon.com (sách), Phoaks (web)…
Trong CF dữ liệu đầu vào của hệ thống là một tập đánh giá của người dùng trên các đối tượng Dựa trên các đánh giá này người dùng có thể được so sánh với nhau, hình thành nên khái niệm người dùng tương đồng Và cũng dựa trên các đánh giá này, các đối tượng cũng được so sánh với nhau hình thành nên khái niệm đối tượng tương đồng Điểm đánh giá đối tượng của một người dùng có thể được dự đoán dựa trên các đánh giá của những người dùng lân cận hoặc các tài nguyên gần gũi i 1 i 2 … i j i n u 1 … … … u 2
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]:
+ r aj 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
+ T i1 , T i2 ,…T in gợi ý danh sách N tài nguyên (T i,n ) mà bộ lọc gợi ý cho người dùng u a
Thuật toán CF là trung tâm tính toán của một hệ thống tư vấn Các thuật toán sẽ tính toán các đối tượng mà một người nào đó sẽ thích và có bao nhiêu người sẽ thích chúng Các thuật toán CF thường được dùng để tạo ra các tư vấn tốt nhất cho người dùng, gợi ý một đối tượng tốt nhất hoặc đưa ra một danh sách các đối tượng được xếp hạng top đầu Chúng ta đang đề cập đến hệ thống gợi ý dùng tốp N đối tượng, trong đó N thường trong khoảng 1-20 [21]
Theo như nghiên cứu của J.S Breese, D.Heckerman, và C Kadie [3] đã nhận xét các thuật toán dành cho gợi ý có hợp tác có thể được nhóm vào hai loại chính: dựa trên kinh nghiệm (memory – based hoặc heuristic- based) và 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 ) hay còn gọi là dựa trên bộ nhớ có đặc trưng cơ bản là nó thường sử dụng toàn bộ dữ liệu đã có để dự đoán đánh giá của một người dùng nào đó về đối tượng mới Nhờ lợi thế là nó có khả năng đưa trực tiếp dữ liệu mới vào bảng dữ liệu, do đó nó đạt được khá nhiều thành công khi được áp dụng vào các ứng dụng thực tế Cũng do đó mà các kỹ thuật này thường đưa ra các dự đoán chính xác hơn trong các hệ trực tuyến – nơi mà ở đó luôn có dữ liệu mới được cập nhật
Tư vấn raj (dự đoán đánh giá của người dùng u a lên sản phẩm i j )
{T i1 ,T i2 ,… ,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ớ dự đoán đánh giá của người dùng đối với một đối tượng dựa trên tất cả đánh giá của người dùng tương đồng trong quá khứ Dự đoán 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ố có thể hiểu là độ “tương đồng” giữa các cặp người dùng Thông thường độ đo tương đồng bao gồm hệ số tương quan Pearson [6] và độ đo Cosine giữa
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ớ phát triển nhanh chóng nhờ vào tính đơn giản và quá trình huấn luyện tương đối dễ hiểu Tuy vậy một trong số những trở ngại chính cho phương thức này là khó có khả năng mở rộng.Thông thường có hai cách tiếp cận dựa trên bộ nhớ [16]: hệ dựa trên người dùng (user-based) và hệ dựa trên đối tượng (item-based)
3.2.1.1 Lọc cộng tác dựa vào người dùng
Theo cách tiếp cận lọc cộng tác dựa vào người dùng (user-based) thì bộ lọc sẽ dự đoán các đối tượng dựa trên sự tương tác giữa các người dùng Hệ thống sẽ xác định sự tương tự giữa hai người dùng thông qua việc so sánh các đánh giá của họ trên cùng đối tượng, sau đó dự đoán đánh giá đối tượng s bởi người dùng u hay chính là đánh giá trung bình hoặc tổng của những người dùng tương tự với người dùng u hoặc đưa ra các gợi ý đối tượng dựa vào các đánh giá từ những người dùng tương tự User- based thường dễ làm hơn khi số lượng đối tượng nhiều hơn nhiều 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 là một vector hàng được sắp xếp không có thứ tự [3.1, [20]] Điểm đánh giá (rating) của những người dùng tương tự góp phần đáng kể để dự đoán các rating của đối tượng và để tư vấn các đối tượng tới các người dùng Do đó làm thế nào để chọn ra nhóm người dùng tương tự là một việc quan trọng quyết định kết quả dự đoán rate cũng như kết quả gợi ý đối tượng Vấn đề này sẽ được trình bày chi tiết tại phần ’’Vấn đề lựa chọn hàng xóm“ cùng 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 thuật toán của CF được triển khai rộng rãi và dùng phổ biến nhất [22] Vì nó được đánh giá là dễ thực hiện, độ chính xác cao Luận văn sẽ sử dụng kỹ thuật này vào thực nghiệm nên tác giả sẽ trình bày chi tiết phương pháp này
Phương pháp hướng người dùng này sẽ ước lượng rate (đánh giá) hoặc gợi ý những đối tượng i chưa được đánh giá bởi người dùng a dựa vào tập những người dùng T a là những người hàng xóm của a (người tương tự với a ) đã đánh giá đối tượng i Ma trận đánh giá được trực tiếp sử dụng để tìm hàng xóm T a Một cách khả thi để dự đoán đánh giá của người dùng a lên i (p a,i ) là sử dụng tổng trọng số các đánh giá của những hàng xóm gần nhất là u thuộc T a đã đánh giá đối tượng i
Su i T u ui ai a a u a sim r u a sim p Độ tương tự biểu thị bởi sim(a,u) đóng vai trò trung tâm khi chúng sử dụng tất cả các thành viên của tập T a và trọng số của tất cả những độ trung bình trên r ui là điểm mà người dùng u (hàng xóm của a ) đánh giá cho đối tượng i và S u là tập hợp đối tượng mà u đã đánh giá cho điểm Để xem xét sự khác nhau trong việc sử dụng thang đánh giá của những người dùng khác nhau, việc dự đoán dựa trên độ lệch từ đánh giá trung bình được đề xuất P ai có thể được tính bằng tổng của đánh giá trung bình của người dùng a 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
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
Thật vậy, giả sử rằng những tài nguyên được đánh giá có điểm giữa 1 và 5 Một người dùng có thể đánh giá một tài nguyên anh ta thích là 4 và tài nguyên anh ta không thích là 1 Tuy nhiên, một người dùng khác có thể đánh giá tài nguyên anh ta thích là 5 và một tài nguyên anh ta không thích là 2 Bằng việc sử dụng độ lệch từ đánh giá trung bình, ngữ nghĩa riêng của từng người về mặt thể hiện sự ưa thích trên tài nguyên mà họ đánh giá, được giải thích tốt hơn
Phương pháp dựa trên láng giềng đã trở nên rất phổ biến [3, 12, 22] vì chúng khá trực quan và tương đối đơn giản Đặc biệt, chúng không yêu cầu điều chỉnh nhiều tham số hoặc một giai đoạn huấn luyện rộng Chúng cũng cung cấp một minh chứng ngắn gọn và trực quan cho việc tính toán các dự đoán So sánh các phương pháp thì láng giềng gần nhất đã được thể hiện trên các dữ liệu của Netflix với kết quả đáng khích lệ về sự cải tiến đáng kể chất lượng dự đoán mà không tăng thời gian chạy [19]
Với phương pháp lọc cộng tác dựa vào láng giềng gần nhất thì chất lượng của hệ tư vấn phụ thuộc vào số lượng hàng xóm, cách lựa chọn hàng xóm và độ tương tự giữa những người dùng thông qua các giá trị rating của những người dùng đánh giá cùng một tập đối tượng nhưnhau tạo thành hàng xóm gần nhất [21]
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
Một trong các giai đoạn của lọc cộng tác là tạo ra được hàng xóm tin cậy (nhóm người tương tự nhau), từ đó phân tích sở thích đọc của họ để gợi ý cho người dùng cần tư vấn (ví dụ u 1 ) [11] Vậy vấn đề đặt ra là: những đối tượng nào (gọi là các đối tượng đặc trưng, tiêu biểu) trong tập hợp các đối tượng của cộng đồng này đánh giá sẽ được chọn để tư vấn cho u 1 Đây cũng chính là vấn đề làm thế nào để lấy ra được tốp N gợi ý 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
Ta sẽ tìm cách tính lại điểm của người dùng này với các đối tượng mà cộng đồng đánh giá là tốt, (điểm này khác với rate ban đầu mà hệ thống thống kê được) các đối tượng này có thể chứa hoặc không chứa các đối tượng mà u 1 này đã tương tác Sau khi tính lại được điểm của người dùng u 1 cho các đối tượng thì sẽ chọn các đối tượng được u 1 đánh giá là cao (rate cao)
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 u 1 và u 2 , ký hiệu tập hợp tất cả các bản tin mà một trong hai người dùng u 1 hoặc u 2 đã từng truy cập là N = {n 1 , n 2 , … , n p } với p phần tử Vector biểu diễn điểm đánh giá của người dùng u 1 và u 2 trong tập N lần lượt là:
Trong D(u 1 ), phần tử x i là các giá trị đánh giá của u 1 dành cho bản tin ni Tương tự đối với các phần tử trong D(u 2 ) Độ tương đồng 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 )
U là tập hợp những người dùng cùng trong nhóm tương đồng Từ đó ta tính được điểm số đánh giá khả năng người dùng u quan tâm tới bản tin s ( khác n i ) là:
Trong công thức (3.25) N U là số lượng người dùng trong tập U, I(u j ,s) là các giá trị rate của người dùng u j đã tương tác với bản tin s (Các giá trị này có thể chứa giá trị
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 dùng để gợi ý cho người dùng u có thể lấy chính là danh sách bản tin mà những người dùng khác trong nhóm quan tâm nhưng người dùng u chưa đọc Các bản tin được tính khả năng người dùng u quan tâm theo công thức 3.25 và sắp xếp theo điểm số giảm dần Vậy s sẽ là một trong các bài trong tập N từ thứ hạng điểm ta có thể lấy ra các bản tin m i có thứ hạng cao nhất để tư vấn cho u 1
Phương pháp 2 – Dựa trên số lượng đánh giá (POP -Porpularly Rated) Đây là phương pháp dựa trên số lượng người dùng trong cộng đồng tương tự với u 1 đã đánh giá cùng một tài nguyên gọi là phương pháp lọc ra tốp N đối tượng phổ biến nhất Phương pháp POP đơn giản, dễ thực hiện có thể áp dụng cho cả người dùng thường xuyên hay người dùng mới (chưa có đánh giá nào) Trong tập ma trận user- item ban đầu, nếu tập đối tượng nào mà được nhiều người trong cộng đồng hàng xóm quan tâm, nghĩa là nhiều người cho điểm thì các đối tượng đó gọi là phổ biến và sẽ dùng để gợi ý cho người dùng cần gợi ý Có thể giới hạn số đối tượng bằng cách chọn một lượng N đối tượng nào đó phổ biến nhất (số lượng người tương tác nhiều nhất)
Tiêu chí này thể hiện mức độ người dùng trong cộng đồng tham gia đánh giá tài nguyên Số lượng người dùng tham gia đánh giá tài nguyên càng cao thì tính phổ biến càng cao Số lượng của những người dùng đánh giá trên đối tượng j nào đó cao hơn các đối tượng i thì đối tượng j được đưa ra gợi ý
Cách gợi ý này phát huy hiệu quả trong trường hợp người sử dụng ẩn danh (khai báo profile không trung thực hoặc không đăng nhập) hoặc số lượng đối tượng người dùng này tương tác là ít Phương pháp POP đơn giản, dễ cài đặt vì không tốn nhiều thời gian và công sức để tính toán số lượng người dùng tham gia đánh giá các tài nguyên vì ta chỉ xét tập người dùng nhỏ là tương đồng với u 1 Phương pháp này hiệu quả trong trường hợp các hệ thống chỉ quan tâm đến tính phổ biến (theo thị hiếu số đông) Có một lưu ý là trong lọc cộng tác sử dụng tư vấn các đối tượng phổ biến nhất đặc biệt phổ biến và phù hợp với ma trận rate nhị phân (các đánh giá trong ma trận user-item tồn tại dạng 0,1) Tuy nhiên chất lượng của POP có thể không cao ở một số trường hợp đặc biệt Nếu đối tượng được nhiều người đánh giá nhưng điểm đánh giá không cao tức là tổng điểm cho đối tượng này không cao mà lại được đưa lên tốp
Trong khi có những đối tượng mà ít người quan tâm (có rate khác không) nhưng giá trị rate lại cao Vì trên thực tế không phải mọi người đều quan tâm tới một bản tin với mức độ như nhau, điều này thể hiện ở các giá trị rate khác nhau trong ma trận user- item
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 dựa trên điểm trung bình hoặc tổng điểm của những người dùng trong cộng đồng với p đối tượng trong tập M Đối tượng nào có điểm trung bình hoặc tổng rate ở thứ hạng cao thì sẽ được đưa ra gợi ý [21]
Phương pháp này hướng đến tiêu chí chất lượng đối tượng [24] Do đó sử dụng phương pháp này sẽ cho ra chất lượng tư vấn cao Vì chất lượng đối tượng cũng là một tiêu chí quan trọng thể hiện đối tượng đó có đáng để quan tâm hay không Và người dùng mong muốn được tư vấn những đối tượng chất lượng hơn là những đối tượng theo thị yếu số đông Xét về tính phổ biến thì thông thường các đối tượng đã được đánh giá (rate cao) thì sẽ được những người khác trong cộng đồng quan tâm có thể rate không cao nhưng thường là khác 0 Vậy phương pháp này không những đem lại chất lượng tư vấn cao mà còn có tính phổ biến.
Một số nghiên cứu về khắc phục hạn chế lọc cộng tác
Như đã trình bày ở chương 2, hệ thống CF cũng có những hạn chế nhất định, phần này sẽ trình bày các cách khắc phục các hạn chế mà các hệ tư vấn, các chuyên gia đã và đang sử dụng, đồng thời đề xuất phương pháp khắc phục người dùng mới trong bộ lọc tin diễn đàn của luận văn Vấn đề cold start là một trong những hạn chế thường gặp trong hệ thống tư vấn nói chung và hệ thống CF nói riêng, xuất hiện khi một người dùng mới chưa cung cấp bất cứ đánh giá nào hoặc một tài nguyên mới chưa nhận bất kì đánh giá nào từ người dùng, hệ thống thiếu dữ liệu để cho ra các tư vấn phù hợp (ví dụ hệ thống tư vấn Movielens đòi hỏi ít nhất 15 đánh giá trước khi nó có thể cung cấp tư vấn [29]) Đối với vấn đề người dùng mới, Herlocker [21] đề xuất khai thác dữ liệu nhân khẩu học về người dùng chẳng hạn như tuổi, vị trí, nghề nghiệp để cải tiến các tư vấn ban đầu được cung cấp cho một người dùng mới Vấn đề tài nguyên mới và người dùng mới có thể xử lý bằng cách sử dụng cách tiếp cận tư vấn lai (Hybrid filtering) Cách tiếp cần này là sự kết hợp hai kiểu CB và CF theo một cách nào đó để cho ra kết quả tốt hơn Dưới đây ta mô tả chi tiết các phương pháp mà các hệ thống tư vấn khác đã á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
Trong các kỹ thuật được sử dụng để làm giảm sự thưa thớt của ma trận user- item, cách đơn giản chúng ta chỉ cần chèn một đánh giá mặc định d cho các đối tượng thích hợp, đối tượng mà chưa có điểm đánh giá nào Tuy nhiên các tác giả John S.Breese, David Heckerman and Carl Kadie [3] nhận định kỹ thuật này không xác định được vị trí các đánh giá mặc định này sẽ được chèn vào Trong hầu hết các trường hợp, giá trị để đánh giá mặc định d được lựa chọn là độc lập hoặc một số - những gì sở thích tiêu cực cho các đối tượng không quan sát được Chi phí áp dụng phương pháp bỏ phiếu này khá thấp
Tiền xử lý sử dụng giá trị trung bình (preprocessing using Averages) Đây là một phần mở rộng của phương pháp bỏ phiếu mặc định đã đề cập ở trên Ý tưởng cơ bản là duyệt hết ma trận user-item và thay thế giá trị lỗi (rỗng) bằng cách sử dụng một số phương pháp không hợp tác ngây thơ cung cấp một rating đơn giản
Trong chương trình trung bình người sử dụng (user average scheme), mỗi người dùng u i ta tính trung bình đánh giá các đối tượng r i được thể hiện là các trung bình hàng tương ứng trong ma trận user-item Trung bình của người dùng được sử dụng để thay thế bất kỳ một giá trị r ij lỗi nào Phương pháp này dựa trên ý tưở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 nếu chúng ta đưa vào tài khoản rating trong quá khứ của một người dùng tương tự r i nếu người dùng u i chưa đánh giá đối tượng i j r nếu người dùng u i đã đánh giá đối tượng i j với giá trị là r
( 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 i 1 i 2 i j item i User u
… … … … r j Trong sơ đồ trung bình đối tượng (đối tượng average scheme) chúng ta sử dụng mức trung bình r j của từng đối tượng i j bằng cách điền đầy vào vị trí lỗi (thiếu) trong ma trận một giá trị r i,j Chúng ta tính trung bình cột của mỗi cột trong ma trận user- matrix và điền đầy vào ma trận các cột tương tự (đối tượng 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 r nếu người dùng u i đã đánh giá đối tượng i j với giá trị là r (r ij: điểm đánh giá của hàng i , cột j) Áp dụng sơ đồ trung bình đối tượng hay trung bình người dùng cho mỗi giá trị lỗi trong ma trận sẽ dẫn đến một chi tiết mới, ma trận hoàn chỉnh Vấn đề dữ liệu thưa hoàn toàn đã được loại bỏ
Sử dụng kỹ thuật giảm số chiều
Chiến lược đơn giản để giảm số chiều là hình thành tập các cụm đối tượng hoặc người dùng, sau đó sử dụng các cụm này như một thành phần cơ bản trong dự đoán [17] Để phương pháp này tốt hơn thì nên sử dụng phương pháp thống kê như kỹ thuật phân tích thành phần PCA (Principal Component Analysis) và kỹ thuật truy vấn thông tin như chỉ mục ngữ nghĩa LSI (Latent Semantic Indexing) Có một số kỹ thuật trích chọn đặc trưng như SVD (Singular Value Decomposition) – kĩ thuật đại số cũng có thể được áp dụng nhằm làm giảm số chiều ma trận r ij r ij Về bản chất, những phương pháp giảm số chiều giải quyết vấn đề thưa thớt bằng cách sinh ra nhiều ma trận tương tác user - item được xem là gần gũi nhất với người dùng và đối tượng Tuy nhiên, trong một vài trường hợp thông tin hữu ích có thể bị mất trong suốt tiến trình giảm chiều ma trận làm cho các dự đoán không còn đáng tin cậy nữa Giải quyết sự khác nhau của vấn đề thưa thớt dữ liệu chính là sự kết hợp giữa phương pháp lọc cộng tác với những phương pháp tiếp cận dựa trên nội dung Thêm vào đó là những tương tác giữa người dùng – đối tượng Vì vậy các kỹ thuật này cũng xem độ tương tự đối tượng xuất phát từ nội dung của chúng, điều này tạo ra dự đoán chính xác hơn Tuy nhiên, khuyết điểm chính của những kỹ thuật này là chúng chỉ có thể được sử dụng khi nội dung thông tin có sẵn trong hệ thống
Sử dụng đồ thị song phương Ở phương pháp này xem dữ liệu giống như đồ thì song phương, ở đó mỗi nút biểu diễn người dùng và đối tượng tư vấn, mỗi cạnh (u,i) được nối giữa người dùng u và sản phẩm i nếu u được đánh giá bởi i Hơn nữa, cạnh (u, i) đưa ra trọng số tương ứng với đánh giá được người dùng u gán cho sản phẩm i Những phương pháp này sau đó chuyển hóa độ tương tự giữa những người dùng hoặc sản phẩm sử dụng lý thuyết đồ thị Chẳng hạn phương pháp này tính toán độ tương tự giữa hai người dùng tương ứng với việc tính độ trung bình giữa những nút tương ứng của chúng trong những đường ngẫu nhiên của đồ thị Các phép đo khác trên đồ thị cũng được nghiên cứu, chẳng hạn như khoảng cách ngắn nhất giữa hai nút trên đồ thị, khoảng cách ảnh hưởng của các nút trên đồ thị 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 bài toán dự đoán đánh giá
Ngoài ra theo tác giả Duy Phương [32] còn đề xuất sử dụng phương pháp học đa nhiệm vào lọc cộng tác nhằm sử dụng tập đặc trưng chung của tập người dùng khác nhau vào quá trình huấn luyện Những đặc trưng chung tìm được đóng vai trò chia sẻ thông tin trong tập người dùng tương ứng không chỉ nâng cao được kết quả dự đoán mà còn hạn chế được ảnh hưởng của vấn đề dữ liệu thưa
Chúng ta có thể dùng kỹ thuật user average scheme (đã mô tả ở mục 1- trong phần này) để giải quyết vấn đề này chúng ta sử dụng mức trung bình đối tượng r i của từng người dùng u i để điền vào giá trị thiếu r i,j trong ma trận Cụ thể, chúng ta tính trung bình hàng trong ma trận user-item và điền vào tất cả các chỗ khuyết của cùng một hàng không có giá trị, sử dụng trung bình là: r i khi người dùng u i chưa đánh giá đối tượng mới i j (quan sát bảng mô tả 3.6) ( r ij :điểm đánh giá của hàng i cột j) r ij 3- Khắc phục 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í
Với 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 thì quá trình tạo lập cộng đồng chỉ dựa trên một tiêu chí là điểm đánh giá Trong trường hợp người dùng mới đăng kí với hệ thống, khi đó hệ thống chưa có thông tin đánh giá của người dùng Để tạo lập cộng đồng hệ thống phải cung cấp các tài nguyên để người dùng đánh giá và dựa trên những thông tin này để thành lập cộng đồng Theo cách này người dùng phải tốn khá nhiều công sức trước khi được xếp vào một cộng đồng nào đó Mô hình không gian cộng đồng đa tiêu chí có thể khắc phục được những hạn chế trên [21] Với cách tiếp cận này, mỗi thuộc tính trong hồ sơ (tuổi, nghề, nơi cư trú, trình độ, chủ đề quan tâm, sở thích, thông tin phản hồi ) đều có thể được sử dụng như một 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 và tập hợp tất cả những cộng đồng trong hệ thống hình thành nên một không gian cộng đồng và sẽ được biểu diễn bằng một bảng cộng đồng (alpha – community table) T mxn
Bảng 3.7 Bảng minh họa mô hình cộng đồng đa tiêu chí
Trong đó, u i thuộc U là tập người dùng, j thuộc A là tập tiêu chí dùng để phân nhóm hoặc phân hoạch người dùng, mỗi giá trị T[ u i , j ] thể hiện người dùng u i thuộc về cộng đồng tiêu chí j
Với những tiêu chí đơn giản (ví dụ: tuổi, nghề, nơi cư trú…) hệ thống có thể phân nhóm người sử dụng bằng cách so sánh trực tiếp Ngược lại, với những tiêu chí phức tạp (ví dụ: nền tảng kiến thức, thông tin đánh giá…) hệ thống có thể sử dụng các phương pháp hàng xóm gần nhất, khoảng cách tâm,… để phân hoạch người dùng
Trong trường hợp người dùng mới chưa có thông tin gì để đánh giá, tiếp cận này còn đưa ra một phương pháp quy nạp dựa trên luật để suy diễn ra cộng đồng theo tiêu chí đánh giá của người dùng dựa trên những cộng đồng theo tiêu chí khác
Định vị người dùng mới vào cộng đồng
Khi một người dùng mới đăng ký vào hệ thống, để cung cấp những thông tin tư vấn dựa trên cộng đồng tương tự, hệ thống phải định vị họ vào cộng đồng thích hợp Đối với những cộng đồng dựa vào tiêu chí là các giá trị nhân khẩu học (tuổi, nghề nghiệp, nơi cư trú…) thì việc định vị người dùng vào cộng đồng là tương đối đơn giản
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 với các chức năng của diễn đàn thông thường
Các thành phần trong bộ lọc chỉ giao tiếp với diễn đàn thông qua việc lấy dữ liệu từ CSDL gốc của diễn đàn và trả về kết quả gợi ý
- Dữ liệu vào: Đầu vào của bộ lọc tin diễn đàn là lịch sử tương tác giữa người dùng với diễn đàn được trích xuất từ một số bảng có trong CSDL tập trung
- Dữ liệu đầu ra: Danh sách kết quả gợi ý là các bài tin (mục tin, item) cần tư vấn cho người dùng Nếu mô đun được tích hợp vào hệ thống diễn đàn thực thì kết quả này được lưu trực tiếp vào CSDL làm đầu vào cho bước tiếp theo để hiển thị ra giao diện cho người dùng nhìn rõ
Hình 4.1 Quá trình xử lý của bộ lọc
Như vậy bộ lọc cộng tác cho diễn đàn được xây dựng có 4 bộ phận chính: Bộ phận tính điểm, tạo ma trận rate, bộ phận phân cộng đồng hàng xóm, bộ phận tạo gợi ý, bộ phận kiểm tra
Quá trình hoạt động của bộ lọc tin trên diễn đàn
Ban đầu bộ lọc sẽ lấy đầu vào là các lịch sử tương tác giữa người dùng và diễn đàn Lịch sử tương tác được trích xuất trực tiếp từ một số bảng trong CSDL tập trung của diễn đàn Bộ phận tính điểm, tạo ma trận rate là bộ phận hoạt động đầu tiên của bộ lọc có nhiệm vụ chọn lọc ra các tương tác quan trọng, từ đó tính toán các điểm (rate) mà một người dùng dành cho một đối tượng (trong diễn đàn có thể gọi là mục tin) Kết quả của bước này là một bảng chứa thông tin user-item-rate thể hiện các đánh giá mà một người dùng dành cho một mục tin (Bảng 4.1) Bảng này sẽ là nguồn trực
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 tạo nên ma trận rate là đầu vào trực tiếp của thuật toán CF và cũng là đầu vào của bộ phận phân cộng đồng tương tự
Tiếp đến bộ phận phân cộng đồng tương tự có nhiệm vụ tạo ra được nhóm người tương đồng với người dùng cần gợi ý Từ các giá trị điểm của mỗi người dùng dành cho các mục tin, bộ lọc sử dụng độ đo tương đồng (Cosine hoặc Euclidean) để tìm ra những người gần với người dùng cần tư vấn nhất Việc dùng độ đo nào và số lượng người dùng bao nhiêu làm nhóm tin cậy có thể là tham số để thực nghiệm Kết quả nhóm sẽ được tính toán định kì nhằm đảm bảo khả năng tương thích với sự thay đổi trong xu hướng đọc tin của người dùng
Sau đó nhóm người dùng tương đồng từ bộ phận phân cộng đồng tương tự và thông tin điểm, mục tin từ bộ phận tính điểm sẽ được đẩy sang làm đầu vào cho bộ phận tạo gợi ý Đây là khâu khá quan trọng trong bộ lọc, phương pháp áp dụng trong bộ phận này là kỹ thuật chọn tốp N gợi ý theo phương pháp 3 (trình bày chi tiết 3.3)
Với mỗi nhóm cộng đồng gồm k người dùng thu được từ bộ phận phân cộng đồng, ta xếp hạng các mục tin Mục tin nào có tổng điểm thứ hạng cao sẽ được chọn ra làm kết quả gợi ý của bộ lọc (chi tiết sẽ được trình bày mục 4.2) Ngoài ra, với người dùng mới chưa có tương tác hoặc có rất ít tương tác thì bộ lọc sẽ đưa ra gợi ý bằng cách lọc ra những mục tin có tổng điểm ở thứ hạng cao Trước khi bộ lọc hiển thị kết quả gợi ý các mục tin thì bộ phận kiểm tra sẽ kiểm tra tính hợp lệ theo một số tiêu chí đảm bảo kết quả gợi ý là tốt nhất, hợp lý nhất.
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 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s j … 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
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 đó dòng là các người dùng cột là các bài tin Giao giữa cột và hàng là giá trị điểm (rate) mà người dùng đánh giá cho một bài tin Các rate này được tính toán tự động dựa trên cơ sở là các tương tác của người dùng trong diễn đàn (trên nhiều hệ thống tư vấn khác rate này người dùng thường cho điểm trực tiếp) Do đặc thù diễn đàn Tuệ Tĩnh tôi xét hai tương tác chính: nếu u 1 đã từng đọc bản tin s i thì giá trị rate là 1, nếu u 1 có thêm các tương tác khác là comment tin thì mỗi lần comment được tính thêm rate là 1 Vậy rate của u 1 với một bản tin s i ( r u1si ) là tổng số lần comment cộng với điểm đọc tin (là 1) Ngược lại rate của u 1 cho s i là r u1si có giá trị bằng 0 nếu người dùng u 1 không có tương tác s i
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
B1- Tính các độ đo tương tự (khoảng cách Euclidean hoặc Cosine) giữa người dùng u a với tất cả n-1 người dùng khác trong hệ thống, sau đó lưu các độ đo này lại
Xét hai người dùng u 1 và u 2 , ký hiệu tập hợp tất cả các mục tin mà một trong hai người dùng u 1 hoặc u 2 đã từng truy cập là N = {s 1 , s 2 , … , s p } với p phần tử Vector biểu diễn lịch sử truy cập của người dùng u 1 và u 2 trong tập N lần lượt là D(u 1 ), D(u 2 ) đã trình bày tại công thức (3.22) và (3.23) Mỗi người dùng đại diện cho một vector có p đối tượng ứng với 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- Lấy ra k- người dùng được cho là hàng xóm tin cậy với u a bằng cách chọn ra những giá trị có độ tương tự Cosine lớn nhất sẽ có độ tương đồng cao nhất Hoặc khoảng cách Euclidean nhỏ nhất thì được coi là tương đồng nhiều nhất
Như phân tích ở chương 3 có nhiều cách chọn ra tốp N gợi ý, trong bộ lọc luận văn thiết kế chọn cách tìm tốp N theo tổng rate của các hàng xóm lớn hơn một ngưỡng θ (là trung bình của các tổng rate xét trên 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
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
, (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 có chức năng kiểm tra những bài tin mà hệ thống gợi ý có trùng các bài mà người dùng đã từng tương tác chưa Nếu trùng thì loại bỏ ra khỏi bộ kết quả gợi ý Hoặc kiểm tra xem người dùng này có phải là người dùng mới không để đưa ra hình thức gợi ý phù hợp.
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 u 1 5 2 4 5 1 0 0 0 3 u2 0 7 1 0 5 4 0 0 3 u 3 0 4 0 0 0 2 3 0 0 u4 2 0 6 0 0 0 0 3 0 u 5 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(u a ,u 2 )=0.299 Similary(u a ,u 3 )=0.098 Similary(u a ,u 4 ) = 0.549 Similary(u a ,u 5 )=0.126 Similary(u a ,u 6 ) = 0.653
Giả sử ta chọn số hàng xóm tương đồng là k=3, từ đó ta chọn được 3 hàng xóm tin cậy của u a đó là U k = (u 1 ,u 4 ,u 6 ) có độ đo Cosine với 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 s 2 s 3 s 4 s 5 s 6 s 7 s 8 S 9 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 u 3 0 4 0 0 0 2 3 0 0 u 4 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 u 1 ,u 4 ,u 6 ) 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
Ta có tốp N mục tin bộ lọc dành cho u a là: tốp N={s 1 ,s 3 ,s 4 } có tổng rate lần lượt là: 7;12;9 lớn hơn 4.6 Vậy bộ lọc tin trả lại kết quả gợi cho u a là 3 bài tin s 1 ,s 3 ,s 4
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
- Một người dùng muốn đọc, bình luận (comment), gửi (post) nhiều bài tin ở nhiều chủ đề khác nhau thì nên đăng ký một tài khoản Do đó, thường mỗi khách đến diễn đàn đều có tài khoản trong CSDL
- Một người dùng có thể chỉ đọc mà không bình luận bài tin nào hoặc có thể bình luận hay đưa (up) bài tin lên các chủ đề cho phép
- Một bài tin bất kỳ được một người dùng nào đó up lên thì thường được comment, do đó số lượt comment, số người dùng comment là một thông tin quan trọng để dùng cho bài toán
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 CSDL của diễn đàn bao gồm 164 bảng, do yêu cầu bài toán ta phân tích chỉ có 5 bảng liên quan sau: (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
Các thông tin này chỉ mang tính chất liệt kê thông tin người dùng cụ thể trong quá trình tư vấn Nó cũng có thể là dữ liệu quan trọng để làm cơ sở để tìm cộng đồng tương tự áp dụng 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 lọc cộng tác
Thể hiện các thông tin hồ sơ người dùng liên quan trong quá trình tương tác với trang web Như message_count là tổng số lượt comment mà người dùng tham gia vào toàn bộ các bài tin của diễn đàn
3/ Bảng xf_thread Cho biết một bài tin (thread_id) n thuộc chủ đề (node_id) có số lượt được comment là bao nhiêu, số lần đọc (view_count) là bao nhiêu, và do ai (user_id) là người tạo ra Thông tin này có thể giúp người dùng nhận được tiêu đề các bài tin mà hệ thống tư vấn
Cho biết user_id A nào đó đã đọc các bài tin nào (thread_id) Vậy từ bảng dữ liệu này ta có thể có một thông tin quan trọng đó là loại tương tác “đọc” giữa một người dùng A với một bài tin i nào đó hay không? Nếu bảng này tồn tại cặp (user_id,thread_id) thì chứng tỏ giữa user_id và thread_id đó tồn tại tương tác “đọc”
Tương tác này là một trong những tiêu chí quan trọng để tính ra được rate (đánh giá) của người dùng u với bản tin i Trong luận văn này tôi chỉ định có tồn tại tương tác đọc thì rate được cộng thêm 1 điểm
5/ Bảng xf_thread_user_post
Cho biết một bài tin (thread_id) đã được comment bởi người dùng nào, với số lượt comment (post_count) bởi họ là bao nhiêu Đây là tiêu chí quan trọng thứ hai để tính rate giữa người dùng và mục tin Mỗi lần comment rate được cộng thêm một điểm Nếu người dùng A comment bài tin i 2 lần (post_count=2) thì điểm mà A đánh
∞ giá cho i được cộng thêm 2 Điểm đánh giá giữa người dùng A và mục tin i được tính là tổng của điểm đọc thông qua bảng xf_thread_read và điểm comment thông qua 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 u a 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
B1 Tạo ra bảng dữ liệu bảng user_read chứa user_id (mã user), thread_id (mã bài tin), post_count (số lần comment), thread_read_date (ngày đọc) trích lọc từ hai bảng xf_thread_read và xf_thread_user_post
User item rate ua s1 4 u a s 2 1 ua s3 3 ua s4 5 u a … … u1 s1 5 u1 s2 2
Bảng user_read lấy tất cả bài tin ở bảng xf_thread_read có cùng mã thread_id; user_id với bảng xf_thread_user_post và không cùng mã thì lấy giá trị ở bảng xf- thread_read vì bảng xf_ thread_read có thể chứa xf_thread_user_post hoặc ngược lại
Tức là một người dùng comment bài tin nào đó mà không đọc hoặc đọc mà không comment hoặc đã đọc thì sẽ comment Do đó sẽ tồn tại những giá trị NULL thì kết quả sẽ trả lại là 0
B2 Tạo ra bảng dữ liệu user_rate chứa user_id (mã người dùng), thread_id (mã bài tin), rate Giá trị rate này được tạo ra theo quy luật vừa mô tả ở trên Rate là tổng điểm thu được bởi hai loại tương tác đọc và comment
Thực nghiệm và đánh giá kết quả
Có nhiều độ đo đánh giá có thể sử dụng để đánh giá các thuật toán trong hệ tư vấn như: MAE (Mean Absolute Error), coverage, EU (Expected Utility) nhưng độ chính xác (Precision) và độ hồi tưởng (recall) là những độ đo phổ biến nhất trong tìm kiếm thông tin được kế tục nghiên cứu bởi Sarwar và Billsus và Pazzani [21,23] Độ đo này phù hợp để đánh giá những bài toán như tốp N gợi ý bằng việc xem xét điểm đánh giá các mục tin Theo Herlicker chúng ta phải xem xé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
Vì vậy, giá trị của độ chính xác và độ hồi tưởng phụ thuộc rất nhiều vào số lượng các mục tin đánh giá bởi mỗi người dùng, do đó giá trị của họ không nên được hiểu 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, đầu ra của hệ thống là một danh sách các mục tin mà người dùng hài lòng Điểm quan trọng chủ yếu trong việc đánh giá hệ thống như vậy là chúng ta muốn tìm hiểu xem người sử dụng sẽ quan tâm đánh giá một số hoặc tất cả các mục tin trong danh sách tốp N mục tin Từ nhiều nghiên cứu chỉ ra rằng chất lượng của bộ lọc cộng tác lấy tốp N gợi ý cũng được thể hiện qua 3 tiêu chí: độ 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 [21,23,25] Độ chính xác là tỉ lệ các mục tin được hệ thống đánh giá là “có liên quan” (gợi ý ra cho người dùng) được người dùng phản hồi là gợi ý chính xác trên tổng số mục tin mà hệ tư vấn cho là tốt Còn độ hồi tưởng là phần trăm các mục tin người dùng cho là “có liên quan” (đến sở thích, đặc điểm đọc của họ) đồng thời hệ thống cũng đã đưa vào kết quả gợi ý cho người dùng đó trên tổng số mục tin mà người dùng đọc Để hiểu rõ hơn sự vận dụng độ đánh giá này vào bộ lọc ta gọi:
+ 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
+ N s : Số các mục tin mà hệ thống gợi ý cho người dùng (bộ lọc đánh giá là tốt)
+ N rs : Số mục tin mà bộ lọc gợi ý và được người dùng cho là phù hợp với 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)
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
> rate trung bình của tất cả mục tin thuộc vào lớp Relevant (quan tâm) đối chiếu với bảng chính là N r, còn lại là những mục tin thuộc vào lớp irrelevant (không quan tâm ) tức tập N i Để tính recall, precision ta cần chia tập mục tin thành tập những mục tin được bộ lọc tư vấn ( N s ) và tập không được tư vấn ( N n ) Việc lấy tốp N mục tin tư vấn: số các bài có tổng điểm (xét trên những người dùng tương đồng) > trung bình của các tổng rate (xét trên những người dùng tương đồng) đó Chú ý rằng: tập N s chính là tập tốp N mà ta đã bàn trong thuật toán
Từ đó ta có công thức tính 2 độ đo này như sau: s rs
Re (4.6) Để hiểu rõ hơn về bản chất hai độ đo này, ta xét lại ví dụ mục 4.3 nhưng xét trên bộ dữ liệu lớn hơn gồm n=6 người dùng, m mục tin như bảng 4.6 và u a là một người dùng trong tập thực nghiệm được lấy ra để thực nghiệm Trước tiên ta chia tập mục tin ra thành 2 phần, phần 1 chiếm 2/3 bộ mục tin là 9 (13*2/3) làm dữ liệu học
(giả sử từ s 1 đến s 9 ) và phần 2 chiếm 1/3 bộ mục tin là 4 (13*1/3) làm dữ liệu kiểm tra (giả sử từ s 10 đến s 13 ) Ta dùng bộ dữ liệu học để tìm ra 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 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 s 12 s 13 u a 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 u 2 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 u 4 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:
Similary(u a ,u 1 ) = 0.948 Similary(u a ,u 2 )=0.299 Similary(u a ,u 3 ) = 0.098 Similary(u a ,u 4 ) = 0.549 Similary(u a ,u 5 )=0.126 Similary(u a ,u 6 ) = 0.653 Xét số hàng xóm k=3 thì ta chọn được 3 hàng xóm tin cậy của u a là {u 1 ,u 4 ,u 6 } có độ đo Cosine với u a là lớn nhất
Tiếp theo ta xét bộ dữ liệu kiểm tra từ s 10 đến s 13 , dùng kỹ thuật lấy tốp N gợi ý đã phân tích ở mục 4.2.3 ta có tốp N mục tin tư vấn cho u a là {s 11 , s 12 ,s 13 } có tổng rate lần lượt là 4; 4; 5 (lớn hơn trung bình tổng rate là 3.8) => N s =3
Xét trên một người dùng thực nghiệm u a ta cũng tính avg ua =(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 hữu ích cho các mục đích gợi ý cần phải đưa ra được nhiều mục tin thông tin thực sự phù hợp cho người dùng (tối ưu độ hồi tưởng), với độ chính xác cao (tối ưu độ chính xác) Để hợp nhất hai giá trị này, Lewis và cộng sự Gale đã đề xuất độ đo F-measure (F1), một giá trị kết hợp có trọng số giữa precision và recall, khoảng giá trị từ 0 đến 1 Các kết quả báo cáo trong luận văn này coi độ chính xác và độ hồi tưởng có tầm quan trọng như nhau Từ đó, ta có công thức F1 được định nghĩa như sau:
Vậy với mẫu dữ liệu 4.3 ta tính được:
F1 nên được tính toán trên mỗi người dùng riêng lẻ và sau đó tính trung bình độ đánh giá trên tất cả người dùng trong tập thử nghiệm T [13]
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 quá trình thực nghiệm nhằm kiểm tra môđun lọc cộng tác trên bộ dữ liệu diễn đàn Tuệ Tĩnh xem độ đo Euclidean hay Cosine cho chất lượng bộ lọc cao hơn Việc chọn số lượng người dùng lân cận k (số người dùng tương đồng) là bao nhiêu cũng quyết định chất lượng tư vấn Do đó bộ lọc cũng test các giá trị k trong khoảng [5 20] và chứng minh rằng độ chính xác trên bộ lọc này ở mức khá có thể phát triển để vận dụng thực tiễn Ngoài ra luận văn còn thực nghiệm gợi ý bài tin, mỗi khi nhập mã người dùng thì bộ lọc hiển thị ra nhóm người dùng tương đồng với họ và hiển thị ra danh sách các bài tin gợi ý cho người này
Bộ lọc cộng tác thực nghiệm dành cho diễn đàn Tuệ Tĩnh chọn bộ dữ liệu có hơn 1628 cặp tương tác user – item, trong đó có khoảng 245 người dùng khác nhau và gần 300 mục tin (mã bài tin) Mỗi người có tương tác với ít nhất 10 bài tin Để có kết quả đánh giá, ta chia bộ dữ liệu này thành hai phần Phần một chiếm 2/3 bộ dữ liệu các bài tin ban đầu trên tập người dùng cố định (245 người) được coi là tập học Phần hai chiếm 1/3 bộ dữ liệu các bài tin ban đầu trên tập người dùng cố định (245 người) được coi là tập kiểm tra
Quá trình thực nghiệm chọn ngẫu nhiên 10 người dùng gọi là tập người dùng thử nghiệm Các độ đánh giá này được tính toán trên mỗi người dùng riêng lẻ và sau đó tính trung bình độ đánh giá trên tất cả người dùng trong tập thử nghiệm T Với mỗi người dùng thử nghiệm ta tìm cộng đồng người dùng tương tự bằng cách sử dụng độ đo Cosine (hoặc Euclidean) Sau khi tìm được cộng đồng người dùng tương tự bộ lọc sẽ áp dụng kỹ thuật lấy tốp N mục tin (xét trên tập dữ liệu kiểm tra) lấy ra được các bài tin trong tập kiểm tra cần tư vấn cho người dùng thử nghiệm Bộ lọc sẽ đối chiếu với kết quả thực tế mà người dùng thử nghiệm này đã đánh giá các bài tin trong tập kiểm tra Từ sự trùng lặp giữa bài tin người dùng đọc thực sự với bài tin bộ lọc gợi ý ta tính ra được độ chính xác (precision) và độ hồi tưởng (recall) như phân tích mục 4.6.1
- Quá trình thực nghiệm với các phép thử trên các giá trị người dùng lân cận (k) khác nhau ta có kết quả thống kê độ chính xác (precision) như bảng 4.7 Quan sát bảng 5.2 ta thấy với user_id = 1305 thì ứng với việc chọn k hàng xóm tin cậy khác nhau sẽ cho độ chính xác khác nhau, k=5 độ chính xác là 59.5 tương tự ta thấy k=9,11,13,15… 40 Kết quả thử nghiệm cho thấy k cho độ 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
- Quá trình thử nghiệm trên hai độ đo tương tự Cosine và Euclidean, xét trên từng người dùng trong tập thử nghiệm thì kết quả độ đo F1 được tổng hợp từ hai độ đo precision và recall được thống kê như hình 4.3 Kết quả thực nghiệm này cho biết dùng độ đo Cosine trong bộ lọc tin diễn đàn sử dụng kỹ thuật lọc cộng tác cho kết quả tư vấn cao hơn khi dùng độ đo Euclidean
Hình 4.3 So sánh độ đo F1 khi dùng hàm tương quan Cosine và Euclidean
- Chi tiết một số kết quả trên tập người dùng thử nghiệm dùng độ đo Cosine thể hiện tại bảng 4.8 Qua kết quả thống kê này với user_id45 thì số bài tin mà bộ lọc gợi ý đúng ý người dùng (người dùng quan tâm thực sự) là 9 bài Trong khi đó bộ lọc gợi ý cho người này 12 bài Từ đó ta tìm được độ chính xác cho người dùng này 75%
(9*100/12) Số bài mà người này quan tâm thực sự là 15, từ đó ta tính được độ hồi tưởng là 60% (9*100/15) Với kết quả bảng 4.8 nhận thấy số bài tin người dùng quan tâm thực sự và số bài tin mà bộ lọc (dựa vào cộng đồng tương tự của người này) gợi ý cho họ chênh lệch không nhiều Bộ lọc cho kết quả khá đồng đều trên những người dùng thực nghiệm chứng tỏ việc tìm cộng đồng tương tự trong bộ dữ liệu diễn đàn là rất phù hợp và khả quan Với bộ dữ liệu diễn đàn độ hồi tưởng cao hơn độ chính xác vì số lượng bài quan tâm ở những người khác nhau là khác nhau, có người quan tâm ít bài, có người quan tâm nhiều bài Do đó cộng đồng người tương đồng với họ có thể sẽ quan tâm số lượng bài lớn hơn họ, dẫn đến số bài bộ lọc tin gợi ý cho họ sẽ lớn hơn số bài họ quan tâm thực sự
Bảng 4.8 Thống kê chi tiết các kết quả đánh giá dùng độ đo Cosine
Số bài tin người dùng quan tâm trùng với hệ thống gợi ý
Số bài tin bộ lọc gợi ý
Số bài tin người dùng đã quan tâm thực sự