Chương 1. Tổng quan về hệ tư vấn: Trình bày những nội dung cơ bản về hệ tư vấn (các hệ thống nổi tiếng, mô tả bài toán tư vấn, phân loại các hệ tư vấn theo phương pháp xây dựng). Giới thiệu hệ tư vấn website được xây dựng trong khóa luận. Khai phá query log và ứng dụng: Giới thiệu về cấu trúc query log của máy tìm kiếm, các thông tin có thể khai phá, phương pháp khai phá và các ứng dụng của việc khai phá query log.
Hệ thống tư vấn website cho máy tìm kiếm dựa trên khai phá query log: Trình bày mô hình hệ thống tư vấn website do chúng tôi đưa ra và các công trình liên quan. Thực nghiệm và đánh giá: Xây dựng, thử nghiệm và đánh giá hệ thống với các query liên quan tới miền sản phẩm điện tử. Phần kết luận tổng kết nội dung chính của khóa luận, các vấn đề còn tồn tại và định hướng phát triển của hệ thống. Tổng quan về hệ tư vấn 1.
Giới thiệu về hệ tư vấn Trong cuộc sống hàng ngày, trong rất nhiều trường hợp, người ta đưa ra các lựa chọn dựa trên những ý kiến hay lời khuyên của mọi người xung quanh, có thể qua lời nói, các bản đánh giá sản phẩm, khảo sát thị trường, thư giới thiệu …v. Nhưng trong kỉ nguyên thông tin, hàng triệu thông tin được đưa lên internet mỗi ngày, điều này dẫn tới yêu cầu phải có các phương pháp tự động thu thập thông tin và đưa ra lời khuyên để hỗ trợ cho các phương pháp truyến thống trên. Hệ tư vấn (recommender system) là một giải pháp như vậy. Hệ thống này đưa ra gợi ý dựa trên những gì người dùng đã làm trong quá khứ, hoặc dựa trên tổng hợp ý kiến của những người dùng khác.
Hệ tư vấn đã trở thành một ứng dụng quan trọng và thu hút được sự quan tâm lớn của các nhà nghiên cứu cũng như các doanh nghiệp. Một vài hệ tư vấn nổi tiếng [8] : o Phim / TV/ âm nhạc: MovieLens, EachMovie, Morse, Firefly, Flycasting, Ringo… o Tin tức / báo chí: Tapestry, GroupLens, Lotus Notes, Anatagonomy… o Sách / Tài liệu: Amazon.com, Foxtrot, InfoFinder… o Web: Phoaks, Gab, Fab, IfWeb, Let's Browse … o Nhà hàng: Adaptive Place Advisor, Polylens, Pocket restaurent finder… o Du lịch: Dietorecs, LifestyleFinder … $1,000,000 Hình 1. Giải thưởng 1 triệu USD của Hình 2. Ba hội nghị của ACM về Netflix cho ai đưa ra được thuật toán hệ tư vấn được tổ chức ở châu Âu giúp tăng độ chính xác của hệ thống tư và Mỹ [3] vấn phim của họ thêm 10% [21] 3 1.
Bài toán tư vấn Theo Adomavicius và Tuzhilin trong [4], trong hầu hết các trường hợp, bài toán tư vấn được coi là bài toán ước lượng trước hạng (rating) của các sản phẩm (phim, cd, nhà hàng …) chưa được người dùng xem xét. Việc ước lượng này thường dựa trên những đánh giá đã có của chính người dùng đó hoặc những người dùng khác. Những sản phẩm có hạng cao nhất sẽ được dùng để tư vấn. Một cách hình thức, bài toán tư vấn được mô tả như sau: Gọi C là tập tất cả người dùng; S là tập tất cả các sản phẩm có thể tư vấn.
Tập S có thể rất lớn, từ hàng trăm ngàn (sách, cd…) đến hàng triệu (như website). Tập C trong một số trường hợp cũng có thể lên tới hàng triệu. Hàm u(c,s) đo độ phù hợp (hay hạng) của sản phẩm s với user c: 𝑢: 𝐶 × 𝑆 → 𝑅 với R là tập được sắp thứ tự. Với mỗi người dùng 𝑐 ∈ 𝐶, cần tìm sản phẩm 𝑠 ′ ∈ 𝑆 sao cho hàm u(s’, c) đạt giá trị lớn nhất: ∀𝑐 ∈ 𝐶, 𝑠′𝑐 = arg max𝑠∈𝑆 𝑢 (𝑐, 𝑠) Trong hệ tư vấn, độ phù hợp của một sản phẩm thường được cho bằng điểm, ví dụ người dùng A đánh giá bộ phim ―Star war 3‖ đượ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ể. Giá trị của hàm u có thể được xác định bởi người dùng hoặc được tính toán bởi công thức nào đó. Mỗi người dùng trong không gian C được xác định bởi một hồ sơ (profile). Hồ sơ này có thể gồm rất nhiều loại thông tin: tuổi, giới tính, thu nhập, … hoặc có thể chỉ gồm một trường mã số người dùng (user id) duy nhất.
Tương tự, mỗi sản phẩm trong không gian S cũng được xác định bởi một tập các đặc trưng. Ví dụ, trong hệ thống tư vấn phim, đặc trưng của mỗi bộ phim có thể là : tên phim, thể loại, đạo diễn, năm sản xuất, diễn viên chính …v…v. Vấn đề chính của hệ tư vấn là hàm u không được xác định trên toàn không gian 𝐶 × 𝑆 mà chỉ trên một miền nhỏ của không gian đó. Điều này dẫn tới việc hàm u phải được ngoại suy trong không gian 𝐶 × 𝑆.
Thông thường, độ phù hợp được thể hiện bằng điểm và chỉ xác định trên tập các sản phẩm đã từng được người dùng đánh giá từ trước (thường khá nhỏ). Ví dụ, bảng 1 là đánh giá của một số người dùng với các phim mà họ đã xem (thang điểm từ 0-10, kí hiệu ∅ nghĩa là bộ phim chưa được người dùng cho điểm). Từ những thông tin đó, hệ thống tư vấn phải dự đoán (ngoại suy) điểm cho các bộ phim chưa được người dùng đánh giá, từ đó đưa ra những gợi ý phù hợp nhất. 4 Harry potter Star trek Xmen Transformer A 5 ∅ 7 9 B 9 5 5 ∅ C 6 6 ∅ 8 D ∅ ∅ 8 9 Bảng 1.
Đánh giá của người dùng về một số bộ phim đã xem 1. Phân loại hệ tư vấn Có rất nhiều cách để dự đoán, ước lượng hạng/điểm cho các sản phẩm 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… Theo [4], 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 sản phẩm: o Dựa trên nội dung (content-based): người dùng được gợi ý những sản phẩm tương tự như các sản phẩm từng được họ đánh giá cao. o Cộng tác (collaborative): người dùng được gợi ý những sản phẩm mà những người cùng sở thích với họ đánh giá cao. o Lai ghép (hybrid): kết hợp cả phương pháp dựa trên.
Phương pháp dựa trên nội dung Theo [4], với phương pháp tư vấn dựa trên nội dung, độ phù hợp 𝑢(𝑐, 𝑠) của sản phẩm s với người dùng c được đánh giá dựa trên độ phù hợp 𝑢(𝑐, 𝑠𝑖 ), trong đó si ϵ S và ―tương tự‖ như s. Ví dụ, để gợi ý một bộ phim cho người dùng c, hệ thống tư vấn sẽ tìm các đặc điểm của những bộ phim từng được c đánh giá cao (như diễn viên, đạo diễn…); sau đó chỉ những bộ phim tương đồng với sở thích của c mới được giới thiệu. 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… 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ơ về 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 5 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). Tư vấn dựa trên nội dung [17] Để cụ thể hơn, đặt Content(s) là tập thông tin (hay tập các đặc trưng) về sản phẩm s. Do hệ thống dựa trên nội dung được thiết kế chủ yếu để dành cho các sản phẩm là text, nên nội dung sản phẩm thường được biểu diễn bởi các từ khóa (keyword): Content(s) = (w1s, …wks), với w1s,.wks là trọng số của các từ khóa từ 1 tới k (có thể được tính bằng TF-IDF). Ví dụ, hệ tư vấn website Fab 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 Profile(c) là hồ sơ về người dùng c, bao gồm các thông tin về sở thích của c. Những thông tin này có được bằng cách phân tích nội dung của các sản phẩm từng được c đánh giá (cho điểm) trước đó. Phương pháp được sử dụng thường là các kĩ thuật phân tích từ khóa của IR, do đó, Profile(c) cũng có thể được định nghĩa như một vector trọng số: Profile(c) = (w1c, …,wkc) với xic biểu thị độ quan trọng của từ khóa i với người dùng c.
6 Trong hệ thống tư vấn dựa trên nội dung, độ phù hợp u(c,s) được xác định bởi công thức: u(c,s) = score(Profile(c), Content(s)) Cả Profile(c), Content(s) đều có thể được biểu diễn bằng vector trọng số từ TF- IDF (tương ứng là 𝑤𝑐 , 𝑤𝑠 ) nên có thể đo độ tương đồng của chúng bằng độ đo cosin: 𝑤𝑐. 𝑤𝑠 𝑢(𝑐, 𝑠) = cos( 𝑤𝑐 , 𝑤𝑠 ) = ||𝑤 𝑐 || × || 𝑤 𝑠 || Ví dụ, nếu c đọc nhiều bài báo thuộc lĩnh vực sinh học thì các từ khóa liên quan tới sinh học (như gen, protein, tế bào, ADN…) trong Profile(c) sẽ có trọng số cao. Hệ 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 u(c,s) cao hơn với người dùng c. 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.
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á. Phương pháp cộng tác Theo [4], không giống như phương pháp tư vấn dựa trên nội dung, hệ thống cộng tác dự đoán độ phù hợp u(c,s) của một sản phẩm s với người dùng c dựa trên độ phù hợp u(cj, s) giữa người dùng cj và s, trong đó cj là người có cùng sở thích với c. Ví dụ, để gợi ý một bộ phim cho người dùng c, đầ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 phim ảnh với c. Sau đó, những bộ phim được họ đánh giá cao sẽ được dùng để tư vấn cho c.
Có rất nhiều hệ thống cộng tác đã được phát triển như: Grundy, GroupLens (tin tức), Ringo (âm nhạc), Amazon. Tư vấn dựa trên cộng tác [17] 1.