Hệ thống gợi ý kết hợp sử dụng cả hai phương pháp là gợi ý theo nội dung và gợi ý cộng tác trong một tổng thể để phát huy ưu điểm và hạn chế nhược điểm của chúng. Cách triển khai hệ thống kết hợp có thể là một trong số những hướng chính
- Cài đặt độc lập và tổng hợp kết quả: đây là hướng kết hợp đầu tiên do ý tưởng đơn giản và dễ hiểu, chia thành hai nhánh phát triển. Nhánh thứ nhất là gộp kết quả riêng lẻ từng hệ thống thành kết quả chung như kết hợp dạng tuyến tính theo nghiên cứu của M.Claypool [17] hoặc dùng cách thức bầu chọn trong hệ thống của M.Pazzani [18]. Nhánh thứ hai là so sánh tập kết quả của hai hệ thống và quyết định sử dụng tập kết quả được đánh giá tốt hơn.
- Thêm thuộc tính cộng tác vào mô hình gợi ý dựa trên nội dung: dạng phổ biến của kỹ thuật kết hợp này là dùng dữ liệu hợp tác để giảm số lượng trường đánh giá trong đặc trưng dựa theo nội dung.
- Thêm thuộc tính nội dung vào mô hình cộng tác: gần như đối xứng với phương pháp nêu bên trên. Ngoài việc cài đặt mô hình cộng tác thuần túy, hồ sơ người dùng còn được lưu thêm một đặc trưng nội dung của các đối tượng họ quan tâm. Các đặc trưng này góp phần trong công thức tính độ tương đồng giữa người dùng, do đó tăng hiệu quả hệ thống gợi ý. Bổ sung này giúp cho hệ thống không chỉ gợi ý tới người dùng những đối tượng được người dùng khác quan tâm mà còn gợi ý cả những đối tượng phù hợp với đặc trưng của chính người dùng đó. - Xây dựng mô hình thống nhất: hướng phát triển này cũng thu hút nhiều nghiên cứu
khác nhau. Một ví dụ là hệ thống gợi ý thống nhất của A.Gunawardara và C.Meek sử dụng máy Boltzmann (Boltzmann machines) [19].
2.3. Một số hệ thống gợi ý tin tức theo hƣớng cộng tác
2.3.1. Mô hình cộng tác dựa trên chuỗi sự kiện
F.Garcin và các cộng sự [20] đề xuất một bộ lọc cộng tác dựa trên việc theo dõi thạng thái duyệt tin của người dùng. Mô hình đưa ra gồm 2 tham số: tham số quá khứ p
và tham số tương lai f. Tham số quá khứ p chỉ ra lượng thông tin trong lịch sử dùng trong việc tạo gợi ý và tham số tương lại f là số bước dự đoán trong tương lai. Ví dụ nếu p=3 và f=2, mô hình hệ thống là mô hình 3 chiều và tìm kiếm khả năng dự đoán hành động người dùng trong 1 hoặc 2 bước tiếp theo.
Ký hiệu N là tập hợp bản tin, và S là tập hợp các trạng thái. Một trạng thái s ∈ S là một chuỗi gồm p bản tin, biểu diễn s = (n1, n2, …, np) với ý nghĩa n1→n2→…→np. Mỗi lượt duyệt tin của người dùng biểu diễn bởi 1 chuỗi trạng thái. Ví dụ nếu p=3, người dùng duyệt qua các bản tin với thứ tự n1→n2→n3→n4→n5, phiên truy cập biểu diễn qua chuỗi trạng thái (n1→n2→n3)→(n2→n3→n4)→(n3→n4→n5).
Bộ lọc cộng tác trên cơ sở bản tin định nghĩa như sau. Ký hiệu TP(si,sj) là khả năng xảy ra chuyển đổi từ trạng thái si sang trạng thái sj, biểu diễn bằng tỉ lệ số lượng trường hợp chuyển đổi si sang sj xảy ra trên tổng số lần chuyển đổi từ si sang một trạng thái trên hệ thống.
TP ( si, s j)=
Với bản tin n và trạng thái s = (n1, n2, …, np), khả năng người dùng đang ở trạng thái s chuyển sang đọc bản tin n ngay sau 1 lần chuyển trạng thái là
RP ( s , n)= TP( s, ( n , n ,..., n
Áp dụng cho tham số tương lai f, khả năng người dùng đang ở trạng thái s chuyển sang đọc bản tin n sau f bước chuyển trạng thái là
RPf( s , n ) =∑TP ( s , s ') RPf−1 ( s ', n)
s '∈S
Do đó, khả năng duyệt tới bản tin n từ trạng thái s sau nhiều nhất f bước chuyển trạng thái là
score ( n | s )=∑ RPi
Hệ thống tính toán điểm số cho từng bản tin muốn gợi ý và đưa ra danh sách theo thứ tự điểm số giảm dần. Với các công thức tính điểm trên, có thể coi đây là hệ thống gợi ý theo chuỗi bản tin (sequence-of-news).
Ta có thể coi một phiên duyệt tin là tập hợp các bản tin thay vì một chuỗi có thứ tự. Ví dụ nếu trong mô hình 2 bước có thể coi như việc người dùng A truy cập theo thứ tự n- 1→n2 và người dùng B truy cập theo thứ tự n2→n1 là như nhau và cùng ứng với tập hợp tin (n1,n2). Với cách đó thuật toán trở nên đơn giản, linh hoạt hơn do số lượng thông tin để tạo gợi ý cho một trạng thái sẽ nhiều lên. Nói cách khác, trình tự đọc tin của người dùng không nhất thiết phải đúng chính xác như những người dùng khác nhưng cần phải chứa cùng một tập hợp bản tin. Định nghĩa về khả năng người dùng duyệt tới bản tin n có sự thay đổi, trở thành khả năng chuyển đổi từ một tập hợp bản tin sang một tập hợp bản tin khác có chứa n. Hệ thống trở thành hệ thống gợi ý theo tập hợp bản tin (bag-of-news).
Một mô hình khác coi việc xuất hiện đồng thời (co-occurrence) như là khả năng chuyển đổi. Trong giai đoạn luyện tập tham số quá khứ p và tham số tương lai f được gán giá trị bằng nhau. Tất cả p bản tin gần nhất được coi là hàng xóm của bản tin hiện tại. Do đó tập hợp các bản tin hàng xóm xuất hiện trước hoặc sau bản tin hiện tại nhưng không quá p bước. Những bản tin nào có điểm số xuất hiện đồng thời cao nhất được đưa vào danh sách gợi ý.
Trong mô hình bộ lọc theo chuỗi sự kiện còn tồn tại hai vấn đề cần giải quyết. Thứ nhất là việc tạo gợi ý cho các bản tin mới khi chưa có nhiều lượt truy cập liên quan tới bản tin đó. Vấn đề này có thể giải quyết bằng việc chuyển sang lấy kết quả của hệ thống gợi ý dựa vào mức độ phổ biến: gợi ý những bản tin có nhiều lượt truy cập nhất. Thứ hai là khi sử dụng tham số quá khứ p có giá trị lớn, chuỗi bản tin truy cập cũng dài theo và quá riêng biệt, khó tạo gợi ý khi cơ sở dữ liệu không có đủ bản mẫu. Nếu xảy ra vấn đề này cần giảm độ lớn của p để tìm giá trị thích hợp.
2.3.2. Mô hình hệ thống sử dụng hệ tiêu chuẩn (multi-criteria)
2.3.2.1. Giới thiệu hệ thống
. Multiple Criteria Decision Analysis (MCDA) là lĩnh vực được quan tâm trong kỹ thuật tạo quyết định, hướng vào việc phân tích, mô hình hóa giá trị hệ thống của người ra
quyết định, hỗ trợ quá trình ra quyết định. Do vậy một cơ chế kết hợp giữa MCDA và bộ lọc cộng tác đã ra đời [21].
Phương pháp đưa ra tăng hiệu suất của các hệ thống gợi ý tính điểm (Multi-rating Recommender Systems), hệ quả của hai nguyên nhân chính: việc tạo nhóm người dùng thực hiện trước thuật toán bộ lọc cộng tác mà những hồ sơ người dùng lại là kết quả quá trình xử lý mô hình dựa trên giá trị của từng cá nhân áp dụng kỹ thuật MCDA.
2.3.2.2. Các bƣớc xử lý
Hệ thống xử lý đa tiêu chuẩn hoạt động theo 4 bước như trong hình minh họa 2.2, gồm có: thu thập thông tin, mô hình hóa người dùng, phân cụm, tạo gợi ý.
Hình 2.2: Kiến trúc hệ thống xử lý đa tiêu chuẩn[21]
Bƣớc 1: Thu nhận thông tin
Ở bước đầu, có 2 kiểu dữ liệu được thu thập từ người dùng. Kiểu thứ nhất là dữ liệu mô tả sở thích dưới dạng điểm số đánh giá, kiểu thứ hai là thứ tự của các mục ưu tiên.
Tập người dùng U = {u1, u2, u3, … , un} được yêu cầu đánh giá cho các đối tượng thuộc tập tham khảo AR. Với mỗi đối tượng được chọn Ai ∈ AR, i=1,2,…,m (m là số đối tượng trong tập AR) người dùng u đánh giá một số điểm là rij, với mỗi tiêu chuẩn cj, j=1,2,…,k, theo một tỉ lệ đo định trước. Ngoài những đánh giá cá nhân này, người dùng còn được yêu cầu sắp xếp các đối tượng của tập tham chiếu theo thứ tự ưu tiên giảm dần, cung cấp trình tự ưu tiên yếu. Sau quá trình đánh giá cho điểm, thu được một ma trận được tạo ra làm đầu vào cho bước 2.
Bƣớc 2: Mô hình hóa ngƣời dùng
Ma trận điểm số từ cuối bước 1 được chuyển sang phân tích và xử lý trong bước 2, đưa tới vector k-chiều cho mỗi người dùng, gọi là vector trọng số ý nghĩa hoặc vector trọng số. Trong suốt bước mô hình hóa người dùng theo tiêu chuẩn, hệ thống áp dụng thuật toán UTA* để phân tích hướng ra quyết định của người dùng. UTA* là một trong những thuật toán tiêu biểu, phổ biến của giải thuật bất đồng – đồng nhất (Disaggregation- Aggregation).
Hình 2.3 – Phương pháp bất đồng – đồng nhất[21]
Bước đầu tiên của phương pháp bất đồng – đồng nhất là giải thích cụ thể vấn đề cần giải quyết. Có 3 khai báo thường đi cùng các vấn đề trong hệ thống gợi ý. Đó là: lựa chọn
1 hoặc nhiều hành động tiềm năng từ tập hành động A, xếp hạng chúng theo thứ tự giảm dần, hoặc sắp xếp chúng vào những thể loại đã xếp hạng. Có rất nhiều cách giới thiệu gợi ý tới cho người dùng, có thể là việc đưa ra cho người dùng đối tượng tốt nhất (lựa chọn), hiện ra tốp N đối tượng trong danh sách gợi ý (xếp hạng), hoặc đưa vào những lớp như “nên xem”, “có thể bạn thích”, “không nên xem” (sắp xếp).
Quá trình mô hình hóa tiếp theo phải đưa ra kết luận với một họ tiêu chuẩn {g1,g2,..,gk}. Mỗi tiêu chuẩn phải là hàm số thực giá trị không giảm trong A.
Về lý thuyết thuật toán UTA* lấy đầu vào là cấu trúc mô tả sở thích trình tự yếu cùng với hiệu suất của khả năng, kết quả đầu ra là tập hợp những hàm gia tăng giá trị dựa trên tiêu chuẩn bội, cấu trúc kết quả phù hợp nhất có thể so với cấu trúc đầu vào. Điều này hoàn thành nhờ các công nghệ lập trình định tuyến.
Bốn bước cơ bản được làm theo UTA* giúp tính toán tất cả tham số cần thiết cho các hàm ước lượng giá trị của đối tượng và người dùng. Mỗi đối tượng trong tập tham chiếu được gán một giá trị, xác định giá trị đối với người dùng, đảm bảo tính đồng nhất với giá trị trong hệ thống của người dùng. Kết quả của thuật toán UTA* bao gồm hàm tính giá trị cho mỗi tiêu chuẩn, ước lượng gần đúng bằng phân đoạn tuyến tính, kèm theo cả trọng số ý nghĩa của tiêu chuẩn. Trọng số ý nghĩa của tiêu chuẩn biểu diễn vector trọng số của mỗi người dùng, cung cấp lược đồ giá trị của anh ta trên hệ thống và giá trị mô hình hóa người dùng phục vụ cho bước 3.
Bƣớc 3: Phân cụm
Thông thường thuật toán phân cụm chia tập dữ liệu ban đầu thành những nhóm rời rạc. Phân cụm là tiến trình không có giám sát tập trung vào việc nhóm các đối tượng dữ liệu, chỉ dựa trên thông tin tìm thấy trong dữ liệu có mô tả quan hệ giữa chúng. Mục đích của thuật toán phân cụm là các đối tượng trong cùng nhóm phải có tính tương đồng hoặc liên hệ nhiều nhất có thể, đồng thời phải có tính khác biệt hoặc không liên hệ tới đối tượng thuộc nhóm khác. Hầu hết thuật toán phân cụm đang tồn tại bị ảnh hưởng nhiều bởi các tham số khởi tạo, ví dụ số cụm hoặc các vị trí trung tâm. Để giảm thiểu các thiếu sót, trong bước thứ 3 chúng ta bổ sung phương pháp K-mean toàn cục. Phương pháp K-mean toàn cục không phụ thuộc vào bất cứ giá trị tham số khởi tạo nào và tận dụng thuật toán K-mean như quy trình tìm kiếm cục bộ. Thay vì chọn ngẫu nhiên các giá trị khởi tạo cho tất cả tâm các nhóm, thuật toán hoạt động một cách mở rộng, thêm một trung tâm cụm mới vào mỗi giai đoạn.
Giả sử chúng ta có tập dữ liệu {x1, x2,...xn}, xi∈Rd. Vấn đề khi phân cụm là chia tập hợp thành k nhóm tách rời C1, C2, C3, …, Ck bằng việc đánh giá lạc quan hóa tiêu chuẩn phân cụm hiện tại. Tiêu chuẩn phân cụm được dùng rộng rãi nhất là tổng bình phương sailệch (SSE - Sum of Squared Error) giữa mỗi điểm dữliệu xivới tâm điểm mjcủa tập conCj chứa xi.
SSE ( m1, m2, m3..., mK)=∑∑I ( xi∈ C j) | xi− mj|2
Phương pháp k-mean toàn cục được dùng cho tập vector trọng số người dùng và gán nhãn từng người dùng vào nhóm riêng.
Bƣớc 4: Tạo gợi ý
Dựa vào sự sắp xếp nhóm người dùng với sự tương đồng sở thích, các đối tượng gợi ý thích hợp được cung cấp cho người dùng. Bước đưa gợi ý được hoàn thành bằng việc thực hiện bộ lọc cộng tác trong mỗi nhóm người dùng.
Phương pháp bộ lọc cộng tác đa chiều đa tiêu chuẩn (MRCF-dim: multidimensional Multi-criteria Collaborative Filtering) được áp dụng ở đây, dựa trên luật về khoảng cách đa chiều. Trước tiên tính khoảng cách giữa hai người dùng u và u’ đối với cùng đối tượng
d u,u' =
Trong công thức 2.7, ru và r u
Vector đánh giá là tập hợp những điểm số mà người dùng u dành cho đối tượng i, bao gồm tổng điểm đánh giá, k là số chiều của vector điểm số.
Tiếp theo khoảng cách tổng quát giữa hai người dùng u và u’ tính bởi công thức
dist (u , u ')=
U(u,u’) biểu thị tập các đối tượng mà cả u và u’ đều đánh giá, điều này có nghĩa khoảng cách toàn cục giữa hai người dùng là khoảng cách trung bình giữa đánh giá của họ về các đối tượng.
Cuối cùng độ tương đồng người dùng là phép nghịch đảo khoảng cách
Độ tương đồng tiến tới 0 nếu khoảng cách giữa hai người dùng tăng lên và tiến về 1 nếu hai người dùng cho điểm các đối tượng giống nhau. Độ đo sim(u,u’) được tính khi và chỉ khi u và u’ thuộc cùng nhóm, U(u,u’) không phải là tập rỗng.
Chƣơng 3: Xây dựng bộ lọc cộng tác trong hệ thống gợi ý tin tức
Nội dung chính của chương 3 bao gồm mô tả bộ lọc cộng tác do tác giả xây dựng và thử nghiệm trên hệ thống gợi ý tin tức tiếng Việt có tên xenoNews. Trình tự nội dung các mục trong chương:
- Các yêu cầu chung đối với bộ lọc cộng tác
- Thiết kế sơ bộ trên cơ sở kết hợp với hệ thống xenoNews: dữ liệu đầu vào, dữ liệu đầu ra, các thành phần chính trong bộ lọc
- Chi tiết thiết kế, hoạt động của các thành phần trong bộ lọc
3.1. Các yêu cầu chung
3.1.1. Môi trƣờng tích hợp bộ lọc cộng tác
Môi trường tiến hành cài đặt thử nghiệm bộ lọc cộng tác là hệ thống gợi ý tin tức tiếng Việt xenoNews, một hệ thống gợi ý tin tức tiếng Việt. Chi tiết về hệ thống xenoNews được mô tả trong luận văn có chủ đề “Chọn lọc thông tin dựa trên nội dung ứng dụng xây dựng hệ thống gợi ý tin tức theo nhu cầu người dùng” của tác giả Nguyễn Thạc Huy – học viên trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội.
Cụ thể, xenoNews là hệ thống có nhiệm vụ thu thập tin tức từ các báo điện tử Việt Nam như Dantri, Vnexpress, Vietnamnet… sau đó tạo gợi ý tin tức cho người dùng theo đánh giá sở thích cá nhân của người dùng. Hệ thống có cấu trúc 3 tầng ứng với 3 phần chính: lõi xử lý (backend), tầng trung gian (middle-level), giao diện người dùng (front- end).
Hình 3.2: Kiến trúc 3 tầng của hệ thống xenoNews[23]
- Phần lõi xử lý (back-end): đây là phần chịu trách nhiệm xử lý chính trong hệ thống, thực hiện hầu hết các nhiệm vụ: thu thập tin tức từ các báo điện tử, xử lý nội dung tin, cập nhật mô hình người dùng, tính toán và gợi ý tin tức, … Lõi xử lý phiên bản đầu có trung tâm là một bộ lọc thuộc loại gợi ý dựa theo nội dung